@bitgo-beta/statics 15.1.1-beta.202 → 15.1.1-beta.2021

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 (129) hide show
  1. package/dist/src/account.d.ts +1227 -74
  2. package/dist/src/account.d.ts.map +1 -1
  3. package/dist/src/account.js +1850 -155
  4. package/dist/src/ada.d.ts.map +1 -1
  5. package/dist/src/ada.js +7 -3
  6. package/dist/src/allCoinsAndTokens.d.ts +2 -0
  7. package/dist/src/allCoinsAndTokens.d.ts.map +1 -0
  8. package/dist/src/allCoinsAndTokens.js +1880 -0
  9. package/dist/src/avaxp.d.ts.map +1 -1
  10. package/dist/src/avaxp.js +8 -3
  11. package/dist/src/base.d.ts +2933 -45
  12. package/dist/src/base.d.ts.map +1 -1
  13. package/dist/src/base.js +3059 -56
  14. package/dist/src/canton.d.ts +34 -0
  15. package/dist/src/canton.d.ts.map +1 -0
  16. package/dist/src/canton.js +51 -0
  17. package/dist/src/coinFeatures.d.ts +129 -0
  18. package/dist/src/coinFeatures.d.ts.map +1 -0
  19. package/dist/src/coinFeatures.js +798 -0
  20. package/dist/src/coins/adaTokens.d.ts +2 -0
  21. package/dist/src/coins/adaTokens.d.ts.map +1 -0
  22. package/dist/src/coins/adaTokens.js +27 -0
  23. package/dist/src/coins/avaxTokens.d.ts +2 -0
  24. package/dist/src/coins/avaxTokens.d.ts.map +1 -0
  25. package/dist/src/coins/avaxTokens.js +133 -0
  26. package/dist/src/coins/botOfcTokens.d.ts +3 -0
  27. package/dist/src/coins/botOfcTokens.d.ts.map +1 -0
  28. package/dist/src/coins/botOfcTokens.js +178 -0
  29. package/dist/src/coins/botTokens.d.ts +3 -0
  30. package/dist/src/coins/botTokens.d.ts.map +1 -0
  31. package/dist/src/coins/botTokens.js +549 -0
  32. package/dist/src/coins/bscTokens.d.ts +2 -0
  33. package/dist/src/coins/bscTokens.d.ts.map +1 -0
  34. package/dist/src/coins/bscTokens.js +419 -0
  35. package/dist/src/coins/cantonTokens.d.ts +2 -0
  36. package/dist/src/coins/cantonTokens.d.ts.map +1 -0
  37. package/dist/src/coins/cantonTokens.js +134 -0
  38. package/dist/src/coins/cosmosTokens.d.ts +2 -0
  39. package/dist/src/coins/cosmosTokens.d.ts.map +1 -0
  40. package/dist/src/coins/cosmosTokens.js +14 -0
  41. package/dist/src/coins/erc20Coins.d.ts +2 -0
  42. package/dist/src/coins/erc20Coins.d.ts.map +1 -0
  43. package/dist/src/coins/erc20Coins.js +2077 -0
  44. package/dist/src/coins/erc7984Tokens.d.ts +17 -0
  45. package/dist/src/coins/erc7984Tokens.d.ts.map +1 -0
  46. package/dist/src/coins/erc7984Tokens.js +40 -0
  47. package/dist/src/coins/generateERC20.d.ts +36 -0
  48. package/dist/src/coins/generateERC20.d.ts.map +1 -0
  49. package/dist/src/coins/generateERC20.js +46 -0
  50. package/dist/src/coins/hoodethTokens.d.ts +2 -0
  51. package/dist/src/coins/hoodethTokens.d.ts.map +1 -0
  52. package/dist/src/coins/hoodethTokens.js +308 -0
  53. package/dist/src/coins/jettonTokens.d.ts +2 -0
  54. package/dist/src/coins/jettonTokens.d.ts.map +1 -0
  55. package/dist/src/coins/jettonTokens.js +19 -0
  56. package/dist/src/coins/nep141Tokens.d.ts +2 -0
  57. package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
  58. package/dist/src/coins/nep141Tokens.js +18 -0
  59. package/dist/src/coins/ofcCoins.d.ts +2 -0
  60. package/dist/src/coins/ofcCoins.d.ts.map +1 -0
  61. package/dist/src/coins/ofcCoins.js +1446 -0
  62. package/dist/src/coins/ofcErc20Coins.d.ts +4 -0
  63. package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
  64. package/dist/src/coins/ofcErc20Coins.js +1897 -0
  65. package/dist/src/coins/ofcHoodethTokens.d.ts +2 -0
  66. package/dist/src/coins/ofcHoodethTokens.d.ts.map +1 -0
  67. package/dist/src/coins/ofcHoodethTokens.js +306 -0
  68. package/dist/src/coins/polygonTokens.d.ts +2 -0
  69. package/dist/src/coins/polygonTokens.d.ts.map +1 -0
  70. package/dist/src/coins/polygonTokens.js +215 -0
  71. package/dist/src/coins/polyxTokens.d.ts +2 -0
  72. package/dist/src/coins/polyxTokens.d.ts.map +1 -0
  73. package/dist/src/coins/polyxTokens.js +22 -0
  74. package/dist/src/coins/sip10Tokens.d.ts +2 -0
  75. package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
  76. package/dist/src/coins/sip10Tokens.js +25 -0
  77. package/dist/src/coins/solTokens.d.ts +3 -0
  78. package/dist/src/coins/solTokens.d.ts.map +1 -0
  79. package/dist/src/coins/solTokens.js +538 -0
  80. package/dist/src/coins/vetTokens.d.ts +2 -0
  81. package/dist/src/coins/vetTokens.d.ts.map +1 -0
  82. package/dist/src/coins/vetTokens.js +11 -0
  83. package/dist/src/coins.d.ts +22 -1
  84. package/dist/src/coins.d.ts.map +1 -1
  85. package/dist/src/coins.js +471 -2052
  86. package/dist/src/constants.d.ts +1 -0
  87. package/dist/src/constants.d.ts.map +1 -1
  88. package/dist/src/constants.js +3 -2
  89. package/dist/src/errors.d.ts +9 -0
  90. package/dist/src/errors.d.ts.map +1 -1
  91. package/dist/src/errors.js +23 -2
  92. package/dist/src/flrp.d.ts +40 -0
  93. package/dist/src/flrp.d.ts.map +1 -0
  94. package/dist/src/flrp.js +66 -0
  95. package/dist/src/hypeevm.d.ts +28 -0
  96. package/dist/src/hypeevm.d.ts.map +1 -0
  97. package/dist/src/hypeevm.js +60 -0
  98. package/dist/src/index.d.ts +5 -1
  99. package/dist/src/index.d.ts.map +1 -1
  100. package/dist/src/index.js +44 -3
  101. package/dist/src/kaspa.d.ts +34 -0
  102. package/dist/src/kaspa.d.ts.map +1 -0
  103. package/dist/src/kaspa.js +63 -0
  104. package/dist/src/lightning.d.ts +43 -0
  105. package/dist/src/lightning.d.ts.map +1 -0
  106. package/dist/src/lightning.js +64 -0
  107. package/dist/src/map.d.ts +34 -1
  108. package/dist/src/map.d.ts.map +1 -1
  109. package/dist/src/map.js +250 -35
  110. package/dist/src/networkFeatureMapForTokens.d.ts +17 -0
  111. package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
  112. package/dist/src/networkFeatureMapForTokens.js +85 -0
  113. package/dist/src/networks.d.ts +2028 -64
  114. package/dist/src/networks.d.ts.map +1 -1
  115. package/dist/src/networks.js +2493 -104
  116. package/dist/src/ofc.d.ts +695 -3
  117. package/dist/src/ofc.d.ts.map +1 -1
  118. package/dist/src/ofc.js +1653 -28
  119. package/dist/src/tokenConfig.d.ts +705 -108
  120. package/dist/src/tokenConfig.d.ts.map +1 -1
  121. package/dist/src/tokenConfig.js +1101 -220
  122. package/dist/src/utxo.d.ts +6 -2
  123. package/dist/src/utxo.d.ts.map +1 -1
  124. package/dist/src/utxo.js +105 -4
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +6 -3
  127. package/.mocharc.js +0 -10
  128. package/.prettierignore +0 -2
  129. package/CHANGELOG.md +0 -1428
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.networkFeatureMapForTokens = void 0;
4
+ exports.registerNetworkFeatures = registerNetworkFeatures;
5
+ exports.getNetworkFeatures = getNetworkFeatures;
6
+ exports.getTokenFeatures = getTokenFeatures;
7
+ const account_1 = require("./account");
8
+ const base_1 = require("./base");
9
+ const coinFeatures_1 = require("./coinFeatures");
10
+ const dynamicNetworkFeaturesMap = new Map();
11
+ /** Register default token features for a dynamically onboarded chain family. */
12
+ function registerNetworkFeatures(family, features) {
13
+ dynamicNetworkFeaturesMap.set(family, features);
14
+ }
15
+ /**
16
+ * Look up token features for a family.
17
+ * Checks static map first, then falls back to dynamic map.
18
+ * Returns undefined if the family is not registered in either map.
19
+ */
20
+ function getNetworkFeatures(family) {
21
+ return exports.networkFeatureMapForTokens[family] ?? dynamicNetworkFeaturesMap.get(family);
22
+ }
23
+ /**
24
+ * Resolve the final feature list for a token: the family's default token features
25
+ * plus `additionalFeatures`, minus `excludedFeatures`. Used by generated bot-token
26
+ * lists to apply the per-token diff returned by AMS (`features=false`).
27
+ */
28
+ function getTokenFeatures(family, additionalFeatures = [], excludedFeatures = []) {
29
+ const base = getNetworkFeatures(family) ?? [];
30
+ const excluded = new Set(excludedFeatures);
31
+ return [...new Set([...base, ...additionalFeatures])].filter((f) => !excluded.has(f));
32
+ }
33
+ exports.networkFeatureMapForTokens = {
34
+ algo: account_1.AccountCoin.DEFAULT_FEATURES,
35
+ apt: coinFeatures_1.APT_FEATURES,
36
+ arbeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
37
+ avaxc: account_1.AccountCoin.DEFAULT_FEATURES,
38
+ bera: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
39
+ bsc: coinFeatures_1.BSC_TOKEN_FEATURES,
40
+ canton: coinFeatures_1.CANTON_TOKEN_FEATURES,
41
+ celo: account_1.AccountCoin.DEFAULT_FEATURES,
42
+ eth: account_1.AccountCoin.DEFAULT_FEATURES,
43
+ eos: account_1.AccountCoin.DEFAULT_FEATURES,
44
+ gasevm: [
45
+ ...coinFeatures_1.EVM_FEATURES,
46
+ base_1.CoinFeature.SHARED_EVM_SIGNING,
47
+ base_1.CoinFeature.SHARED_EVM_SDK,
48
+ base_1.CoinFeature.EVM_COMPATIBLE_IMS,
49
+ base_1.CoinFeature.EVM_COMPATIBLE_UI,
50
+ base_1.CoinFeature.EVM_COMPATIBLE_WP,
51
+ base_1.CoinFeature.SUPPORTS_ERC20,
52
+ ],
53
+ hbar: account_1.AccountCoin.DEFAULT_FEATURES,
54
+ opeth: [...account_1.AccountCoin.DEFAULT_FEATURES, base_1.CoinFeature.EIP1559],
55
+ katanaeth: [
56
+ ...coinFeatures_1.EVM_FEATURES,
57
+ base_1.CoinFeature.SHARED_EVM_SIGNING,
58
+ base_1.CoinFeature.SHARED_EVM_SDK,
59
+ base_1.CoinFeature.EVM_COMPATIBLE_IMS,
60
+ base_1.CoinFeature.EVM_COMPATIBLE_UI,
61
+ base_1.CoinFeature.EVM_COMPATIBLE_WP,
62
+ base_1.CoinFeature.SUPPORTS_ERC20,
63
+ ],
64
+ polygon: coinFeatures_1.POLYGON_TOKEN_FEATURES,
65
+ scrolleth: [
66
+ ...coinFeatures_1.EVM_FEATURES,
67
+ base_1.CoinFeature.SHARED_EVM_SIGNING,
68
+ base_1.CoinFeature.SHARED_EVM_SDK,
69
+ base_1.CoinFeature.EVM_COMPATIBLE_IMS,
70
+ base_1.CoinFeature.EVM_COMPATIBLE_UI,
71
+ base_1.CoinFeature.EVM_COMPATIBLE_WP,
72
+ base_1.CoinFeature.SUPPORTS_ERC20,
73
+ ],
74
+ sol: coinFeatures_1.SOL_TOKEN_FEATURES,
75
+ stx: coinFeatures_1.STX_TOKEN_FEATURES,
76
+ sui: coinFeatures_1.SUI_TOKEN_FEATURES,
77
+ tao: coinFeatures_1.TAO_TOKEN_FEATURES,
78
+ polyx: coinFeatures_1.POLYX_TOKEN_FEATURES,
79
+ trx: account_1.AccountCoin.DEFAULT_FEATURES,
80
+ xlm: account_1.AccountCoin.DEFAULT_FEATURES,
81
+ xrp: account_1.AccountCoin.DEFAULT_FEATURES,
82
+ ofc: [],
83
+ ada: coinFeatures_1.ADA_TOKEN_FEATURES,
84
+ };
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29ya0ZlYXR1cmVNYXBGb3JUb2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUJBLDBEQUVDO0FBT0QsZ0RBRUM7QUFPRCw0Q0FRQztBQTdDRCx1Q0FBd0M7QUFDeEMsaUNBQWlEO0FBQ2pELGlEQVl3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO0FBRW5FLGdGQUFnRjtBQUNoRixTQUFnQix1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsUUFBdUI7SUFDN0UseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxrQ0FBMEIsQ0FBQyxNQUFvQixDQUFDLElBQUkseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25HLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxxQkFBb0MsRUFBRSxFQUN0QyxtQkFBa0MsRUFBRTtJQUVwQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQWMsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBYyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRyxDQUFDO0FBRVksUUFBQSwwQkFBMEIsR0FBK0M7SUFDcEYsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSwyQkFBWTtJQUNqQixNQUFNLEVBQUUsQ0FBQyxHQUFHLHFCQUFXLENBQUMsZ0JBQWdCLEVBQUUsa0JBQVcsQ0FBQyxPQUFPLENBQUM7SUFDOUQsS0FBSyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ25DLElBQUksRUFBRSxDQUFDLEdBQUcscUJBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBVyxDQUFDLE9BQU8sQ0FBQztJQUM1RCxHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLE1BQU0sRUFBRSxvQ0FBcUI7SUFDN0IsSUFBSSxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2xDLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsTUFBTSxFQUFFO1FBQ04sR0FBRywyQkFBWTtRQUNmLGtCQUFXLENBQUMsa0JBQWtCO1FBQzlCLGtCQUFXLENBQUMsY0FBYztRQUMxQixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGlCQUFpQjtRQUM3QixrQkFBVyxDQUFDLGNBQWM7S0FDM0I7SUFDRCxJQUFJLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDbEMsS0FBSyxFQUFFLENBQUMsR0FBRyxxQkFBVyxDQUFDLGdCQUFnQixFQUFFLGtCQUFXLENBQUMsT0FBTyxDQUFDO0lBQzdELFNBQVMsRUFBRTtRQUNULEdBQUcsMkJBQVk7UUFDZixrQkFBVyxDQUFDLGtCQUFrQjtRQUM5QixrQkFBVyxDQUFDLGNBQWM7UUFDMUIsa0JBQVcsQ0FBQyxrQkFBa0I7UUFDOUIsa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxpQkFBaUI7UUFDN0Isa0JBQVcsQ0FBQyxjQUFjO0tBQzNCO0lBQ0QsT0FBTyxFQUFFLHFDQUFzQjtJQUMvQixTQUFTLEVBQUU7UUFDVCxHQUFHLDJCQUFZO1FBQ2Ysa0JBQVcsQ0FBQyxrQkFBa0I7UUFDOUIsa0JBQVcsQ0FBQyxjQUFjO1FBQzFCLGtCQUFXLENBQUMsa0JBQWtCO1FBQzlCLGtCQUFXLENBQUMsaUJBQWlCO1FBQzdCLGtCQUFXLENBQUMsaUJBQWlCO1FBQzdCLGtCQUFXLENBQUMsY0FBYztLQUMzQjtJQUNELEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsR0FBRyxFQUFFLGlDQUFrQjtJQUN2QixHQUFHLEVBQUUsaUNBQWtCO0lBQ3ZCLEdBQUcsRUFBRSxpQ0FBa0I7SUFDdkIsS0FBSyxFQUFFLG1DQUFvQjtJQUMzQixHQUFHLEVBQUUscUJBQVcsQ0FBQyxnQkFBZ0I7SUFDakMsR0FBRyxFQUFFLHFCQUFXLENBQUMsZ0JBQWdCO0lBQ2pDLEdBQUcsRUFBRSxxQkFBVyxDQUFDLGdCQUFnQjtJQUNqQyxHQUFHLEVBQUUsRUFBRTtJQUNQLEdBQUcsRUFBRSxpQ0FBa0I7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRDb2luIH0gZnJvbSAnLi9hY2NvdW50JztcbmltcG9ydCB7IENvaW5GYW1pbHksIENvaW5GZWF0dXJlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIEFEQV9UT0tFTl9GRUFUVVJFUyxcbiAgQVBUX0ZFQVRVUkVTLFxuICBCU0NfVE9LRU5fRkVBVFVSRVMsXG4gIENBTlRPTl9UT0tFTl9GRUFUVVJFUyxcbiAgRVZNX0ZFQVRVUkVTLFxuICBQT0xZR09OX1RPS0VOX0ZFQVRVUkVTLFxuICBQT0xZWF9UT0tFTl9GRUFUVVJFUyxcbiAgU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBTVFhfVE9LRU5fRkVBVFVSRVMsXG4gIFNVSV9UT0tFTl9GRUFUVVJFUyxcbiAgVEFPX1RPS0VOX0ZFQVRVUkVTLFxufSBmcm9tICcuL2NvaW5GZWF0dXJlcyc7XG5cbmNvbnN0IGR5bmFtaWNOZXR3b3JrRmVhdHVyZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgQ29pbkZlYXR1cmVbXT4oKTtcblxuLyoqIFJlZ2lzdGVyIGRlZmF1bHQgdG9rZW4gZmVhdHVyZXMgZm9yIGEgZHluYW1pY2FsbHkgb25ib2FyZGVkIGNoYWluIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3Rlck5ldHdvcmtGZWF0dXJlcyhmYW1pbHk6IHN0cmluZywgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10pOiB2b2lkIHtcbiAgZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5zZXQoZmFtaWx5LCBmZWF0dXJlcyk7XG59XG5cbi8qKlxuICogTG9vayB1cCB0b2tlbiBmZWF0dXJlcyBmb3IgYSBmYW1pbHkuXG4gKiBDaGVja3Mgc3RhdGljIG1hcCBmaXJzdCwgdGhlbiBmYWxscyBiYWNrIHRvIGR5bmFtaWMgbWFwLlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGZhbWlseSBpcyBub3QgcmVnaXN0ZXJlZCBpbiBlaXRoZXIgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV0d29ya0ZlYXR1cmVzKGZhbWlseTogc3RyaW5nKTogQ29pbkZlYXR1cmVbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2Vuc1tmYW1pbHkgYXMgQ29pbkZhbWlseV0gPz8gZHluYW1pY05ldHdvcmtGZWF0dXJlc01hcC5nZXQoZmFtaWx5KTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmaW5hbCBmZWF0dXJlIGxpc3QgZm9yIGEgdG9rZW46IHRoZSBmYW1pbHkncyBkZWZhdWx0IHRva2VuIGZlYXR1cmVzXG4gKiBwbHVzIGBhZGRpdGlvbmFsRmVhdHVyZXNgLCBtaW51cyBgZXhjbHVkZWRGZWF0dXJlc2AuIFVzZWQgYnkgZ2VuZXJhdGVkIGJvdC10b2tlblxuICogbGlzdHMgdG8gYXBwbHkgdGhlIHBlci10b2tlbiBkaWZmIHJldHVybmVkIGJ5IEFNUyAoYGZlYXR1cmVzPWZhbHNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbkZlYXR1cmVzKFxuICBmYW1pbHk6IHN0cmluZyxcbiAgYWRkaXRpb25hbEZlYXR1cmVzOiBDb2luRmVhdHVyZVtdID0gW10sXG4gIGV4Y2x1ZGVkRmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBbXVxuKTogQ29pbkZlYXR1cmVbXSB7XG4gIGNvbnN0IGJhc2UgPSBnZXROZXR3b3JrRmVhdHVyZXMoZmFtaWx5KSA/PyBbXTtcbiAgY29uc3QgZXhjbHVkZWQgPSBuZXcgU2V0PENvaW5GZWF0dXJlPihleGNsdWRlZEZlYXR1cmVzKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0PENvaW5GZWF0dXJlPihbLi4uYmFzZSwgLi4uYWRkaXRpb25hbEZlYXR1cmVzXSldLmZpbHRlcigoZikgPT4gIWV4Y2x1ZGVkLmhhcyhmKSk7XG59XG5cbmV4cG9ydCBjb25zdCBuZXR3b3JrRmVhdHVyZU1hcEZvclRva2VuczogUGFydGlhbDxSZWNvcmQ8Q29pbkZhbWlseSwgQ29pbkZlYXR1cmVbXT4+ID0ge1xuICBhbGdvOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBhcHQ6IEFQVF9GRUFUVVJFUyxcbiAgYXJiZXRoOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGF2YXhjOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBiZXJhOiBbLi4uQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuRUlQMTU1OV0sXG4gIGJzYzogQlNDX1RPS0VOX0ZFQVRVUkVTLFxuICBjYW50b246IENBTlRPTl9UT0tFTl9GRUFUVVJFUyxcbiAgY2VsbzogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgZXRoOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBlb3M6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIGdhc2V2bTogW1xuICAgIC4uLkVWTV9GRUFUVVJFUyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NJR05JTkcsXG4gICAgQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TREssXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfSU1TLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1VJLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX1dQLFxuICAgIENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwLFxuICBdLFxuICBoYmFyOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBvcGV0aDogWy4uLkFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsIENvaW5GZWF0dXJlLkVJUDE1NTldLFxuICBrYXRhbmFldGg6IFtcbiAgICAuLi5FVk1fRkVBVFVSRVMsXG4gICAgQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TSUdOSU5HLFxuICAgIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0RLLFxuICAgIENvaW5GZWF0dXJlLkVWTV9DT01QQVRJQkxFX0lNUyxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9VSSxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9XUCxcbiAgICBDb2luRmVhdHVyZS5TVVBQT1JUU19FUkMyMCxcbiAgXSxcbiAgcG9seWdvbjogUE9MWUdPTl9UT0tFTl9GRUFUVVJFUyxcbiAgc2Nyb2xsZXRoOiBbXG4gICAgLi4uRVZNX0ZFQVRVUkVTLFxuICAgIENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0lHTklORyxcbiAgICBDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESyxcbiAgICBDb2luRmVhdHVyZS5FVk1fQ09NUEFUSUJMRV9JTVMsXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfVUksXG4gICAgQ29pbkZlYXR1cmUuRVZNX0NPTVBBVElCTEVfV1AsXG4gICAgQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjAsXG4gIF0sXG4gIHNvbDogU09MX1RPS0VOX0ZFQVRVUkVTLFxuICBzdHg6IFNUWF9UT0tFTl9GRUFUVVJFUyxcbiAgc3VpOiBTVUlfVE9LRU5fRkVBVFVSRVMsXG4gIHRhbzogVEFPX1RPS0VOX0ZFQVRVUkVTLFxuICBwb2x5eDogUE9MWVhfVE9LRU5fRkVBVFVSRVMsXG4gIHRyeDogQWNjb3VudENvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgeGxtOiBBY2NvdW50Q29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICB4cnA6IEFjY291bnRDb2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIG9mYzogW10sXG4gIGFkYTogQURBX1RPS0VOX0ZFQVRVUkVTLFxufTtcbiJdfQ==