@bitgo/sdk-core 38.15.0 → 38.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +7 -1
  2. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  3. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  4. package/dist/src/bitgo/defi/defiVault.d.ts +7 -7
  5. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -1
  6. package/dist/src/bitgo/defi/defiVault.js +10 -10
  7. package/dist/src/bitgo/defi/iDefiVault.d.ts +7 -2
  8. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -1
  9. package/dist/src/bitgo/defi/iDefiVault.js +1 -1
  10. package/dist/src/bitgo/environments.js +3 -3
  11. package/dist/src/bitgo/keychain/iKeychains.d.ts +4 -0
  12. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  13. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  14. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  15. package/dist/src/bitgo/keychain/keychains.js +9 -6
  16. package/dist/src/bitgo/safe/iSafe.d.ts +5 -2
  17. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -1
  18. package/dist/src/bitgo/safe/iSafe.js +1 -1
  19. package/dist/src/bitgo/safe/safe.d.ts +14 -7
  20. package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
  21. package/dist/src/bitgo/safe/safe.js +104 -28
  22. package/dist/src/bitgo/staking/iStakingWallet.d.ts +13 -5
  23. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  24. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  25. package/dist/src/bitgo/staking/stakingWallet.d.ts +2 -2
  26. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  27. package/dist/src/bitgo/staking/stakingWallet.js +14 -1
  28. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +4 -1
  29. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  30. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +18 -6
  31. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +9 -1
  32. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -1
  33. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +24 -3
  34. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +50 -1
  35. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -1
  36. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +154 -4
  37. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +3 -0
  38. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -1
  39. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +1 -1
  40. package/dist/src/bitgo/wallet/BuildParams.d.ts +8 -0
  41. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  42. package/dist/src/bitgo/wallet/BuildParams.js +6 -1
  43. package/dist/src/bitgo/wallet/iWallet.d.ts +5 -1
  44. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  45. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  46. package/dist/test/unit/bitgo/defi/defiVault.js +102 -1
  47. package/dist/test/unit/bitgo/keychain/keychains.js +26 -1
  48. package/dist/test/unit/bitgo/safe/safe.js +50 -19
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +5 -5
@@ -10,7 +10,7 @@ import { EcdsaMPCv2Utils, EcdsaUtils } from '../utils/tss/ecdsa';
10
10
  import EddsaUtils, { EddsaMPCv2Utils, PrebuildTransactionWithIntentOptions, TxRequest } from '../utils/tss/eddsa';
11
11
  import { RedpallasMPCv2Utils } from '../utils/tss/redpallas';
12
12
  import { CreateAddressFormat, CustomSigningFunction, IWallet, IWallets, Memo, Wallet, WalletData } from '../wallet';
13
- import { TokenEnablement } from '@bitgo/public-types';
13
+ import { TokenEnablement, unifiedAddressPreference } from '@bitgo/public-types';
14
14
  import { Hash } from 'crypto';
15
15
  import { TransactionType } from '../../account-lib';
16
16
  import { IInscriptionBuilder } from '../inscriptionBuilder';
@@ -319,7 +319,13 @@ export interface FeeEstimateOptions {
319
319
  amount?: string;
320
320
  type?: keyof typeof TransactionType;
321
321
  }
322
+ /** How a Zcash Unified Address recipient should be resolved. */
323
+ export type UnifiedRecipientPreference = unifiedAddressPreference;
322
324
  export interface ExtraPrebuildParamsOptions {
325
+ /**
326
+ * how to resolve a Unified Address recipient (`'shielded'` or `'transparent'`).
327
+ */
328
+ unifiedRecipientPreference?: UnifiedRecipientPreference;
323
329
  [index: string]: unknown;
324
330
  }
325
331
  export interface PresignTransactionOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,4 @@ var SignTypedDataVersion;
18
18
  SignTypedDataVersion["V3"] = "V3";
19
19
  SignTypedDataVersion["V4"] = "V4";
