FundApps Adapptr requires a subset of data from the Shareholding Disclosure property list. It looks up data directly from your chosen data vendor and populates the fields required for Shareholding Disclosure where available.
If you wish to create a combined file for SD and PL, you will need to combine the field list here with the Adapptr PL properties list
Note: Not all fields required by FundApps may be available at your chosen data vendor for every asset class.
For information on integrating with our API, see:
Adapptr Techdocs Guides
Adapptr API Reference
Asset Type | Refinitiv | Bloomberg |
---|---|---|
Equity (including Closed Ended Funds/CEFs) | ✔ | ✔ |
ADR | ✔ | ✔ |
Preferred Equity | ✔ | ✔ |
Units (including ETFs and open-ended funds) | ✔ | ✔ |
Rights | ✔ | ✔ |
Warrants | ✔ | ✔ |
Convertible Bonds | ✔ | ✔ |
Government Bonds | ✔*1 | ✔*1 |
Single Name Equity Futures | ✔ | ✔ |
Single Name Equity Option | ✔ | ✔*2 |
Index Derivatives | ✔*3 | ✔*3 |
OTC Swaps, CFDs, Options, Futures, Warrants, CDS, Structured Products, Rights, Convertibles No data is looked up from the vendor for OTCs |
- | - |
Multi Level Derivatives (MLDs)
Adapptr provides limited support for multi level derivatives (derivatives which contain multiple instrument levels, such as Options on ADRs on Equities). It is recommended to look these up via the DataProviderId property. Alternatively OTC instruments can be provided with the ComponentISIN property which will relate the OTC instrument to the specified component.
Listed below are the properties you can send to Adapptr in the CSV file for listed securities and derivatives.
ISIN
, SEDOL
, CUSIP
(default is ISIN
), and optionally a secondary and tertiary identifiersISIN
, SEDOL
, CUSIP
and/or DataProviderId
. The selection of an identifier will be based on the primary identifier, then secondary identifier, then tertiary identifier, if one is provided, falling back to DataProviderId
if neither the primary, secondary, or tertiary identifier is provided.ISIN
, SEDOL
, or CUSIP
in the CSV file, the same ISIN
, SEDOL
, or CUSIP
will be populated in the generated XML file.InstrumentId
property in the XML file that is sent to FundApps.ISIN
, SEDOL
, or DataProviderId
are set as required below. Property Name | Description | Data type | Valid values & notes | ||
---|---|---|---|---|---|
AssetId | Unique identifier for the asset | String(255) | e.g. Use ISIN + LocalTicker or ISIN + ExecutionVenue if possible (these are also provided by the exchange-level FIGI or quote-level PermID). 1. Must be unique for every asset in the portfolio (but may be duplicated across portfolios) or else validation will fail and 2. Consistent across NAV dates or else HasActivity will not work and the UI will mark all assets as new |
||
AssetName | Name of the asset | String(255) | Used throughout Rapptr as the primary display name for the asset, so ensure this name is meaningful | ||
MarketValue | Market value of a position in portfolio currency | Decimal | If the market value can't be provided in portfolio currency, it should be provided in instrument currency (property MarketValueInInstrumentCurrency). For derivatives, this should represent the fair market value and should be provided with accrued interest. For non-derivative assets, market value should be provided without accrued interest. For bonds, the regulation does not specify the method but we suggest using the face value multiplied by the bond's dirty price to calculate the market value. | ||
ExecutionVenue | Market identification code (MIC) for the market that this position is traded and executed on. All shares of the position need to share this venue, otherwise split out the positions so they are venue-specific. | String | |||
MarketValueInInstrumentCurrency | Market value of a position in instrument currency | Decimal | Should only be provided if the market value can't be provided in portfolio currency (property MarketValue). For derivatives, this should represent the fair market value and should be provided with accrued interest. For non-derivative assets, market value should be provided without accrued interest. For bonds, the regulation does not specify the method but we suggest using the face value multiplied by the bond's dirty price to calculate the market value. | ||
Quantity | Equities - Number of shares held Bonds (including Convertibles) - Total nominal value of the position, divided by the FaceValue of the (single) bond instrument. ETF - Number of units held Derivatives - Number of contracts held |
Decimal | Short sale positions - Insert a negative quantity for positions resulting from short sale transactions. Lending/Borrowing/Collateral (SFTType) - For any asset which does NOT have an SFTType set to 'Normal', insert only positive quantities. |
||
QuantitySettle | On settlement date: Equities - Number of shares held Bonds (including Convertibles) - Total nominal value of the position, divided by the FaceValue of the (single) bond instrument. ETF - Number of units held Derivatives - Number of contracts held |
Decimal | Short sale positions - Insert a negative quantity for positions resulting from short sale transactions. Lending/Borrowing/Collateral (SFTType) - For any asset which does NOT have an SFTType set to 'Normal', insert only positive quantities. CDS - For credit default swaps, use a negative quantity for protection buys (which is an effective short position) and a positive quantity for protection sells (which is an effective long position). |
||
SFTType | Type of securities financing transaction (SFT) | String(255) | Valid values: Borrowed, CollateralGiven, CollateralTaken, Lent, Normal. This property accounts for various kinds of transactions such as lending, borrowing, repos, reverse repos, while also allowing for general collateral taken and collateral given. See here for more details on populating | ||
CUSIP | Optional - Nine-character CUSIP | String(255) | Only used for US 13F regulation (to match the SEC list). Either nine-character CUSIP or CINS (CUSIP International Numbering System) must be provided for securities that are reportable under 13F. For assets with no CUSIP (e.g. those not traded in the US), default to: NONE. A CUSIP must be unique to the Sedol or ISIN that it is uploaded for (depending on the identifier you select to query market data). | ||
ISIN | ISIN of the instrument | String(255) | Used to query data from your data vendor. Used to look-up Instrument in many lists such as EU Short Selling Exempt, short selling black & white lists, Takeover lists etc. | ||
SEDOL | Optional - Seven-character SEDOL of the instrument | String(255) | Used to query data from your data vendor. Note this property is not required for any Shareholding Disclosure rules. It is purely for data collection. |
||
DataProviderId | Optional - Lookup code for your chosen Market Data provider | String(255) | Used to query data from your data vendor. Provide either Bloomberg or FIGI codes for Bloomberg, or RIC codes for Refinitiv. If using a Bloomberg code you can optionally specify a yellowkey for lookups e.g. "S X3 Comdty". Note this property is not required for any Shareholding Disclosure rules. It is purely for data collection. |
||
ComponentDataProviderId | Optional - Component lookup code for your chosen Market Data provider. An alternative to ComponentISIN | String(255) | Similar to DataProviderId, used to query data from your data vendor for the component. Provide either Bloomberg or FIGI codes for Bloomberg, or RIC codes for Refinitiv. If using a Bloomberg code you can optionally specify a yellowkey for lookups e.g. "S X3 Comdty". Note this property is not required for any Shareholding Disclosure rules. It is purely for data collection. |
||
PortfolioId | Unique identifier for the portfolio / entity | String(255) | This Id should NOT change over time (even during implementation). | ||
Price | Price of the instrument in instrument currency. For bonds and convertibles, the price must be stated as a percentage of the face value of an individual bond (since this is the way bonds are quoted on the market). | Decimal | |||
InstrumentCurrency | Currency the instrument is denominated in | String(255) | Valid values: ISO 4217 currency codes. | ||
ULInstrumentCurrency | Currency the underlying component is denominated in | String(255) | Valid values: ISO 4217 currency codes. | ||
VotesPerShare | Number of votes attached to a single share | Decimal | Allowed value range: 0 .. 1000000 - This value is usually set by your data provider, if supplied it will be used as a fall back should the data provider not set a value. | ||
ULVotesPerShare | Sets underlying component VotesPerShare value. Number of votes attached to a single share | Decimal | Allowed value range: 0 .. 1000000 - This value is usually set by your data provider, if supplied it will be used as a fall back should the data provider not set a value. | ||
Market | Market identification code (MIC) for the primary market that this instrument is traded on. | String(255) | ISO 10383 code (MIC). This value is usually set by your data provider, if supplied it will be used as a fall back should the data provider not set a value. | ||
BlockerValueUS | Where a 'blocker provision' is in place for the purposes of beneficial ownership under US Section 13, the value of the blocker. | Decimal | Allowed value range: 0 .. 1000000. Example: If you have a 4.99% blocker provision, populate a value of 4.99 on the instrument. Note: This is not currently used in Rules. | ||
IsGovernmentBacked | Government Bonds - If the bond is government backed or guaranteed. |
Boolean | Only used for Bonds. For shareholding disclosure, required only if shorting European Government debt. | ||
TitleOfClass | Title of the class of the security (e.g. 1p ORD). Used in disclosure forms | String(255) | Only used in Forms | ||
AssetClassOverride | User-defined asset class. This property should be used with caution as it overrides any valid asset class informed by the external data providers. | String(255) | The valid options are: ADR, Bond, CDS, CFD, Convertible, Equity, Forward, Future, Index, Option, PreferredEquity, Rights, StructuredProduct, Swap, Unit, Warrant | ||
ULAssetClassOverride | User-defined underlying component asset class. This property should be used with caution as it overrides any valid asset class of an underlying component informed by the external data providers. | String(255) | The valid options are: ADR, Bond, CDS, CFD, Convertible, Equity, Forward, Future, Index, Option, PreferredEquity, Rights, StructuredProduct, Swap, Unit, Warrant | ||
FIGI | Twelve-character FIGI | String(255) | The Financial Instrument Global Identifier is an optional security identifier that can be used in SEC forms. Also can be utilised for lookups in the composites service. This field is not used for instrument resolution, use DataProviderId Automatically sourced for data provided by Bloomberg |
Listed below are the properties you can send to Adapptr in the CSV file for unlisted securities and derivatives, in addition to the properties defined above for listed products.
For unlisted products, FundApps are unable to get all the required data from the data vendor so we ask the client to provide more data than what would usually be required for listed products.
Property Name | Applies To | Description | Data type | Valid values & notes | |
---|---|---|---|---|---|
AssetClass | Required if no identifier (e.g.ISIN) has been provided | All | Asset class (e.g. Bond, CFD etc.) | String(255) | Valid values: CFD, Future, Option, Swap, Warrant, CDS, StructuredProduct, Rights, Convertible. |
ULAssetClass | The asset class of the underling instrument | String(255) |
If populated with one of the following values:
Valid values: Bond, Commodity and InterestRate |
||
ULIssuerName | Issuer name to be used on the dummy underlying instrument | String(255) | Mandatory for ULAssetClass of Bond. The value will be used to populate IssuerName for the dummy bond component based on the ULAssetClass. | ||
IsCashSettled | Required if no identifier (e.g.ISIN) has been provided | CFD, Future, Option, Swap, Warrant | If the derivative is cash settled (as opposed to requiring physical delivery) | Boolean | Most countries capture physically settled derivatives, many (but less) are interested in cash settled derivatives. |
Market | All | Market identification code (MIC) for the primary market that this instrument is traded on. | String(255) | ISO 10383 code (MIC). Insert the MIC of the primary market that the instrument is traded on. Where a specific market segment is different than the Operating MIC, please use the specific market segment since the Operating MIC is the parent market venue only. For instruments which are truly over-the-counter (OTC), use the value recommended by the ISO standard: XXXX For instruments where the market is completely unknown, use the value: XMIC (which is not an ISO code but a suggested default value in such cases). It is critical that for any market, segment MICs are provided. Please see ISO's official FAQs for the MIC standard under the section 'MIC LEVELS', making note of the definitions for 'market segment MIC' and 'operating MIC' including the point that 'The use of market segment MICs provides more accuracy.' FundApps is unable to validate whether our clients are providing the MICs at the granularity of segment MIC; we strongly recommend that you re-confirm with your data provider(s) that MICs are provided at segment MICs level. |
|
MarketsListedIn | All | List of all market identification codes (MICs) where the instrument is listed - should be a list of all markets that the instrument is listed on, and should include the primary market. | List | ISO 10383 code (MIC). Insert the MICs of all markets that the instrument is listed on (should include the primary market). Where a specific market segment is different than the Operating MIC, please use the specific market segment since the Operating MIC is the parent market venue only. For instruments which are truly over-the-counter (OTC), use the value recommended by the ISO standard: XXXX For instruments where the market is completely unknown, use the value: XMIC (which is not an ISO code but a suggested default value in such cases). It is critical that for any market, segment MICs are provided. Please see ISO's official FAQs for the MIC standard under the section 'MIC LEVELS', making note of the definitions for 'market segment MIC' and 'operating MIC' including the point that 'The use of market segment MICs provides more accuracy.' FundApps is unable to validate whether our clients are providing the MICs at the granularity of segment MIC; we strongly recommend that you re-confirm with your data provider(s) that MICs are provided at segment MICs level. |
|
MaturityDate | Future, Option, Swap | Physically settled derivative When the securities are to be delivered. | String(255) | Necessary for USA & Canada to determine if expiry is within next 60 days and for document generation in the UK, Hong Kong and Philippines. | |
Notional | Future, Option, Swap | The reference value of the derivative/bond-fund instrument (in instrument currency) in terms of the underlying debt instruments. Applies to derivatives on bonds, derivatives on bond indices or holdings of sovereign bond funds. This may be the face value or a multiple of the face value of underlying debt. For bond funds or bond indices, this will be the sum of the individual bond constituent holding values (not market values), in a common currency. | Decimal | ||
ExercisePrice | CFD, Future, Option | Price at which a derivative can be exercised. Also known as strike price. Futures - As futures do not have an exercise price, this is the futures price of the contract. Forwards - These would be modelled similarly to futures, and for these derivatives populate this property with the forward price. |
Decimal | Only used in Forms | |
Delta | CFD, Future, Option, Swap | The Delta measures the degree to which the derivative is exposed to shifts in the price of the underlying asset (price sensitivity with relation to the underlying). Under the European Transparency Directive (TDA) cash settled instruments should be Delta weighted. All cash settled instruments (where IsCashSettled=True) must have a Delta value. Under the Short-Selling Regulation (SSR) all derivatives (including convertibles) should be delta weighted regardless of settlement and therefore a delta must be provided. | Decimal | Valid Values: -1 to 1 | |
ContractSize | CFD, Future, Option | Contract size of a derivative. If relevant, this should be in instrument currency | Decimal | e.g. 1000 would mean every option represents 1000 of the underlying. | |
CallOrPut | Required for options, warrants | Option, Warrant | If an option is call or put | String(255) | Valid values: Call, Put. |
ExerciseStyle | Option, Warrant | Exercise style of the asset, which is defined by when, and under what circumstances it may be exercised. | String(255) | Valid values: American, Bermudan, European. | |
NextExerciseDate | Option | Next date where an option is exercisable. For American options: Maturity date | Date | Defaults to MaturityDate if not provided. | |
ComponentISIN | The ISIN of the underlying or component to the instrument | String(255) | Use this property to tell Adapptr what the underlying security is. A lookup will be attempted using the provided ISIN. | ||
IsCoveredWarrant | If the warrant is covered | Boolean | |||
InControlOfConversion | If the holder has control over the conditions of conversion (for convertibles) or exercise (for warrants). | Boolean | Some countries require convertibles & warrants to be counted if the conditions for conversion are within the control of the parties. | ||
FaceValue | Bond, Convertible | Denomination of a debt instrument at issuance. | Decimal | ||
ClassDebtOutstanding | Bond, Convertible | Outstanding principal amount of a debt issuance | Decimal | Required for UK takeover, New Zealand, China, and Botswana major shareholding calculations for convertibles and Short Australia rules for Bonds. | |
HasAlternateUSSection12Registration | ADR, Convertible, Equity, PreferredEquity, Rights, Warrant | Indicates if a security (or in some cases, the ADR for which it is an underlier) is registered under U.S. Section 12 by other means besides being listed on a U.S. National Securities Exchange. The aosphere memo for the United States describes alternate means of registration in Section 3.5(a), 'Section 12 Registration' and related footnotes. In addition, it is possible for a foreign security (even if it's not traded on a U.S. market) to be considered disclosable if the particular class is held on deposit underlying an ADR which is section 12 registered (See section 3.5(g) of the aosphere memo for the regulatory background). This property should be set to True for securities meeting that criteria. | Boolean | Populate this as True if a security is considered U.S. Section 12 registered as noted in the description. For more information on a security in this category which is also on deposit underlying an ADR in the United States, see Question 101.03 of the SEC's Q&A on 13D and 13G reporting | |
IsCoveredConvertible | Convertible | This property defines whether a convertible bond references shares already in issue or shares to be issued by the issuer upon conversion of the bond. Should this information not be possible to provide, please use the value 'Undetermined'. This value is allowed because the IsCoveredConvertible property, when set to True without certain knowledge, may be conservative in one context (Major rules), but less conservative in another (EU short selling). | String(255) | Valid values: False, True, Undetermined. | |
IsReportingCompanyUS | Equity, PreferredEquity, Unit | [Issuer Property] Whether the issuer is a Reporting Company Issuer under 13f-2. If this field is set to true, then the issuer will be treated as a reporting company issuer | Boolean | ||
IssuerId | ADR, Bond, Convertible, Equity, PreferredEquity, Unit, Warrant | Unique identifier for the issuer of the instrument | String(255) | Do not use the LEI for this as for the foreseeable future not all issuers have an LEI. For Unit funds structured as an ETF, this should identify the ETF itself. | |
IssuerName | ADR, Bond, Convertible, Equity, PreferredEquity, Unit, Warrant | [Issuer Property] Name of the issuer of the instrument | String(255) | For Unit funds structured as ETF, the IssuerName should be that of the ETFs itself. For EU government bonds, insert the exact sovereign issuer name from ESMA's list of sovereign issuers. For the SSR EU Bonds: United Kingdom rule insert 'United Kingdom' as the issuer name. For issuers that are disclosable under the nominal share capital rules in The Netherlands, insert the exact issuer name outlined by the Dutch AFM here if you want the system to automatically populate the official value for TotalIssuedNominalCapital. |
|
LEI | All | [Issuer Property] Legal Entity Identifier of an issuer | String(255) | This property should be provided for as many issuers as possible, as it will allow the system to make an exact match with issuers in the Global Company Database. If LEI is not provided then the system must rely on 'fuzzy matching' on the issuer name which can be unreliable. | |
LocalTicker | ADR, Bond, Convertible, Equity, PreferredEquity, Unit | The ticker or stock symbol which is an abbreviation used to uniquely identify traded shares of a stock on a particular stock market. | String(255) | If a holding is composed of the same class (ISIN) having been traded on multiple venues, separate instruments and separate AssetIDs should be declared in the position file for each quantity of shares traded on each market. A traded instrument can be identified by exchange using SEDOL, exchange-level FIGI or quote-level PermID). (For Singapore) This property is required for disclosure forms, and will allow the Singapore Short selling rule to run on only the quantity of shares traded on SGX-ST (i.e. in scope for disclosure.) (For Hong Kong) This property will allow certain Hong Kong-listed securities without an ISIN assigned to be picked up by the Hong Kong Takeover and Hong Kong short selling Rules. Please ignore the zero prefix (leading zeros) when providing the local ticker. For example, please provide '5' instead of '00005' for HSBC holdings shares listed in Hong Kong. |
|
TotalDebtOutstanding | Bond, Convertible | [Issuer Property] Total amount of debt outstanding of an issuer in instrument currency, for sovereign debt rules | Decimal | Only required if you can't match the sovereign issuer name used in Issuer to ESMA's list of sovereign EU issuers or to the United Kingdom 'TotalDebtOutstandingGB' value set |
A portfolio is the smallest unit that can hold assets (aka an account, fund etc.), an entity is a grouping of portfolios. The properties are generally set-up once and then only updated when changes occur. Portfolio properties can be entered directly into the Rapptr UI and do not need to be provided in an input file.
The following are required for the rules / Rapptr to function correctly
Property Name | Applies To | Description | Data type | Valid values & notes | Rules | Jurisdictions | |
---|---|---|---|---|---|---|---|
PortfolioId | Both | Unique identifier for the portfolio / entity | String(255) | This Id should NOT change over time (even during implementation). If it does a new portfolio / entity will be created. | All | All | |
PortfolioName | Portfolio | Name of the portfolio / entity | String(255) | 64 | 47 | ||
PortfolioCurrency | Both | Base currency of the portfolio / currency entity should use for calculations | String(255) | Valid values: ISO 4217 currency codes. | 5 | 3 | |
PortfolioType | Both | Portfolio: a container that holds assets (Accounts, Funds, Portfolios etc.); Entity: an aggregation of portfolios (Management Company, Controlling Entity, etc.) Umbrella: If a portfolio's direct parent is an umbrella and a portfolio level disclosure is required, Rapptr will trigger the disclosure on the parent umbrella, aggregating all portfolios underneath that specific umbrella |
String(255) | Valid values: Entity, Portfolio, Umbrella. Click here for more information on umbrellas | All | All | |
PortfolioCompany | Both | If a Chinese wall, or similar, exists, you will be able to limit the visibility to specific areas of the business. | String(255) | More information is available here | All | All | |
DefaultParentId | Both | Identifier (PortfolioId) of the Entity that a portfolio or (sub)Entity aggregates to | String(255) | Must match a PortfolioId of an Entity in the file. This is used to define the aggregation structure. In this case, an aggregation structure named 'Default' is used. For Entities which are at the top of the tree, the DefaultParentId will be its own PortfolioId. For clients with multiple aggregation structures, additional columns named 'XParentId' can be added, where X is the name of the tree (e.g. Voting, Legal, Management). More information here | All | All | |
RuleFolders | Portfolio | Defines which rules run on the system. | List | Valid values all folders active in your system see bottom left panel in the rules page | All | All | |
LiquidationDate | Both | When the portfolio / entity was / will be liquidated | Date | All | All | ||
BaseDate | Top Entity | Values that indicate the base date to disclose against given as day of the month (1-28) or LastDay-(1-27). | List | Valid values: Valid base dates that can be used to determine when in a month to disclose. | 8 | 1 | |
CompanyType | Both | Values that indicate classifications for a portfolio/entity that have effect on the application of certain rules | List | Valid values: CA-AMRS, ITFM, JP-FFI, JP-GenInv, JP-StOw, KRPassiveInvestor, None, NotJPAggExempt, NotZA, PH-EligibleII, UKIM, US16AExempt, USPassiveInvestor, US-QII. See description of possible values here |
31 | 8 | |
DisqualifiedFrom13GIssuerIDs | Both | List of Issuer Ids disqualified from the US 13G regime and to be populated for an entity (or portfolio) at the discretion of a client where the issuer should be checked under 13D instead of 13G based on certain portfolio strategy considerations. See the description for important information on its justification here. | List | See a description of how to populate this field here. | 4 | 1 | |
DisqualifiedFromAMRSIssuerIDs | Both | List of Issuer Ids disqualified from the Canada AMRS regime and to be populated for an entity (or portfolio) at the discretion of a client where the issuer should be checked under Canada's Early Warning regime instead of AMRS based on certain portfolio strategy considerations. See the description for important information on its justification here. | List | See a description of how to populate this field here. | 2 | 1 | |
DisqualifiedFromSRSIssuerIDs | Top Entity | List of Issuer Ids disqualified from Japan's Special Reporting System (SRS) regime and to be populated for an entity at the discretion of a client where the issuer should be checked under Japan's normal disclosure regime instead of SRS based on certain portfolio strategy considerations. See the description for information on its justification here. | List | See a description of how to populate this field here. | 8 | 1 | |
FundDomicile | Both | Country where the fund or entity is domiciled. Required for Spanish major shareholding rules to determine if the fund or entity is domiciled in a tax haven. If not provided Rapptr will conservatively run both tax haven and non-tax haven rules | String(255) | Valid values: ISO 3166-1 Alpha 2 country codes. | 6 | 1 | |
InvestmentManager13F | Portfolio | The name of the 'institutional investment manager' under U.S. Section 13F(1)(b), which holds 'investment discretion' over the portfolio. In case there is more than one investment management entity involved with shared investment discretion, please provide the name of the manager. Ensure to set the exact same value/name across all portfolios that share the same 13F investment manager. If the reporting entity is your top-level entity, it must be provided in this field for each portfolio as well. |
String(255) | See the SEC FAQ Question 6 for detail on 'investment discretion.' | 1 | 1 | |
IsAIF | Portfolio | To be considered for every portfolio. If set to True, indicates that the portfolio is either an EU AIF under Article 4.1.k of the AIFMD or a non-EU AIF which is marketed in the EU. | Boolean | This property is required to be set for all portfolios. It is not necessary that all portfolios in the same aggregation tree share the same property. | 1 | 1 | |
ShortSGReportingType | Portfolio | Indication of which Singapore Short Selling rules are evaluated for a portfolio based on certain attributes described in the regulation, or if another party (e.g. the underlying investor) has taken the disclosure obligation. | String(255) | Valid values: Exclude, NoThreshold, Threshold. See this Help Centre article for the full meaning of each of these values and instructions on which selection to make. |
3 | 1 |
Last generated: 2023-03-24 18:05:00 UTC