@bitgo/statics
Advanced tools
Comparing version 8.0.0 to 8.2.0
106
CHANGELOG.md
@@ -6,2 +6,108 @@ # Change Log | ||
# [8.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/statics@7.0.0-rc.4...@bitgo/statics@8.2.0) (2022-10-18) | ||
### Bug Fixes | ||
* fix test issues for BG-57708 ([65f672d](https://github.com/BitGo/BitGoJS/commit/65f672d6647dc2de94bb893d6b548deaf22af70c)) | ||
* move constants to statics for BG-57708 ([73f986a](https://github.com/BitGo/BitGoJS/commit/73f986aaca53a41b056739d5933b6b3259d2493c)) | ||
* **sdk-coin-ethw:** update chainid for EthW ([4b5339c](https://github.com/BitGo/BitGoJS/commit/4b5339c19bb17f11b9453b188e5afd35f619e749)) | ||
* **sdk-coin-polygon:** staking features ([41a3959](https://github.com/BitGo/BitGoJS/commit/41a3959ab737155a7c06a499fd19e9182e06863e)) | ||
* **sdk-coin-polygon:** update polygon token names ([8bb61cf](https://github.com/BitGo/BitGoJS/commit/8bb61cf2112a668255746366a32f8e5c8105a481)) | ||
* **statics:** contract address of tpolygon name NFT BG-58416 ([f8ca06c](https://github.com/BitGo/BitGoJS/commit/f8ca06caeb1b893c4082a73959a9be62c8d99664)) | ||
* **statics:** fix terc tokens to use goerli network ([024483d](https://github.com/BitGo/BitGoJS/commit/024483d3892d6ea05b11e63bb86dfdd0a1fe715a)) | ||
* **statics:** format polygon token if its an NFT BG-59021 ([275f743](https://github.com/BitGo/BitGoJS/commit/275f7435c9cc3f8d708b6416ad2aa2287f411ac0)) | ||
* **statics:** update contract address of name NFT BG-58416 ([0e66440](https://github.com/BitGo/BitGoJS/commit/0e66440cda0ba2a6b265e8e80da9505bbb536717)) | ||
* **statics:** update tokenAddress for tsol:orca ([3d1da19](https://github.com/BitGo/BitGoJS/commit/3d1da197036ad3d5f9daf3ed7d282b9d6ce35206)) | ||
* **statics:** update underlying asset of GTETH to ETH ([6bf3a5b](https://github.com/BitGo/BitGoJS/commit/6bf3a5bdae3db085ab57e65dd872c5626d293cc1)) | ||
### chore | ||
* **statics:** update fullname for ada coin ([39ec376](https://github.com/BitGo/BitGoJS/commit/39ec3761d013bcfec718535a6f86039a42651205)) | ||
* **statics:** update Sol coin name to Solana BG-52979 ([f7c36bf](https://github.com/BitGo/BitGoJS/commit/f7c36bf206330d317d39c11fa22fbdf638870d60)) | ||
### Code Refactoring | ||
* **statics:** update sol token asset ([47260f9](https://github.com/BitGo/BitGoJS/commit/47260f9dd768ee29ce96df3abce58c3abbdb0e1b)) | ||
### Features | ||
* add new tokens ([971251a](https://github.com/BitGo/BitGoJS/commit/971251a1a2aa693a761820fdbc821972a96f90a2)) | ||
* add new tokens ([3427c53](https://github.com/BitGo/BitGoJS/commit/3427c5380ffaf2b1bfd906898eee029825ed9387)) | ||
* add new tokens ([78a8b15](https://github.com/BitGo/BitGoJS/commit/78a8b154f4ad6c1c3b11a1e4a9c6ec9917aedcd7)) | ||
* add sui coin to statics ([fd12785](https://github.com/BitGo/BitGoJS/commit/fd127850d1cb9bad3bc149204aa6a0074a743951)) | ||
* add tokens to trading ([33887f7](https://github.com/BitGo/BitGoJS/commit/33887f73ca40136edaa02a2cf8bf346be63339a8)) | ||
* adds new tokens ([078851d](https://github.com/BitGo/BitGoJS/commit/078851dadacf9d0e18539e7757ce189ba090969d)) | ||
* **bitgo:** expose Ethw in core bitgo module ([183cda4](https://github.com/BitGo/BitGoJS/commit/183cda433f8c683722843e2c30bf46101a1cd677)) | ||
* **sdk-coin-ada:** add cardano token config ([00fcd72](https://github.com/BitGo/BitGoJS/commit/00fcd72d5feed500d69f208254c6b61815f51a16)) | ||
* **sdk-coin-avaxp:** implement export tx builder ([483d9ce](https://github.com/BitGo/BitGoJS/commit/483d9ce67b75ca5eb4c1330f59820b18043cdb6c)) | ||
* **sdk-coin-bsc:** create bsc module ([b55ca71](https://github.com/BitGo/BitGoJS/commit/b55ca7173e27ee2d75d342b6706698769f11734f)) | ||
* **sdk-coin-bsc:** support tokens for bsc ([44d2af8](https://github.com/BitGo/BitGoJS/commit/44d2af8f3f14bc61d31e6a0b8482a68db2a7d23e)) | ||
* **sdk-coin-dot:** enable DOT staking ([0e9209b](https://github.com/BitGo/BitGoJS/commit/0e9209bd9c6f855cbc11e5d602253509fd0099c3)) | ||
* **sdk-coin-eth:** add v1 wallet init code ([b1c983d](https://github.com/BitGo/BitGoJS/commit/b1c983d2f0723aa6647fca3d01a4c814639624b4)) | ||
* **sdk-coin-polygon:** support tokens ([8870307](https://github.com/BitGo/BitGoJS/commit/8870307b63f460031019aecf30c60df4f2c0a112)) | ||
* **statics:** add coin feature for NEAR ([cf1a2f2](https://github.com/BitGo/BitGoJS/commit/cf1a2f278124813bcae33c6e141ceba6920e823e)) | ||
* **statics:** add ERC20 tokens ([7d800f0](https://github.com/BitGo/BitGoJS/commit/7d800f0fe6e7a5da6e8e71030f5584e7df2965d5)) | ||
* **statics:** add ETHw statics ([f49ef42](https://github.com/BitGo/BitGoJS/commit/f49ef4233ffb788765eac5b5d20232334fbd6203)) | ||
* **statics:** add mainnet polygon contracts ([912d5d9](https://github.com/BitGo/BitGoJS/commit/912d5d9b49a58cd47c92fcf251406e9a661c1d5b)) | ||
* **statics:** add new prime tokens ([2963e96](https://github.com/BitGo/BitGoJS/commit/2963e96dbf0973863f8c7423fe168f5c181ee101)) | ||
* **statics:** add new tokens ([db11934](https://github.com/BitGo/BitGoJS/commit/db119349da8385784074b6cbf56879c0899e2471)) | ||
* **statics:** add ofc for near ([4ecde82](https://github.com/BitGo/BitGoJS/commit/4ecde82919019aa8bdacbe7958acb8ec6a5bf50f)) | ||
* **statics:** add ORCA and GARI to SOL token list ([0781281](https://github.com/BitGo/BitGoJS/commit/07812816da2221a7ae00241980b2dba539f3042d)) | ||
* **statics:** add polygon tokens to statics ([82cf43f](https://github.com/BitGo/BitGoJS/commit/82cf43fbe65008a9eb53824c5102399fc46f781b)) | ||
* **statics:** add prime tokens ofc ([308bdab](https://github.com/BitGo/BitGoJS/commit/308bdab2cd9ad0738b3dac173dabaa1cd9b3b74c)) | ||
* **statics:** add solana ([b46780e](https://github.com/BitGo/BitGoJS/commit/b46780ef7188b0f4451632c2fe2c3be86cdef9a7)) | ||
* **statics:** add testnet Polygon as ERC20 ([b0b4160](https://github.com/BitGo/BitGoJS/commit/b0b4160e2669171d65c7f589ce09f920d16e1442)) | ||
* **statics:** add trading tokens ([4ca3558](https://github.com/BitGo/BitGoJS/commit/4ca35584ee1429d510a5bd708e3985ec5e23bda1)) | ||
* **statics:** added offchain tokens DAO, DENT, DEP, DFI ([c0257cf](https://github.com/BitGo/BitGoJS/commit/c0257cf86c5369f0db936acb990b3235b69dafcf)) | ||
* **statics:** adding tokens for trading ([1241a66](https://github.com/BitGo/BitGoJS/commit/1241a66a9cc280399ac8f28a5bb840c52bb0009f)) | ||
* **statics:** adds new tokens ([83ebf4a](https://github.com/BitGo/BitGoJS/commit/83ebf4a65962afed6c071300d80610645f3f0be8)) | ||
* **statics:** adds test polygon as erc20 token for goerli ([ec5ea83](https://github.com/BitGo/BitGoJS/commit/ec5ea83bb1cef8bbf045dd5c2d42bb8e17c90ff8)) | ||
* **statics:** adds test polygon as erc20 token for goerli and staking feature ([629cd1b](https://github.com/BitGo/BitGoJS/commit/629cd1b7d6889f2cda0112f6a7d7e317941ca5a9)) | ||
* **statics:** bg-55026 enable sol staking flag ([f8b21a3](https://github.com/BitGo/BitGoJS/commit/f8b21a36a476750fc11205ffb9913bcb819e3452)) | ||
* **statics:** fix bpt, seth-h and reth-h tokens ([d864033](https://github.com/BitGo/BitGoJS/commit/d864033d745ba81e33efcc64b80520ab13954ca4)) | ||
* **statics:** fix decimals token CHO ([e7bb6fb](https://github.com/BitGo/BitGoJS/commit/e7bb6fba337dfe58354c535c2dc65964248d8cd7)) | ||
* **statics:** fix erc20 token ([27edf13](https://github.com/BitGo/BitGoJS/commit/27edf13dfe66962f61014821a74ed52d0922c3d3)) | ||
* **statics:** fix name husd for trading ([517c70a](https://github.com/BitGo/BitGoJS/commit/517c70a95df437cf81f382eb128f6c98da108725)) | ||
* **statics:** introduce deprecation coin feature ([918b47e](https://github.com/BitGo/BitGoJS/commit/918b47edd351be4f7720fbfeeb2340ffd5f934b4)) | ||
* **statics:** support NAME NFT on tpolygon BG-58416 ([dba1b90](https://github.com/BitGo/BitGoJS/commit/dba1b9087b59336292c51215785ff366bbd262be)) | ||
### Reverts | ||
* Revert "feat(statics): add acala to statics" ([5f54097](https://github.com/BitGo/BitGoJS/commit/5f54097ffab8dd614b5ffb76c2287f2d41681e8a)) | ||
* Revert "chore: export AcaCoin in statics" ([a4d573e](https://github.com/BitGo/BitGoJS/commit/a4d573e816813280cf37b6b984bd2dd782c2e84d)) | ||
### BREAKING CHANGES | ||
* **statics:** Changing underlying asset for GTETH. | ||
the underlying asset for GTETH should | ||
be ETH similar to that of 'TETH'. | ||
TICKET: BG-59194 | ||
* **statics:** adds test polygon as erc20 token for goerli because we are deprecating kovan | ||
BOS-556 | ||
staking feature for matic | ||
* **statics:** updates coin names from `ADA`to `Cardano ADA` | ||
Ticket: BG-56343 | ||
. | ||
* **statics:** modfiy symbol 'seth-h' to 'Staked ETH Harbour' and ofcholo to ocfhot | ||
BG-53319 | ||
* **sdk-coin-eth:** Changes the return for exported method | ||
decodeWalletCreationData() in sdk-coin-eth | ||
BG-53733 | ||
* **statics:** This breaks the provided token asset used for wp in bitgo-ms, | ||
will require to change available solana token asset in wp once this merged. | ||
BG-52918 | ||
* **statics:** updates coin names from `Sol` and `Testnet Sol` to `Solana` and `Testnet Solana`. | ||
TICKET: BG-52979 | ||
# [7.0.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/statics@7.0.0-rc.4...@bitgo/statics@7.0.0) (2022-07-19) | ||
@@ -8,0 +114,0 @@ |
@@ -74,3 +74,7 @@ import { BaseNetwork } from './networks'; | ||
TSS = "tss", | ||
STAKING = "staking" | ||
STAKING = "staking", | ||
/** | ||
* This coin is deprecated | ||
*/ | ||
DEPRECATED = "deprecated" | ||
} | ||
@@ -112,3 +116,2 @@ /** | ||
GTC = "gtc", | ||
GTETH = "gteth", | ||
HBAR = "hbar", | ||
@@ -308,2 +311,3 @@ LTC = "ltc", | ||
EUX = "eux", | ||
EVER = "ever", | ||
EVX = "evx", | ||
@@ -332,2 +336,4 @@ EXE = "exe", | ||
GAMMA = "gamma", | ||
GARI = "gari", | ||
GBPT = "gbpt", | ||
GBPX = "gbpx", | ||
@@ -421,2 +427,3 @@ GDT = "gdt", | ||
LBA = "lba", | ||
LDO = "ldo", | ||
LEND = "lend", | ||
@@ -556,2 +563,3 @@ LEO = "leo", | ||
REPV2 = "repv2", | ||
RETH2 = "reth2", | ||
'RETH-H' = "reth-h", | ||
@@ -576,2 +584,3 @@ RFR = "rfr", | ||
SASHIMI = "sashimi", | ||
SETH2 = "seth2", | ||
SGA = "sga", | ||
@@ -807,2 +816,3 @@ SGDX = "sgdx", | ||
'tpolygon:link' = "tpolygon:link", | ||
'tpolygon:name' = "tpolygon:name", | ||
ERC721 = "erc721", | ||
@@ -809,0 +819,0 @@ ERC1155 = "erc1155", |
@@ -577,2 +577,6 @@ import { CoinFamily } from './base'; | ||
chainId: number; | ||
forwarderFactoryAddress: string; | ||
forwarderImplementationAddress: string; | ||
walletFactoryAddress: string; | ||
walletImplementationAddress: string; | ||
} | ||
@@ -579,0 +583,0 @@ declare class PolygonTestnet extends Testnet implements EthereumNetwork { |
@@ -126,3 +126,4 @@ "use strict"; | ||
const formattedPolygonTokens = coins_1.coins.reduce((acc, coin) => { | ||
if (coin instanceof account_1.PolygonERC20Token) { | ||
if (coin instanceof account_1.PolygonERC20Token || | ||
((coin instanceof account_1.Erc721Coin || coin instanceof account_1.Erc1155Coin) && coin.family === base_1.CoinFamily.POLYGON)) { | ||
acc.push({ | ||
@@ -296,2 +297,2 @@ type: coin.name, | ||
exports.testnetTokens = { ...testnetErc20Tokens, ...testnetStellarTokens }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBWW1CO0FBQ25CLGlDQUFrQztBQUNsQyxtQ0FBZ0M7QUFDaEMseUNBQW1EO0FBQ25ELCtCQUFnQztBQTJIaEMsb0VBQW9FO0FBQ3BFLE1BQU0sb0JBQW9CLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDMUUsSUFBSSxJQUFJLFlBQVksbUJBQVMsRUFBRTtRQUM3QixJQUFJLFFBQWdCLENBQUM7UUFDckIsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDbEIsTUFBTTtZQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDdkIsUUFBUSxHQUFHLE9BQU8sQ0FBQztnQkFDbkIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMs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Q0FBQyxDQUFDO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELFFBQUEsYUFBYSxHQUFHLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFcmMyMENvaW4sXG4gIFN0ZWxsYXJDb2luLFxuICBDZWxvQ29pbixcbiAgRW9zQ29pbixcbiAgQXZheEVSQzIwVG9rZW4sXG4gIEFsZ29Db2luLFxuICBTb2xDb2luLFxuICBIZWRlcmFUb2tlbixcbiAgUG9seWdvbkVSQzIwVG9rZW4sXG4gIEJzY0NvaW4sXG4gIEFkYUNvaW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5pbXBvcnQgeyBDb2luS2luZCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgTmV0d29ya3MsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBPZmNDb2luIH0gZnJvbSAnLi9vZmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VUb2tlbkNvbmZpZyB7XG4gIGNvaW46IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTmV0d29ya0NvbmZpZyBleHRlbmRzIEJhc2VUb2tlbkNvbmZpZyB7XG4gIG5ldHdvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnIGV4dGVuZHMgQmFzZU5ldHdvcmtDb25maWcge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBdmF4Y1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIENlbG9Ub2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBFdGhMaWtlVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRW9zVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRXJjMjBUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBTdGVsbGFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IHR5cGUgU29sVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBZGFUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBwb2xpY3lJZDogc3RyaW5nO1xuICBhc3NldE5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFsZ29Ub2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBhbGlhcz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9mY1Rva2VuQ29uZmlnID0gQmFzZVRva2VuQ29uZmlnICYge1xuICBiYWNraW5nQ29pbjogc3RyaW5nO1xuICBpc0ZpYXQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBIYmFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbnMge1xuICBiaXRjb2luOiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xuICB0ZXN0bmV0OiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xufVxuXG4vLyBHZXQgdGhlIGxpc3Qgb2YgRVJDLTIwIHRva2VucyBmcm9tIHN0YXRpY3MgYW5kIGZvcm1hdCBpdCBwcm9wZXJseVxuY29uc3QgZm9ybWF0dGVkRXJjMjBUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXJjMjBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgRXJjMjBDb2luKSB7XG4gICAgbGV0IGJhc2VDb2luOiBzdHJpbmc7XG4gICAgc3dpdGNoIChjb2luLm5ldHdvcmspIHtcbiAgICAgIGNhc2UgTmV0d29ya3MubWFpbi5ldGhlcmV1bTpcbiAgICAgICAgYmFzZUNvaW4gPSAnZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5ldHdvcmtzLnRlc3Qua292YW46XG4gICAgICAgIGJhc2VDb2luID0gJ3RldGgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTmV0d29ya3MudGVzdC5nb2VybGk6XG4gICAgICAgIGJhc2VDb2luID0gJ2d0ZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVyYzIwIHRva2VuICR7Y29pbi5uYW1lfSBoYXMgYW4gdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGJhc2VDb2luLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZXRoR2FzQ29uZmlncyA9IHtcbiAgbWluaW11bUdhc1ByaWNlOiAxMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDEgR3dlaSlcbiAgZGVmYXVsdEdhc1ByaWNlOiAyMDAwMDAwMDAwMCwgLy8gZGVmYXVsdCBnYXMgcHJpY2UgaWYgZXN0aW1hdGlvbiBmYWlscyAoMjAgR3dlaSlcbiAgbWF4aW11bUdhc1ByaWNlOiAyNTAwMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDI1MDAgR3dlaSlcbiAgZGVmYXVsdEdhc0xpbWl0OiA1MDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgY29udHJhY3Qgc2VuZFxuICBkZWZhdWx0R2FzTGltaXRUb2tlblNlbmQ6IDEwMDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgdG9rZW4gc2VuZFxuICBtaW5pbXVtR2FzTGltaXQ6IDMwMDAwLCAvLyBtaW5pbXVtIGdhcyBsaW1pdCBhIHVzZXIgY2FuIHNldCBmb3IgYSBzZW5kXG4gIG1heGltdW1HYXNMaW1pdDogMjAwMDAwMDAsIC8vIEN1c3RvbWVycyBjYW5ub3Qgc2V0IGdhcyBsaW1pdHMgYmV5b25kIHRoaXMgYW1vdW50XG59O1xuLy8gR2V0IHRoZSBsaXN0IG9mIFN0ZWxsYXIgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgU3RlbGxhckNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd4bG0nIDogJ3R4bG0nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbi8vIEdldCB0aGUgbGlzdCBvZiBPRkMgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRPZmNDb2lucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBPZmNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgT2ZjQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46ICdvZmMnLFxuICAgICAgYmFja2luZ0NvaW46IGNvaW4uYXNzZXQsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgaXNGaWF0OiBjb2luLmtpbmQgPT09IENvaW5LaW5kLkZJQVQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQ2Vsb1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBDZWxvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIENlbG9Db2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnY2VsbycgOiAndGNlbG8nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRCc2NUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBCc2NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYnNjJyA6ICd0YnNjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkRW9zVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEVvc1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFb3NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnZW9zJyA6ICd0ZW9zJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQXZheENUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQXZheGNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhdmF4YycgOiAndGF2YXhjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkUG9seWdvblRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIFBvbHlnb25FUkMyMFRva2VuKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAncG9seWdvbicgOiAndHBvbHlnb24nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRTb2xUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogU29sVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIFNvbENvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdzb2wnIDogJ3Rzb2wnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5BZGRyZXNzOiBjb2luLnRva2VuQWRkcmVzcyxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0dGVkQWxnb1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBBbGdvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFsZ29Db2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYWxnbycgOiAndGFsZ28nLFxuICAgICAgYWxpYXM6IGNvaW4uYWxpYXMsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkSGJhclRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBIYmFyVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEhlZGVyYVRva2VuKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnaGJhcicgOiAndGhiYXInLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEFkYVRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBBZGFUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQWRhQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FkYScgOiAndGFkYScsXG4gICAgICBuZXR3b3JrOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdNYWlubmV0JyA6ICdUZXN0bmV0JyxcbiAgICAgIG5hbWU6IGNvaW4uZnVsbE5hbWUsXG4gICAgICBwb2xpY3lJZDogY29pbi5wb2xpY3lJZCxcbiAgICAgIGFzc2V0TmFtZTogY29pbi5hc3NldE5hbWUsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuZXhwb3J0IGNvbnN0IHRva2VuczogVG9rZW5zID0ge1xuICAvLyBuZXR3b3JrIG5hbWUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzXG4gIGJpdGNvaW46IHtcbiAgICBldGg6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRXJjMjBUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhbGdvOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFsZ29Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIG9mYzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRPZmNDb2lucy5maWx0ZXIoKHRva2VuKSA9PiBjb2lucy5nZXQodG9rZW4udHlwZSkubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUKSxcbiAgICB9LFxuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQ2Vsb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYnNjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEJzY1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgZW9zOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEVvc1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYXZheGM6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQXZheENUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkUG9seWdvblRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgc29sOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFNvbFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgaGJhcjoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRIYmFyVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQWRhVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgfSxcbiAgLy8gbmV0d29yayBuYW1lIGZvciB0ZXN0IGVudmlyb25tZW50c1xuICB0ZXN0bmV0OiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEVyYzIwVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICB4bG06IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU3RlbGxhclRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYWxnbzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBbGdvVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkT2ZjQ29pbnMuZmlsdGVyKCh0b2tlbikgPT4gY29pbnMuZ2V0KHRva2VuLnR5cGUpLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuVEVTVE5FVCksXG4gICAgfSxcbiAgICBjZWxvOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZENlbG9Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGJzYzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRCc2NUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGVvczoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRFb3NUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEF2YXhDVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBwb2x5Z29uOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFBvbHlnb25Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTb2xUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkSGJhclRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFkYVRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIFZlcmlmeSBtYWlubmV0IG9yIHRlc3RuZXQgdG9rZW5zXG4gKiBAcGFyYW0gdG9rZW5zXG4gKi9cbmNvbnN0IHZlcmlmeVRva2VucyA9IGZ1bmN0aW9uICh0b2tlbnM6IEJhc2VUb2tlbkNvbmZpZ1tdKSB7XG4gIGNvbnN0IHZlcmlmaWVkVG9rZW5zOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICB0b2tlbnMuZm9yRWFjaCgodG9rZW4pID0+IHtcbiAgICBpZiAodmVyaWZpZWRUb2tlbnNbdG9rZW4udHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndG9rZW4gOiAnICsgdG9rZW4udHlwZSArICcgZHVwbGljYXRlZC4nKTtcbiAgICB9XG4gICAgdmVyaWZpZWRUb2tlbnNbdG9rZW4udHlwZV0gPSB0cnVlO1xuXG4gICAgaWYgKFxuICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzICYmXG4gICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MgIT09XG4gICAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcy50b0xvY2FsZUxvd2VyQ2FzZSgpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICd0b2tlbiBjb250cmFjdDogJyArIHRva2VuLnR5cGUgKyAnIGlzIG5vdCBhbGwgbG93ZXIgY2FzZTogJyArICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKVxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB2ZXJpZmllZFRva2Vucztcbn07XG5cbmNvbnN0IG1haW5uZXRFcmMyMFRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMuYml0Y29pbi5ldGgudG9rZW5zKTtcbmNvbnN0IG1haW5uZXRTdGVsbGFyVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy5iaXRjb2luLnhsbS50b2tlbnMpO1xuZXhwb3J0IGNvbnN0IG1haW5uZXRUb2tlbnMgPSB7IC4uLm1haW5uZXRFcmMyMFRva2VucywgLi4ubWFpbm5ldFN0ZWxsYXJUb2tlbnMgfTtcblxuY29uc3QgdGVzdG5ldEVyYzIwVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy50ZXN0bmV0LmV0aC50b2tlbnMpO1xuY29uc3QgdGVzdG5ldFN0ZWxsYXJUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLnRlc3RuZXQueGxtLnRva2Vucyk7XG5leHBvcnQgY29uc3QgdGVzdG5ldFRva2VucyA9IHsgLi4udGVzdG5ldEVyYzIwVG9rZW5zLCAuLi50ZXN0bmV0U3RlbGxhclRva2VucyB9O1xuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5Db25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW5Db25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBY21CO0FBQ25CLGlDQUE4QztBQUM5QyxtQ0FBZ0M7QUFDaEMseUNBQW1EO0FBQ25ELCtCQUFnQztBQTJIaEMsb0VBQW9FO0FBQ3BFLE1BQU0sb0JBQW9CLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDMUUsSUFBSSxJQUFJLFlBQVksbUJBQVMsRUFBRTtRQUM3QixJQUFJLFFBQWdCLENBQUM7UUFDckIsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDekIsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDdEIsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDbEIsTUFBTTtZQUNSLEtBQUssbUJBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDdkIsUUFBUSxHQUFHLE9BQU8sQ0FBQztnQkFDbkIsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSw2QkFBNkIsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHNCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDMUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMs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RyxrQkFBa0IsRUFBRSxHQUFHLG9CQUFvQixFQUFFLENBQUM7QUFFaEYsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsY0FBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkUsTUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUMsY0FBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEQsUUFBQSxhQUFhLEdBQUcsRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVyYzIwQ29pbixcbiAgU3RlbGxhckNvaW4sXG4gIENlbG9Db2luLFxuICBFb3NDb2luLFxuICBBdmF4RVJDMjBUb2tlbixcbiAgQWxnb0NvaW4sXG4gIFNvbENvaW4sXG4gIEhlZGVyYVRva2VuLFxuICBQb2x5Z29uRVJDMjBUb2tlbixcbiAgQnNjQ29pbixcbiAgQWRhQ29pbixcbiAgRXJjNzIxQ29pbixcbiAgRXJjMTE1NUNvaW4sXG59IGZyb20gJy4vYWNjb3VudCc7XG5pbXBvcnQgeyBDb2luRmFtaWx5LCBDb2luS2luZCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJy4vY29pbnMnO1xuaW1wb3J0IHsgTmV0d29ya3MsIE5ldHdvcmtUeXBlIH0gZnJvbSAnLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBPZmNDb2luIH0gZnJvbSAnLi9vZmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VUb2tlbkNvbmZpZyB7XG4gIGNvaW46IHN0cmluZztcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTmV0d29ya0NvbmZpZyBleHRlbmRzIEJhc2VUb2tlbkNvbmZpZyB7XG4gIG5ldHdvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnIGV4dGVuZHMgQmFzZU5ldHdvcmtDb25maWcge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBdmF4Y1Rva2VuQ29uZmlnID0gQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZztcbmV4cG9ydCB0eXBlIENlbG9Ub2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBFdGhMaWtlVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRW9zVG9rZW5Db25maWcgPSBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnO1xuZXhwb3J0IHR5cGUgRXJjMjBUb2tlbkNvbmZpZyA9IEJhc2VDb250cmFjdEFkZHJlc3NDb25maWc7XG5leHBvcnQgdHlwZSBTdGVsbGFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IHR5cGUgU29sVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZyAmIHtcbiAgdG9rZW5BZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBZGFUb2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBwb2xpY3lJZDogc3RyaW5nO1xuICBhc3NldE5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFsZ29Ub2tlbkNvbmZpZyA9IEJhc2VOZXR3b3JrQ29uZmlnICYge1xuICBhbGlhcz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE9mY1Rva2VuQ29uZmlnID0gQmFzZVRva2VuQ29uZmlnICYge1xuICBiYWNraW5nQ29pbjogc3RyaW5nO1xuICBpc0ZpYXQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBIYmFyVG9rZW5Db25maWcgPSBCYXNlTmV0d29ya0NvbmZpZztcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbnMge1xuICBiaXRjb2luOiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xuICB0ZXN0bmV0OiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IEVyYzIwVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHhsbToge1xuICAgICAgdG9rZW5zOiBTdGVsbGFyVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogQWxnb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogT2ZjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGNlbG86IHtcbiAgICAgIHRva2VuczogQ2Vsb1Rva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogRW9zVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IEF2YXhjVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIHBvbHlnb246IHtcbiAgICAgIHRva2VuczogRXRoTGlrZVRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogU29sVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogSGJhclRva2VuQ29uZmlnW107XG4gICAgfTtcbiAgICBhZGE6IHtcbiAgICAgIHRva2VuczogQWRhVG9rZW5Db25maWdbXTtcbiAgICB9O1xuICB9O1xufVxuXG4vLyBHZXQgdGhlIGxpc3Qgb2YgRVJDLTIwIHRva2VucyBmcm9tIHN0YXRpY3MgYW5kIGZvcm1hdCBpdCBwcm9wZXJseVxuY29uc3QgZm9ybWF0dGVkRXJjMjBUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXJjMjBUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgRXJjMjBDb2luKSB7XG4gICAgbGV0IGJhc2VDb2luOiBzdHJpbmc7XG4gICAgc3dpdGNoIChjb2luLm5ldHdvcmspIHtcbiAgICAgIGNhc2UgTmV0d29ya3MubWFpbi5ldGhlcmV1bTpcbiAgICAgICAgYmFzZUNvaW4gPSAnZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5ldHdvcmtzLnRlc3Qua292YW46XG4gICAgICAgIGJhc2VDb2luID0gJ3RldGgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTmV0d29ya3MudGVzdC5nb2VybGk6XG4gICAgICAgIGJhc2VDb2luID0gJ2d0ZXRoJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVyYzIwIHRva2VuICR7Y29pbi5uYW1lfSBoYXMgYW4gdW5zdXBwb3J0ZWQgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGJhc2VDb2luLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5leHBvcnQgY29uc3QgZXRoR2FzQ29uZmlncyA9IHtcbiAgbWluaW11bUdhc1ByaWNlOiAxMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDEgR3dlaSlcbiAgZGVmYXVsdEdhc1ByaWNlOiAyMDAwMDAwMDAwMCwgLy8gZGVmYXVsdCBnYXMgcHJpY2UgaWYgZXN0aW1hdGlvbiBmYWlscyAoMjAgR3dlaSlcbiAgbWF4aW11bUdhc1ByaWNlOiAyNTAwMDAwMDAwMDAwLCAvLyBtaW5pbXVtIGdhcyBwcmljZSBhIHVzZXIgY2FuIHByb3ZpZGUgKDI1MDAgR3dlaSlcbiAgZGVmYXVsdEdhc0xpbWl0OiA1MDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgY29udHJhY3Qgc2VuZFxuICBkZWZhdWx0R2FzTGltaXRUb2tlblNlbmQ6IDEwMDAwMDAsIC8vIERlZmF1bHQgZ2FzIGxpbWl0IHdlIHNldCBmb3IgdG9rZW4gc2VuZFxuICBtaW5pbXVtR2FzTGltaXQ6IDMwMDAwLCAvLyBtaW5pbXVtIGdhcyBsaW1pdCBhIHVzZXIgY2FuIHNldCBmb3IgYSBzZW5kXG4gIG1heGltdW1HYXNMaW1pdDogMjAwMDAwMDAsIC8vIEN1c3RvbWVycyBjYW5ub3Qgc2V0IGdhcyBsaW1pdHMgYmV5b25kIHRoaXMgYW1vdW50XG59O1xuLy8gR2V0IHRoZSBsaXN0IG9mIFN0ZWxsYXIgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRTdGVsbGFyVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFN0ZWxsYXJUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgU3RlbGxhckNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICd4bG0nIDogJ3R4bG0nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbi8vIEdldCB0aGUgbGlzdCBvZiBPRkMgdG9rZW5zIGZyb20gc3RhdGljcyBhbmQgZm9ybWF0IGl0IHByb3Blcmx5XG5jb25zdCBmb3JtYXR0ZWRPZmNDb2lucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBPZmNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgT2ZjQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46ICdvZmMnLFxuICAgICAgYmFja2luZ0NvaW46IGNvaW4uYXNzZXQsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgICAgaXNGaWF0OiBjb2luLmtpbmQgPT09IENvaW5LaW5kLkZJQVQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQ2Vsb1Rva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBDZWxvVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIENlbG9Db2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnY2VsbycgOiAndGNlbG8nLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGNvaW4uY29udHJhY3RBZGRyZXNzLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRCc2NUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogRXRoTGlrZVRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBCc2NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnYnNjJyA6ICd0YnNjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkRW9zVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IEVvc1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBFb3NDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnZW9zJyA6ICd0ZW9zJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkQXZheENUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQXZheGNUb2tlbkNvbmZpZ1tdLCBjb2luKSA9PiB7XG4gIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhdmF4YycgOiAndGF2YXhjJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkUG9seWdvblRva2VucyA9IGNvaW5zLnJlZHVjZSgoYWNjOiBFdGhMaWtlVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoXG4gICAgY29pbiBpbnN0YW5jZW9mIFBvbHlnb25FUkMyMFRva2VuIHx8XG4gICAgKChjb2luIGluc3RhbmNlb2YgRXJjNzIxQ29pbiB8fCBjb2luIGluc3RhbmNlb2YgRXJjMTE1NUNvaW4pICYmIGNvaW4uZmFtaWx5ID09PSBDb2luRmFtaWx5LlBPTFlHT04pXG4gICkge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ3BvbHlnb24nIDogJ3Rwb2x5Z29uJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBjb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCksXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuY29uc3QgZm9ybWF0dGVkU29sVG9rZW5zID0gY29pbnMucmVkdWNlKChhY2M6IFNvbFRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBTb2xDb2luKSB7XG4gICAgYWNjLnB1c2goe1xuICAgICAgdHlwZTogY29pbi5uYW1lLFxuICAgICAgY29pbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnc29sJyA6ICd0c29sJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIHRva2VuQWRkcmVzczogY29pbi50b2tlbkFkZHJlc3MsXG4gICAgICBkZWNpbWFsUGxhY2VzOiBjb2luLmRlY2ltYWxQbGFjZXMsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFjYztcbn0sIFtdKTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdHRlZEFsZ29Ub2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQWxnb1Rva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBBbGdvQ29pbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2FsZ28nIDogJ3RhbGdvJyxcbiAgICAgIGFsaWFzOiBjb2luLmFsaWFzLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmNvbnN0IGZvcm1hdHRlZEhiYXJUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogSGJhclRva2VuQ29uZmlnW10sIGNvaW4pID0+IHtcbiAgaWYgKGNvaW4gaW5zdGFuY2VvZiBIZWRlcmFUb2tlbikge1xuICAgIGFjYy5wdXNoKHtcbiAgICAgIHR5cGU6IGNvaW4ubmFtZSxcbiAgICAgIGNvaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ2hiYXInIDogJ3RoYmFyJyxcbiAgICAgIG5ldHdvcms6IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ01haW5uZXQnIDogJ1Rlc3RuZXQnLFxuICAgICAgbmFtZTogY29pbi5mdWxsTmFtZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IGNvaW4uZGVjaW1hbFBsYWNlcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYWNjO1xufSwgW10pO1xuXG5jb25zdCBmb3JtYXR0ZWRBZGFUb2tlbnMgPSBjb2lucy5yZWR1Y2UoKGFjYzogQWRhVG9rZW5Db25maWdbXSwgY29pbikgPT4ge1xuICBpZiAoY29pbiBpbnN0YW5jZW9mIEFkYUNvaW4pIHtcbiAgICBhY2MucHVzaCh7XG4gICAgICB0eXBlOiBjb2luLm5hbWUsXG4gICAgICBjb2luOiBjb2luLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/ICdhZGEnIDogJ3RhZGEnLFxuICAgICAgbmV0d29yazogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnTWFpbm5ldCcgOiAnVGVzdG5ldCcsXG4gICAgICBuYW1lOiBjb2luLmZ1bGxOYW1lLFxuICAgICAgcG9saWN5SWQ6IGNvaW4ucG9saWN5SWQsXG4gICAgICBhc3NldE5hbWU6IGNvaW4uYXNzZXROYW1lLFxuICAgICAgZGVjaW1hbFBsYWNlczogY29pbi5kZWNpbWFsUGxhY2VzLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbmV4cG9ydCBjb25zdCB0b2tlbnM6IFRva2VucyA9IHtcbiAgLy8gbmV0d29yayBuYW1lIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50c1xuICBiaXRjb2luOiB7XG4gICAgZXRoOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEVyYzIwVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICB4bG06IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU3RlbGxhclRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYWxnbzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBbGdvVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBvZmM6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkT2ZjQ29pbnMuZmlsdGVyKCh0b2tlbikgPT4gY29pbnMuZ2V0KHRva2VuLnR5cGUpLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCksXG4gICAgfSxcbiAgICBjZWxvOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZENlbG9Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGJzYzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRCc2NUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGVvczoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRFb3NUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGF2YXhjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEF2YXhDVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdNYWlubmV0JyksXG4gICAgfSxcbiAgICBwb2x5Z29uOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFBvbHlnb25Ub2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIHNvbDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRTb2xUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ01haW5uZXQnKSxcbiAgICB9LFxuICAgIGhiYXI6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkSGJhclRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gICAgYWRhOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEFkYVRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnTWFpbm5ldCcpLFxuICAgIH0sXG4gIH0sXG4gIC8vIG5ldHdvcmsgbmFtZSBmb3IgdGVzdCBlbnZpcm9ubWVudHNcbiAgdGVzdG5ldDoge1xuICAgIGV0aDoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRFcmMyMFRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgeGxtOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZFN0ZWxsYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGFsZ286IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQWxnb1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgb2ZjOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZE9mY0NvaW5zLmZpbHRlcigodG9rZW4pID0+IGNvaW5zLmdldCh0b2tlbi50eXBlKS5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLlRFU1RORVQpLFxuICAgIH0sXG4gICAgY2Vsbzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRDZWxvVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBic2M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkQnNjVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBlb3M6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkRW9zVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBhdmF4Yzoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBdmF4Q1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5uZXR3b3JrID09PSAnVGVzdG5ldCcpLFxuICAgIH0sXG4gICAgcG9seWdvbjoge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRQb2x5Z29uVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBzb2w6IHtcbiAgICAgIHRva2VuczogZm9ybWF0dGVkU29sVG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLm5ldHdvcmsgPT09ICdUZXN0bmV0JyksXG4gICAgfSxcbiAgICBoYmFyOiB7XG4gICAgICB0b2tlbnM6IGZvcm1hdHRlZEhiYXJUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICAgIGFkYToge1xuICAgICAgdG9rZW5zOiBmb3JtYXR0ZWRBZGFUb2tlbnMuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ubmV0d29yayA9PT0gJ1Rlc3RuZXQnKSxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBWZXJpZnkgbWFpbm5ldCBvciB0ZXN0bmV0IHRva2Vuc1xuICogQHBhcmFtIHRva2Vuc1xuICovXG5jb25zdCB2ZXJpZnlUb2tlbnMgPSBmdW5jdGlvbiAodG9rZW5zOiBCYXNlVG9rZW5Db25maWdbXSkge1xuICBjb25zdCB2ZXJpZmllZFRva2VuczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgdG9rZW5zLmZvckVhY2goKHRva2VuKSA9PiB7XG4gICAgaWYgKHZlcmlmaWVkVG9rZW5zW3Rva2VuLnR5cGVdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rva2VuIDogJyArIHRva2VuLnR5cGUgKyAnIGR1cGxpY2F0ZWQuJyk7XG4gICAgfVxuICAgIHZlcmlmaWVkVG9rZW5zW3Rva2VuLnR5cGVdID0gdHJ1ZTtcblxuICAgIGlmIChcbiAgICAgICh0b2tlbiBhcyBCYXNlQ29udHJhY3RBZGRyZXNzQ29uZmlnKS50b2tlbkNvbnRyYWN0QWRkcmVzcyAmJlxuICAgICAgKHRva2VuIGFzIEJhc2VDb250cmFjdEFkZHJlc3NDb25maWcpLnRva2VuQ29udHJhY3RBZGRyZXNzICE9PVxuICAgICAgICAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZykudG9rZW5Db250cmFjdEFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAndG9rZW4gY29udHJhY3Q6ICcgKyB0b2tlbi50eXBlICsgJyBpcyBub3QgYWxsIGxvd2VyIGNhc2U6ICcgKyAodG9rZW4gYXMgQmFzZUNvbnRyYWN0QWRkcmVzc0NvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmVyaWZpZWRUb2tlbnM7XG59O1xuXG5jb25zdCBtYWlubmV0RXJjMjBUb2tlbnMgPSB2ZXJpZnlUb2tlbnModG9rZW5zLmJpdGNvaW4uZXRoLnRva2Vucyk7XG5jb25zdCBtYWlubmV0U3RlbGxhclRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMuYml0Y29pbi54bG0udG9rZW5zKTtcbmV4cG9ydCBjb25zdCBtYWlubmV0VG9rZW5zID0geyAuLi5tYWlubmV0RXJjMjBUb2tlbnMsIC4uLm1haW5uZXRTdGVsbGFyVG9rZW5zIH07XG5cbmNvbnN0IHRlc3RuZXRFcmMyMFRva2VucyA9IHZlcmlmeVRva2Vucyh0b2tlbnMudGVzdG5ldC5ldGgudG9rZW5zKTtcbmNvbnN0IHRlc3RuZXRTdGVsbGFyVG9rZW5zID0gdmVyaWZ5VG9rZW5zKHRva2Vucy50ZXN0bmV0LnhsbS50b2tlbnMpO1xuZXhwb3J0IGNvbnN0IHRlc3RuZXRUb2tlbnMgPSB7IC4uLnRlc3RuZXRFcmMyMFRva2VucywgLi4udGVzdG5ldFN0ZWxsYXJUb2tlbnMgfTtcbiJdfQ== |
{ | ||
"name": "@bitgo/statics", | ||
"version": "8.0.0", | ||
"version": "8.2.0", | ||
"description": "dependency-free static configuration for the bitgo platform", | ||
@@ -40,3 +40,3 @@ "main": "./dist/src/index.js", | ||
}, | ||
"gitHead": "973b70186d9ad51404b2852a83fac25a28ac692e" | ||
"gitHead": "67defd215541542539a60cc2ba747bf2fc53889c" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5668359
55
19460