20
20
  })(SignTypedDataVersion || (exports.SignTypedDataVersion = SignTypedDataVersion = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUJhc2VDb2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Jhc2VDb2luL2lCYXNlQ29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2TUEsOERBU0M7QUFqTVksUUFBQSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7Q0FDRixDQUFDO0FBcUxYLFNBQWdCLHlCQUF5QixDQUN2QyxNQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsQ0FDUCxXQUFXLElBQUksTUFBTTtRQUNyQixPQUFPLElBQUksTUFBTTtRQUNqQixTQUFTLElBQUksTUFBTTtRQUNuQixNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQzlFLENBQUM7QUFDSixDQUFDO0FBbVFELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixpQ0FBUyxDQUFBO0lBQ1QsaUNBQVMsQ0FBQTtJQUNULGlDQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9rZW5Db25maWcsIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IElFbnRlcnByaXNlcyB9IGZyb20gJy4uL2VudGVycHJpc2UnO1xuaW1wb3J0IHsgQXBpS2V5U2hhcmUsIElLZXljaGFpbnMsIEtleWNoYWluIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgSU1hcmtldHMgfSBmcm9tICcuLi9tYXJrZXQnO1xuaW1wb3J0IHsgSVBlbmRpbmdBcHByb3ZhbHMgfSBmcm9tICcuLi9wZW5kaW5nQXBwcm92YWwnO1xuaW1wb3J0IHsgSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMgfSBmcm9tICcuLi9yZWNvdmVyeSc7XG5pbXBvcnQgeyBFY2RzYU1QQ3YyVXRpbHMsIEVjZHNhVXRpbHMgfSBmcm9tICcuLi91dGlscy90c3MvZWNkc2EnO1xuaW1wb3J0IEVkZHNhVXRpbHMsIHsgRWRkc2FNUEN2MlV0aWxzLCBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsIFR4UmVxdWVzdCB9IGZyb20gJy4uL3V0aWxzL3Rzcy9lZGRzYSc7XG5pbXBvcnQgeyBSZWRwYWxsYXNNUEN2MlV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvdHNzL3JlZHBhbGxhcyc7XG5pbXBvcnQgeyBDcmVhdGVBZGRyZXNzRm9ybWF0LCBDdXN0b21TaWduaW5nRnVuY3Rpb24sIElXYWxsZXQsIElXYWxsZXRzLCBNZW1vLCBXYWxsZXQsIFdhbGxldERhdGEgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5pbXBvcnQgeyBUb2tlbkVuYWJsZW1lbnQgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IEhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vYWNjb3VudC1saWInO1xuaW1wb3J0IHsgSUluc2NyaXB0aW9uQnVpbGRlciB9IGZyb20gJy4uL2luc2NyaXB0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlLCBNUENUeCwgUG9wdWxhdGVkSW50ZW50LCBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zLCBUb2tlblR5cGUsIFRyaXBsZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB0eXBlIHsgU2lnbmFibGVUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3V0aWxzL3Rzcy9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgSVdlYmhvb2tzIH0gZnJvbSAnLi4vd2ViaG9vay9pV2ViaG9va3MnO1xuXG5leHBvcnQgY29uc3QgbXVsdGlzaWdUeXBlcyA9IHtcbiAgb25jaGFpbjogJ29uY2hhaW4nLFxuICB0c3M6ICd0c3MnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTXVsdGlzaWdUeXBlID0ga2V5b2YgdHlwZW9mIG11bHRpc2lnVHlwZXM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0IGV4dGVuZHMgSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICAvLyBvZiBmb3JtIGNvaW46dG9rZW5cbiAgY29pbk5hbWU/OiBzdHJpbmc7XG4gIGlzUGF5R28/OiBib29sZWFuO1xuICB2YWx1ZT86IG51bWJlcjtcbiAgd2FsbGV0Pzogc3RyaW5nOyAvLyBUeXBlcy5PYmplY3RJZDtcbiAgd2FsbGV0VjE/OiBzdHJpbmc7IC8vIFR5cGVzLk9iamVjdElkO1xuICBiYXNlQWRkcmVzcz86IHN0cmluZztcbiAgZW50ZXJwcmlzZT86IHN0cmluZzsgLy8gVHlwZXMuT2JqZWN0SWQ7XG4gIHZhbHVlU3RyaW5nOiBzdHJpbmc7XG4gIGRhdGE/OiBzdHJpbmc7XG4gIC8vIFwiY2hhbmdlXCIgaXMgYSB1dHhvLXNwZWNpZmljIGNvbmNlcHQgYW5kIHRoaXMgcHJvcGVydHkgc2hvdWxkXG4gIC8vIGJlIHJlbW92ZWQgb25jZSBpdCBpdCdzIHVzYWdlIGlzIHJlZmFjdG9yZWQgb3V0IG9mIGJhc2UgY29pbiBsb2dpY1xuICBjaGFuZ2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBJbnB1dCA9IHtcbiAgZGVyaXZhdGlvbkluZGV4PzogbnVtYmVyO1xuICB2YWx1ZTogbnVtYmVyO1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICAvLyB0aGUgcHJvcGVydGllcyBiZWxvdyBhcmUgdXR4by1yZWxhdGVkIGJ1dCBhcmUgY3VycmVudGx5IHVzZWQgaW4gYWJzdHJhY3RCYXNlQ29pblxuICAvLyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIHRoZWlyIHVzYWdlIGlzIHJlbW92ZWQgZnJvbSB0aGUgYmFzZSBjb2luIGNsYXNzXG4gIGNoYWluPzogbnVtYmVyO1xuICBpbmRleD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFVuc2lnbmVkVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG4gIC8vIHRyYW5zYWN0aW9uIGZlZXNcbiAgZmVlSW5mbz86IHtcbiAgICBmZWU6IG51bWJlciB8IEJpZ051bWJlcjtcbiAgICBmZWVTdHJpbmc6IHN0cmluZztcbiAgfTtcbiAgLy8gZGVyaXZhdGlvbiBwYXRoIG9mIHRoZSBzaWduZXJcbiAgZGVyaXZhdGlvblBhdGg6IHN0cmluZztcbiAgY29pblNwZWNpZmljPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGVudHJ5VmFsdWVzOiBhbnk7XG4gIHBhcnNlZFR4OiBVbnNpZ25lZFBhcnNlZFRyYW5zYWN0aW9uO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYW5hdGlvblJlc3VsdCBleHRlbmRzIElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgc2VxdWVuY2VJZDogbnVtYmVyO1xuICB0eXBlPzogc3RyaW5nO1xuICBvdXRwdXRzOiBPdXRwdXRbXTtcbiAgYmxvY2tOdW1iZXI6IG51bWJlciB8IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICB0b2tlbkFkZHJlc3M/OiBzdHJpbmc7XG4gIHByb2dyYW1JZD86IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdG9rZW4gZW5hYmxlbWVudCAoZS5nLiwgY3JlYXRpb24gb2YgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUb2tlbkVuYWJsZW1lbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7IC8vIEFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCBhZGRyZXNzXG4gIHRva2VuTmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB0b2tlbiBiZWluZyBlbmFibGVkXG4gIHRva2VuQWRkcmVzcz86IHN0cmluZzsgLy8gQ29udHJhY3QgYWRkcmVzcyBvZiB0aGUgdG9rZW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25GZWU8VEFtb3VudCA9IHN0cmluZz4ge1xuICBmZWU6IFRBbW91bnQ7XG4gIGZlZVJhdGU/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEF1ZGl0S2V5UGFyYW1zID0geyBwcnY/OiBzdHJpbmc7IGVuY3J5cHRlZFBydj86IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZyB9ICYgKFxuICB8IHsgcHJ2OiBzdHJpbmcgfVxuICB8IHsgZW5jcnlwdGVkUHJ2OiBzdHJpbmc7IHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyB9XG4pICZcbiAgKFxuICAgIHwge1xuICAgICAgICBtdWx0aVNpZ1R5cGU6ICd0c3MnO1xuICAgICAgICBwdWJsaWNLZXk6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgbXVsdGlTaWdUeXBlPzogJ29uY2hhaW4nO1xuICAgICAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCB0eXBlIEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zID0gT21pdDxBdWRpdEtleVBhcmFtcywgJ2VuY3J5cHRlZFBydicgfCAnd2FsbGV0UGFzc3BocmFzZSc+ICYgeyBwcnY6IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPFRGZWUgPSBhbnksIFRBbW91bnQgPSBhbnk+IHtcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGRpc3BsYXlPcmRlcj86IHN0cmluZ1tdO1xuICBpZDogc3RyaW5nO1xuICAvKiogTk9URTogRXh0ZXJuYWwgcmVjaXBpZW50cyAqL1xuICBvdXRwdXRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgLyoqIE5PVEU6IEV4dGVybmFsIGFtb3VudCAqL1xuICBvdXRwdXRBbW91bnQ6IFRBbW91bnQ7XG4gIGNoYW5nZU91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICBjaGFuZ2VBbW91bnQ6IFRBbW91bnQ7XG4gIGZlZTogVEZlZTtcbiAgcHJveHk/OiBzdHJpbmc7XG4gIHByb2R1Y2Vycz86IHN0cmluZ1tdO1xuICAvKiogTk9URTogVG9rZW5zIGJlaW5nIGVuYWJsZWQgZm9yIHRoZSB3YWxsZXQgKi9cbiAgdG9rZW5FbmFibGVtZW50cz86IElUb2tlbkVuYWJsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyIHtcbiAgcHViPzogc3RyaW5nO1xuICBwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmxzS2V5UGFpciBleHRlbmRzIEtleVBhaXIge1xuICBzZWNyZXRTaGFyZXM/OiBzdHJpbmdbXTtcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICBmb3JtYXQ/OiBDcmVhdGVBZGRyZXNzRm9ybWF0O1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFkZHJlc3NUeXBlPzogc3RyaW5nO1xuICBrZXljaGFpbnM/OiB7XG4gICAgcHViOiBzdHJpbmc7XG4gIH1bXTtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYz86IEFkZHJlc3NDb2luU3BlY2lmaWM7XG4gIGltcGxpZWRGb3J3YXJkZXJWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogT3B0aW9uYWwgc2VlZCB2YWx1ZSBmcm9tIHVzZXIga2V5Y2hhaW4ncyBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkIGZpZWxkLlxuICAgKiBGb3IgU01DIChTZWxmLU1hbmFnZWQgQ3VzdG9kaWFsKSBUU1Mgd2FsbGV0cywgdGhpcyBpcyB1c2VkIHRvIGNvbXB1dGUgdGhlIGRlcml2YXRpb24gcHJlZml4LlxuICAgKi9cbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZD86IHN0cmluZztcbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIE1QQyBzaWduaW5nIHByb3RvY29sIHZlcnNpb24gb2YgdGhlIHdhbGxldCAoZS5nLiAnTVBDdjInKS5cbiAgICogVXNlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIE1QQ3YxIGFuZCBNUEN2MiB3YWxsZXRzLlxuICAgKi9cbiAgbXVsdGlzaWdUeXBlVmVyc2lvbj86ICdNUEN2Mic7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdmVyaWZ5aW5nIGlmIGFuIGFkZHJlc3MgYmVsb25ncyB0byBhIFRTUy9NUEMgd2FsbGV0LlxuICogVXNlZCBmb3IgRWREU0EtYmFzZWQgTVBDIGNvaW5zIChTT0wsIERPVCwgU1VJLCBUT04sIElPVEEsIE5FQVIsIGV0Yy4pXG4gKiB0byBjcnlwdG9ncmFwaGljYWxseSB2ZXJpZnkgYWRkcmVzcyBkZXJpdmF0aW9uIHdpdGhvdXQgdHJ1c3RpbmcgdGhlIHBsYXRmb3JtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zIHtcbiAgLyoqIFRoZSBhZGRyZXNzIHRvIHZlcmlmeSAqL1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBLZXljaGFpbnMgY29udGFpbmluZyB0aGUgY29tbW9uS2V5Y2hhaW4gZm9yIEhEIGRlcml2YXRpb24uXG4gICAqIEZvciBNUEMgd2FsbGV0cywgdGhlIGNvbW1vbktleWNoYWluIChjb21iaW5lZCBwdWJsaWMga2V5IGZyb20gTVBDIGtleSBnZW5lcmF0aW9uKVxuICAgKiBzaG91bGQgYmUgaWRlbnRpY2FsIGFjcm9zcyBhbGwga2V5Y2hhaW5zICh1c2VyLCBiYWNrdXAsIGJpdGdvKS5cbiAgICovXG4gIGtleWNoYWluczogUGljazxLZXljaGFpbiwgJ2NvbW1vbktleWNoYWluJz5bXTtcbiAgLyoqXG4gICAqIERlcml2YXRpb24gaW5kZXggZm9yIHRoZSBhZGRyZXNzLlxuICAgKiBVc2VkIHRvIGRlcml2ZSBjaGlsZCBhZGRyZXNzZXMgZnJvbSB0aGUgcm9vdCBrZXljaGFpbiB2aWEgSEQgZGVyaXZhdGlvbiBwYXRoOiBtL3tpbmRleH1cbiAgICogRm9yIFNNQyAoU2VsZi1NYW5hZ2VkIEN1c3RvZGlhbCkgd2FsbGV0cywgdGhlIHBhdGggaW5jbHVkZXMgYSBwcmVmaXg6IG0ve2Rlcml2YXRpb25QcmVmaXh9L3tpbmRleH1cbiAgICovXG4gIGluZGV4OiBudW1iZXIgfCBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZWVkIHZhbHVlIGZyb20gdXNlciBrZXljaGFpbidzIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQgZmllbGQuXG4gICAqIEZvciBTTUMgKFNlbGYtTWFuYWdlZCBDdXN0b2RpYWwpIHdhbGxldHMsIHRoaXMgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBkZXJpdmF0aW9uIHByZWZpeC5cbiAgICogVGhlIGRlcml2YXRpb24gcGF0aCBiZWNvbWVzIHtjb21wdXRlZFByZWZpeH0ve2luZGV4fSBpbnN0ZWFkIG9mIG0ve2luZGV4fS5cbiAgICovXG4gIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBNUEMgc2lnbmluZyBwcm90b2NvbCB2ZXJzaW9uIG9mIHRoZSB3YWxsZXQgKGUuZy4gJ01QQ3YyJykuXG4gICAqIFVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBNUEN2MSBhbmQgTVBDdjIgd2FsbGV0cy5cbiAgICovXG4gIG11bHRpc2lnVHlwZVZlcnNpb24/OiAnTVBDdjInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUc3NWZXJpZnlBZGRyZXNzT3B0aW9uczxUIGV4dGVuZHMgVmVyaWZ5QWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucz4oXG4gIHBhcmFtczogVFxuKTogcGFyYW1zIGlzIFQgJiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIHJldHVybiAhIShcbiAgICAna2V5Y2hhaW5zJyBpbiBwYXJhbXMgJiZcbiAgICAnaW5kZXgnIGluIHBhcmFtcyAmJlxuICAgICdhZGRyZXNzJyBpbiBwYXJhbXMgJiZcbiAgICBwYXJhbXMua2V5Y2hhaW5zPy5zb21lKChrYykgPT4gJ2NvbW1vbktleWNoYWluJyBpbiBrYyAmJiAhIWtjLmNvbW1vbktleWNoYWluKVxuICApO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGxvY2FsbHkgZGVyaXZpbmcgYSB3YWxsZXQgcmVjZWl2ZSBhZGRyZXNzIGZyb20gYSBkZXJpdmF0aW9uIHBhdGguXG4gKlxuICogVW5saWtlIHtAbGluayBWZXJpZnlBZGRyZXNzT3B0aW9uc30sIHdoaWNoIGNoZWNrcyBhIGNhbmRpZGF0ZSBhZGRyZXNzLCB0aGVzZSBvcHRpb25zIGFyZVxuICogdXNlZCB0byAqcHJvZHVjZSogdGhlIGFkZHJlc3Mgb2ZmbGluZSBmcm9tIHB1YmxpYyBrZXkgbWF0ZXJpYWwgb25seTpcbiAqIC0gdGhlIHVzZXIvYmFja3VwL2JpdGdvIHhwdWIgdHJpcGxlIChgcHViYCkgZm9yIEJJUDMyIG11bHRpc2lnIGNvaW5zLCBvclxuICogLSB0aGUgYGNvbW1vbktleWNoYWluYCBmb3IgVFNTL01QQyBjb2lucy5cbiAqXG4gKiBObyBwcml2YXRlIGtleXMgYW5kIG5vIG5ldHdvcmsgYWNjZXNzIGFyZSByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVBZGRyZXNzT3B0aW9uc1xuICBleHRlbmRzIFBpY2s8VmVyaWZ5QWRkcmVzc09wdGlvbnMsICdmb3JtYXQnIHwgJ2Rlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQnIHwgJ211bHRpc2lnVHlwZVZlcnNpb24nPiB7XG4gIC8vIGBmb3JtYXRgLCBgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZGAgYW5kIGBtdWx0aXNpZ1R5cGVWZXJzaW9uYCBhcmUgcmV1c2VkIGZyb21cbiAgLy8gVmVyaWZ5QWRkcmVzc09wdGlvbnMgc28gZGVyaXZlIGFuZCB2ZXJpZnkgc3RheSBpbiBzeW5jIG9uIHNoYXJlZCBmaWVsZHMuXG4gIC8qKlxuICAgKiBEZXJpdmF0aW9uIGluZGV4IGZvciB0aGUgYWRkcmVzcy5cbiAgICogRm9yIEJJUDMyIG11bHRpc2lnIGNvaW5zIHRoaXMgaXMgY29tYmluZWQgd2l0aCBgY2hhaW5gOyBmb3IgVFNTL01QQyBjb2lucyB0aGVcbiAgICogZGVyaXZhdGlvbiBwYXRoIGlzIGBtL3tpbmRleH1gIChvciBge3ByZWZpeH0ve2luZGV4fWAgZm9yIFNNQyB3YWxsZXRzKS5cbiAgICovXG4gIGluZGV4OiBudW1iZXI7XG4gIC8qKiBEZXJpdmF0aW9uIGNoYWluIGNvZGUgKFVUWE8gc2NyaXB0LXR5cGUgLyBleHRlcm5hbC12cy1pbnRlcm5hbCBzZWxlY3RvcikuICovXG4gIGNoYWluPzogbnVtYmVyO1xuICAvKipcbiAgICogUHVibGljIGtleSBtYXRlcmlhbCBmb3IgZGVyaXZhdGlvbi4gRWFjaCBrZXljaGFpbiBtdXN0IGNhcnJ5IGF0IGxlYXN0IG9uZSBvZjpcbiAgICogLSBCSVAzMiBtdWx0aXNpZyAoVVRYTywgbGVnYWN5IEVWTSk6IHRoZSB1c2VyL2JhY2t1cC9iaXRnbyB4cHViIHRyaXBsZSB2aWEgYHB1YmAuXG4gICAqIC0gVFNTL01QQyAoU09MLCBFVk0gTVBDLCBldGMuKTogdGhlIGBjb21tb25LZXljaGFpbmAgKGlkZW50aWNhbCBhY3Jvc3Mga2V5Y2hhaW5zKS5cbiAgICpcbiAgICogTW9kZWxsZWQgYXMgYSB1bmlvbiBzbyBhIGtleWNoYWluIHdpdGggbmVpdGhlciBmaWVsZCBpcyBhIHR5cGUgZXJyb3IuIEEga2V5Y2hhaW4gbWF5XG4gICAqIHN0aWxsIGNhcnJ5IGJvdGggZmllbGRzIChUU1Mga2V5Y2hhaW5zIGNvbW1vbmx5IGV4cG9zZSBgcHViYCBhbG9uZ3NpZGUgYGNvbW1vbktleWNoYWluYCkuXG4gICAqL1xuICBrZXljaGFpbnM/OiAoeyBwdWI6IHN0cmluZyB9IHwgeyBjb21tb25LZXljaGFpbjogc3RyaW5nIH0pW107XG4gIC8qKiBXYWxsZXQgdmVyc2lvbiwgdXNlZCB0byBkaXNhbWJpZ3VhdGUgZGVyaXZhdGlvbiBzdHJhdGVneSBmb3Igc29tZSBjb2luIGZhbWlsaWVzLiAqL1xuICB3YWxsZXRWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogVG9rZW4gbmFtZSAoZS5nLiBgc29sOnVzZGNgLCBgdHNvbDp1c2R0YCkgdG8gZGVyaXZlIGEgdG9rZW4gZGVwb3NpdCBhZGRyZXNzIGluc3RlYWQgb2YgdGhlXG4gICAqIG5hdGl2ZSByZWNlaXZlIGFkZHJlc3MuIEZvciBTb2xhbmEgdGhpcyByZXNvbHZlcyB0byB0aGUgU1BMIG1pbnQgYW5kIHJldHVybnMgdGhlIHdhbGxldCdzXG4gICAqIEFzc29jaWF0ZWQgVG9rZW4gQWNjb3VudCAoQVRBKSBmb3IgdGhhdCBtaW50LiBJZ25vcmVkIGJ5IGNvaW5zL3Rva2VucyB0aGF0IHJldXNlIHRoZSBuYXRpdmVcbiAgICogYWRkcmVzcyAoZS5nLiBFUkMtMjAgb24gRVZNKS5cbiAgICovXG4gIHRva2VuTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFdhbGxldCBiYXNlIGFkZHJlc3MgKHRoZSB3YWxsZXQgY29udHJhY3QgYWRkcmVzcyBmb3IgRVZNIHdhbGxldHMpLiBSZXF1aXJlZCB0byBkZXJpdmVcbiAgICogcGVyLWluZGV4IGZvcndhcmRlciAoQ1JFQVRFMikgcmVjZWl2ZSBhZGRyZXNzZXMgZm9yIGxlZ2FjeSBtdWx0aXNpZyBFVk0gd2FsbGV0cy5cbiAgICovXG4gIGJhc2VBZGRyZXNzPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29pbi1zcGVjaWZpYyBkZXJpdmF0aW9uIGlucHV0cy4gRm9yIEVWTSBsZWdhY3kgZm9yd2FyZGVyIHdhbGxldHMgdGhpcyBjYXJyaWVzXG4gICAqIGBmb3J3YXJkZXJWZXJzaW9uYCAoMS8yLzQpIGFuZCwgZm9yIHY0LCBgZmVlQWRkcmVzc2AuXG4gICAqL1xuICBjb2luU3BlY2lmaWM/OiBBZGRyZXNzQ29pblNwZWNpZmljO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBsb2NhbGx5IGRlcml2aW5nIGEgd2FsbGV0IHJlY2VpdmUgYWRkcmVzcy5cbiAqXG4gKiBFeHRlbmRzIHtAbGluayBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YX0gKGBjaGFpbmAsIGBpbmRleGAsIGBjb2luU3BlY2lmaWNgKSBhbmQgYWRkcyB0aGVcbiAqIHJlc29sdmVkIGBhZGRyZXNzYCBhbmQgdGhlIEhEIGBkZXJpdmF0aW9uUGF0aGAgYWN0dWFsbHkgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVBZGRyZXNzUmVzdWx0IGV4dGVuZHMgQWRkcmVzc1ZlcmlmaWNhdGlvbkRhdGEge1xuICAvKiogVGhlIGRlcml2ZWQgYWRkcmVzcy4gKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICAvKiogVGhlIGRlcml2YXRpb24gaW5kZXggdXNlZC4gKi9cbiAgaW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBIRCBkZXJpdmF0aW9uIHBhdGggYWN0dWFsbHkgdXNlZCB0byBkZXJpdmUgdGhlIGFkZHJlc3MuICovXG4gIGRlcml2YXRpb25QYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIHN0YWtpbmdSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1ZlcmlmaWNhdGlvbkRhdGEge1xuICBjb2luU3BlY2lmaWM/OiBBZGRyZXNzQ29pblNwZWNpZmljO1xuICBjaGFpbj86IG51bWJlcjtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpY2F0aW9uT3B0aW9ucyB7XG4gIGRpc2FibGVOZXR3b3JraW5nPzogYm9vbGVhbjtcbiAga2V5Y2hhaW5zPzoge1xuICAgIHVzZXI/OiBLZXljaGFpbjtcbiAgICBiYWNrdXA/OiBLZXljaGFpbjtcbiAgICBiaXRnbz86IEtleWNoYWluO1xuICB9O1xuICBhZGRyZXNzZXM/OiB7IFthZGRyZXNzOiBzdHJpbmddOiBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSB9O1xuICBhbGxvd1BheWdvT3V0cHV0PzogYm9vbGVhbjtcbiAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWw/OiBib29sZWFuO1xuICB2ZXJpZnlUb2tlbkVuYWJsZW1lbnQ/OiBib29sZWFuO1xuICAvLyBWZXJpZnkgdHJhbnNhY3Rpb24gaXMgY29uc29saWRhdGluZyB0byB3YWxsZXQncyBiYXNlIGFkZHJlc3NcbiAgY29uc29saWRhdGlvblRvQmFzZUFkZHJlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB2ZXJpZmljYXRpb24/OiBWZXJpZmljYXRpb25PcHRpb25zO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICB3YWxsZXRUeXBlPzogJ29uY2hhaW4nIHwgJ3Rzcyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlciB8IHN0cmluZztcbiAgZWlwMTU1OT86IHtcbiAgICBtYXhGZWVQZXJHYXM6IG51bWJlciB8IHN0cmluZztcbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IG51bWJlciB8IHN0cmluZztcbiAgfTtcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAga2V5cz86IHN0cmluZ1tdO1xuICBrZXlTaWduYXR1cmVzPzoge1xuICAgIGJhY2t1cDogc3RyaW5nO1xuICAgIGJpdGdvOiBzdHJpbmc7XG4gIH07XG4gIHJvb3RQcml2YXRlS2V5Pzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBtdWx0aXNpZ1R5cGU/OiAndHNzJyB8ICdvbmNoYWluJyB8ICdibHNka2cnO1xuICB0eXBlOiAnaG90JyB8ICdjb2xkJyB8ICdjdXN0b2RpYWwnIHwgJ2FkdmFuY2VkJyB8ICd0cmFkaW5nJztcbiAgc3ViVHlwZT86ICdsaWdodG5pbmdDdXN0b2R5JyB8ICdsaWdodG5pbmdTZWxmQ3VzdG9keScgfCAnb25QcmVtJztcbiAgY29pblNwZWNpZmljPzogeyBbY29pbk5hbWU6IHN0cmluZ106IHVua25vd24gfTtcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkPzogc3RyaW5nO1xuICBsaWdodG5pbmdQcm92aWRlcj86ICd2b2x0YWdlJyB8ICdhbWJvc3MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZUVzdGltYXRlT3B0aW9ucyB7XG4gIG51bUJsb2Nrcz86IG51bWJlcjtcbiAgaG9wPzogYm9vbGVhbjtcbiAgcmVjaXBpZW50Pzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBrZXlvZiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ/OiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICB3YWxsZXREYXRhOiBXYWxsZXREYXRhO1xuICB0c3NVdGlsczogRWNkc2FVdGlscyB8IEVjZHNhTVBDdjJVdGlscyB8IEVkZHNhVXRpbHMgfCBFZGRzYU1QQ3YyVXRpbHMgfCBSZWRwYWxsYXNNUEN2MlV0aWxzIHwgdW5kZWZpbmVkO1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgaW50ZXJmYWNlIFByZWNyZWF0ZUJpdEdvT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVjb3ZlcnlUcmFuc2FjdGlvbk9wdGlvbnMge1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgUGF5R28gZmVlIG9mIGEgdHJhbnNhY3Rpb24gd2hpY2ggaXMgb25seSByZWxldmFudCBmb3IgVVRYTyBjb2lucy5cbiAqIFNvbWUgY29pbnMgcmV0dXJuIHZhcmlvdXMgb3RoZXIgZmllbGRzIGhlcmUsIGJ1dCB0aGV5IGFyZSBvbmx5IHVzZWQgaW50ZXJuYWxseSBieSB0aGUgcmVzcGVjdGl2ZSBjb2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRUcmFuc2FjdGlvbiB7XG4gIC8vIHRoZSBjYWxsc2l0ZSBhc3N1bWVzIHRoYXQgdGhpcyBpcyB0aGUgUGF5R28gYW1vdW50XG4gIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudD86IG51bWJlciB8IGJpZ2ludDtcbiAgLy8gY29pbnMgbWF5IGFkZCBpbnRlcm5hbCBmaWVsZHNcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IHR5cGUgVW5zaWduZWRQYXJzZWRUcmFuc2FjdGlvbiA9IHtcbiAgaW5wdXRzOiBJbnB1dFtdO1xuICBtaW5lckZlZTogbnVtYmVyIHwgc3RyaW5nO1xuICBvdXRwdXRzOiBPdXRwdXRbXTtcbiAgc3BlbmRBbW91bnQ6IG51bWJlciB8IHN0cmluZztcbiAgaGFzVW52YWxpZGF0ZWREYXRhPzogYm9vbGVhbjtcbiAgcGF5R29GZWU/OiBudW1iZXI7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ6IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbn07XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Y2hhaW5zVHJpcGxldCB7XG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIGJhY2t1cEtleWNoYWluOiBLZXljaGFpbjtcbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnaHRuaW5nS2V5Y2hhaW5zVHJpcGxldCB7XG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIHVzZXJBdXRoS2V5Y2hhaW46IEtleWNoYWluO1xuICBub2RlQXV0aEtleWNoYWluOiBLZXljaGFpbjtcbn1cblxuaW50ZXJmYWNlIEJ1aWxkUGFyYW1zIHtcbiAgcHJldmlldz86IGJvb2xlYW47XG4gIHJlY2lwaWVudHM/OiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbn1cblxuaW50ZXJmYWNlIEJhc2VTaWduYWJsZSB7XG4gIHdhbGxldD86IElXYWxsZXQ7XG4gIGJ1aWxkUGFyYW1zPzogQnVpbGRQYXJhbXMgJiBQYXJ0aWFsPGFueT47XG4gIGNvbnNvbGlkYXRlSWQ/OiBzdHJpbmc7XG4gIHR4UmVxdWVzdElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJlYnVpbGQgZXh0ZW5kcyBCYXNlU2lnbmFibGUge1xuICB0eEJhc2U2ND86IHN0cmluZztcbiAgdHhIZXg/OiBzdHJpbmc7XG4gIHR4SW5mbz86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWHB1YldpdGhEZXJpdmF0aW9uUGF0aCB7XG4gIHhwdWI6IHN0cmluZztcbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xkVHJhbnNhY3Rpb25QcmVidWlsZCB7XG4gIHB1YnM/OiBzdHJpbmdbXTtcbiAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg/OiBQYXJ0aWFsPFJlY29yZDxBcGlLZXlTaGFyZVsnZnJvbSddLCBYcHViV2l0aERlcml2YXRpb25QYXRoPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSBleHRlbmRzIEJhc2VTaWduYWJsZSB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduZXJBZGRyZXNzPzogc3RyaW5nO1xuICAvKiogQmFzZTY0LWVuY29kZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gYnl0ZXMgcmVxdWlyZWQgYnkgQ2FudG9uIG1lc3NhZ2Ugc2lnbmluZy4gKi9cbiAgcHJlcGFyZWRUcmFuc2FjdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlVHlwZVByb3BlcnR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VUeXBlcyB7XG4gIEVJUDcxMkRvbWFpbjogTWVzc2FnZVR5cGVQcm9wZXJ0eVtdO1xuICBbYWRkaXRpb25hbFByb3BlcnRpZXM6IHN0cmluZ106IE1lc3NhZ2VUeXBlUHJvcGVydHlbXTtcbn1cblxuZXhwb3J0IGVudW0gU2lnblR5cGVkRGF0YVZlcnNpb24ge1xuICBWMSA9ICdWMScsXG4gIFYzID0gJ1YzJyxcbiAgVjQgPSAnVjQnLFxufVxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIG1lc3NhZ2UgZm9ybWF0IHVzZWQgZm9yIGBzaWduVHlwZURhdGFgLCBmb3IgYWxsIHZlcnNpb25zXG4gKiBleGNlcHQgYFYxYC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSBjdXN0b20gdHlwZXMgdXNlZCBieSB0aGlzIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkgdHlwZXMgLSBUaGUgY3VzdG9tIHR5cGVzIHVzZWQgYnkgdGhpcyBtZXNzYWdlLlxuICogQHByb3BlcnR5IHByaW1hcnlUeXBlIC0gVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkgZG9tYWluIC0gU2lnbmluZyBkb21haW4gbWV0YWRhdGEuIFRoZSBzaWduaW5nIGRvbWFpbiBpcyB0aGUgaW50ZW5kZWQgY29udGV4dCBmb3IgdGhlXG4gKiBzaWduYXR1cmUgKGUuZy4gdGhlIGRhcHAsIHByb3RvY29sLCBldGMuIHRoYXQgaXQncyBpbnRlbmRlZCBmb3IpLiBUaGlzIGRhdGEgaXMgdXNlZCB0b1xuICogY29uc3RydWN0IHRoZSBkb21haW4gc2VwZXJhdG9yIG9mIHRoZSBtZXNzYWdlLlxuICogQHByb3BlcnR5IGRvbWFpbi5uYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHNpZ25pbmcgZG9tYWluLlxuICogQHByb3BlcnR5IGRvbWFpbi52ZXJzaW9uIC0gVGhlIGN1cnJlbnQgbWFqb3IgdmVyc2lvbiBvZiB0aGUgc2lnbmluZyBkb21haW4uXG4gKiBAcHJvcGVydHkgZG9tYWluLmNoYWluSWQgLSBUaGUgY2hhaW4gSUQgb2YgdGhlIHNpZ25pbmcgZG9tYWluLlxuICogQHByb3BlcnR5IGRvbWFpbi52ZXJpZnlpbmdDb250cmFjdCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0aGF0IGNhbiB2ZXJpZnkgdGhlIHNpZ25hdHVyZS5cbiAqIEBwcm9wZXJ0eSBkb21haW4uc2FsdCAtIEEgZGlzYW1iaWd1YXRpbmcgc2FsdCBmb3IgdGhlIHByb3RvY29sLlxuICogQHByb3BlcnR5IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBiZSBzaWduZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRNZXNzYWdlPFQgZXh0ZW5kcyBNZXNzYWdlVHlwZXM+IHtcbiAgdHlwZXM6IFQ7XG4gIHByaW1hcnlUeXBlOiBrZXlvZiBUO1xuICBkb21haW46IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gICAgY2hhaW5JZD86IG51bWJlcjtcbiAgICB2ZXJpZnlpbmdDb250cmFjdD86IHN0cmluZztcbiAgICBzYWx0PzogQXJyYXlCdWZmZXI7XG4gIH07XG4gIG1lc3NhZ2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkRGF0YSBleHRlbmRzIEJhc2VTaWduYWJsZSB7XG4gIHR5cGVkRGF0YVJhdzogc3RyaW5nO1xuICB2ZXJzaW9uOiBTaWduVHlwZWREYXRhVmVyc2lvbjtcbiAgdHlwZWREYXRhRW5jb2RlZD86IEJ1ZmZlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzQ29pblNwZWNpZmljIHtcbiAgb3V0cHV0U2NyaXB0Pzogc3RyaW5nO1xuICByZWRlZW1TY3JpcHQ/OiBzdHJpbmc7XG4gIHdpdG5lc3NTY3JpcHQ/OiBzdHJpbmc7XG4gIGJhc2VBZGRyZXNzPzogc3RyaW5nO1xuICBwZW5kaW5nQ2hhaW5Jbml0aWFsaXphdGlvbj86IGJvb2xlYW47XG4gIGZvcndhcmRlclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKiBGZWUgYWRkcmVzcyBmb3IgdjQgRVZNIGZvcndhcmRlcnMgKHVzZWQgd2hlbiBkZXJpdmluZy92ZXJpZnlpbmcgdjQgZm9yd2FyZGVyIGFkZHJlc3NlcykuICovXG4gIGZlZUFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHlTaWduZWRUcmFuc2FjdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7IC8vIFRyYW5zYWN0aW9uIGluIGFueSBmb3JtYXQgcmVxdWlyZWQgYnkgZWFjaCBjb2luLCBpLmUuIGluIFRyb24gaXQgaXMgYSBzdHJpbmdpZnllZCBKU09OXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvbiB7XG4gIHR4SGV4OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQU0JULWxpdGUgaGV4IHByZXNlcnZlZCBmcm9tIGEgcGVuZGluZyBhcHByb3ZhbCdzIGNvaW5TcGVjaWZpYy5cbiAgICogT25seSBwcmVzZW50IGluIHRoZSBQQSBhcHByb3ZhbCBmbG93IOKAlCBub3QgaW4gcmVndWxhciBzaWduL3NlbmQgZmxvd3MuXG4gICAqL1xuICB0eEhleFBzYnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFsZlNpZ25lZEFjY291bnRUcmFuc2FjdGlvbiB7XG4gIGhhbGZTaWduZWQ/OiB7XG4gICAgdHhIZXg/OiBzdHJpbmc7IC8vIFRyYW5zYWN0aW9uIGluIGFueSBmb3JtYXQgcmVxdWlyZWQgYnkgZWFjaCBjb2luLCBpLmUuIGluIFRyb24gaXQgaXMgYSBzdHJpbmdpZnllZCBKU09OXG4gICAgcGF5bG9hZD86IHN0cmluZztcbiAgICB0eEJhc2U2ND86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYWxmU2lnbmVkVHJhbnNhY3Rpb24gZXh0ZW5kcyBIYWxmU2lnbmVkQWNjb3VudFRyYW5zYWN0aW9uIHtcbiAgaGFsZlNpZ25lZDoge1xuICAgIHJlY2lwaWVudHM6IFJlY2lwaWVudFtdO1xuICAgIGV4cGlyZVRpbWU/OiBudW1iZXI7XG4gICAgY29udHJhY3RTZXF1ZW5jZUlkPzogbnVtYmVyO1xuICAgIHNlcXVlbmNlSWQ/OiBudW1iZXI7XG4gICAgdHhIZXg/OiBuZXZlcjtcbiAgICBpc0JhdGNoPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduZWRUcmFuc2FjdGlvblJlcXVlc3Qge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZUtleVdpdGhTZWVkT3B0aW9ucyB7XG4gIGtleTogc3RyaW5nO1xuICBzZWVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRNb2ZOT3B0aW9ucyB7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNpZ25lZFRyYW5zYWN0aW9uID1cbiAgfCBIYWxmU2lnbmVkQWNjb3VudFRyYW5zYWN0aW9uXG4gIHwgSGFsZlNpZ25lZFV0eG9UcmFuc2FjdGlvblxuICB8IEZ1bGx5U2lnbmVkVHJhbnNhY3Rpb25cbiAgfCBTaWduZWRUcmFuc2FjdGlvblJlcXVlc3RcbiAgfCBUeFJlcXVlc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVkTWVzc2FnZSB7XG4gIGNvaW4/OiBzdHJpbmc7XG4gIC8vIEBkZXByZWNhdGVkIC0gdXNlIGBzaWduYXR1cmVgIGluc3RlYWRcbiAgdHhIYXNoOiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyV2FsbGV0VG9rZW5PcHRpb25zIHtcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgYnJvYWRjYXN0PzogYm9vbGVhbjtcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgcHJ2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2lwaWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGRhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlclRva2VuVHJhbnNhY3Rpb24ge1xuICBoYWxmU2lnbmVkOiB7XG4gICAgcmVjaXBpZW50OiBSZWNpcGllbnQ7XG4gICAgZXhwaXJlVGltZTogbnVtYmVyO1xuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyO1xuICAgIG9wZXJhdGlvbkhhc2g6IHN0cmluZztcbiAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICBnYXNMaW1pdDogbnVtYmVyO1xuICAgIGdhc1ByaWNlOiBudW1iZXI7XG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgICB3YWxsZXRJZDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuRW5hYmxlbWVudENvbmZpZyB7XG4gIHJlcXVpcmVzVG9rZW5FbmFibGVtZW50OiBib29sZWFuO1xuICBzdXBwb3J0c011bHRpcGxlVG9rZW5FbmFibGVtZW50czogYm9vbGVhbjtcbiAgdmFsaWRhdGVXYWxsZXQ/OiAod2FsbGV0VHlwZTogc3RyaW5nKSA9PiB2b2lkO1xuICBnZXRFbmFibGVUb2tlblR5cGU/OiAodG9rZW5OYW1lOiBzdHJpbmcpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUHJlcCB7XG4gIGVuY29kZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nO1xufVxuXG4vKipcbiAqICdyZWRwYWxsYXMnIGlzIHRoZSBNUEMgYWxnb3JpdGhtIHVzZWQgZm9yIHRoZSBaY2FzaCBPcmNoYXJkIHNoaWVsZGVkIHBvb2wgKFJlZFBhbGxhcyAvXG4gKiBcIklyb253b29kXCIpLiBUb2RheSBpdCBvbmx5IHN1cHBvcnRzIERLRyAoa2V5IGdlbmVyYXRpb24pIHZpYSBNUEN2MiBpbiB0aGlzIFNESyAtIHRoZXJlIGlzIG5vXG4gKiBvbmxpbmUgc2VsZi1jdXN0b2R5IERTRyAodHJhbnNhY3Rpb24gc2lnbmluZykgZW50cnlwb2ludCB5ZXQsIHRob3VnaCB0aGUgdW5kZXJseWluZ1xuICogc2lnbmF0dXJlLXNoYXJlIHByaW1pdGl2ZXMgKGBiaXRnby90c3MvcmVkcGFsbGFzYCkgYW5kIHRoZSBgc2VuZFNpZ25hdHVyZVNoYXJlVjJgIE1QQ3YyXG4gKiByZXF1ZXN0IHR5cGUgZXhpc3QgYXMgZ3JvdW5kd29yayBmb3IgYSBmdXR1cmUgY3VzdG9kaWFsL2NvbGQgKFNNQy9PVkMpIERTRyBzaWduaW5nIGZsb3cuXG4gKiBJdCBpcyBhZGRpdGl2ZTogZXhpc3RpbmcgY29pbnMgbmV2ZXIgcmV0dXJuIGl0IGZyb20gYGdldE1QQ0FsZ29yaXRobSgpYCB1bmxlc3MgZXhwbGljaXRseVxuICogaW1wbGVtZW50ZWQgdG8gZG8gc28sIHNvIHRoaXMgZG9lcyBub3QgY2hhbmdlIGJlaGF2aW9yIGZvciBhbnkgZXhpc3RpbmcgRUNEU0EvRWREU0EgY29pbiBvclxuICogZm9yIFpFQydzIGV4aXN0aW5nIHRyYW5zcGFyZW50IChzZWNwMjU2azEpIG11bHRpc2lnL1RTUyBmbG93cy5cbiAqL1xuZXhwb3J0IHR5cGUgTVBDQWxnb3JpdGhtID0gJ2VjZHNhJyB8ICdlZGRzYScgfCAncmVkcGFsbGFzJztcblxuZXhwb3J0IHR5cGUgTkZUVHJhbnNmZXJPcHRpb25zID0ge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmc7XG59ICYgKFxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkM3MjEnIHwgVG9rZW5UeXBlLkRJR0lUQUxfQVNTRVQ7XG4gICAgICB0b2tlbklkOiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkMxMTU1JztcbiAgICAgIGVudHJpZXM6IHsgdG9rZW5JZDogc3RyaW5nOyBhbW91bnQ6IG51bWJlciB9W107XG4gICAgfVxuKTtcblxuZXhwb3J0IHR5cGUgQnVpbGROZnRUcmFuc2ZlckRhdGFPcHRpb25zID0gTkZUVHJhbnNmZXJPcHRpb25zICYge1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9ucz86IE1QQ1R4W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUJyb2FkY2FzdFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgdHhJZD86IHN0cmluZztcbiAgdHhJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUNvaW4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRva2VuQ29uZmlnPzogQmFzZVRva2VuQ29uZmlnO1xuICBnZXRDb25maWcoKTogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgdXJsKHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nO1xuICB3YWxsZXRzKCk6IElXYWxsZXRzO1xuICBlbnRlcnByaXNlcygpOiBJRW50ZXJwcmlzZXM7XG4gIGtleWNoYWlucygpOiBJS2V5Y2hhaW5zO1xuICB3ZWJob29rcygpOiBJV2ViaG9va3M7XG4gIHBlbmRpbmdBcHByb3ZhbHMoKTogSVBlbmRpbmdBcHByb3ZhbHM7XG4gIG1hcmtldHMoKTogSU1hcmtldHM7XG4gIGdldENoYWluKCk6IHN0cmluZztcbiAgZ2V0RmFtaWx5KCk6IHN0cmluZztcbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nO1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKTogYm9vbGVhbjtcbiAgY2hlY2tSZWNpcGllbnQoXG4gICAgcmVjaXBpZW50OiB7IGFkZHJlc3M6IHN0cmluZzsgYW1vdW50OiBzdHJpbmcgfCBudW1iZXIgfSxcbiAgICBvcHRpb25zPzogeyBhbGxvd1plcm9BbW91bnQ/OiBib29sZWFuIH1cbiAgKTogdm9pZDtcbiAgc3dlZXBXaXRoU2VuZE1hbnkoKTogYm9vbGVhbjtcbiAgdHJhbnNhY3Rpb25EYXRhQWxsb3dlZCgpOiBib29sZWFuO1xuICBhbGxvd3NBY2NvdW50Q29uc29saWRhdGlvbnMoKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNSZXNvdXJjZURlbGVnYXRpb24oKTogYm9vbGVhbjtcbiAgZ2V0VG9rZW5FbmFibGVtZW50Q29uZmlnKCk6IFRva2VuRW5hYmxlbWVudENvbmZpZztcbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNNdWx0aXNpZygpOiBib29sZWFuO1xuICBnZXREZWZhdWx0TXVsdGlzaWdUeXBlKCk6IE11bHRpc2lnVHlwZSB8IHVuZGVmaW5lZDtcbiAgc3VwcG9ydHNEZXJpdmVLZXlXaXRoU2VlZCgpOiBib29sZWFuO1xuICBpc0VWTSgpOiBib29sZWFuO1xuICBzdXBwb3J0c0Jsc0RrZygpOiBib29sZWFuO1xuICBwcmVwYXJlQ29sZFRyYW5zYWN0aW9uPFQgZXh0ZW5kcyBUcmFuc2FjdGlvblByZWJ1aWxkPihcbiAgICB0eFByZWJ1aWxkOiBULFxuICAgIGtleWNoYWluczogVHJpcGxlPEtleWNoYWluPlxuICApOiBUICYgQ29sZFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHwgc3RyaW5nO1xuICBiYXNlVW5pdHNUb0JpZ1VuaXRzKGJhc2VVbml0czogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nO1xuICBiaWdVbml0c1RvQmFzZVVuaXRzKGJpZ1VuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmc7XG4gIHByZXByb2Nlc3NCdWlsZFBhcmFtcyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBzaWduTWVzc2FnZShrZXk6IHsgcHJ2OiBzdHJpbmcgfSwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+O1xuICBjcmVhdGVLZXlTaWduYXR1cmVzKFxuICAgIHBydjogc3RyaW5nLFxuICAgIGJhY2t1cEtleWNoYWluOiB7IHB1Yjogc3RyaW5nIH0sXG4gICAgYml0Z29LZXljaGFpbjogeyBwdWI6IHN0cmluZyB9XG4gICk6IFByb21pc2U8e1xuICAgIGJhY2t1cDogc3RyaW5nO1xuICAgIGJpdGdvOiBzdHJpbmc7XG4gIH0+O1xuICBleHBsYWluVHJhbnNhY3Rpb24oXG4gICAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICB3YWxsZXQ/OiBJV2FsbGV0XG4gICk6IFByb21pc2U8SVRyYW5zYWN0aW9uRXhwbGFuYXRpb248YW55LCBzdHJpbmcgfCBudW1iZXI+IHwgdW5kZWZpbmVkPjtcbiAgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+O1xuICB2ZXJpZnlBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBpc1dhbGxldEFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyB8IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zLCB3YWxsZXQ/OiBJV2FsbGV0KTogUHJvbWlzZTxib29sZWFuPjtcbiAgZGVyaXZlQWRkcmVzcyhwYXJhbXM6IERlcml2ZUFkZHJlc3NPcHRpb25zKTogUHJvbWlzZTxEZXJpdmVBZGRyZXNzUmVzdWx0PjtcbiAgY2Fub25pY2FsQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGZvcm1hdDogdW5rbm93bik6IHN0cmluZztcbiAgc3VwcG9ydHNCbG9ja1RhcmdldCgpOiBib29sZWFuO1xuICBzdXBwb3J0c0xpZ2h0bmluZygpOiBib29sZWFuO1xuICBzdXBwb3J0c01lc3NhZ2VTaWduaW5nKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzU2lnbmluZ1R5cGVkRGF0YSgpOiBib29sZWFuO1xuICBzdXBwbGVtZW50R2VuZXJhdGVXYWxsZXQod2FsbGV0UGFyYW1zOiBTdXBwbGVtZW50R2VuZXJhdGVXYWxsZXRPcHRpb25zLCBrZXljaGFpbnM6IEtleWNoYWluc1RyaXBsZXQpOiBQcm9taXNlPGFueT47XG4gIGdldEV4dHJhUHJlYnVpbGRQYXJhbXMoYnVpbGRQYXJhbXM6IEV4dHJhUHJlYnVpbGRQYXJhbXNPcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIHBvc3RQcm9jZXNzUHJlYnVpbGQocHJlYnVpbGRSZXNwb25zZTogVHJhbnNhY3Rpb25QcmVidWlsZCk6IFByb21pc2U8VHJhbnNhY3Rpb25QcmVidWlsZD47XG4gIHByZXNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnM+O1xuICBzaWduV2l0aEN1c3RvbVNpZ25pbmdGdW5jdGlvbj8oXG4gICAgY3VzdG9tU2lnbmluZ0Z1bmN0aW9uOiBDdXN0b21TaWduaW5nRnVuY3Rpb24sXG4gICAgc2lnblRyYW5zYWN0aW9uUGFyYW1zOiB7IHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ7IHB1YnM6IHN0cmluZ1tdIH1cbiAgKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj47XG4gIG5ld1dhbGxldE9iamVjdCh3YWxsZXRQYXJhbXM6IGFueSk6IElXYWxsZXQ7XG4gIGZlZUVzdGltYXRlKHBhcmFtczogRmVlRXN0aW1hdGVPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBkZXJpdmVLZXlXaXRoU2VlZChwYXJhbXM6IERlcml2ZUtleVdpdGhTZWVkT3B0aW9ucyk6IHsga2V5OiBzdHJpbmc7IGRlcml2YXRpb25QYXRoOiBzdHJpbmcgfTtcbiAga2V5SWRzRm9yU2lnbmluZygpOiBudW1iZXJbXTtcbiAgcHJlQ3JlYXRlQml0R28ocGFyYW1zOiBQcmVjcmVhdGVCaXRHb09wdGlvbnMpOiB2b2lkO1xuICBpbml0aWF0ZVJlY292ZXJ5KHBhcmFtczogSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMpOiBuZXZlcjtcbiAgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj47XG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgZ2VuZXJhdGVSb290S2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW47XG4gIGlzVmFsaWRNb2ZOU2V0dXAocGFyYW1zOiBWYWxpZE1vZk5PcHRpb25zKTogYm9vbGVhbjtcbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbjtcbiAgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+O1xuICBnZXRTaWduYWJsZVBheWxvYWQoc2VyaWFsaXplZFR4OiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG07XG4gIC8vIFRPRE8gLSB0aGlzIG9ubHkgYmVsb25ncyBpbiBldGggY29pbnNcbiAgcmVjb3ZlclRva2VuKHBhcmFtczogUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyk6IFByb21pc2U8UmVjb3ZlclRva2VuVHJhbnNhY3Rpb24+O1xuICBnZXRJbnNjcmlwdGlvbkJ1aWxkZXIod2FsbGV0OiBXYWxsZXQpOiBJSW5zY3JpcHRpb25CdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgY2FsbCBkYXRhIGZvciB0cmFuc2ZlcnJpbmcgYSBORlQocykuXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9ucyBzcGVjaWZ5aW5nIHRoZSB0b2tlbiBjb250cmFjdCwgdG9rZW4gcmVjaXBpZW50ICYgdGhlIHRva2VuKHMpIHRvIGJlIHRyYW5zZmVycmVkXG4gICAqIEByZXR1cm4gdGhlIGhleCBzdHJpbmcgZm9yIHRoZSBjb250cmFjdCBjYWxsLlxuICAgKi9cbiAgYnVpbGROZnRUcmFuc2ZlckRhdGEocGFyYW1zOiBCdWlsZE5mdFRyYW5zZmVyRGF0YU9wdGlvbnMpOiBzdHJpbmcgfCBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xuICBnZXRIYXNoRnVuY3Rpb24oKTogSGFzaDtcbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIHNpZ25hYmxlSGV4IGlzIGFscmVhZHkgdGhlIGZpbmFsIHNpZ25pbmcgaGFzaCBmb3IgTVBDIHNpZ25pbmdcbiAgICogKGUuZy4gU0hBLTI1NiBmb3IgQXZhbGFuY2hlIGF0b21pYyBjcm9zcy1jaGFpbiB0eHMpLiBPbmx5IGltcGxlbWVudGVkIGJ5IGNvaW5zXG4gICAqIHRoYXQgcHJvZHVjZSBwcmUtaGFzaGVkIHNpZ25hYmxlIG1hdGVyaWFsLlxuICAgKi9cbiAgaXNTaWduYWJsZVByZUhhc2hlZD8odW5zaWduZWRUeDogU2lnbmFibGVUcmFuc2FjdGlvbik6IGJvb2xlYW47XG4gIGJyb2FkY2FzdFRyYW5zYWN0aW9uKHBhcmFtczogQmFzZUJyb2FkY2FzdFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8QmFzZUJyb2FkY2FzdFRyYW5zYWN0aW9uUmVzdWx0PjtcbiAgc2V0Q29pblNwZWNpZmljRmllbGRzSW5JbnRlbnQoaW50ZW50OiBQb3B1bGF0ZWRJbnRlbnQsIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQXVkaXQgYSBrZXkgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIHZhbGlkIGZvciB0aGUgY29pbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgYXVkaXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5wdWJsaWNLZXkgIC0gVGhlIHB1YmxpYyBwb3J0aW9uIG9mIHRoZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5lbmNyeXB0ZWRQcnYgLSBUaGUgZW5jcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSAtIFRoZSBwYXNzcGhyYXNlIHRvIGRlY3J5cHQgdGhlIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMubXVsdGlTaWdUeXBlIC0gVGhlIHR5cGUgb2YgbXVsdGlzaWcgKGUuZy4gJ29uY2hhaW4nIG9yICd0c3MnKVxuICAgKi9cbiAgYXNzZXJ0SXNWYWxpZEtleShwYXJhbXM6IEF1ZGl0S2V5UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgcmVxdWlyZXNXYWxsZXRJbml0aWFsaXphdGlvblRyYW5zYWN0aW9uKCk6IGJvb2xlYW47XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUJhc2VDb2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Jhc2VDb2luL2lCYXNlQ29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2TUEsOERBU0M7QUFqTVksUUFBQSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7Q0FDRixDQUFDO0FBcUxYLFNBQWdCLHlCQUF5QixDQUN2QyxNQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsQ0FDUCxXQUFXLElBQUksTUFBTTtRQUNyQixPQUFPLElBQUksTUFBTTtRQUNqQixTQUFTLElBQUksTUFBTTtRQUNuQixNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQzlFLENBQUM7QUFDSixDQUFDO0FBMFFELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixpQ0FBUyxDQUFBO0lBQ1QsaUNBQVMsQ0FBQTtJQUNULGlDQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9rZW5Db25maWcsIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IElFbnRlcnByaXNlcyB9IGZyb20gJy4uL2VudGVycHJpc2UnO1xuaW1wb3J0IHsgQXBpS2V5U2hhcmUsIElLZXljaGFpbnMsIEtleWNoYWluIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgSU1hcmtldHMgfSBmcm9tICcuLi9tYXJrZXQnO1xuaW1wb3J0IHsgSVBlbmRpbmdBcHByb3ZhbHMgfSBmcm9tICcuLi9wZW5kaW5nQXBwcm92YWwnO1xuaW1wb3J0IHsgSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMgfSBmcm9tICcuLi9yZWNvdmVyeSc7XG5pbXBvcnQgeyBFY2RzYU1QQ3YyVXRpbHMsIEVjZHNhVXRpbHMgfSBmcm9tICcuLi91dGlscy90c3MvZWNkc2EnO1xuaW1wb3J0IEVkZHNhVXRpbHMsIHsgRWRkc2FNUEN2MlV0aWxzLCBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsIFR4UmVxdWVzdCB9IGZyb20gJy4uL3V0aWxzL3Rzcy9lZGRzYSc7XG5pbXBvcnQgeyBSZWRwYWxsYXNNUEN2MlV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvdHNzL3JlZHBhbGxhcyc7XG5pbXBvcnQgeyBDcmVhdGVBZGRyZXNzRm9ybWF0LCBDdXN0b21TaWduaW5nRnVuY3Rpb24sIElXYWxsZXQsIElXYWxsZXRzLCBNZW1vLCBXYWxsZXQsIFdhbGxldERhdGEgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5pbXBvcnQgeyBUb2tlbkVuYWJsZW1lbnQsIHVuaWZpZWRBZGRyZXNzUHJlZmVyZW5jZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5pbXBvcnQgeyBJSW5zY3JpcHRpb25CdWlsZGVyIH0gZnJvbSAnLi4vaW5zY3JpcHRpb25CdWlsZGVyJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIE1QQ1R4LCBQb3B1bGF0ZWRJbnRlbnQsIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsIFRva2VuVHlwZSwgVHJpcGxlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBTaWduYWJsZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBJV2ViaG9va3MgfSBmcm9tICcuLi93ZWJob29rL2lXZWJob29rcyc7XG5cbmV4cG9ydCBjb25zdCBtdWx0aXNpZ1R5cGVzID0ge1xuICBvbmNoYWluOiAnb25jaGFpbicsXG4gIHRzczogJ3RzcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBNdWx0aXNpZ1R5cGUgPSBrZXlvZiB0eXBlb2YgbXVsdGlzaWdUeXBlcztcblxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25SZWNpcGllbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIC8vIG9mIGZvcm0gY29pbjp0b2tlblxuICBjb2luTmFtZT86IHN0cmluZztcbiAgaXNQYXlHbz86IGJvb2xlYW47XG4gIHZhbHVlPzogbnVtYmVyO1xuICB3YWxsZXQ/OiBzdHJpbmc7IC8vIFR5cGVzLk9iamVjdElkO1xuICB3YWxsZXRWMT86IHN0cmluZzsgLy8gVHlwZXMuT2JqZWN0SWQ7XG4gIGJhc2VBZGRyZXNzPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nOyAvLyBUeXBlcy5PYmplY3RJZDtcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbiAgLy8gXCJjaGFuZ2VcIiBpcyBhIHV0eG8tc3BlY2lmaWMgY29uY2VwdCBhbmQgdGhpcyBwcm9wZXJ0eSBzaG91bGRcbiAgLy8gYmUgcmVtb3ZlZCBvbmNlIGl0IGl0J3MgdXNhZ2UgaXMgcmVmYWN0b3JlZCBvdXQgb2YgYmFzZSBjb2luIGxvZ2ljXG4gIGNoYW5nZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIElucHV0ID0ge1xuICBkZXJpdmF0aW9uSW5kZXg/OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHZhbHVlU3RyaW5nOiBzdHJpbmc7XG4gIC8vIHRoZSBwcm9wZXJ0aWVzIGJlbG93IGFyZSB1dHhvLXJlbGF0ZWQgYnV0IGFyZSBjdXJyZW50bHkgdXNlZCBpbiBhYnN0cmFjdEJhc2VDb2luXG4gIC8vIHRoZXNlIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgdGhlaXIgdXNhZ2UgaXMgcmVtb3ZlZCBmcm9tIHRoZSBiYXNlIGNvaW4gY2xhc3NcbiAgY2hhaW4/OiBudW1iZXI7XG4gIGluZGV4PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRUcmFuc2FjdGlvbiA9IHtcbiAgLy8gdW5zaWduZWQgdHJhbnNhY3Rpb24gaW4gYnJvYWRjYXN0IGZvcm1hdFxuICBzZXJpYWxpemVkVHhIZXg6IHN0cmluZztcbiAgLy8gcG9ydGlvbiBvZiBhIHRyYW5zYWN0aW9uIHVzZWQgdG8gZ2VuZXJhdGUgYSBzaWduYXR1cmVcbiAgc2lnbmFibGVIZXg6IHN0cmluZztcbiAgLy8gdHJhbnNhY3Rpb24gZmVlc1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyIHwgQmlnTnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICAvLyBkZXJpdmF0aW9uIHBhdGggb2YgdGhlIHNpZ25lclxuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBjb2luU3BlY2lmaWM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZW50cnlWYWx1ZXM6IGFueTtcbiAgcGFyc2VkVHg6IFVuc2lnbmVkUGFyc2VkVHJhbnNhY3Rpb247XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhbmF0aW9uUmVzdWx0IGV4dGVuZHMgSVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBzZXF1ZW5jZUlkOiBudW1iZXI7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIG91dHB1dHM6IE91dHB1dFtdO1xuICBibG9ja051bWJlcjogbnVtYmVyIHwgdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25SZWNpcGllbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nIHwgbnVtYmVyO1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIHRva2VuQWRkcmVzcz86IHN0cmluZztcbiAgcHJvZ3JhbUlkPzogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0b2tlbiBlbmFibGVtZW50IChlLmcuLCBjcmVhdGlvbiBvZiBhbiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRva2VuRW5hYmxlbWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZzsgLy8gQXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50IGFkZHJlc3NcbiAgdG9rZW5OYW1lOiBzdHJpbmc7IC8vIE5hbWUgb2YgdGhlIHRva2VuIGJlaW5nIGVuYWJsZWRcbiAgdG9rZW5BZGRyZXNzPzogc3RyaW5nOyAvLyBDb250cmFjdCBhZGRyZXNzIG9mIHRoZSB0b2tlblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvbkZlZTxUQW1vdW50ID0gc3RyaW5nPiB7XG4gIGZlZTogVEFtb3VudDtcbiAgZmVlUmF0ZT86IG51bWJlcjtcbiAgc2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQXVkaXRLZXlQYXJhbXMgPSB7IHBydj86IHN0cmluZzsgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nOyB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nIH0gJiAoXG4gIHwgeyBwcnY6IHN0cmluZyB9XG4gIHwgeyBlbmNyeXB0ZWRQcnY6IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nIH1cbikgJlxuICAoXG4gICAgfCB7XG4gICAgICAgIG11bHRpU2lnVHlwZTogJ3Rzcyc7XG4gICAgICAgIHB1YmxpY0tleTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBtdWx0aVNpZ1R5cGU/OiAnb25jaGFpbic7XG4gICAgICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICAgIH1cbiAgKTtcblxuZXhwb3J0IHR5cGUgQXVkaXREZWNyeXB0ZWRLZXlQYXJhbXMgPSBPbWl0PEF1ZGl0S2V5UGFyYW1zLCAnZW5jcnlwdGVkUHJ2JyB8ICd3YWxsZXRQYXNzcGhyYXNlJz4gJiB7IHBydjogc3RyaW5nIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uRXhwbGFuYXRpb248VEZlZSA9IGFueSwgVEFtb3VudCA9IGFueT4ge1xuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgZGlzcGxheU9yZGVyPzogc3RyaW5nW107XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOT1RFOiBFeHRlcm5hbCByZWNpcGllbnRzICovXG4gIG91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICAvKiogTk9URTogRXh0ZXJuYWwgYW1vdW50ICovXG4gIG91dHB1dEFtb3VudDogVEFtb3VudDtcbiAgY2hhbmdlT3V0cHV0czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIGNoYW5nZUFtb3VudDogVEFtb3VudDtcbiAgZmVlOiBURmVlO1xuICBwcm94eT86IHN0cmluZztcbiAgcHJvZHVjZXJzPzogc3RyaW5nW107XG4gIC8qKiBOT1RFOiBUb2tlbnMgYmVpbmcgZW5hYmxlZCBmb3IgdGhlIHdhbGxldCAqL1xuICB0b2tlbkVuYWJsZW1lbnRzPzogSVRva2VuRW5hYmxlbWVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXIge1xuICBwdWI/OiBzdHJpbmc7XG4gIHBydjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCbHNLZXlQYWlyIGV4dGVuZHMgS2V5UGFpciB7XG4gIHNlY3JldFNoYXJlcz86IHN0cmluZ1tdO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbiAgc2VlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIGZvcm1hdD86IENyZWF0ZUFkZHJlc3NGb3JtYXQ7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYWRkcmVzc1R5cGU/OiBzdHJpbmc7XG4gIGtleWNoYWlucz86IHtcbiAgICBwdWI6IHN0cmluZztcbiAgfVtdO1xuICBlcnJvcj86IHN0cmluZztcbiAgY29pblNwZWNpZmljPzogQWRkcmVzc0NvaW5TcGVjaWZpYztcbiAgaW1wbGllZEZvcndhcmRlclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZWVkIHZhbHVlIGZyb20gdXNlciBrZXljaGFpbidzIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQgZmllbGQuXG4gICAqIEZvciBTTUMgKFNlbGYtTWFuYWdlZCBDdXN0b2RpYWwpIFRTUyB3YWxsZXRzLCB0aGlzIGlzIHVzZWQgdG8gY29tcHV0ZSB0aGUgZGVyaXZhdGlvbiBwcmVmaXguXG4gICAqL1xuICBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkPzogc3RyaW5nO1xuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgTVBDIHNpZ25pbmcgcHJvdG9jb2wgdmVyc2lvbiBvZiB0aGUgd2FsbGV0IChlLmcuICdNUEN2MicpLlxuICAgKiBVc2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTVBDdjEgYW5kIE1QQ3YyIHdhbGxldHMuXG4gICAqL1xuICBtdWx0aXNpZ1R5cGVWZXJzaW9uPzogJ01QQ3YyJztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB2ZXJpZnlpbmcgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgVFNTL01QQyB3YWxsZXQuXG4gKiBVc2VkIGZvciBFZERTQS1iYXNlZCBNUEMgY29pbnMgKFNPTCwgRE9ULCBTVUksIFRPTiwgSU9UQSwgTkVBUiwgZXRjLilcbiAqIHRvIGNyeXB0b2dyYXBoaWNhbGx5IHZlcmlmeSBhZGRyZXNzIGRlcml2YXRpb24gd2l0aG91dCB0cnVzdGluZyB0aGUgcGxhdGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICAvKiogVGhlIGFkZHJlc3MgdG8gdmVyaWZ5ICovXG4gIGFkZHJlc3M6IHN0cmluZztcbiAgLyoqXG4gICAqIEtleWNoYWlucyBjb250YWluaW5nIHRoZSBjb21tb25LZXljaGFpbiBmb3IgSEQgZGVyaXZhdGlvbi5cbiAgICogRm9yIE1QQyB3YWxsZXRzLCB0aGUgY29tbW9uS2V5Y2hhaW4gKGNvbWJpbmVkIHB1YmxpYyBrZXkgZnJvbSBNUEMga2V5IGdlbmVyYXRpb24pXG4gICAqIHNob3VsZCBiZSBpZGVudGljYWwgYWNyb3NzIGFsbCBrZXljaGFpbnMgKHVzZXIsIGJhY2t1cCwgYml0Z28pLlxuICAgKi9cbiAga2V5Y2hhaW5zOiBQaWNrPEtleWNoYWluLCAnY29tbW9uS2V5Y2hhaW4nPltdO1xuICAvKipcbiAgICogRGVyaXZhdGlvbiBpbmRleCBmb3IgdGhlIGFkZHJlc3MuXG4gICAqIFVzZWQgdG8gZGVyaXZlIGNoaWxkIGFkZHJlc3NlcyBmcm9tIHRoZSByb290IGtleWNoYWluIHZpYSBIRCBkZXJpdmF0aW9uIHBhdGg6IG0ve2luZGV4fVxuICAgKiBGb3IgU01DIChTZWxmLU1hbmFnZWQgQ3VzdG9kaWFsKSB3YWxsZXRzLCB0aGUgcGF0aCBpbmNsdWRlcyBhIHByZWZpeDogbS97ZGVyaXZhdGlvblByZWZpeH0ve2luZGV4fVxuICAgKi9cbiAgaW5kZXg6IG51bWJlciB8IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHNlZWQgdmFsdWUgZnJvbSB1c2VyIGtleWNoYWluJ3MgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCBmaWVsZC5cbiAgICogRm9yIFNNQyAoU2VsZi1NYW5hZ2VkIEN1c3RvZGlhbCkgd2FsbGV0cywgdGhpcyBpcyB1c2VkIHRvIGNvbXB1dGUgdGhlIGRlcml2YXRpb24gcHJlZml4LlxuICAgKiBUaGUgZGVyaXZhdGlvbiBwYXRoIGJlY29tZXMge2NvbXB1dGVkUHJlZml4fS97aW5kZXh9IGluc3RlYWQgb2YgbS97aW5kZXh9LlxuICAgKi9cbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZD86IHN0cmluZztcbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIE1QQyBzaWduaW5nIHByb3RvY29sIHZlcnNpb24gb2YgdGhlIHdhbGxldCAoZS5nLiAnTVBDdjInKS5cbiAgICogVXNlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIE1QQ3YxIGFuZCBNUEN2MiB3YWxsZXRzLlxuICAgKi9cbiAgbXVsdGlzaWdUeXBlVmVyc2lvbj86ICdNUEN2Mic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rzc1ZlcmlmeUFkZHJlc3NPcHRpb25zPFQgZXh0ZW5kcyBWZXJpZnlBZGRyZXNzT3B0aW9ucyB8IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zPihcbiAgcGFyYW1zOiBUXG4pOiBwYXJhbXMgaXMgVCAmIFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zIHtcbiAgcmV0dXJuICEhKFxuICAgICdrZXljaGFpbnMnIGluIHBhcmFtcyAmJlxuICAgICdpbmRleCcgaW4gcGFyYW1zICYmXG4gICAgJ2FkZHJlc3MnIGluIHBhcmFtcyAmJlxuICAgIHBhcmFtcy5rZXljaGFpbnM/LnNvbWUoKGtjKSA9PiAnY29tbW9uS2V5Y2hhaW4nIGluIGtjICYmICEha2MuY29tbW9uS2V5Y2hhaW4pXG4gICk7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgbG9jYWxseSBkZXJpdmluZyBhIHdhbGxldCByZWNlaXZlIGFkZHJlc3MgZnJvbSBhIGRlcml2YXRpb24gcGF0aC5cbiAqXG4gKiBVbmxpa2Uge0BsaW5rIFZlcmlmeUFkZHJlc3NPcHRpb25zfSwgd2hpY2ggY2hlY2tzIGEgY2FuZGlkYXRlIGFkZHJlc3MsIHRoZXNlIG9wdGlvbnMgYXJlXG4gKiB1c2VkIHRvICpwcm9kdWNlKiB0aGUgYWRkcmVzcyBvZmZsaW5lIGZyb20gcHVibGljIGtleSBtYXRlcmlhbCBvbmx5OlxuICogLSB0aGUgdXNlci9iYWNrdXAvYml0Z28geHB1YiB0cmlwbGUgKGBwdWJgKSBmb3IgQklQMzIgbXVsdGlzaWcgY29pbnMsIG9yXG4gKiAtIHRoZSBgY29tbW9uS2V5Y2hhaW5gIGZvciBUU1MvTVBDIGNvaW5zLlxuICpcbiAqIE5vIHByaXZhdGUga2V5cyBhbmQgbm8gbmV0d29yayBhY2Nlc3MgYXJlIHJlcXVpcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZUFkZHJlc3NPcHRpb25zXG4gIGV4dGVuZHMgUGljazxWZXJpZnlBZGRyZXNzT3B0aW9ucywgJ2Zvcm1hdCcgfCAnZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCcgfCAnbXVsdGlzaWdUeXBlVmVyc2lvbic+IHtcbiAgLy8gYGZvcm1hdGAsIGBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkYCBhbmQgYG11bHRpc2lnVHlwZVZlcnNpb25gIGFyZSByZXVzZWQgZnJvbVxuICAvLyBWZXJpZnlBZGRyZXNzT3B0aW9ucyBzbyBkZXJpdmUgYW5kIHZlcmlmeSBzdGF5IGluIHN5bmMgb24gc2hhcmVkIGZpZWxkcy5cbiAgLyoqXG4gICAqIERlcml2YXRpb24gaW5kZXggZm9yIHRoZSBhZGRyZXNzLlxuICAgKiBGb3IgQklQMzIgbXVsdGlzaWcgY29pbnMgdGhpcyBpcyBjb21iaW5lZCB3aXRoIGBjaGFpbmA7IGZvciBUU1MvTVBDIGNvaW5zIHRoZVxuICAgKiBkZXJpdmF0aW9uIHBhdGggaXMgYG0ve2luZGV4fWAgKG9yIGB7cHJlZml4fS97aW5kZXh9YCBmb3IgU01DIHdhbGxldHMpLlxuICAgKi9cbiAgaW5kZXg6IG51bWJlcjtcbiAgLyoqIERlcml2YXRpb24gY2hhaW4gY29kZSAoVVRYTyBzY3JpcHQtdHlwZSAvIGV4dGVybmFsLXZzLWludGVybmFsIHNlbGVjdG9yKS4gKi9cbiAgY2hhaW4/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQdWJsaWMga2V5IG1hdGVyaWFsIGZvciBkZXJpdmF0aW9uLiBFYWNoIGtleWNoYWluIG11c3QgY2FycnkgYXQgbGVhc3Qgb25lIG9mOlxuICAgKiAtIEJJUDMyIG11bHRpc2lnIChVVFhPLCBsZWdhY3kgRVZNKTogdGhlIHVzZXIvYmFja3VwL2JpdGdvIHhwdWIgdHJpcGxlIHZpYSBgcHViYC5cbiAgICogLSBUU1MvTVBDIChTT0wsIEVWTSBNUEMsIGV0Yy4pOiB0aGUgYGNvbW1vbktleWNoYWluYCAoaWRlbnRpY2FsIGFjcm9zcyBrZXljaGFpbnMpLlxuICAgKlxuICAgKiBNb2RlbGxlZCBhcyBhIHVuaW9uIHNvIGEga2V5Y2hhaW4gd2l0aCBuZWl0aGVyIGZpZWxkIGlzIGEgdHlwZSBlcnJvci4gQSBrZXljaGFpbiBtYXlcbiAgICogc3RpbGwgY2FycnkgYm90aCBmaWVsZHMgKFRTUyBrZXljaGFpbnMgY29tbW9ubHkgZXhwb3NlIGBwdWJgIGFsb25nc2lkZSBgY29tbW9uS2V5Y2hhaW5gKS5cbiAgICovXG4gIGtleWNoYWlucz86ICh7IHB1Yjogc3RyaW5nIH0gfCB7IGNvbW1vbktleWNoYWluOiBzdHJpbmcgfSlbXTtcbiAgLyoqIFdhbGxldCB2ZXJzaW9uLCB1c2VkIHRvIGRpc2FtYmlndWF0ZSBkZXJpdmF0aW9uIHN0cmF0ZWd5IGZvciBzb21lIGNvaW4gZmFtaWxpZXMuICovXG4gIHdhbGxldFZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUb2tlbiBuYW1lIChlLmcuIGBzb2w6dXNkY2AsIGB0c29sOnVzZHRgKSB0byBkZXJpdmUgYSB0b2tlbiBkZXBvc2l0IGFkZHJlc3MgaW5zdGVhZCBvZiB0aGVcbiAgICogbmF0aXZlIHJlY2VpdmUgYWRkcmVzcy4gRm9yIFNvbGFuYSB0aGlzIHJlc29sdmVzIHRvIHRoZSBTUEwgbWludCBhbmQgcmV0dXJucyB0aGUgd2FsbGV0J3NcbiAgICogQXNzb2NpYXRlZCBUb2tlbiBBY2NvdW50IChBVEEpIGZvciB0aGF0IG1pbnQuIElnbm9yZWQgYnkgY29pbnMvdG9rZW5zIHRoYXQgcmV1c2UgdGhlIG5hdGl2ZVxuICAgKiBhZGRyZXNzIChlLmcuIEVSQy0yMCBvbiBFVk0pLlxuICAgKi9cbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogV2FsbGV0IGJhc2UgYWRkcmVzcyAodGhlIHdhbGxldCBjb250cmFjdCBhZGRyZXNzIGZvciBFVk0gd2FsbGV0cykuIFJlcXVpcmVkIHRvIGRlcml2ZVxuICAgKiBwZXItaW5kZXggZm9yd2FyZGVyIChDUkVBVEUyKSByZWNlaXZlIGFkZHJlc3NlcyBmb3IgbGVnYWN5IG11bHRpc2lnIEVWTSB3YWxsZXRzLlxuICAgKi9cbiAgYmFzZUFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2luLXNwZWNpZmljIGRlcml2YXRpb24gaW5wdXRzLiBGb3IgRVZNIGxlZ2FjeSBmb3J3YXJkZXIgd2FsbGV0cyB0aGlzIGNhcnJpZXNcbiAgICogYGZvcndhcmRlclZlcnNpb25gICgxLzIvNCkgYW5kLCBmb3IgdjQsIGBmZWVBZGRyZXNzYC5cbiAgICovXG4gIGNvaW5TcGVjaWZpYz86IEFkZHJlc3NDb2luU3BlY2lmaWM7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGxvY2FsbHkgZGVyaXZpbmcgYSB3YWxsZXQgcmVjZWl2ZSBhZGRyZXNzLlxuICpcbiAqIEV4dGVuZHMge0BsaW5rIEFkZHJlc3NWZXJpZmljYXRpb25EYXRhfSAoYGNoYWluYCwgYGluZGV4YCwgYGNvaW5TcGVjaWZpY2ApIGFuZCBhZGRzIHRoZVxuICogcmVzb2x2ZWQgYGFkZHJlc3NgIGFuZCB0aGUgSEQgYGRlcml2YXRpb25QYXRoYCBhY3R1YWxseSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZUFkZHJlc3NSZXN1bHQgZXh0ZW5kcyBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSB7XG4gIC8qKiBUaGUgZGVyaXZlZCBhZGRyZXNzLiAqL1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIC8qKiBUaGUgZGVyaXZhdGlvbiBpbmRleCB1c2VkLiAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogVGhlIEhEIGRlcml2YXRpb24gcGF0aCBhY3R1YWxseSB1c2VkIHRvIGRlcml2ZSB0aGUgYWRkcmVzcy4gKi9cbiAgZGVyaXZhdGlvblBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25QYXJhbXMge1xuICByZWNpcGllbnRzPzogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIG1lbW8/OiBNZW1vO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgc3Rha2luZ1JlcXVlc3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSB7XG4gIGNvaW5TcGVjaWZpYz86IEFkZHJlc3NDb2luU3BlY2lmaWM7XG4gIGNoYWluPzogbnVtYmVyO1xuICBpbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJpZmljYXRpb25PcHRpb25zIHtcbiAgZGlzYWJsZU5ldHdvcmtpbmc/OiBib29sZWFuO1xuICBrZXljaGFpbnM/OiB7XG4gICAgdXNlcj86IEtleWNoYWluO1xuICAgIGJhY2t1cD86IEtleWNoYWluO1xuICAgIGJpdGdvPzogS2V5Y2hhaW47XG4gIH07XG4gIGFkZHJlc3Nlcz86IHsgW2FkZHJlc3M6IHN0cmluZ106IEFkZHJlc3NWZXJpZmljYXRpb25EYXRhIH07XG4gIGFsbG93UGF5Z29PdXRwdXQ/OiBib29sZWFuO1xuICBjb25zaWRlck1pZ3JhdGVkRnJvbUFkZHJlc3NJbnRlcm5hbD86IGJvb2xlYW47XG4gIHZlcmlmeVRva2VuRW5hYmxlbWVudD86IGJvb2xlYW47XG4gIC8vIFZlcmlmeSB0cmFuc2FjdGlvbiBpcyBjb25zb2xpZGF0aW5nIHRvIHdhbGxldCdzIGJhc2UgYWRkcmVzc1xuICBjb25zb2xpZGF0aW9uVG9CYXNlQWRkcmVzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDtcbiAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHZlcmlmaWNhdGlvbj86IFZlcmlmaWNhdGlvbk9wdGlvbnM7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIHdhbGxldFR5cGU/OiAnb25jaGFpbicgfCAndHNzJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdXBwbGVtZW50R2VuZXJhdGVXYWxsZXRPcHRpb25zIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgbT86IG51bWJlcjtcbiAgbj86IG51bWJlcjtcbiAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgZGlzYWJsZVRyYW5zYWN0aW9uTm90aWZpY2F0aW9ucz86IGJvb2xlYW47XG4gIGdhc1ByaWNlPzogbnVtYmVyIHwgc3RyaW5nO1xuICBlaXAxNTU5Pzoge1xuICAgIG1heEZlZVBlckdhczogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG1heFByaW9yaXR5RmVlUGVyR2FzPzogbnVtYmVyIHwgc3RyaW5nO1xuICB9O1xuICB3YWxsZXRWZXJzaW9uPzogbnVtYmVyO1xuICBrZXlzPzogc3RyaW5nW107XG4gIGtleVNpZ25hdHVyZXM/OiB7XG4gICAgYmFja3VwOiBzdHJpbmc7XG4gICAgYml0Z286IHN0cmluZztcbiAgfTtcbiAgcm9vdFByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIGRpc2FibGVLUlNFbWFpbD86IGJvb2xlYW47XG4gIG11bHRpc2lnVHlwZT86ICd0c3MnIHwgJ29uY2hhaW4nIHwgJ2Jsc2RrZyc7XG4gIHR5cGU6ICdob3QnIHwgJ2NvbGQnIHwgJ2N1c3RvZGlhbCcgfCAnYWR2YW5jZWQnIHwgJ3RyYWRpbmcnO1xuICBzdWJUeXBlPzogJ2xpZ2h0bmluZ0N1c3RvZHknIHwgJ2xpZ2h0bmluZ1NlbGZDdXN0b2R5JyB8ICdvblByZW0nO1xuICBjb2luU3BlY2lmaWM/OiB7IFtjb2luTmFtZTogc3RyaW5nXTogdW5rbm93biB9O1xuICBldm1LZXlSaW5nUmVmZXJlbmNlV2FsbGV0SWQ/OiBzdHJpbmc7XG4gIGxpZ2h0bmluZ1Byb3ZpZGVyPzogJ3ZvbHRhZ2UnIHwgJ2FtYm9zcyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlRXN0aW1hdGVPcHRpb25zIHtcbiAgbnVtQmxvY2tzPzogbnVtYmVyO1xuICBob3A/OiBib29sZWFuO1xuICByZWNpcGllbnQ/OiBzdHJpbmc7XG4gIGRhdGE/OiBzdHJpbmc7XG4gIGFtb3VudD86IHN0cmluZztcbiAgdHlwZT86IGtleW9mIHR5cGVvZiBUcmFuc2FjdGlvblR5cGU7XG59XG5cbi8qKiBIb3cgYSBaY2FzaCBVbmlmaWVkIEFkZHJlc3MgcmVjaXBpZW50IHNob3VsZCBiZSByZXNvbHZlZC4gKi9cbmV4cG9ydCB0eXBlIFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlID0gdW5pZmllZEFkZHJlc3NQcmVmZXJlbmNlO1xuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBob3cgdG8gcmVzb2x2ZSBhIFVuaWZpZWQgQWRkcmVzcyByZWNpcGllbnQgKGAnc2hpZWxkZWQnYCBvciBgJ3RyYW5zcGFyZW50J2ApLlxuICAgKi9cbiAgdW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2U/OiBVbmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZTtcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBQcmVzaWduVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQcmVidWlsZD86IFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIHdhbGxldERhdGE6IFdhbGxldERhdGE7XG4gIHRzc1V0aWxzOiBFY2RzYVV0aWxzIHwgRWNkc2FNUEN2MlV0aWxzIHwgRWRkc2FVdGlscyB8IEVkZHNhTVBDdjJVdGlscyB8IFJlZHBhbGxhc01QQ3YyVXRpbHMgfCB1bmRlZmluZWQ7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlY3JlYXRlQml0R29PcHRpb25zIHtcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlSZWNvdmVyeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMge1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKlxuICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGRldGVybWluaW5nIHRoZSBQYXlHbyBmZWUgb2YgYSB0cmFuc2FjdGlvbiB3aGljaCBpcyBvbmx5IHJlbGV2YW50IGZvciBVVFhPIGNvaW5zLlxuICogU29tZSBjb2lucyByZXR1cm4gdmFyaW91cyBvdGhlciBmaWVsZHMgaGVyZSwgYnV0IHRoZXkgYXJlIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSByZXNwZWN0aXZlIGNvaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFRyYW5zYWN0aW9uIHtcbiAgLy8gdGhlIGNhbGxzaXRlIGFzc3VtZXMgdGhhdCB0aGlzIGlzIHRoZSBQYXlHbyBhbW91bnRcbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50PzogbnVtYmVyIHwgYmlnaW50O1xuICAvLyBjb2lucyBtYXkgYWRkIGludGVybmFsIGZpZWxkc1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgdHlwZSBVbnNpZ25lZFBhcnNlZFRyYW5zYWN0aW9uID0ge1xuICBpbnB1dHM6IElucHV0W107XG4gIG1pbmVyRmVlOiBudW1iZXIgfCBzdHJpbmc7XG4gIG91dHB1dHM6IE91dHB1dFtdO1xuICBzcGVuZEFtb3VudDogbnVtYmVyIHwgc3RyaW5nO1xuICBoYXNVbnZhbGlkYXRlZERhdGE/OiBib29sZWFuO1xuICBwYXlHb0ZlZT86IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgc2VxdWVuY2VJZDogbnVtYmVyO1xuICBpZDogc3RyaW5nO1xufTtcblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWdodG5pbmdLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgdXNlckF1dGhLZXljaGFpbjogS2V5Y2hhaW47XG4gIG5vZGVBdXRoS2V5Y2hhaW46IEtleWNoYWluO1xufVxuXG5pbnRlcmZhY2UgQnVpbGRQYXJhbXMge1xuICBwcmV2aWV3PzogYm9vbGVhbjtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xufVxuXG5pbnRlcmZhY2UgQmFzZVNpZ25hYmxlIHtcbiAgd2FsbGV0PzogSVdhbGxldDtcbiAgYnVpbGRQYXJhbXM/OiBCdWlsZFBhcmFtcyAmIFBhcnRpYWw8YW55PjtcbiAgY29uc29saWRhdGVJZD86IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25QcmVidWlsZCBleHRlbmRzIEJhc2VTaWduYWJsZSB7XG4gIHR4QmFzZTY0Pzogc3RyaW5nO1xuICB0eEhleD86IHN0cmluZztcbiAgdHhJbmZvPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBYcHViV2l0aERlcml2YXRpb25QYXRoIHtcbiAgeHB1Yjogc3RyaW5nO1xuICBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGRUcmFuc2FjdGlvblByZWJ1aWxkIHtcbiAgcHVicz86IHN0cmluZ1tdO1xuICB4cHVic1dpdGhEZXJpdmF0aW9uUGF0aD86IFBhcnRpYWw8UmVjb3JkPEFwaUtleVNoYXJlWydmcm9tJ10sIFhwdWJXaXRoRGVyaXZhdGlvblBhdGg+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIGV4dGVuZHMgQmFzZVNpZ25hYmxlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgbWVzc2FnZVN0YW5kYXJkVHlwZT86IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHNpZ25lckFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKiBCYXNlNjQtZW5jb2RlZCBwcmVwYXJlZCB0cmFuc2FjdGlvbiBieXRlcyByZXF1aXJlZCBieSBDYW50b24gbWVzc2FnZSBzaWduaW5nLiAqL1xuICBwcmVwYXJlZFRyYW5zYWN0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VUeXBlUHJvcGVydHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVR5cGVzIHtcbiAgRUlQNzEyRG9tYWluOiBNZXNzYWdlVHlwZVByb3BlcnR5W107XG4gIFthZGRpdGlvbmFsUHJvcGVydGllczogc3RyaW5nXTogTWVzc2FnZVR5cGVQcm9wZXJ0eVtdO1xufVxuXG5leHBvcnQgZW51bSBTaWduVHlwZWREYXRhVmVyc2lvbiB7XG4gIFYxID0gJ1YxJyxcbiAgVjMgPSAnVjMnLFxuICBWNCA9ICdWNCcsXG59XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgbWVzc2FnZSBmb3JtYXQgdXNlZCBmb3IgYHNpZ25UeXBlRGF0YWAsIGZvciBhbGwgdmVyc2lvbnNcbiAqIGV4Y2VwdCBgVjFgLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGN1c3RvbSB0eXBlcyB1c2VkIGJ5IHRoaXMgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSB0eXBlcyAtIFRoZSBjdXN0b20gdHlwZXMgdXNlZCBieSB0aGlzIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkgcHJpbWFyeVR5cGUgLSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSBkb21haW4gLSBTaWduaW5nIGRvbWFpbiBtZXRhZGF0YS4gVGhlIHNpZ25pbmcgZG9tYWluIGlzIHRoZSBpbnRlbmRlZCBjb250ZXh0IGZvciB0aGVcbiAqIHNpZ25hdHVyZSAoZS5nLiB0aGUgZGFwcCwgcHJvdG9jb2wsIGV0Yy4gdGhhdCBpdCdzIGludGVuZGVkIGZvcikuIFRoaXMgZGF0YSBpcyB1c2VkIHRvXG4gKiBjb25zdHJ1Y3QgdGhlIGRvbWFpbiBzZXBlcmF0b3Igb2YgdGhlIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkgZG9tYWluLm5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgc2lnbmluZyBkb21haW4uXG4gKiBAcHJvcGVydHkgZG9tYWluLnZlcnNpb24gLSBUaGUgY3VycmVudCBtYWpvciB2ZXJzaW9uIG9mIHRoZSBzaWduaW5nIGRvbWFpbi5cbiAqIEBwcm9wZXJ0eSBkb21haW4uY2hhaW5JZCAtIFRoZSBjaGFpbiBJRCBvZiB0aGUgc2lnbmluZyBkb21haW4uXG4gKiBAcHJvcGVydHkgZG9tYWluLnZlcmlmeWluZ0NvbnRyYWN0IC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IHRoYXQgY2FuIHZlcmlmeSB0aGUgc2lnbmF0dXJlLlxuICogQHByb3BlcnR5IGRvbWFpbi5zYWx0IC0gQSBkaXNhbWJpZ3VhdGluZyBzYWx0IGZvciB0aGUgcHJvdG9jb2wuXG4gKiBAcHJvcGVydHkgbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGJlIHNpZ25lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlZE1lc3NhZ2U8VCBleHRlbmRzIE1lc3NhZ2VUeXBlcz4ge1xuICB0eXBlczogVDtcbiAgcHJpbWFyeVR5cGU6IGtleW9mIFQ7XG4gIGRvbWFpbjoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBjaGFpbklkPzogbnVtYmVyO1xuICAgIHZlcmlmeWluZ0NvbnRyYWN0Pzogc3RyaW5nO1xuICAgIHNhbHQ/OiBBcnJheUJ1ZmZlcjtcbiAgfTtcbiAgbWVzc2FnZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWREYXRhIGV4dGVuZHMgQmFzZVNpZ25hYmxlIHtcbiAgdHlwZWREYXRhUmF3OiBzdHJpbmc7XG4gIHZlcnNpb246IFNpZ25UeXBlZERhdGFWZXJzaW9uO1xuICB0eXBlZERhdGFFbmNvZGVkPzogQnVmZmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NDb2luU3BlY2lmaWMge1xuICBvdXRwdXRTY3JpcHQ/OiBzdHJpbmc7XG4gIHJlZGVlbVNjcmlwdD86IHN0cmluZztcbiAgd2l0bmVzc1NjcmlwdD86IHN0cmluZztcbiAgYmFzZUFkZHJlc3M/OiBzdHJpbmc7XG4gIHBlbmRpbmdDaGFpbkluaXRpYWxpemF0aW9uPzogYm9vbGVhbjtcbiAgZm9yd2FyZGVyVmVyc2lvbj86IG51bWJlcjtcbiAgLyoqIEZlZSBhZGRyZXNzIGZvciB2NCBFVk0gZm9yd2FyZGVycyAodXNlZCB3aGVuIGRlcml2aW5nL3ZlcmlmeWluZyB2NCBmb3J3YXJkZXIgYWRkcmVzc2VzKS4gKi9cbiAgZmVlQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdWxseVNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgdHhIZXg6IHN0cmluZzsgLy8gVHJhbnNhY3Rpb24gaW4gYW55IGZvcm1hdCByZXF1aXJlZCBieSBlYWNoIGNvaW4sIGkuZS4gaW4gVHJvbiBpdCBpcyBhIHN0cmluZ2lmeWVkIEpTT05cbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uIHtcbiAgdHhIZXg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBTQlQtbGl0ZSBoZXggcHJlc2VydmVkIGZyb20gYSBwZW5kaW5nIGFwcHJvdmFsJ3MgY29pblNwZWNpZmljLlxuICAgKiBPbmx5IHByZXNlbnQgaW4gdGhlIFBBIGFwcHJvdmFsIGZsb3cg4oCUIG5vdCBpbiByZWd1bGFyIHNpZ24vc2VuZCBmbG93cy5cbiAgICovXG4gIHR4SGV4UHNidD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYWxmU2lnbmVkQWNjb3VudFRyYW5zYWN0aW9uIHtcbiAgaGFsZlNpZ25lZD86IHtcbiAgICB0eEhleD86IHN0cmluZzsgLy8gVHJhbnNhY3Rpb24gaW4gYW55IGZvcm1hdCByZXF1aXJlZCBieSBlYWNoIGNvaW4sIGkuZS4gaW4gVHJvbiBpdCBpcyBhIHN0cmluZ2lmeWVkIEpTT05cbiAgICBwYXlsb2FkPzogc3RyaW5nO1xuICAgIHR4QmFzZTY0Pzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRUcmFuc2FjdGlvbiBleHRlbmRzIEhhbGZTaWduZWRBY2NvdW50VHJhbnNhY3Rpb24ge1xuICBoYWxmU2lnbmVkOiB7XG4gICAgcmVjaXBpZW50czogUmVjaXBpZW50W107XG4gICAgZXhwaXJlVGltZT86IG51bWJlcjtcbiAgICBjb250cmFjdFNlcXVlbmNlSWQ/OiBudW1iZXI7XG4gICAgc2VxdWVuY2VJZD86IG51bWJlcjtcbiAgICB0eEhleD86IG5ldmVyO1xuICAgIGlzQmF0Y2g/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lZFRyYW5zYWN0aW9uUmVxdWVzdCB7XG4gIHR4UmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlS2V5V2l0aFNlZWRPcHRpb25zIHtcbiAga2V5OiBzdHJpbmc7XG4gIHNlZWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZE1vZk5PcHRpb25zIHtcbiAgbT86IG51bWJlcjtcbiAgbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgU2lnbmVkVHJhbnNhY3Rpb24gPVxuICB8IEhhbGZTaWduZWRBY2NvdW50VHJhbnNhY3Rpb25cbiAgfCBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uXG4gIHwgRnVsbHlTaWduZWRUcmFuc2FjdGlvblxuICB8IFNpZ25lZFRyYW5zYWN0aW9uUmVxdWVzdFxuICB8IFR4UmVxdWVzdDtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduZWRNZXNzYWdlIHtcbiAgY29pbj86IHN0cmluZztcbiAgLy8gQGRlcHJlY2F0ZWQgLSB1c2UgYHNpZ25hdHVyZWAgaW5zdGVhZFxuICB0eEhhc2g6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJXYWxsZXRUb2tlbk9wdGlvbnMge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICB3YWxsZXQ6IElXYWxsZXQ7XG4gIHJlY2lwaWVudDogc3RyaW5nO1xuICBicm9hZGNhc3Q/OiBib29sZWFuO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBwcnY/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjaXBpZW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyVG9rZW5UcmFuc2FjdGlvbiB7XG4gIGhhbGZTaWduZWQ6IHtcbiAgICByZWNpcGllbnQ6IFJlY2lwaWVudDtcbiAgICBleHBpcmVUaW1lOiBudW1iZXI7XG4gICAgY29udHJhY3RTZXF1ZW5jZUlkOiBudW1iZXI7XG4gICAgb3BlcmF0aW9uSGFzaDogc3RyaW5nO1xuICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIGdhc0xpbWl0OiBudW1iZXI7XG4gICAgZ2FzUHJpY2U6IG51bWJlcjtcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICAgIHdhbGxldElkOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50Q29uZmlnIHtcbiAgcmVxdWlyZXNUb2tlbkVuYWJsZW1lbnQ6IGJvb2xlYW47XG4gIHN1cHBvcnRzTXVsdGlwbGVUb2tlbkVuYWJsZW1lbnRzOiBib29sZWFuO1xuICB2YWxpZGF0ZVdhbGxldD86ICh3YWxsZXRUeXBlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGdldEVuYWJsZVRva2VuVHlwZT86ICh0b2tlbk5hbWU6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VQcmVwIHtcbiAgZW5jb2RlTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbi8qKlxuICogJ3JlZHBhbGxhcycgaXMgdGhlIE1QQyBhbGdvcml0aG0gdXNlZCBmb3IgdGhlIFpjYXNoIE9yY2hhcmQgc2hpZWxkZWQgcG9vbCAoUmVkUGFsbGFzIC9cbiAqIFwiSXJvbndvb2RcIikuIFRvZGF5IGl0IG9ubHkgc3VwcG9ydHMgREtHIChrZXkgZ2VuZXJhdGlvbikgdmlhIE1QQ3YyIGluIHRoaXMgU0RLIC0gdGhlcmUgaXMgbm9cbiAqIG9ubGluZSBzZWxmLWN1c3RvZHkgRFNHICh0cmFuc2FjdGlvbiBzaWduaW5nKSBlbnRyeXBvaW50IHlldCwgdGhvdWdoIHRoZSB1bmRlcmx5aW5nXG4gKiBzaWduYXR1cmUtc2hhcmUgcHJpbWl0aXZlcyAoYGJpdGdvL3Rzcy9yZWRwYWxsYXNgKSBhbmQgdGhlIGBzZW5kU2lnbmF0dXJlU2hhcmVWMmAgTVBDdjJcbiAqIHJlcXVlc3QgdHlwZSBleGlzdCBhcyBncm91bmR3b3JrIGZvciBhIGZ1dHVyZSBjdXN0b2RpYWwvY29sZCAoU01DL09WQykgRFNHIHNpZ25pbmcgZmxvdy5cbiAqIEl0IGlzIGFkZGl0aXZlOiBleGlzdGluZyBjb2lucyBuZXZlciByZXR1cm4gaXQgZnJvbSBgZ2V0TVBDQWxnb3JpdGhtKClgIHVubGVzcyBleHBsaWNpdGx5XG4gKiBpbXBsZW1lbnRlZCB0byBkbyBzbywgc28gdGhpcyBkb2VzIG5vdCBjaGFuZ2UgYmVoYXZpb3IgZm9yIGFueSBleGlzdGluZyBFQ0RTQS9FZERTQSBjb2luIG9yXG4gKiBmb3IgWkVDJ3MgZXhpc3RpbmcgdHJhbnNwYXJlbnQgKHNlY3AyNTZrMSkgbXVsdGlzaWcvVFNTIGZsb3dzLlxuICovXG5leHBvcnQgdHlwZSBNUENBbGdvcml0aG0gPSAnZWNkc2EnIHwgJ2VkZHNhJyB8ICdyZWRwYWxsYXMnO1xuXG5leHBvcnQgdHlwZSBORlRUcmFuc2Zlck9wdGlvbnMgPSB7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHJlY2lwaWVudEFkZHJlc3M6IHN0cmluZztcbn0gJiAoXG4gIHwge1xuICAgICAgdHlwZTogJ0VSQzcyMScgfCBUb2tlblR5cGUuRElHSVRBTF9BU1NFVDtcbiAgICAgIHRva2VuSWQ6IHN0cmluZztcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ0VSQzExNTUnO1xuICAgICAgZW50cmllczogeyB0b2tlbklkOiBzdHJpbmc7IGFtb3VudDogbnVtYmVyIH1bXTtcbiAgICB9XG4pO1xuXG5leHBvcnQgdHlwZSBCdWlsZE5mdFRyYW5zZmVyRGF0YU9wdGlvbnMgPSBORlRUcmFuc2Zlck9wdGlvbnMgJiB7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VCcm9hZGNhc3RUcmFuc2FjdGlvbk9wdGlvbnMge1xuICBzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb246IHN0cmluZztcbiAgdHJhbnNhY3Rpb25zPzogTVBDVHhbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25SZXN1bHQge1xuICB0eElkPzogc3RyaW5nO1xuICB0eElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlQ29pbiB7XG4gIHR5cGU6IHN0cmluZztcbiAgdG9rZW5Db25maWc/OiBCYXNlVG9rZW5Db25maWc7XG4gIGdldENvbmZpZygpOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuICB1cmwoc3VmZml4OiBzdHJpbmcpOiBzdHJpbmc7XG4gIHdhbGxldHMoKTogSVdhbGxldHM7XG4gIGVudGVycHJpc2VzKCk6IElFbnRlcnByaXNlcztcbiAga2V5Y2hhaW5zKCk6IElLZXljaGFpbnM7XG4gIHdlYmhvb2tzKCk6IElXZWJob29rcztcbiAgcGVuZGluZ0FwcHJvdmFscygpOiBJUGVuZGluZ0FwcHJvdmFscztcbiAgbWFya2V0cygpOiBJTWFya2V0cztcbiAgZ2V0Q2hhaW4oKTogc3RyaW5nO1xuICBnZXRGYW1pbHkoKTogc3RyaW5nO1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmc7XG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuO1xuICBjaGVja1JlY2lwaWVudChcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB8IG51bWJlciB9LFxuICAgIG9wdGlvbnM/OiB7IGFsbG93WmVyb0Ftb3VudD86IGJvb2xlYW4gfVxuICApOiB2b2lkO1xuICBzd2VlcFdpdGhTZW5kTWFueSgpOiBib29sZWFuO1xuICB0cmFuc2FjdGlvbkRhdGFBbGxvd2VkKCk6IGJvb2xlYW47XG4gIGFsbG93c0FjY291bnRDb25zb2xpZGF0aW9ucygpOiBib29sZWFuO1xuICBzdXBwb3J0c1Jlc291cmNlRGVsZWdhdGlvbigpOiBib29sZWFuO1xuICBnZXRUb2tlbkVuYWJsZW1lbnRDb25maWcoKTogVG9rZW5FbmFibGVtZW50Q29uZmlnO1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuO1xuICBzdXBwb3J0c011bHRpc2lnKCk6IGJvb2xlYW47XG4gIGdldERlZmF1bHRNdWx0aXNpZ1R5cGUoKTogTXVsdGlzaWdUeXBlIHwgdW5kZWZpbmVkO1xuICBzdXBwb3J0c0Rlcml2ZUtleVdpdGhTZWVkKCk6IGJvb2xlYW47XG4gIGlzRVZNKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzQmxzRGtnKCk6IGJvb2xlYW47XG4gIHByZXBhcmVDb2xkVHJhbnNhY3Rpb248VCBleHRlbmRzIFRyYW5zYWN0aW9uUHJlYnVpbGQ+KFxuICAgIHR4UHJlYnVpbGQ6IFQsXG4gICAga2V5Y2hhaW5zOiBUcmlwbGU8S2V5Y2hhaW4+XG4gICk6IFQgJiBDb2xkVHJhbnNhY3Rpb25QcmVidWlsZDtcbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIgfCBzdHJpbmc7XG4gIGJhc2VVbml0c1RvQmlnVW5pdHMoYmFzZVVuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmc7XG4gIGJpZ1VuaXRzVG9CYXNlVW5pdHMoYmlnVW5pdHM6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZztcbiAgcHJlcHJvY2Vzc0J1aWxkUGFyYW1zKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHNpZ25NZXNzYWdlKGtleTogeyBwcnY6IHN0cmluZyB9LCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGNyZWF0ZUtleVNpZ25hdHVyZXMoXG4gICAgcHJ2OiBzdHJpbmcsXG4gICAgYmFja3VwS2V5Y2hhaW46IHsgcHViOiBzdHJpbmcgfSxcbiAgICBiaXRnb0tleWNoYWluOiB7IHB1Yjogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTx7XG4gICAgYmFja3VwOiBzdHJpbmc7XG4gICAgYml0Z286IHN0cmluZztcbiAgfT47XG4gIGV4cGxhaW5UcmFuc2FjdGlvbihcbiAgICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHdhbGxldD86IElXYWxsZXRcbiAgKTogUHJvbWlzZTxJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjxhbnksIHN0cmluZyB8IG51bWJlcj4gfCB1bmRlZmluZWQ+O1xuICB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIHZlcmlmeUFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zIHwgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsIHdhbGxldD86IElXYWxsZXQpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBkZXJpdmVBZGRyZXNzKHBhcmFtczogRGVyaXZlQWRkcmVzc09wdGlvbnMpOiBQcm9taXNlPERlcml2ZUFkZHJlc3NSZXN1bHQ+O1xuICBjYW5vbmljYWxBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgZm9ybWF0OiB1bmtub3duKTogc3RyaW5nO1xuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTGlnaHRuaW5nKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTWVzc2FnZVNpZ25pbmcoKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNTaWduaW5nVHlwZWREYXRhKCk6IGJvb2xlYW47XG4gIHN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldCh3YWxsZXRQYXJhbXM6IFN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldE9wdGlvbnMsIGtleWNoYWluczogS2V5Y2hhaW5zVHJpcGxldCk6IFByb21pc2U8YW55PjtcbiAgZ2V0RXh0cmFQcmVidWlsZFBhcmFtcyhidWlsZFBhcmFtczogRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcG9zdFByb2Nlc3NQcmVidWlsZChwcmVidWlsZFJlc3BvbnNlOiBUcmFuc2FjdGlvblByZWJ1aWxkKTogUHJvbWlzZTxUcmFuc2FjdGlvblByZWJ1aWxkPjtcbiAgcHJlc2lnblRyYW5zYWN0aW9uKHBhcmFtczogUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucz47XG4gIHNpZ25XaXRoQ3VzdG9tU2lnbmluZ0Z1bmN0aW9uPyhcbiAgICBjdXN0b21TaWduaW5nRnVuY3Rpb246IEN1c3RvbVNpZ25pbmdGdW5jdGlvbixcbiAgICBzaWduVHJhbnNhY3Rpb25QYXJhbXM6IHsgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDsgcHViczogc3RyaW5nW10gfVxuICApOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPjtcbiAgbmV3V2FsbGV0T2JqZWN0KHdhbGxldFBhcmFtczogYW55KTogSVdhbGxldDtcbiAgZmVlRXN0aW1hdGUocGFyYW1zOiBGZWVFc3RpbWF0ZU9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gIGRlcml2ZUtleVdpdGhTZWVkKHBhcmFtczogRGVyaXZlS2V5V2l0aFNlZWRPcHRpb25zKTogeyBrZXk6IHN0cmluZzsgZGVyaXZhdGlvblBhdGg6IHN0cmluZyB9O1xuICBrZXlJZHNGb3JTaWduaW5nKCk6IG51bWJlcltdO1xuICBwcmVDcmVhdGVCaXRHbyhwYXJhbXM6IFByZWNyZWF0ZUJpdEdvT3B0aW9ucyk6IHZvaWQ7XG4gIGluaXRpYXRlUmVjb3ZlcnkocGFyYW1zOiBJbml0aWF0ZVJlY292ZXJ5T3B0aW9ucyk6IG5ldmVyO1xuICBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPjtcbiAgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyO1xuICBnZW5lcmF0ZVJvb3RLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyO1xuICBpc1ZhbGlkUHViKHB1Yjogc3RyaW5nKTogYm9vbGVhbjtcbiAgaXNWYWxpZE1vZk5TZXR1cChwYXJhbXM6IFZhbGlkTW9mTk9wdGlvbnMpOiBib29sZWFuO1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuO1xuICBzaWduVHJhbnNhY3Rpb24ocGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj47XG4gIGdldFNpZ25hYmxlUGF5bG9hZChzZXJpYWxpemVkVHg6IHN0cmluZyk6IFByb21pc2U8QnVmZmVyPjtcbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobTtcbiAgLy8gVE9ETyAtIHRoaXMgb25seSBiZWxvbmdzIGluIGV0aCBjb2luc1xuICByZWNvdmVyVG9rZW4ocGFyYW1zOiBSZWNvdmVyV2FsbGV0VG9rZW5PcHRpb25zKTogUHJvbWlzZTxSZWNvdmVyVG9rZW5UcmFuc2FjdGlvbj47XG4gIGdldEluc2NyaXB0aW9uQnVpbGRlcih3YWxsZXQ6IFdhbGxldCk6IElJbnNjcmlwdGlvbkJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBjYWxsIGRhdGEgZm9yIHRyYW5zZmVycmluZyBhIE5GVChzKS5cbiAgICogQHBhcmFtIHBhcmFtcyBPcHRpb25zIHNwZWNpZnlpbmcgdGhlIHRva2VuIGNvbnRyYWN0LCB0b2tlbiByZWNpcGllbnQgJiB0aGUgdG9rZW4ocykgdG8gYmUgdHJhbnNmZXJyZWRcbiAgICogQHJldHVybiB0aGUgaGV4IHN0cmluZyBmb3IgdGhlIGNvbnRyYWN0IGNhbGwuXG4gICAqL1xuICBidWlsZE5mdFRyYW5zZmVyRGF0YShwYXJhbXM6IEJ1aWxkTmZ0VHJhbnNmZXJEYXRhT3B0aW9ucyk6IHN0cmluZyB8IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXM7XG4gIGdldEhhc2hGdW5jdGlvbigpOiBIYXNoO1xuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gc2lnbmFibGVIZXggaXMgYWxyZWFkeSB0aGUgZmluYWwgc2lnbmluZyBoYXNoIGZvciBNUEMgc2lnbmluZ1xuICAgKiAoZS5nLiBTSEEtMjU2IGZvciBBdmFsYW5jaGUgYXRvbWljIGNyb3NzLWNoYWluIHR4cykuIE9ubHkgaW1wbGVtZW50ZWQgYnkgY29pbnNcbiAgICogdGhhdCBwcm9kdWNlIHByZS1oYXNoZWQgc2lnbmFibGUgbWF0ZXJpYWwuXG4gICAqL1xuICBpc1NpZ25hYmxlUHJlSGFzaGVkPyh1bnNpZ25lZFR4OiBTaWduYWJsZVRyYW5zYWN0aW9uKTogYm9vbGVhbjtcbiAgYnJvYWRjYXN0VHJhbnNhY3Rpb24ocGFyYW1zOiBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25SZXN1bHQ+O1xuICBzZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChpbnRlbnQ6IFBvcHVsYXRlZEludGVudCwgcGFyYW1zOiBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBdWRpdCBhIGtleSB0byBkZXRlcm1pbmUgaWYgaXQgaXMgdmFsaWQgZm9yIHRoZSBjb2luLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBhdWRpdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnB1YmxpY0tleSAgLSBUaGUgcHVibGljIHBvcnRpb24gb2YgdGhlIGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmVuY3J5cHRlZFBydiAtIFRoZSBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gVGhlIHBhc3NwaHJhc2UgdG8gZGVjcnlwdCB0aGUgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5tdWx0aVNpZ1R5cGUgLSBUaGUgdHlwZSBvZiBtdWx0aXNpZyAoZS5nLiAnb25jaGFpbicgb3IgJ3RzcycpXG4gICAqL1xuICBhc3NlcnRJc1ZhbGlkS2V5KHBhcmFtczogQXVkaXRLZXlQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICByZXF1aXJlc1dhbGxldEluaXRpYWxpemF0aW9uVHJhbnNhY3Rpb24oKTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -25,7 +25,7 @@ export declare class DefiVault implements IDefiVault {
25
25
  constructor(wallet: IWallet);
26
26
  /**
27
27
  * Minimal dispatch codec. The deposit path reads only `protocol` to choose
28
- * between the concrete and morpho flows, so it must not hard-fail on the
28
+ * between the concrete, Morpho, and Aave flows, so it must not hard-fail on the
29
29
  * validity of unrelated response fields (e.g. `composition[]`) it never
30
30
  * consumes. A code path must not fail on the validity of data it does not
31
31
  * consume.
@@ -38,7 +38,7 @@ export declare class DefiVault implements IDefiVault {
38
38
  private fetchVaultRaw;
39
39
  /**
40
40
  * Fetch vault config from defi-service. Used internally to determine
41
- * which deposit path to take (Concrete vs Morpho).
41
+ * which deposit path to take (Concrete vs Morpho vs Aave V3).
42
42
  */
43
43
  getVaultConfig(params: GetVaultConfigOptions): Promise<GetVaultResponse>;
44
44
  /**
@@ -51,9 +51,9 @@ export declare class DefiVault implements IDefiVault {
51
51
  /**
52
52
  * Deposit an amount of underlying asset into a vault.
53
53
  *
54
- * Dispatches to the concrete or morpho path based on vault provider.
54
+ * Dispatches to the concrete, Morpho, or Aave V3 path based on vault provider.
55
55
  * The concrete path returns a pendingApproval (custodial wallet).
56
- * The morpho path issues two sendMany calls (approve + deposit).
56
+ * The Morpho and Aave V3 paths issue two sendMany calls (approve + deposit).
57
57
  *
58
58
  * @param params.vaultId - DeFi-service vault identifier
59
59
  * @param params.amount - amount in base units of the underlying asset
@@ -67,10 +67,10 @@ export declare class DefiVault implements IDefiVault {
67
67
  */
68
68
  private depositToConcreteVault;
69
69
  /**
70
- * Morpho vault deposit path. Issues two sendMany calls (approve + deposit)
71
- * and returns the operationId that links them.
70
+ * ERC-4626 vault deposit path (Morpho, Aave V3, ...). Issues two sendMany
71
+ * calls (approve + deposit) and returns the operationId that links them.
72
72
  */
73
- private depositToMorphoVault;
73
+ private depositToErc4626Vault;
74
74
  /**
75
75
  * Resume a partially-completed deposit. Call this when the SDK process died
76
76
  * between the approve and deposit txRequest creation.
@@ -1 +1 @@
1
- {"version":3,"file":"defiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/defiVault.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAGL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,MAAM;CAKhC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEtB,MAAM,EAAE,OAAO;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEhF;;;OAGG;YACW,aAAa;IAU3B;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS7E;;;;;;;;;;OAUG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB3E;;;;OAIG;YACW,sBAAsB;IAcpC;;;OAGG;YACW,oBAAoB;IAkDlC;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCzE;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAQvE;;;;;;;;OAQG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBrF;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BlF;;;;;;;;;;;;;;OAcG;IACG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD;;;;;;;OAOG;IACG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAMtD;;;;;;;OAOG;YACW,cAAc;IA+B5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,aAAa;CAGtB"}
1
+ {"version":3,"file":"defiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/defiVault.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAGL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,MAAM;CAKhC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEtB,MAAM,EAAE,OAAO;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEhF;;;OAGG;YACW,aAAa;IAU3B;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9E;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS7E;;;;;;;;;;OAUG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB3E;;;;OAIG;YACW,sBAAsB;IAcpC;;;OAGG;YACW,qBAAqB;IAkDnC;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCzE;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAQvE;;;;;;;;OAQG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBrF;;;;;;;;;;OAUG;IACG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BlF;;;;;;;;;;;;;;OAcG;IACG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD;;;;;;;OAOG;IACG,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAMtD;;;;;;;OAOG;YACW,cAAc;IA+B5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,aAAa;CAGtB"}
@@ -83,7 +83,7 @@ class DefiVault {
83
83
  }
84
84
  /**
85
85
  * Fetch vault config from defi-service. Used internally to determine
86
- * which deposit path to take (Concrete vs Morpho).
86
+ * which deposit path to take (Concrete vs Morpho vs Aave V3).
87
87
  */
88
88
  async getVaultConfig(params) {
89
89
  return (0, utils_1.decodeWithCodec)(public_types_1.GetVaultResponse, await this.fetchVaultRaw(params.vaultId), 'getVaultConfig');
@@ -101,9 +101,9 @@ class DefiVault {
101
101
  /**
102
102
  * Deposit an amount of underlying asset into a vault.
103
103
  *
104
- * Dispatches to the concrete or morpho path based on vault provider.
104
+ * Dispatches to the concrete, Morpho, or Aave V3 path based on vault provider.
105
105
  * The concrete path returns a pendingApproval (custodial wallet).
106
- * The morpho path issues two sendMany calls (approve + deposit).
106
+ * The Morpho and Aave V3 paths issue two sendMany calls (approve + deposit).
107
107
  *
108
108
  * @param params.vaultId - DeFi-service vault identifier
109
109
  * @param params.amount - amount in base units of the underlying asset
@@ -120,8 +120,8 @@ class DefiVault {
120
120
  if (protocol === public_types_1.VaultProtocol.CONCRETE_BTCCX) {
121
121
  return this.depositToConcreteVault(params);
122
122
  }
123
- else if (protocol === public_types_1.VaultProtocol.MORPHO) {
124
- return this.depositToMorphoVault(params);
123
+ else if (protocol === public_types_1.VaultProtocol.MORPHO || protocol === public_types_1.VaultProtocol.AAVE_V3) {
124
+ return this.depositToErc4626Vault(params);
125
125
  }
126
126
  else {
127
127
  throw new Error(`Unsupported vault protocol: ${protocol}`);
@@ -145,10 +145,10 @@ class DefiVault {
145
145
  return this.extractConcreteDepositResult(sendManyResult);
146
146
  }
147
147
  /**
148
- * Morpho vault deposit path. Issues two sendMany calls (approve + deposit)
149
- * and returns the operationId that links them.
148
+ * ERC-4626 vault deposit path (Morpho, Aave V3, ...). Issues two sendMany
149
+ * calls (approve + deposit) and returns the operationId that links them.
150
150
  */
151
- async depositToMorphoVault(params) {
151
+ async depositToErc4626Vault(params) {
152
152
  // TODO(CGD-1709): Re-enable active operation pre-flight check once the
153
153
  // defi-service operations endpoint is deployed and returning active state.
154
154
  // const activeOps: DefiOperationListResult = await this.bitgo
@@ -436,10 +436,10 @@ class DefiVault {
436
436
  exports.DefiVault = DefiVault;
437
437
  /**
438
438
  * Minimal dispatch codec. The deposit path reads only `protocol` to choose
439
- * between the concrete and morpho flows, so it must not hard-fail on the
439
+ * between the concrete, Morpho, and Aave flows, so it must not hard-fail on the
440
440
  * validity of unrelated response fields (e.g. `composition[]`) it never
441
441
  * consumes. A code path must not fail on the validity of data it does not
442
442
  * consume.
443
443
  */
444
444
  DefiVault.VaultDispatch = t.type({ protocol: public_types_1.VaultProtocolType });
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaVZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2RlZmkvZGVmaVZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQTJCO0FBQzNCLDRDQUE2QztBQUM3QyxzREFBeUY7QUFvQnpGLG9DQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsMEJBQTJCLFNBQVEsS0FBSztJQUduRCxZQUFZLFdBQW1CO1FBQzdCLEtBQUssQ0FBQywrQ0FBK0MsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQVJELGdFQVFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsU0FBUztJQUlwQixZQUFZLE1BQWU7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFXRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQWU7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDMUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUNyRCxNQUFNLEVBQUUsQ0FBQztJQUNkLENB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RSxRQUFRLEVBQUUsZ0NBQWlCLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBDb2luRmVhdHVyZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEdldFZhdWx0UmVzcG9uc2UsIFZhdWx0UHJvdG9jb2wsIFZhdWx0UHJvdG9jb2xUeXBlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQge1xuICBDb25jcmV0ZURlcG9zaXRSZXN1bHQsXG4gIE1vcnBob0RlcG9zaXRSZXN1bHQsXG4gIERlZmlPcGVyYXRpb24sXG4gIERlZmlPcGVyYXRpb25MaXN0UmVzdWx0LFxuICBEZXBvc2l0UmVzdWx0LFxuICBEZXBvc2l0VG9WYXVsdE9wdGlvbnMsXG4gIEdldE9wZXJhdGlvbk9wdGlvbnMsXG4gIEdldFZhdWx0Q29uZmlnT3B0aW9ucyxcbiAgSURlZmlWYXVsdCxcbiAgTGlzdE9wZXJhdGlvbnNPcHRpb25zLFxuICBSZXN1bWVEZXBvc2l0T3B0aW9ucyxcbiAgV2l0aGRyYXdGcm9tVmF1bHRPcHRpb25zLFxuICBXaXRoZHJhd1Jlc3VsdCxcbiAgV3JhcE9wdGlvbnMsXG4gIFdyYXBSZXN1bHQsXG59IGZyb20gJy4vaURlZmlWYXVsdCc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBkZWNvZGVXaXRoQ29kZWMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogRXJyb3IgdGhyb3duIHdoZW4gYSBjb25jdXJyZW50IGFjdGl2ZSBkZXBvc2l0IGFscmVhZHkgZXhpc3RzIGZvciB0aGUgKHdhbGxldCwgdmF1bHQpIHBhaXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3RpdmVPcGVyYXRpb25FeGlzdHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGlvbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3BlcmF0aW9uSWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGBBbiBhY3RpdmUgZGVwb3NpdCBvcGVyYXRpb24gYWxyZWFkeSBleGlzdHM6ICR7b3BlcmF0aW9uSWR9YCk7XG4gICAgdGhpcy5uYW1lID0gJ0FjdGl2ZU9wZXJhdGlvbkV4aXN0c0Vycm9yJztcbiAgICB0aGlzLm9wZXJhdGlvbklkID0gb3BlcmF0aW9uSWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBPcmNoZXN0cmF0ZXMgRVJDLTQ2MjYgdmF1bHQgZGVwb3NpdCBhbmQgd2l0aGRyYXcgZmxvd3MgZm9yIGEgd2FsbGV0LlxuICpcbiAqIEV4cG9zZWQgYXMgYHdhbGxldC5kZWZpYCBvbiB0aGUgV2FsbGV0IGNsYXNzLiBTZWUgVEREIMKnNi4zLjEgZm9yIHRoZSBmdWxsXG4gKiBkZXNpZ246IHRoZSBTREsgc2VxdWVuY2VzIHR3byBzZW5kTWFueSBjYWxscyAoYXBwcm92ZSArIGRlcG9zaXQpIGFuZFxuICogcmV0dXJucyBhbiBvcGVyYXRpb25JZCB0aGF0IHRoZSBVSSB1c2VzIGZvciBzdGF0dXMgdHJhY2tpbmcgYW5kIHJlY292ZXJ5LlxuICpcbiAqIFVzZXMgd2FsbGV0LnNlbmRNYW55KCkgdW5kZXIgdGhlIGhvb2Qgc28gdGhhdCBib3RoIGN1c3RvZHkgd2FsbGV0c1xuICogKHR4UmVxdWVzdCBjcmVhdGlvbiBvbmx5KSBhbmQgaG90IHdhbGxldHMgKGNyZWF0ZSArIHNpZ24gKyBicm9hZGNhc3QpXG4gKiBhcmUgaGFuZGxlZCBieSB0aGUgZXhpc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZpVmF1bHQgaW1wbGVtZW50cyBJRGVmaVZhdWx0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB3YWxsZXQ6IElXYWxsZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IElXYWxsZXQpIHtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmJpdGdvID0gd2FsbGV0LmJpdGdvO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltYWwgZGlzcGF0Y2ggY29kZWMuIFRoZSBkZXBvc2l0IHBhdGggcmVhZHMgb25seSBgcHJvdG9jb2xgIHRvIGNob29zZVxuICAgKiBiZXR3ZWVuIHRoZSBjb25jcmV0ZSBhbmQgbW9ycGhvIGZsb3dzLCBzbyBpdCBtdXN0IG5vdCBoYXJkLWZhaWwgb24gdGhlXG4gICAqIHZhbGlkaXR5IG9mIHVucmVsYXRlZCByZXNwb25zZSBmaWVsZHMgKGUuZy4gYGNvbXBvc2l0aW9uW11gKSBpdCBuZXZlclxuICAgKiBjb25zdW1lcy4gQSBjb2RlIHBhdGggbXVzdCBub3QgZmFpbCBvbiB0aGUgdmFsaWRpdHkgb2YgZGF0YSBpdCBkb2VzIG5vdFxuICAgKiBjb25zdW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVmF1bHREaXNwYXRjaCA9IHQudHlwZSh7IHByb3RvY29sOiBWYXVsdFByb3RvY29sVHlwZSB9KTtcblxuICAvKipcbiAgICogRmV0Y2ggdGhlIHJhdyB2YXVsdCBjb25maWcgZnJvbSBkZWZpLXNlcnZpY2UuIFNoYXJlZCBieSBjYWxsZXJzIHRoYXRcbiAgICogZGVjb2RlIHRoZSBmdWxsIHJlc3BvbnNlIGFuZCBjYWxsZXJzIHRoYXQgZGVjb2RlIG9ubHkgd2hhdCB0aGV5IHVzZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hWYXVsdFJhdyh2YXVsdElkOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBpZiAoIXZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvZGVmaS1zZXJ2aWNlL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9YCkpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy53YWxsZXQudG9KU09OKCkuZW50ZXJwcmlzZSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB2YXVsdCBjb25maWcgZnJvbSBkZWZpLXNlcnZpY2UuIFVzZWQgaW50ZXJuYWxseSB0byBkZXRlcm1pbmVcbiAgICogd2hpY2ggZGVwb3NpdCBwYXRoIHRvIHRha2UgKENvbmNyZXRlIHZzIE1vcnBobykuXG4gICAqL1xuICBhc3luYyBnZXRWYXVsdENvbmZpZyhwYXJhbXM6IEdldFZhdWx0Q29uZmlnT3B0aW9ucyk6IFByb21pc2U8R2V0VmF1bHRSZXNwb25zZT4ge1xuICAgIHJldHVybiBkZWNvZGVXaXRoQ29kZWMoR2V0VmF1bHRSZXNwb25zZSwgYXdhaXQgdGhpcy5mZXRjaFZhdWx0UmF3KHBhcmFtcy52YXVsdElkKSwgJ2dldFZhdWx0Q29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggb25seSB0aGUgdmF1bHQgcHJvdG9jb2wgZnJvbSBkZWZpLXNlcnZpY2UuIERlY29kZXMgdGhlIG1pbmltYWxcbiAgICogYFZhdWx0RGlzcGF0Y2hgIHNoYXBlIHJhdGhlciB0aGFuIHRoZSBmdWxsIGBHZXRWYXVsdFJlc3BvbnNlYCwgc28gY2FsbGVyc1xuICAgKiB0aGF0IG5lZWQgb25seSB0aGUgcHJvdG9jb2wgYXJlIG5vdCBob3N0YWdlIHRvIHRoZSB2YWxpZGl0eSBvZiB1bnJlbGF0ZWRcbiAgICogcmVzcG9uc2UgZmllbGRzIChlLmcuIGBjb21wb3NpdGlvbltdYCkgdGhleSBuZXZlciBjb25zdW1lLlxuICAgKi9cbiAgYXN5bmMgZ2V0VmF1bHRQcm90b2NvbChwYXJhbXM6IEdldFZhdWx0Q29uZmlnT3B0aW9ucyk6IFByb21pc2U8VmF1bHRQcm90b2NvbD4ge1xuICAgIGNvbnN0IHsgcHJvdG9jb2wgfSA9IGRlY29kZVdpdGhDb2RlYyhcbiAgICAgIERlZmlWYXVsdC5WYXVsdERpc3BhdGNoLFxuICAgICAgYXdhaXQgdGhpcy5mZXRjaFZhdWx0UmF3KHBhcmFtcy52YXVsdElkKSxcbiAgICAgICd2YXVsdERpc3BhdGNoJ1xuICAgICk7XG4gICAgcmV0dXJuIHByb3RvY29sO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcG9zaXQgYW4gYW1vdW50IG9mIHVuZGVybHlpbmcgYXNzZXQgaW50byBhIHZhdWx0LlxuICAgKlxuICAgKiBEaXNwYXRjaGVzIHRvIHRoZSBjb25jcmV0ZSBvciBtb3JwaG8gcGF0aCBiYXNlZCBvbiB2YXVsdCBwcm92aWRlci5cbiAgICogVGhlIGNvbmNyZXRlIHBhdGggcmV0dXJucyBhIHBlbmRpbmdBcHByb3ZhbCAoY3VzdG9kaWFsIHdhbGxldCkuXG4gICAqIFRoZSBtb3JwaG8gcGF0aCBpc3N1ZXMgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdCkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBwYXJhbXMuYW1vdW50IC0gYW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXRcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyBkZXBvc2l0VG9WYXVsdChwYXJhbXM6IERlcG9zaXRUb1ZhdWx0T3B0aW9ucyk6IFByb21pc2U8RGVwb3NpdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLnZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXBhcmFtcy5hbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYW1vdW50IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBhd2FpdCB0aGlzLmdldFZhdWx0UHJvdG9jb2woeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCB9KTtcblxuICAgIGlmIChwcm90b2NvbCA9PT0gVmF1bHRQcm90b2NvbC5DT05DUkVURV9CVENDWCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVwb3NpdFRvQ29uY3JldGVWYXVsdChwYXJhbXMpO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IFZhdWx0UHJvdG9jb2wuTU9SUEhPKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZXBvc2l0VG9Nb3JwaG9WYXVsdChwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZhdWx0IHByb3RvY29sOiAke3Byb3RvY29sfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25jcmV0ZSBCVEMgdmF1bHQgZGVwb3NpdCBwYXRoLiBUaGUgY2xpZW50IEJUQyB3YWxsZXQgaXMgY3VzdG9kaWFsLCBzb1xuICAgKiBzZW5kTWFueSByZXR1cm5zIGEgcGVuZGluZ0FwcHJvdmFsIHJhdGhlciB0aGFuIGEgc2lnbmVkIHRyYW5zZmVyLlxuICAgKiBObyByZWNpcGllbnRzIGFyZSBzZW50IOKAlCBXUCByZXNvbHZlcyB0aGUgZXNjcm93IGRlc3RpbmF0aW9uIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBvc2l0VG9Db25jcmV0ZVZhdWx0KHBhcmFtczogRGVwb3NpdFRvVmF1bHRPcHRpb25zKTogUHJvbWlzZTxDb25jcmV0ZURlcG9zaXRSZXN1bHQ+IHtcbiAgICBjb25zdCBzZW5kTWFueVJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpLWRlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgICBhY3Rpb25UeXBlOiAnZGVmaS1kZXBvc2l0JyxcbiAgICAgIH0sXG4gICAgICAuLi4ocGFyYW1zLndhbGxldFBhc3NwaHJhc2UgPyB7IHdhbGxldFBhc3NwaHJhc2U6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIH0gOiB7fSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5leHRyYWN0Q29uY3JldGVEZXBvc2l0UmVzdWx0KHNlbmRNYW55UmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3JwaG8gdmF1bHQgZGVwb3NpdCBwYXRoLiBJc3N1ZXMgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdClcbiAgICogYW5kIHJldHVybnMgdGhlIG9wZXJhdGlvbklkIHRoYXQgbGlua3MgdGhlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZGVwb3NpdFRvTW9ycGhvVmF1bHQocGFyYW1zOiBEZXBvc2l0VG9WYXVsdE9wdGlvbnMpOiBQcm9taXNlPE1vcnBob0RlcG9zaXRSZXN1bHQ+IHtcbiAgICAvLyBUT0RPKENHRC0xNzA5KTogUmUtZW5hYmxlIGFjdGl2ZSBvcGVyYXRpb24gcHJlLWZsaWdodCBjaGVjayBvbmNlIHRoZVxuICAgIC8vIGRlZmktc2VydmljZSBvcGVyYXRpb25zIGVuZHBvaW50IGlzIGRlcGxveWVkIGFuZCByZXR1cm5pbmcgYWN0aXZlIHN0YXRlLlxuICAgIC8vIGNvbnN0IGFjdGl2ZU9wczogRGVmaU9wZXJhdGlvbkxpc3RSZXN1bHQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgLy8gICAuZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLm9wZXJhdGlvbnNVcmwoKSkpXG4gICAgLy8gICAucXVlcnkoeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCwgc3RhdGU6ICdhY3RpdmUnIH0pXG4gICAgLy8gICAucmVzdWx0KCk7XG4gICAgLy9cbiAgICAvLyBpZiAoYWN0aXZlT3BzLml0ZW1zICYmIGFjdGl2ZU9wcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICB0aHJvdyBuZXcgQWN0aXZlT3BlcmF0aW9uRXhpc3RzRXJyb3IoYWN0aXZlT3BzLml0ZW1zWzBdLm9wZXJhdGlvbklkKTtcbiAgICAvLyB9XG5cbiAgICAvLyBTdGVwIDE6IEFwcHJvdmUgdHhSZXF1ZXN0IHZpYSBzZW5kTWFueVxuICAgIGNvbnN0IGFwcHJvdmVSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaUFwcHJvdmUnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwcHJvdmVUeFJlcXVlc3RJZCA9IHRoaXMuZXh0cmFjdFR4UmVxdWVzdElkKGFwcHJvdmVSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQoYXBwcm92ZVJlc3VsdCk7XG5cbiAgICBpZiAoIW9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIG5vdCBmb3VuZCBpbiBhcHByb3ZlIHR4UmVxdWVzdCByZXNwb25zZScpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMjogRGVwb3NpdCB0eFJlcXVlc3QgdmlhIHNlbmRNYW55XG4gICAgY29uc3QgZGVwb3NpdFJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpRGVwb3NpdCcsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcbiAgICBjb25zdCBkZXBvc2l0VHhSZXF1ZXN0SWQgPSB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KTtcblxuICAgIHJldHVybiB7XG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIHR4UmVxdWVzdElkczoge1xuICAgICAgICBhcHByb3ZlOiBhcHByb3ZlVHhSZXF1ZXN0SWQsXG4gICAgICAgIGRlcG9zaXQ6IGRlcG9zaXRUeFJlcXVlc3RJZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1bWUgYSBwYXJ0aWFsbHktY29tcGxldGVkIGRlcG9zaXQuIENhbGwgdGhpcyB3aGVuIHRoZSBTREsgcHJvY2VzcyBkaWVkXG4gICAqIGJldHdlZW4gdGhlIGFwcHJvdmUgYW5kIGRlcG9zaXQgdHhSZXF1ZXN0IGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLm9wZXJhdGlvbklkIC0gdGhlIG9wZXJhdGlvbklkIGZyb20gdGhlIG9yaWdpbmFsIGRlcG9zaXRUb1ZhdWx0IGNhbGxcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyByZXN1bWVEZXBvc2l0KHBhcmFtczogUmVzdW1lRGVwb3NpdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8vIEZldGNoIHRoZSBvcGVyYXRpb24gdG8gZ2V0IHRoZSB2YXVsdCBhbmQgYW1vdW50IGRldGFpbHNcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLmdldE9wZXJhdGlvbih7IG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQgfSk7XG5cbiAgICBpZiAob3BlcmF0aW9uLmFzc29jaWF0ZWRUeFJlcXVlc3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXBvc2l0IHR4UmVxdWVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBvcGVyYXRpb247IG5vdGhpbmcgdG8gcmVzdW1lJyk7XG4gICAgfVxuXG4gICAgaWYgKCFvcGVyYXRpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXBwcm92ZSB0eFJlcXVlc3Qgbm90IGZvdW5kIGZvciB0aGlzIG9wZXJhdGlvbjsgY2Fubm90IHJlc3VtZScpO1xuICAgIH1cblxuICAgIC8vIElzc3VlIHRoZSBkZXBvc2l0IHR4UmVxdWVzdCB1c2luZyB0aGUgZXhpc3Rpbmcgb3BlcmF0aW9uJ3MgZGV0YWlsc1xuICAgIGNvbnN0IGRlcG9zaXRSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaURlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBvcGVyYXRpb24udmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBvcGVyYXRpb24uYXNzZXRBbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB0eFJlcXVlc3RJZHM6IHtcbiAgICAgICAgYXBwcm92ZTogb3BlcmF0aW9uLnR4UmVxdWVzdElkLFxuICAgICAgICBkZXBvc2l0OiB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSBEZUZpIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5vcGVyYXRpb25JZCAtIHRoZSBvcGVyYXRpb24gdG8gcmV0cmlldmVcbiAgICovXG4gIGFzeW5jIGdldE9wZXJhdGlvbihwYXJhbXM6IEdldE9wZXJhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb24+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkgKyAnLycgKyBwYXJhbXMub3BlcmF0aW9uSWQpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9wZXJhdGlvbnMgZm9yIGEgdmF1bHQgZmlsdGVyZWQgYnkgd2FsbGV0SWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIHZhdWx0IHRvIGxpc3Qgb3BlcmF0aW9ucyBmb3JcbiAgICogQHBhcmFtIHBhcmFtcy5zdGF0ZSAtIG9wdGlvbmFsIHN0YXRlIGZpbHRlclxuICAgKiBAcGFyYW0gcGFyYW1zLnR5cGUgLSBvcHRpb25hbCB0eXBlIGZpbHRlciAoREVQT1NJVCB8IFdJVEhEUkFXKVxuICAgKiBAcGFyYW0gcGFyYW1zLmxpbWl0IC0gcGFnZSBzaXplXG4gICAqIEBwYXJhbSBwYXJhbXMuY3Vyc29yIC0gcGFnaW5hdGlvbiBjdXJzb3JcbiAgICovXG4gIGFzeW5jIGxpc3RPcGVyYXRpb25zKHBhcmFtczogTGlzdE9wZXJhdGlvbnNPcHRpb25zKTogUHJvbWlzZTxEZWZpT3BlcmF0aW9uTGlzdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLnZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+ID0ge1xuICAgICAgdmF1bHRJZDogcGFyYW1zLnZhdWx0SWQsXG4gICAgfTtcbiAgICBpZiAocGFyYW1zLnN0YXRlKSBxdWVyeS5zdGF0ZSA9IHBhcmFtcy5zdGF0ZTtcbiAgICBpZiAocGFyYW1zLnR5cGUpIHF1ZXJ5LnR5cGUgPSBwYXJhbXMudHlwZTtcbiAgICBpZiAocGFyYW1zLmxpbWl0KSBxdWVyeS5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICBpZiAocGFyYW1zLmN1cnNvcikgcXVlcnkuY3Vyc29yID0gcGFyYW1zLmN1cnNvcjtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkpKS5xdWVyeShxdWVyeSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2l0aGRyYXcgdmF1bHQgc2hhcmVzIGZyb20gYSBEZUZpIHZhdWx0LlxuICAgKlxuICAgKiBJc3N1ZXMgYSBzaW5nbGUgc2VuZE1hbnkgY2FsbCAoZGVmaVdpdGhkcmF3KSBhbmQgcmV0dXJucyB0aGUgb3BlcmF0aW9uSWRcbiAgICogYW5kIHR4UmVxdWVzdElkLiBUaGUgc3RhdGUgbWFjaGluZSBmb3Igd2l0aGRyYXdhbCBpcyBzaW1wbGVyIHRoYW4gZGVwb3NpdDpcbiAgICogQ1JFQVRFRCDihpIgV0lUSERSQVdfVFhfUkVRVUVTVEVEIOKGkiBXSVRIRFJBV19TSUdORUQg4oaSIFdJVEhEUkFXX0NPTkZJUk1FRCDihpIgQ09NUExFVEVEXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBwYXJhbXMuYW1vdW50IC0gYW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHZhdWx0IHNoYXJlIHRva2VuXG4gICAqIEBwYXJhbSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSAtIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keVxuICAgKi9cbiAgYXN5bmMgd2l0aGRyYXdGcm9tVmF1bHQocGFyYW1zOiBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMpOiBQcm9taXNlPFdpdGhkcmF3UmVzdWx0PiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3aXRoZHJhd1Jlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpV2l0aGRyYXcnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHR4UmVxdWVzdElkID0gdGhpcy5leHRyYWN0VHhSZXF1ZXN0SWQod2l0aGRyYXdSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQod2l0aGRyYXdSZXN1bHQpO1xuXG4gICAgaWYgKCFvcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBub3QgZm91bmQgaW4gd2l0aGRyYXcgdHhSZXF1ZXN0IHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3BlcmF0aW9uSWQsIHR4UmVxdWVzdElkIH07XG4gIH1cblxuICAvKipcbiAgICogV3JhcCBuYXRpdmUgY3VycmVuY3kgaW50byBpdHMgY2Fub25pY2FsIHdyYXBwZWQtbmF0aXZlIEVSQy0yMFxuICAgKiAoRVRIIOKGkiBXRVRIIHZpYSB0aGUgV0VUSDkgYGRlcG9zaXQoKWAgY2FsbCkuXG4gICAqXG4gICAqIEEgdGhpbiBvcmNoZXN0cmF0b3Igb3ZlciBhIHNpbmdsZSBzZW5kTWFueSwgbGlrZSB7QGxpbmsgd2l0aGRyYXdGcm9tVmF1bHR9LlxuICAgKiBXUCBidWlsZHMgdGhlIGNhbGxkYXRhIGFuZCByZXNvbHZlcyB0aGUgV0VUSDkgYWRkcmVzcyBzZXJ2ZXItc2lkZSBmcm9tIHRoZVxuICAgKiB2YXVsdCBiaW5kaW5nOyB0aGUgU0RLIG9ubHkgZm9yd2FyZHMgdmF1bHRJZCBhbmQgYW1vdW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnZhdWx0SWQgLSBEZUZpLXNlcnZpY2UgdmF1bHQgaWRlbnRpZmllci4gUmVxdWlyZWQgaW4gdjE6IGJpbmRpbmdcbiAgICogICB0aGUgd3JhcCB0byBhIHZhdWx0IGlzIHdoYXQgc3VwcGxpZXMgdGhlIHBlci1lbnRlcnByaXNlIGF1dGhvcml6YXRpb24gZ2F0ZVxuICAgKiAgIGFuZCB0aGUgYWRkcmVzcy13aGl0ZWxpc3QgcGF0aCBzZXJ2ZXItc2lkZSAoVEREIMKnMy42KS4gTTcgbWFrZXMgaXQgb3B0aW9uYWwsXG4gICAqICAgd2hpY2ggaXMgYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgbmF0aXZlIGNvaW4gKDE4ZHAgZm9yIEVUSClcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyB3cmFwKHBhcmFtczogV3JhcE9wdGlvbnMpOiBQcm9taXNlPFdyYXBSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZW5kV3JhcEludGVudCgnd3JhcE5hdGl2ZScsIHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogVW53cmFwIHRoZSBjYW5vbmljYWwgd3JhcHBlZC1uYXRpdmUgRVJDLTIwIGJhY2sgdG8gbmF0aXZlIGN1cnJlbmN5XG4gICAqIChXRVRIIOKGkiBFVEggdmlhIHRoZSBXRVRIOSBgd2l0aGRyYXcodWludDI1NilgIGNhbGwpLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnZhdWx0SWQgLSBEZUZpLXNlcnZpY2UgdmF1bHQgaWRlbnRpZmllciAoc2VlIHtAbGluayB3cmFwfSlcbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgd3JhcHBlZCB0b2tlbiAoMThkcCBmb3IgV0VUSClcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyB1bndyYXAocGFyYW1zOiBXcmFwT3B0aW9ucyk6IFByb21pc2U8V3JhcFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnNlbmRXcmFwSW50ZW50KCd1bndyYXBOYXRpdmUnLCBwYXJhbXMpO1xuICB9XG5cbiAgLy8g4pSA4pSAIEludGVybmFsIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIFNoYXJlZCBib2R5IG9mIHtAbGluayB3cmFwfSBhbmQge0BsaW5rIHVud3JhcH0g4oCUIHRoZSB0d28gZGlmZmVyIG9ubHkgaW4gdGhlXG4gICAqIHNlbmRNYW55IHR5cGUgdGhleSBpc3N1ZS5cbiAgICpcbiAgICogRGVsaWJlcmF0ZWx5IGRvZXMgbm90IGNhbGwge0BsaW5rIGV4dHJhY3RPcGVyYXRpb25JZH06IG5vIG9wZXJhdGlvbiBpcyBtaW50ZWRcbiAgICogZm9yIHdyYXAvdW53cmFwIGluIHYxLCBzbyBpdCB3b3VsZCBvbmx5IGV2ZXIgcmV0dXJuIHVuZGVmaW5lZC4gT3BlcmF0aW9uXG4gICAqIHRyYWNraW5nIGFycml2ZXMgaW4gbWlsZXN0b25lIE01LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZW5kV3JhcEludGVudCh0eXBlOiAnd3JhcE5hdGl2ZScgfCAndW53cmFwTmF0aXZlJywgcGFyYW1zOiBXcmFwT3B0aW9ucyk6IFByb21pc2U8V3JhcFJlc3VsdD4ge1xuICAgIGNvbnN0IHZhdWx0SWQgPSBwYXJhbXMudmF1bHRJZD8udHJpbSgpO1xuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIC8vIFRoZSBkb3duc3RyZWFtIEJpZ0ludEZyb21TdHJpbmcgY29kZWMgKHdhbGxldC50cykgYWNjZXB0cyBhbnl0aGluZyBKUydzIEJpZ0ludCgpIGNvbnN0cnVjdG9yXG4gICAgLy8gZG9lcyAtIG5lZ2F0aXZlIGFtb3VudHMsIGhleCBzdHJpbmdzIGxpa2UgJzB4YWJjJywgYW5kIHplcm8gLSBhbmQgdGhpcyBhbW91bnQgZm9yd2FyZHNcbiAgICAvLyBzdHJhaWdodCBpbnRvIGEgdmFsdWUtbW92aW5nIFdFVEg5IGRlcG9zaXQoKS93aXRoZHJhdygpIGNhbGwuIFJlcXVpcmUgYSBwb3NpdGl2ZSB1bnNpZ25lZFxuICAgIC8vIGRlY2ltYWwgaW50ZWdlciBzdHJpbmcgaGVyZTsgemVybyBpcyBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQgdG9vLCBzaW5jZSBhIHplcm8tYW1vdW50IHdyYXAvXG4gICAgLy8gdW53cmFwIGhhcyBubyBvbi1jaGFpbiBlZmZlY3QgYnV0IHdvdWxkIHN0aWxsIHNwZW5kIGdhcy5cbiAgICBpZiAoIXBhcmFtcy5hbW91bnQgfHwgIS9eXFxkKyQvLnRlc3QocGFyYW1zLmFtb3VudCkgfHwgQmlnSW50KHBhcmFtcy5hbW91bnQpID09PSAwbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgbXVzdCBiZSBhIHBvc2l0aXZlIHVuc2lnbmVkIGRlY2ltYWwgaW50ZWdlciBzdHJpbmcnKTtcbiAgICB9XG4gICAgLy8gV3JhcHBlZC1uYXRpdmUgdmF1bHRzIChXRVRIOSBkZXBvc2l0KCkvd2l0aGRyYXcoKSkgb25seSBleGlzdCBvbiBFVk0gY2hhaW5zLiBGYWlsIGZhc3QgaGVyZVxuICAgIC8vIGluc3RlYWQgb2YgbGV0dGluZyBhbiB1bnN1cHBvcnRlZCBjb2luIHJlYWNoIHdhbGxldC1wbGF0Zm9ybSBhbmQgcmV0dXJuIGFuIG9wYXF1ZSBwcmVidWlsZCBlcnJvci5cbiAgICBpZiAoIXRoaXMud2FsbGV0LmJhc2VDb2luLmdldENvbmZpZygpLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLkVWTV9DT0lOKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB3cmFwL3Vud3JhcCBpcyBub3Qgc3VwcG9ydGVkIGZvciAke3RoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpfSB3YWxsZXRzYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy53YWxsZXQuc2VuZE1hbnkoe1xuICAgICAgdHlwZSxcbiAgICAgIGRlZmlQYXJhbXM6IHtcbiAgICAgICAgdmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHR4UmVxdWVzdElkOiB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChyZXN1bHQpIH07XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0eFJlcXVlc3RJZCBmcm9tIGEgc2VuZE1hbnkgcmVzdWx0LlxuICAgKiBzZW5kTWFueSByZXR1cm5zIGRpZmZlcmVudCBzaGFwZXMgZGVwZW5kaW5nIG9uIHdhbGxldCB0eXBlOlxuICAgKiAtIFRTUyBmdWxsOiB7IHR4UmVxdWVzdDogeyB0eFJlcXVlc3RJZCB9IH0gb3IgeyBwZW5kaW5nQXBwcm92YWwsIHR4UmVxdWVzdCB9XG4gICAqIC0gVFNTIGxpdGU6IHJlc3VsdCBmcm9tIHRzc1V0aWxzLnNlbmRUeFJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdFR4UmVxdWVzdElkKHNlbmRNYW55UmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyB7XG4gICAgY29uc3QgdHhSZXF1ZXN0ID0gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eFJlcXVlc3Q/LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gdHhSZXF1ZXN0LnR4UmVxdWVzdElkIGFzIHN0cmluZztcbiAgICB9XG4gICAgaWYgKHNlbmRNYW55UmVzdWx0LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0SWQgYXMgc3RyaW5nO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4UmVxdWVzdElkIG5vdCBmb3VuZCBpbiBzZW5kTWFueSByZXNwb25zZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3Qgb3BlcmF0aW9uSWQgZnJvbSBhIHNlbmRNYW55IHJlc3VsdC5cbiAgICpcbiAgICogVGhlIFdQIHdyaXRlcyB0aGUgZGVmaS1zZXJ2aWNlLW1pbnRlZCBvcGVyYXRpb25JZCBpbnRvIHRoZSBidWlsdFxuICAgKiB0cmFuc2FjdGlvbidzIGBjb2luU3BlY2lmaWNgIChhbG9uZ3NpZGUgYGFzc2lnbmVkTm9uY2VgKSwgbm90IGludG8gdGhlXG4gICAqIGludGVudC4gUmVhZCBpdCBmcm9tIHRoZXJlOiB0aGUgYGZ1bGxgIGFwaVZlcnNpb24gc3VyZmFjZXMgaXQgYXRcbiAgICogYHRyYW5zYWN0aW9uc1swXS51bnNpZ25lZFR4LmNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZGAsIHRoZSBgbGl0ZWAgdmVyc2lvblxuICAgKiBhdCBgdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkYC4gRmFsbCBiYWNrIHRvXG4gICAqIGBpbnRlbnQub3BlcmF0aW9uSWRgIGZvciBmb3J3YXJkLWNvbXBhdCBpbiBjYXNlIHRoZSBXUCBsYXRlciBhbHNvXG4gICAqIHBvcHVsYXRlcyB0aGUgaW50ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0T3BlcmF0aW9uSWQoc2VuZE1hbnlSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0eFJlcXVlc3QgPSBzZW5kTWFueVJlc3VsdC50eFJlcXVlc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eFJlcXVlc3QpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gZnVsbCBhcGlWZXJzaW9uOiB0cmFuc2FjdGlvbnNbMF0udW5zaWduZWRUeC5jb2luU3BlY2lmaWMub3BlcmF0aW9uSWRcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0eFJlcXVlc3QudHJhbnNhY3Rpb25zIGFzIEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmdWxsVW5zaWduZWRUeCA9IHRyYW5zYWN0aW9ucz8uWzBdPy51bnNpZ25lZFR4IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZ1bGxDb2luU3BlY2lmaWMgPSBmdWxsVW5zaWduZWRUeD8uY29pblNwZWNpZmljIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmdWxsQ29pblNwZWNpZmljPy5vcGVyYXRpb25JZCkge1xuICAgICAgcmV0dXJuIGZ1bGxDb2luU3BlY2lmaWMub3BlcmF0aW9uSWQgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8vIGxpdGUgYXBpVmVyc2lvbjogdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkXG4gICAgY29uc3QgdW5zaWduZWRUeHMgPSB0eFJlcXVlc3QudW5zaWduZWRUeHMgYXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxpdGVDb2luU3BlY2lmaWMgPSB1bnNpZ25lZFR4cz8uWzBdPy5jb2luU3BlY2lmaWMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGxpdGVDb2luU3BlY2lmaWM/Lm9wZXJhdGlvbklkKSB7XG4gICAgICByZXR1cm4gbGl0ZUNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZCBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gZm9yd2FyZC1jb21wYXQ6IGludGVudC5vcGVyYXRpb25JZCAoaW4gY2FzZSB0aGUgV1AgbGF0ZXIgcG9wdWxhdGVzIHRoZSBpbnRlbnQpXG4gICAgY29uc3QgaW50ZW50ID0gdHhSZXF1ZXN0LmludGVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaW50ZW50Py5vcGVyYXRpb25JZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMge0BsaW5rIENvbmNyZXRlRGVwb3NpdFJlc3VsdH0gZnJvbSBhIGN1c3RvZGlhbCBzZW5kTWFueSByZXNwb25zZS5cbiAgICogQ29uY3JldGUgQlRDIGRlcG9zaXRzIHJldHVybiBhIGBwZW5kaW5nQXBwcm92YWxgIGluc3RlYWQgb2YgYSB0eFJlcXVlc3Qg4oCUXG4gICAqIHRocm93cyBpZiBgcGVuZGluZ0FwcHJvdmFsLmlkYCBpcyBhYnNlbnQsIGluZGljYXRpbmcgYW4gdW5leHBlY3RlZCBzaGFwZS5cbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdENvbmNyZXRlRGVwb3NpdFJlc3VsdChzZW5kTWFueVJlc3VsdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBDb25jcmV0ZURlcG9zaXRSZXN1bHQge1xuICAgIGNvbnN0IFNlbmRNYW55Q29uY3JldGVSZXNwb25zZSA9IHQudHlwZSh7XG4gICAgICBwZW5kaW5nQXBwcm92YWw6IHQuaW50ZXJzZWN0aW9uKFt0LnR5cGUoeyBpZDogdC5zdHJpbmcgfSksIHQucGFydGlhbCh7IHN0YXRlOiB0LnN0cmluZyB9KV0pLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVXaXRoQ29kZWMoU2VuZE1hbnlDb25jcmV0ZVJlc3BvbnNlLCBzZW5kTWFueVJlc3VsdCwgJ2RlZmktZGVwb3NpdCBzZW5kTWFueSByZXNwb25zZScpO1xuICAgIHJldHVybiB7XG4gICAgICBwZW5kaW5nQXBwcm92YWxJZDogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuaWQsXG4gICAgICBzdGF0ZTogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuc3RhdGUgPz8gJ2F3YWl0aW5nU2lnbmF0dXJlJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYXRpb25zVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvYXBpL2RlZmktc2VydmljZS92MS93YWxsZXRzLyR7dGhpcy53YWxsZXQuaWQoKX0vb3BlcmF0aW9uc2A7XG4gIH1cbn1cbiJdfQ==
445
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaVZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2RlZmkvZGVmaVZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gseUNBQTJCO0FBQzNCLDRDQUE2QztBQUM3QyxzREFBeUY7QUFvQnpGLG9DQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsMEJBQTJCLFNBQVEsS0FBSztJQUduRCxZQUFZLFdBQW1CO1FBQzdCLEtBQUssQ0FBQywrQ0FBK0MsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLDRCQUE0QixDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQVJELGdFQVFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsU0FBUztJQUlwQixZQUFZLE1BQWU7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFXRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQWU7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsK0JBQStCLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDMUUsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUNyRCxNQUFNLEVBQUUsQ0FBQztJQUNkLENB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QWEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLGdDQUFpQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgQ29pbkZlYXR1cmUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBHZXRWYXVsdFJlc3BvbnNlLCBWYXVsdFByb3RvY29sLCBWYXVsdFByb3RvY29sVHlwZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ29uY3JldGVEZXBvc2l0UmVzdWx0LFxuICBFcmM0NjI2RGVwb3NpdFJlc3VsdCxcbiAgRGVmaU9wZXJhdGlvbixcbiAgRGVmaU9wZXJhdGlvbkxpc3RSZXN1bHQsXG4gIERlcG9zaXRSZXN1bHQsXG4gIERlcG9zaXRUb1ZhdWx0T3B0aW9ucyxcbiAgR2V0T3BlcmF0aW9uT3B0aW9ucyxcbiAgR2V0VmF1bHRDb25maWdPcHRpb25zLFxuICBJRGVmaVZhdWx0LFxuICBMaXN0T3BlcmF0aW9uc09wdGlvbnMsXG4gIFJlc3VtZURlcG9zaXRPcHRpb25zLFxuICBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMsXG4gIFdpdGhkcmF3UmVzdWx0LFxuICBXcmFwT3B0aW9ucyxcbiAgV3JhcFJlc3VsdCxcbn0gZnJvbSAnLi9pRGVmaVZhdWx0JztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IGRlY29kZVdpdGhDb2RlYyB9IGZyb20gJy4uL3V0aWxzJztcblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBhIGNvbmN1cnJlbnQgYWN0aXZlIGRlcG9zaXQgYWxyZWFkeSBleGlzdHMgZm9yIHRoZSAod2FsbGV0LCB2YXVsdCkgcGFpci5cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGl2ZU9wZXJhdGlvbkV4aXN0c0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0aW9uSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcGVyYXRpb25JZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEFuIGFjdGl2ZSBkZXBvc2l0IG9wZXJhdGlvbiBhbHJlYWR5IGV4aXN0czogJHtvcGVyYXRpb25JZH1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQWN0aXZlT3BlcmF0aW9uRXhpc3RzRXJyb3InO1xuICAgIHRoaXMub3BlcmF0aW9uSWQgPSBvcGVyYXRpb25JZDtcbiAgfVxufVxuXG4vKipcbiAqIE9yY2hlc3RyYXRlcyBFUkMtNDYyNiB2YXVsdCBkZXBvc2l0IGFuZCB3aXRoZHJhdyBmbG93cyBmb3IgYSB3YWxsZXQuXG4gKlxuICogRXhwb3NlZCBhcyBgd2FsbGV0LmRlZmlgIG9uIHRoZSBXYWxsZXQgY2xhc3MuIFNlZSBUREQgwqc2LjMuMSBmb3IgdGhlIGZ1bGxcbiAqIGRlc2lnbjogdGhlIFNESyBzZXF1ZW5jZXMgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdCkgYW5kXG4gKiByZXR1cm5zIGFuIG9wZXJhdGlvbklkIHRoYXQgdGhlIFVJIHVzZXMgZm9yIHN0YXR1cyB0cmFja2luZyBhbmQgcmVjb3ZlcnkuXG4gKlxuICogVXNlcyB3YWxsZXQuc2VuZE1hbnkoKSB1bmRlciB0aGUgaG9vZCBzbyB0aGF0IGJvdGggY3VzdG9keSB3YWxsZXRzXG4gKiAodHhSZXF1ZXN0IGNyZWF0aW9uIG9ubHkpIGFuZCBob3Qgd2FsbGV0cyAoY3JlYXRlICsgc2lnbiArIGJyb2FkY2FzdClcbiAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERlZmlWYXVsdCBpbXBsZW1lbnRzIElEZWZpVmF1bHQge1xuICBwcml2YXRlIHJlYWRvbmx5IHdhbGxldDogSVdhbGxldDtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuXG4gIGNvbnN0cnVjdG9yKHdhbGxldDogSVdhbGxldCkge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSB3YWxsZXQuYml0Z287XG4gIH1cblxuICAvKipcbiAgICogTWluaW1hbCBkaXNwYXRjaCBjb2RlYy4gVGhlIGRlcG9zaXQgcGF0aCByZWFkcyBvbmx5IGBwcm90b2NvbGAgdG8gY2hvb3NlXG4gICAqIGJldHdlZW4gdGhlIGNvbmNyZXRlLCBNb3JwaG8sIGFuZCBBYXZlIGZsb3dzLCBzbyBpdCBtdXN0IG5vdCBoYXJkLWZhaWwgb24gdGhlXG4gICAqIHZhbGlkaXR5IG9mIHVucmVsYXRlZCByZXNwb25zZSBmaWVsZHMgKGUuZy4gYGNvbXBvc2l0aW9uW11gKSBpdCBuZXZlclxuICAgKiBjb25zdW1lcy4gQSBjb2RlIHBhdGggbXVzdCBub3QgZmFpbCBvbiB0aGUgdmFsaWRpdHkgb2YgZGF0YSBpdCBkb2VzIG5vdFxuICAgKiBjb25zdW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVmF1bHREaXNwYXRjaCA9IHQudHlwZSh7IHByb3RvY29sOiBWYXVsdFByb3RvY29sVHlwZSB9KTtcblxuICAvKipcbiAgICogRmV0Y2ggdGhlIHJhdyB2YXVsdCBjb25maWcgZnJvbSBkZWZpLXNlcnZpY2UuIFNoYXJlZCBieSBjYWxsZXJzIHRoYXRcbiAgICogZGVjb2RlIHRoZSBmdWxsIHJlc3BvbnNlIGFuZCBjYWxsZXJzIHRoYXQgZGVjb2RlIG9ubHkgd2hhdCB0aGV5IHVzZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hWYXVsdFJhdyh2YXVsdElkOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBpZiAoIXZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvZGVmaS1zZXJ2aWNlL3YxL3ZhdWx0cy8ke3ZhdWx0SWR9YCkpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy53YWxsZXQudG9KU09OKCkuZW50ZXJwcmlzZSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB2YXVsdCBjb25maWcgZnJvbSBkZWZpLXNlcnZpY2UuIFVzZWQgaW50ZXJuYWxseSB0byBkZXRlcm1pbmVcbiAgICogd2hpY2ggZGVwb3NpdCBwYXRoIHRvIHRha2UgKENvbmNyZXRlIHZzIE1vcnBobyB2cyBBYXZlIFYzKS5cbiAgICovXG4gIGFzeW5jIGdldFZhdWx0Q29uZmlnKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxHZXRWYXVsdFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGRlY29kZVdpdGhDb2RlYyhHZXRWYXVsdFJlc3BvbnNlLCBhd2FpdCB0aGlzLmZldGNoVmF1bHRSYXcocGFyYW1zLnZhdWx0SWQpLCAnZ2V0VmF1bHRDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBvbmx5IHRoZSB2YXVsdCBwcm90b2NvbCBmcm9tIGRlZmktc2VydmljZS4gRGVjb2RlcyB0aGUgbWluaW1hbFxuICAgKiBgVmF1bHREaXNwYXRjaGAgc2hhcGUgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgYEdldFZhdWx0UmVzcG9uc2VgLCBzbyBjYWxsZXJzXG4gICAqIHRoYXQgbmVlZCBvbmx5IHRoZSBwcm90b2NvbCBhcmUgbm90IGhvc3RhZ2UgdG8gdGhlIHZhbGlkaXR5IG9mIHVucmVsYXRlZFxuICAgKiByZXNwb25zZSBmaWVsZHMgKGUuZy4gYGNvbXBvc2l0aW9uW11gKSB0aGV5IG5ldmVyIGNvbnN1bWUuXG4gICAqL1xuICBhc3luYyBnZXRWYXVsdFByb3RvY29sKHBhcmFtczogR2V0VmF1bHRDb25maWdPcHRpb25zKTogUHJvbWlzZTxWYXVsdFByb3RvY29sPiB7XG4gICAgY29uc3QgeyBwcm90b2NvbCB9ID0gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRGVmaVZhdWx0LlZhdWx0RGlzcGF0Y2gsXG4gICAgICBhd2FpdCB0aGlzLmZldGNoVmF1bHRSYXcocGFyYW1zLnZhdWx0SWQpLFxuICAgICAgJ3ZhdWx0RGlzcGF0Y2gnXG4gICAgKTtcbiAgICByZXR1cm4gcHJvdG9jb2w7XG4gIH1cblxuICAvKipcbiAgICogRGVwb3NpdCBhbiBhbW91bnQgb2YgdW5kZXJseWluZyBhc3NldCBpbnRvIGEgdmF1bHQuXG4gICAqXG4gICAqIERpc3BhdGNoZXMgdG8gdGhlIGNvbmNyZXRlLCBNb3JwaG8sIG9yIEFhdmUgVjMgcGF0aCBiYXNlZCBvbiB2YXVsdCBwcm92aWRlci5cbiAgICogVGhlIGNvbmNyZXRlIHBhdGggcmV0dXJucyBhIHBlbmRpbmdBcHByb3ZhbCAoY3VzdG9kaWFsIHdhbGxldCkuXG4gICAqIFRoZSBNb3JwaG8gYW5kIEFhdmUgVjMgcGF0aHMgaXNzdWUgdHdvIHNlbmRNYW55IGNhbGxzIChhcHByb3ZlICsgZGVwb3NpdCkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBwYXJhbXMuYW1vdW50IC0gYW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXRcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyBkZXBvc2l0VG9WYXVsdChwYXJhbXM6IERlcG9zaXRUb1ZhdWx0T3B0aW9ucyk6IFByb21pc2U8RGVwb3NpdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLnZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXBhcmFtcy5hbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYW1vdW50IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdG9jb2wgPSBhd2FpdCB0aGlzLmdldFZhdWx0UHJvdG9jb2woeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCB9KTtcblxuICAgIGlmIChwcm90b2NvbCA9PT0gVmF1bHRQcm90b2NvbC5DT05DUkVURV9CVENDWCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVwb3NpdFRvQ29uY3JldGVWYXVsdChwYXJhbXMpO1xuICAgIH0gZWxzZSBpZiAocHJvdG9jb2wgPT09IFZhdWx0UHJvdG9jb2wuTU9SUEhPIHx8IHByb3RvY29sID09PSBWYXVsdFByb3RvY29sLkFBVkVfVjMpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlcG9zaXRUb0VyYzQ2MjZWYXVsdChwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZhdWx0IHByb3RvY29sOiAke3Byb3RvY29sfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb25jcmV0ZSBCVEMgdmF1bHQgZGVwb3NpdCBwYXRoLiBUaGUgY2xpZW50IEJUQyB3YWxsZXQgaXMgY3VzdG9kaWFsLCBzb1xuICAgKiBzZW5kTWFueSByZXR1cm5zIGEgcGVuZGluZ0FwcHJvdmFsIHJhdGhlciB0aGFuIGEgc2lnbmVkIHRyYW5zZmVyLlxuICAgKiBObyByZWNpcGllbnRzIGFyZSBzZW50IOKAlCBXUCByZXNvbHZlcyB0aGUgZXNjcm93IGRlc3RpbmF0aW9uIHNlcnZlci1zaWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBkZXBvc2l0VG9Db25jcmV0ZVZhdWx0KHBhcmFtczogRGVwb3NpdFRvVmF1bHRPcHRpb25zKTogUHJvbWlzZTxDb25jcmV0ZURlcG9zaXRSZXN1bHQ+IHtcbiAgICBjb25zdCBzZW5kTWFueVJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpLWRlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgICBhY3Rpb25UeXBlOiAnZGVmaS1kZXBvc2l0JyxcbiAgICAgIH0sXG4gICAgICAuLi4ocGFyYW1zLndhbGxldFBhc3NwaHJhc2UgPyB7IHdhbGxldFBhc3NwaHJhc2U6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIH0gOiB7fSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5leHRyYWN0Q29uY3JldGVEZXBvc2l0UmVzdWx0KHNlbmRNYW55UmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFUkMtNDYyNiB2YXVsdCBkZXBvc2l0IHBhdGggKE1vcnBobywgQWF2ZSBWMywgLi4uKS4gSXNzdWVzIHR3byBzZW5kTWFueVxuICAgKiBjYWxscyAoYXBwcm92ZSArIGRlcG9zaXQpIGFuZCByZXR1cm5zIHRoZSBvcGVyYXRpb25JZCB0aGF0IGxpbmtzIHRoZW0uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGRlcG9zaXRUb0VyYzQ2MjZWYXVsdChwYXJhbXM6IERlcG9zaXRUb1ZhdWx0T3B0aW9ucyk6IFByb21pc2U8RXJjNDYyNkRlcG9zaXRSZXN1bHQ+IHtcbiAgICAvLyBUT0RPKENHRC0xNzA5KTogUmUtZW5hYmxlIGFjdGl2ZSBvcGVyYXRpb24gcHJlLWZsaWdodCBjaGVjayBvbmNlIHRoZVxuICAgIC8vIGRlZmktc2VydmljZSBvcGVyYXRpb25zIGVuZHBvaW50IGlzIGRlcGxveWVkIGFuZCByZXR1cm5pbmcgYWN0aXZlIHN0YXRlLlxuICAgIC8vIGNvbnN0IGFjdGl2ZU9wczogRGVmaU9wZXJhdGlvbkxpc3RSZXN1bHQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgLy8gICAuZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLm9wZXJhdGlvbnNVcmwoKSkpXG4gICAgLy8gICAucXVlcnkoeyB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCwgc3RhdGU6ICdhY3RpdmUnIH0pXG4gICAgLy8gICAucmVzdWx0KCk7XG4gICAgLy9cbiAgICAvLyBpZiAoYWN0aXZlT3BzLml0ZW1zICYmIGFjdGl2ZU9wcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICB0aHJvdyBuZXcgQWN0aXZlT3BlcmF0aW9uRXhpc3RzRXJyb3IoYWN0aXZlT3BzLml0ZW1zWzBdLm9wZXJhdGlvbklkKTtcbiAgICAvLyB9XG5cbiAgICAvLyBTdGVwIDE6IEFwcHJvdmUgdHhSZXF1ZXN0IHZpYSBzZW5kTWFueVxuICAgIGNvbnN0IGFwcHJvdmVSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaUFwcHJvdmUnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwcHJvdmVUeFJlcXVlc3RJZCA9IHRoaXMuZXh0cmFjdFR4UmVxdWVzdElkKGFwcHJvdmVSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQoYXBwcm92ZVJlc3VsdCk7XG5cbiAgICBpZiAoIW9wZXJhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZXJhdGlvbklkIG5vdCBmb3VuZCBpbiBhcHByb3ZlIHR4UmVxdWVzdCByZXNwb25zZScpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMjogRGVwb3NpdCB0eFJlcXVlc3QgdmlhIHNlbmRNYW55XG4gICAgY29uc3QgZGVwb3NpdFJlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpRGVwb3NpdCcsXG4gICAgICBkZWZpUGFyYW1zOiB7XG4gICAgICAgIHZhdWx0SWQ6IHBhcmFtcy52YXVsdElkLFxuICAgICAgICBhbW91bnQ6IHBhcmFtcy5hbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkLFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcbiAgICBjb25zdCBkZXBvc2l0VHhSZXF1ZXN0SWQgPSB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KTtcblxuICAgIHJldHVybiB7XG4gICAgICBvcGVyYXRpb25JZCxcbiAgICAgIHR4UmVxdWVzdElkczoge1xuICAgICAgICBhcHByb3ZlOiBhcHByb3ZlVHhSZXF1ZXN0SWQsXG4gICAgICAgIGRlcG9zaXQ6IGRlcG9zaXRUeFJlcXVlc3RJZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1bWUgYSBwYXJ0aWFsbHktY29tcGxldGVkIGRlcG9zaXQuIENhbGwgdGhpcyB3aGVuIHRoZSBTREsgcHJvY2VzcyBkaWVkXG4gICAqIGJldHdlZW4gdGhlIGFwcHJvdmUgYW5kIGRlcG9zaXQgdHhSZXF1ZXN0IGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLm9wZXJhdGlvbklkIC0gdGhlIG9wZXJhdGlvbklkIGZyb20gdGhlIG9yaWdpbmFsIGRlcG9zaXRUb1ZhdWx0IGNhbGxcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyByZXN1bWVEZXBvc2l0KHBhcmFtczogUmVzdW1lRGVwb3NpdE9wdGlvbnMpOiBQcm9taXNlPERlcG9zaXRSZXN1bHQ+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIC8vIEZldGNoIHRoZSBvcGVyYXRpb24gdG8gZ2V0IHRoZSB2YXVsdCBhbmQgYW1vdW50IGRldGFpbHNcbiAgICBjb25zdCBvcGVyYXRpb24gPSBhd2FpdCB0aGlzLmdldE9wZXJhdGlvbih7IG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQgfSk7XG5cbiAgICBpZiAob3BlcmF0aW9uLmFzc29jaWF0ZWRUeFJlcXVlc3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXBvc2l0IHR4UmVxdWVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBvcGVyYXRpb247IG5vdGhpbmcgdG8gcmVzdW1lJyk7XG4gICAgfVxuXG4gICAgaWYgKCFvcGVyYXRpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXBwcm92ZSB0eFJlcXVlc3Qgbm90IGZvdW5kIGZvciB0aGlzIG9wZXJhdGlvbjsgY2Fubm90IHJlc3VtZScpO1xuICAgIH1cblxuICAgIC8vIElzc3VlIHRoZSBkZXBvc2l0IHR4UmVxdWVzdCB1c2luZyB0aGUgZXhpc3Rpbmcgb3BlcmF0aW9uJ3MgZGV0YWlsc1xuICAgIGNvbnN0IGRlcG9zaXRSZXN1bHQgPSBhd2FpdCB0aGlzLndhbGxldC5zZW5kTWFueSh7XG4gICAgICB0eXBlOiAnZGVmaURlcG9zaXQnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBvcGVyYXRpb24udmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBvcGVyYXRpb24uYXNzZXRBbW91bnQsXG4gICAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB9LFxuICAgICAgLi4uKHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlID8geyB3YWxsZXRQYXNzcGhyYXNlOiBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkOiBwYXJhbXMub3BlcmF0aW9uSWQsXG4gICAgICB0eFJlcXVlc3RJZHM6IHtcbiAgICAgICAgYXBwcm92ZTogb3BlcmF0aW9uLnR4UmVxdWVzdElkLFxuICAgICAgICBkZXBvc2l0OiB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChkZXBvc2l0UmVzdWx0KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSBEZUZpIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5vcGVyYXRpb25JZCAtIHRoZSBvcGVyYXRpb24gdG8gcmV0cmlldmVcbiAgICovXG4gIGFzeW5jIGdldE9wZXJhdGlvbihwYXJhbXM6IEdldE9wZXJhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlZmlPcGVyYXRpb24+IHtcbiAgICBpZiAoIXBhcmFtcy5vcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkgKyAnLycgKyBwYXJhbXMub3BlcmF0aW9uSWQpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9wZXJhdGlvbnMgZm9yIGEgdmF1bHQgZmlsdGVyZWQgYnkgd2FsbGV0SWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIHZhdWx0IHRvIGxpc3Qgb3BlcmF0aW9ucyBmb3JcbiAgICogQHBhcmFtIHBhcmFtcy5zdGF0ZSAtIG9wdGlvbmFsIHN0YXRlIGZpbHRlclxuICAgKiBAcGFyYW0gcGFyYW1zLnR5cGUgLSBvcHRpb25hbCB0eXBlIGZpbHRlciAoREVQT1NJVCB8IFdJVEhEUkFXKVxuICAgKiBAcGFyYW0gcGFyYW1zLmxpbWl0IC0gcGFnZSBzaXplXG4gICAqIEBwYXJhbSBwYXJhbXMuY3Vyc29yIC0gcGFnaW5hdGlvbiBjdXJzb3JcbiAgICovXG4gIGFzeW5jIGxpc3RPcGVyYXRpb25zKHBhcmFtczogTGlzdE9wZXJhdGlvbnNPcHRpb25zKTogUHJvbWlzZTxEZWZpT3BlcmF0aW9uTGlzdFJlc3VsdD4ge1xuICAgIGlmICghcGFyYW1zLnZhdWx0SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmF1bHRJZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+ID0ge1xuICAgICAgdmF1bHRJZDogcGFyYW1zLnZhdWx0SWQsXG4gICAgfTtcbiAgICBpZiAocGFyYW1zLnN0YXRlKSBxdWVyeS5zdGF0ZSA9IHBhcmFtcy5zdGF0ZTtcbiAgICBpZiAocGFyYW1zLnR5cGUpIHF1ZXJ5LnR5cGUgPSBwYXJhbXMudHlwZTtcbiAgICBpZiAocGFyYW1zLmxpbWl0KSBxdWVyeS5saW1pdCA9IHBhcmFtcy5saW1pdDtcbiAgICBpZiAocGFyYW1zLmN1cnNvcikgcXVlcnkuY3Vyc29yID0gcGFyYW1zLmN1cnNvcjtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5vcGVyYXRpb25zVXJsKCkpKS5xdWVyeShxdWVyeSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2l0aGRyYXcgdmF1bHQgc2hhcmVzIGZyb20gYSBEZUZpIHZhdWx0LlxuICAgKlxuICAgKiBJc3N1ZXMgYSBzaW5nbGUgc2VuZE1hbnkgY2FsbCAoZGVmaVdpdGhkcmF3KSBhbmQgcmV0dXJucyB0aGUgb3BlcmF0aW9uSWRcbiAgICogYW5kIHR4UmVxdWVzdElkLiBUaGUgc3RhdGUgbWFjaGluZSBmb3Igd2l0aGRyYXdhbCBpcyBzaW1wbGVyIHRoYW4gZGVwb3NpdDpcbiAgICogQ1JFQVRFRCDihpIgV0lUSERSQVdfVFhfUkVRVUVTVEVEIOKGkiBXSVRIRFJBV19TSUdORUQg4oaSIFdJVEhEUkFXX0NPTkZJUk1FRCDihpIgQ09NUExFVEVEXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMudmF1bHRJZCAtIERlRmktc2VydmljZSB2YXVsdCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSBwYXJhbXMuYW1vdW50IC0gYW1vdW50IGluIGJhc2UgdW5pdHMgb2YgdGhlIHZhdWx0IHNoYXJlIHRva2VuXG4gICAqIEBwYXJhbSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSAtIHJlcXVpcmVkIGZvciBob3Qgd2FsbGV0cywgb21pdCBmb3IgY3VzdG9keVxuICAgKi9cbiAgYXN5bmMgd2l0aGRyYXdGcm9tVmF1bHQocGFyYW1zOiBXaXRoZHJhd0Zyb21WYXVsdE9wdGlvbnMpOiBQcm9taXNlPFdpdGhkcmF3UmVzdWx0PiB7XG4gICAgaWYgKCFwYXJhbXMudmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLmFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3aXRoZHJhd1Jlc3VsdCA9IGF3YWl0IHRoaXMud2FsbGV0LnNlbmRNYW55KHtcbiAgICAgIHR5cGU6ICdkZWZpV2l0aGRyYXcnLFxuICAgICAgZGVmaVBhcmFtczoge1xuICAgICAgICB2YXVsdElkOiBwYXJhbXMudmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHR4UmVxdWVzdElkID0gdGhpcy5leHRyYWN0VHhSZXF1ZXN0SWQod2l0aGRyYXdSZXN1bHQpO1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gdGhpcy5leHRyYWN0T3BlcmF0aW9uSWQod2l0aGRyYXdSZXN1bHQpO1xuXG4gICAgaWYgKCFvcGVyYXRpb25JZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcGVyYXRpb25JZCBub3QgZm91bmQgaW4gd2l0aGRyYXcgdHhSZXF1ZXN0IHJlc3BvbnNlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3BlcmF0aW9uSWQsIHR4UmVxdWVzdElkIH07XG4gIH1cblxuICAvKipcbiAgICogV3JhcCBuYXRpdmUgY3VycmVuY3kgaW50byBpdHMgY2Fub25pY2FsIHdyYXBwZWQtbmF0aXZlIEVSQy0yMFxuICAgKiAoRVRIIOKGkiBXRVRIIHZpYSB0aGUgV0VUSDkgYGRlcG9zaXQoKWAgY2FsbCkuXG4gICAqXG4gICAqIEEgdGhpbiBvcmNoZXN0cmF0b3Igb3ZlciBhIHNpbmdsZSBzZW5kTWFueSwgbGlrZSB7QGxpbmsgd2l0aGRyYXdGcm9tVmF1bHR9LlxuICAgKiBXUCBidWlsZHMgdGhlIGNhbGxkYXRhIGFuZCByZXNvbHZlcyB0aGUgV0VUSDkgYWRkcmVzcyBzZXJ2ZXItc2lkZSBmcm9tIHRoZVxuICAgKiB2YXVsdCBiaW5kaW5nOyB0aGUgU0RLIG9ubHkgZm9yd2FyZHMgdmF1bHRJZCBhbmQgYW1vdW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnZhdWx0SWQgLSBEZUZpLXNlcnZpY2UgdmF1bHQgaWRlbnRpZmllci4gUmVxdWlyZWQgaW4gdjE6IGJpbmRpbmdcbiAgICogICB0aGUgd3JhcCB0byBhIHZhdWx0IGlzIHdoYXQgc3VwcGxpZXMgdGhlIHBlci1lbnRlcnByaXNlIGF1dGhvcml6YXRpb24gZ2F0ZVxuICAgKiAgIGFuZCB0aGUgYWRkcmVzcy13aGl0ZWxpc3QgcGF0aCBzZXJ2ZXItc2lkZSAoVEREIMKnMy42KS4gTTcgbWFrZXMgaXQgb3B0aW9uYWwsXG4gICAqICAgd2hpY2ggaXMgYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgbmF0aXZlIGNvaW4gKDE4ZHAgZm9yIEVUSClcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyB3cmFwKHBhcmFtczogV3JhcE9wdGlvbnMpOiBQcm9taXNlPFdyYXBSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZW5kV3JhcEludGVudCgnd3JhcE5hdGl2ZScsIHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogVW53cmFwIHRoZSBjYW5vbmljYWwgd3JhcHBlZC1uYXRpdmUgRVJDLTIwIGJhY2sgdG8gbmF0aXZlIGN1cnJlbmN5XG4gICAqIChXRVRIIOKGkiBFVEggdmlhIHRoZSBXRVRIOSBgd2l0aGRyYXcodWludDI1NilgIGNhbGwpLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zLnZhdWx0SWQgLSBEZUZpLXNlcnZpY2UgdmF1bHQgaWRlbnRpZmllciAoc2VlIHtAbGluayB3cmFwfSlcbiAgICogQHBhcmFtIHBhcmFtcy5hbW91bnQgLSBhbW91bnQgaW4gYmFzZSB1bml0cyBvZiB0aGUgd3JhcHBlZCB0b2tlbiAoMThkcCBmb3IgV0VUSClcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gcmVxdWlyZWQgZm9yIGhvdCB3YWxsZXRzLCBvbWl0IGZvciBjdXN0b2R5XG4gICAqL1xuICBhc3luYyB1bndyYXAocGFyYW1zOiBXcmFwT3B0aW9ucyk6IFByb21pc2U8V3JhcFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnNlbmRXcmFwSW50ZW50KCd1bndyYXBOYXRpdmUnLCBwYXJhbXMpO1xuICB9XG5cbiAgLy8g4pSA4pSAIEludGVybmFsIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIFNoYXJlZCBib2R5IG9mIHtAbGluayB3cmFwfSBhbmQge0BsaW5rIHVud3JhcH0g4oCUIHRoZSB0d28gZGlmZmVyIG9ubHkgaW4gdGhlXG4gICAqIHNlbmRNYW55IHR5cGUgdGhleSBpc3N1ZS5cbiAgICpcbiAgICogRGVsaWJlcmF0ZWx5IGRvZXMgbm90IGNhbGwge0BsaW5rIGV4dHJhY3RPcGVyYXRpb25JZH06IG5vIG9wZXJhdGlvbiBpcyBtaW50ZWRcbiAgICogZm9yIHdyYXAvdW53cmFwIGluIHYxLCBzbyBpdCB3b3VsZCBvbmx5IGV2ZXIgcmV0dXJuIHVuZGVmaW5lZC4gT3BlcmF0aW9uXG4gICAqIHRyYWNraW5nIGFycml2ZXMgaW4gbWlsZXN0b25lIE01LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZW5kV3JhcEludGVudCh0eXBlOiAnd3JhcE5hdGl2ZScgfCAndW53cmFwTmF0aXZlJywgcGFyYW1zOiBXcmFwT3B0aW9ucyk6IFByb21pc2U8V3JhcFJlc3VsdD4ge1xuICAgIGNvbnN0IHZhdWx0SWQgPSBwYXJhbXMudmF1bHRJZD8udHJpbSgpO1xuICAgIGlmICghdmF1bHRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXVsdElkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIC8vIFRoZSBkb3duc3RyZWFtIEJpZ0ludEZyb21TdHJpbmcgY29kZWMgKHdhbGxldC50cykgYWNjZXB0cyBhbnl0aGluZyBKUydzIEJpZ0ludCgpIGNvbnN0cnVjdG9yXG4gICAgLy8gZG9lcyAtIG5lZ2F0aXZlIGFtb3VudHMsIGhleCBzdHJpbmdzIGxpa2UgJzB4YWJjJywgYW5kIHplcm8gLSBhbmQgdGhpcyBhbW91bnQgZm9yd2FyZHNcbiAgICAvLyBzdHJhaWdodCBpbnRvIGEgdmFsdWUtbW92aW5nIFdFVEg5IGRlcG9zaXQoKS93aXRoZHJhdygpIGNhbGwuIFJlcXVpcmUgYSBwb3NpdGl2ZSB1bnNpZ25lZFxuICAgIC8vIGRlY2ltYWwgaW50ZWdlciBzdHJpbmcgaGVyZTsgemVybyBpcyBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQgdG9vLCBzaW5jZSBhIHplcm8tYW1vdW50IHdyYXAvXG4gICAgLy8gdW53cmFwIGhhcyBubyBvbi1jaGFpbiBlZmZlY3QgYnV0IHdvdWxkIHN0aWxsIHNwZW5kIGdhcy5cbiAgICBpZiAoIXBhcmFtcy5hbW91bnQgfHwgIS9eXFxkKyQvLnRlc3QocGFyYW1zLmFtb3VudCkgfHwgQmlnSW50KHBhcmFtcy5hbW91bnQpID09PSAwbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgbXVzdCBiZSBhIHBvc2l0aXZlIHVuc2lnbmVkIGRlY2ltYWwgaW50ZWdlciBzdHJpbmcnKTtcbiAgICB9XG4gICAgLy8gV3JhcHBlZC1uYXRpdmUgdmF1bHRzIChXRVRIOSBkZXBvc2l0KCkvd2l0aGRyYXcoKSkgb25seSBleGlzdCBvbiBFVk0gY2hhaW5zLiBGYWlsIGZhc3QgaGVyZVxuICAgIC8vIGluc3RlYWQgb2YgbGV0dGluZyBhbiB1bnN1cHBvcnRlZCBjb2luIHJlYWNoIHdhbGxldC1wbGF0Zm9ybSBhbmQgcmV0dXJuIGFuIG9wYXF1ZSBwcmVidWlsZCBlcnJvci5cbiAgICBpZiAoIXRoaXMud2FsbGV0LmJhc2VDb2luLmdldENvbmZpZygpLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLkVWTV9DT0lOKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB3cmFwL3Vud3JhcCBpcyBub3Qgc3VwcG9ydGVkIGZvciAke3RoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpfSB3YWxsZXRzYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy53YWxsZXQuc2VuZE1hbnkoe1xuICAgICAgdHlwZSxcbiAgICAgIGRlZmlQYXJhbXM6IHtcbiAgICAgICAgdmF1bHRJZCxcbiAgICAgICAgYW1vdW50OiBwYXJhbXMuYW1vdW50LFxuICAgICAgfSxcbiAgICAgIC4uLihwYXJhbXMud2FsbGV0UGFzc3BocmFzZSA/IHsgd2FsbGV0UGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgfSA6IHt9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHR4UmVxdWVzdElkOiB0aGlzLmV4dHJhY3RUeFJlcXVlc3RJZChyZXN1bHQpIH07XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0eFJlcXVlc3RJZCBmcm9tIGEgc2VuZE1hbnkgcmVzdWx0LlxuICAgKiBzZW5kTWFueSByZXR1cm5zIGRpZmZlcmVudCBzaGFwZXMgZGVwZW5kaW5nIG9uIHdhbGxldCB0eXBlOlxuICAgKiAtIFRTUyBmdWxsOiB7IHR4UmVxdWVzdDogeyB0eFJlcXVlc3RJZCB9IH0gb3IgeyBwZW5kaW5nQXBwcm92YWwsIHR4UmVxdWVzdCB9XG4gICAqIC0gVFNTIGxpdGU6IHJlc3VsdCBmcm9tIHRzc1V0aWxzLnNlbmRUeFJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdFR4UmVxdWVzdElkKHNlbmRNYW55UmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHN0cmluZyB7XG4gICAgY29uc3QgdHhSZXF1ZXN0ID0gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0eFJlcXVlc3Q/LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gdHhSZXF1ZXN0LnR4UmVxdWVzdElkIGFzIHN0cmluZztcbiAgICB9XG4gICAgaWYgKHNlbmRNYW55UmVzdWx0LnR4UmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gc2VuZE1hbnlSZXN1bHQudHhSZXF1ZXN0SWQgYXMgc3RyaW5nO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4UmVxdWVzdElkIG5vdCBmb3VuZCBpbiBzZW5kTWFueSByZXNwb25zZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3Qgb3BlcmF0aW9uSWQgZnJvbSBhIHNlbmRNYW55IHJlc3VsdC5cbiAgICpcbiAgICogVGhlIFdQIHdyaXRlcyB0aGUgZGVmaS1zZXJ2aWNlLW1pbnRlZCBvcGVyYXRpb25JZCBpbnRvIHRoZSBidWlsdFxuICAgKiB0cmFuc2FjdGlvbidzIGBjb2luU3BlY2lmaWNgIChhbG9uZ3NpZGUgYGFzc2lnbmVkTm9uY2VgKSwgbm90IGludG8gdGhlXG4gICAqIGludGVudC4gUmVhZCBpdCBmcm9tIHRoZXJlOiB0aGUgYGZ1bGxgIGFwaVZlcnNpb24gc3VyZmFjZXMgaXQgYXRcbiAgICogYHRyYW5zYWN0aW9uc1swXS51bnNpZ25lZFR4LmNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZGAsIHRoZSBgbGl0ZWAgdmVyc2lvblxuICAgKiBhdCBgdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkYC4gRmFsbCBiYWNrIHRvXG4gICAqIGBpbnRlbnQub3BlcmF0aW9uSWRgIGZvciBmb3J3YXJkLWNvbXBhdCBpbiBjYXNlIHRoZSBXUCBsYXRlciBhbHNvXG4gICAqIHBvcHVsYXRlcyB0aGUgaW50ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0T3BlcmF0aW9uSWQoc2VuZE1hbnlSZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0eFJlcXVlc3QgPSBzZW5kTWFueVJlc3VsdC50eFJlcXVlc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eFJlcXVlc3QpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gZnVsbCBhcGlWZXJzaW9uOiB0cmFuc2FjdGlvbnNbMF0udW5zaWduZWRUeC5jb2luU3BlY2lmaWMub3BlcmF0aW9uSWRcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSB0eFJlcXVlc3QudHJhbnNhY3Rpb25zIGFzIEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmdWxsVW5zaWduZWRUeCA9IHRyYW5zYWN0aW9ucz8uWzBdPy51bnNpZ25lZFR4IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZ1bGxDb2luU3BlY2lmaWMgPSBmdWxsVW5zaWduZWRUeD8uY29pblNwZWNpZmljIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmdWxsQ29pblNwZWNpZmljPy5vcGVyYXRpb25JZCkge1xuICAgICAgcmV0dXJuIGZ1bGxDb2luU3BlY2lmaWMub3BlcmF0aW9uSWQgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8vIGxpdGUgYXBpVmVyc2lvbjogdW5zaWduZWRUeHNbMF0uY29pblNwZWNpZmljLm9wZXJhdGlvbklkXG4gICAgY29uc3QgdW5zaWduZWRUeHMgPSB0eFJlcXVlc3QudW5zaWduZWRUeHMgYXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxpdGVDb2luU3BlY2lmaWMgPSB1bnNpZ25lZFR4cz8uWzBdPy5jb2luU3BlY2lmaWMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGxpdGVDb2luU3BlY2lmaWM/Lm9wZXJhdGlvbklkKSB7XG4gICAgICByZXR1cm4gbGl0ZUNvaW5TcGVjaWZpYy5vcGVyYXRpb25JZCBhcyBzdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gZm9yd2FyZC1jb21wYXQ6IGludGVudC5vcGVyYXRpb25JZCAoaW4gY2FzZSB0aGUgV1AgbGF0ZXIgcG9wdWxhdGVzIHRoZSBpbnRlbnQpXG4gICAgY29uc3QgaW50ZW50ID0gdHhSZXF1ZXN0LmludGVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gaW50ZW50Py5vcGVyYXRpb25JZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMge0BsaW5rIENvbmNyZXRlRGVwb3NpdFJlc3VsdH0gZnJvbSBhIGN1c3RvZGlhbCBzZW5kTWFueSByZXNwb25zZS5cbiAgICogQ29uY3JldGUgQlRDIGRlcG9zaXRzIHJldHVybiBhIGBwZW5kaW5nQXBwcm92YWxgIGluc3RlYWQgb2YgYSB0eFJlcXVlc3Qg4oCUXG4gICAqIHRocm93cyBpZiBgcGVuZGluZ0FwcHJvdmFsLmlkYCBpcyBhYnNlbnQsIGluZGljYXRpbmcgYW4gdW5leHBlY3RlZCBzaGFwZS5cbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdENvbmNyZXRlRGVwb3NpdFJlc3VsdChzZW5kTWFueVJlc3VsdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBDb25jcmV0ZURlcG9zaXRSZXN1bHQge1xuICAgIGNvbnN0IFNlbmRNYW55Q29uY3JldGVSZXNwb25zZSA9IHQudHlwZSh7XG4gICAgICBwZW5kaW5nQXBwcm92YWw6IHQuaW50ZXJzZWN0aW9uKFt0LnR5cGUoeyBpZDogdC5zdHJpbmcgfSksIHQucGFydGlhbCh7IHN0YXRlOiB0LnN0cmluZyB9KV0pLFxuICAgIH0pO1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVXaXRoQ29kZWMoU2VuZE1hbnlDb25jcmV0ZVJlc3BvbnNlLCBzZW5kTWFueVJlc3VsdCwgJ2RlZmktZGVwb3NpdCBzZW5kTWFueSByZXNwb25zZScpO1xuICAgIHJldHVybiB7XG4gICAgICBwZW5kaW5nQXBwcm92YWxJZDogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuaWQsXG4gICAgICBzdGF0ZTogZGVjb2RlZC5wZW5kaW5nQXBwcm92YWwuc3RhdGUgPz8gJ2F3YWl0aW5nU2lnbmF0dXJlJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYXRpb25zVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvYXBpL2RlZmktc2VydmljZS92MS93YWxsZXRzLyR7dGhpcy53YWxsZXQuaWQoKX0vb3BlcmF0aW9uc2A7XG4gIH1cbn1cbiJdfQ==
@@ -45,14 +45,19 @@ export interface ConcreteDepositResult {
45
45
  pendingApprovalId: string;
46
46
  state: string;
47
47
  }
48
- export interface MorphoDepositResult {
48
+ export interface Erc4626DepositResult {
49
49
  operationId: string;
50
50
  txRequestIds: {
51
51
  approve: string;
52
52
  deposit: string;
53
53
  };
54
54
  }
55
- export type DepositResult = ConcreteDepositResult | MorphoDepositResult;
55
+ /**
56
+ * @deprecated Renamed to {@link Erc4626DepositResult}. Alias kept for
57
+ * backward compatibility with the published sdk-core API.
58
+ */
59
+ export type MorphoDepositResult = Erc4626DepositResult;
60
+ export type DepositResult = ConcreteDepositResult | Erc4626DepositResult;
56
61
  export interface DefiOperationListResult {
57
62
  items: DefiOperation[];
58
63
  nextCursor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"iDefiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/iDefiVault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iDefiVault.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/defi/iDefiVault.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChF,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAClD"}