@bitgo/sdk-coin-eth 2.8.0 → 2.9.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.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.9.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-eth@2.8.0...@bitgo/sdk-coin-eth@2.9.0) (2022-12-09)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **sdk-coin-eth:** build from rawTx ([152bced](https://github.com/BitGo/BitGoJS/commit/152bced4d9b2cade28c638b691030286bab61ff4))
|
|
11
|
+
|
|
6
12
|
# [2.8.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-eth@2.7.1...@bitgo/sdk-coin-eth@2.8.0) (2022-12-06)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAsC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5G,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,OAAO,EAKL,eAAe,EAKhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACN,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -352,6 +352,7 @@ exports.classifyTransaction = classifyTransaction;
|
|
|
352
352
|
*/
|
|
353
353
|
const transactionTypesMap = {
|
|
354
354
|
[walletUtil_1.walletInitializationFirstBytes]: sdk_core_1.TransactionType.WalletInitialization,
|
|
355
|
+
[walletUtil_1.recoveryWalletInitializationFirstBytes]: sdk_core_1.TransactionType.RecoveryWalletDeployment,
|
|
355
356
|
[walletUtil_1.v1CreateWalletMethodId]: sdk_core_1.TransactionType.WalletInitialization,
|
|
356
357
|
[walletUtil_1.createForwarderMethodId]: sdk_core_1.TransactionType.AddressInitialization,
|
|
357
358
|
[walletUtil_1.v1CreateForwarderMethodId]: sdk_core_1.TransactionType.AddressInitialization,
|
|
@@ -573,4 +574,4 @@ function decodeForwarderCreationData(data) {
|
|
|
573
574
|
}
|
|
574
575
|
}
|
|
575
576
|
exports.decodeForwarderCreationData = decodeForwarderCreationData;
|
|
576
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyxvREFBNEI7QUFDNUIscURBV3lCO0FBQ3pCLDRDQUE0RztBQUM1RyxvRUFBeUM7QUFDekMsZ0VBQWdEO0FBQ2hELGtEQUF1QjtBQUN2QixnRUFBcUM7QUFDckMsOENBVXlCO0FBZXpCLDZDQXNCc0I7QUFDdEIsbUNBQTZDO0FBRTdDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE9BQXdCO0lBQ2hELE9BQU8sZ0JBQWMsQ0FBQyxjQUFjO0lBQ2xDLHdFQUF3RTtJQUN4RSxTQUFTLEVBQ1Q7UUFDRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQzFCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztLQUN6QixFQUNELFFBQVEsQ0FDVCxDQUFDO0FBQ0osQ0FBQztBQVhELDhCQVdDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxlQUF1QixFQUN2QixPQUFnQixFQUNoQixZQUE0QjtJQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUMxQixNQUFNLElBQUksdUJBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsTUFBTSxLQUFLLEdBQUcsMEJBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6RSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFYRCxvQ0FXQztBQUVEOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsZUFBdUIsRUFBRSxPQUFnQjtJQUNsRSxPQUFP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QixFQUFFLElBQUksQ0FBQyxDQUNyRCxDQUFDO1FBRUYsT0FBTztZQUNMLFdBQVcsRUFBRSw4QkFBWSxDQUFDLFdBQXFCLENBQUM7WUFDaEQsbUJBQW1CLEVBQUUsNkJBQVcsQ0FBQyxVQUFvQixDQUFDO1NBQ3ZELENBQUM7S0FDSDtBQUNILENBQUM7QUFyQkQsa0VBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7XG4gIGFkZEhleFByZWZpeCxcbiAgYnVmZmVyVG9IZXgsXG4gIGJ1ZmZlclRvSW50LFxuICBnZW5lcmF0ZUFkZHJlc3MsXG4gIGlzVmFsaWRBZGRyZXNzLFxuICBzZXRMZW5ndGhMZWZ0LFxuICBzdHJpcEhleFByZWZpeCxcbiAgdG9CdWZmZXIsXG4gIGdlbmVyYXRlQWRkcmVzczIsXG4gIHBhZFRvRXZlbixcbn0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCB7IEJhc2VDb2luLCBCYXNlTmV0d29yaywgY29pbnMsIENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbiwgRXRoZXJldW1OZXR3b3JrIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCBFdGhlcmV1bUNvbW1vbiBmcm9tICdAZXRoZXJldW1qcy9jb21tb24nO1xuaW1wb3J0IEJOIGZyb20gJ2JuLmpzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlTWV0aG9kSWQsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgTG9ja01ldGhvZElkLFxuICBTaWduaW5nRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgVW5sb2NrTWV0aG9kSWQsXG4gIFVudm90ZU1ldGhvZElkLFxuICBWb3RlTWV0aG9kSWQsXG4gIFdpdGhkcmF3TWV0aG9kSWQsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7XG4gIEVSQzExNTVUcmFuc2ZlckRhdGEsXG4gIEVSQzcyMVRyYW5zZmVyRGF0YSxcbiAgRmx1c2hUb2tlbnNEYXRhLFxuICBOYXRpdmVUcmFuc2ZlckRhdGEsXG4gIFNpZ25hdHVyZVBhcnRzLFxuICBUb2tlblRyYW5zZmVyRGF0YSxcbiAgVHJhbnNmZXJEYXRhLFxuICBUeERhdGEsXG4gIFdhbGxldEluaXRpYWxpemF0aW9uRGF0YSxcbiAgRm9yd2FyZGVySW5pdGlhbGl6YXRpb25EYXRhLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQsXG4gIEVSQzExNTVCYXRjaFRyYW5zZmVyVHlwZU1ldGhvZElkLFxuICBFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVzLFxuICBFUkMxMTU1U2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkLFxuICBFUkMxMTU1U2FmZVRyYW5zZmVyVHlwZXMsXG4gIEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCxcbiAgRVJDNzIxU2FmZVRyYW5zZmVyVHlwZXMsXG4gIGZsdXNoQ29pbnNNZXRob2RJZCxcbiAgZmx1c2hDb2luc1R5cGVzLFxuICBmbHVzaEZvcndhcmRlclRva2Vuc01ldGhvZElkLFxuICBmbHVzaFRva2Vuc1R5cGVzLFxuICBzZW5kTXVsdGlzaWdNZXRob2RJZCxcbiAgc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZCxcbiAgc2VuZE11bHRpU2lnVG9rZW5UeXBlcyxcbiAgc2VuZE11bHRpU2lnVHlwZXMsXG4gIHdhbGxldEluaXRpYWxpemF0aW9uRmlyc3RCeXRlcyxcbiAgdjFDcmVhdGVGb3J3YXJkZXJNZXRob2RJZCxcbiAgd2FsbGV0U2ltcGxlQ29uc3RydWN0b3IsXG4gIGNyZWF0ZVYxV2FsbGV0VHlwZXMsXG4gIHYxQ3JlYXRlV2FsbGV0TWV0aG9kSWQsXG4gIGNyZWF0ZVYxRm9yd2FyZGVyVHlwZXMsXG59IGZyb20gJy4vd2FsbGV0VXRpbCc7XG5pbXBvcnQgeyBFdGhUcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbW9uKG5ldHdvcms6IEV0aGVyZXVtTmV0d29yayk6IEV0aGVyZXVtQ29tbW9uIHtcbiAgcmV0dXJuIEV0aGVyZXVtQ29tbW9uLmZvckN1c3RvbUNoYWluKFxuICAgIC8vIHVzZSB0aGUgbWFpbm5ldCBjb25maWcgYXMgYSBiYXNlLCBvdmVycmlkZSBjaGFpbiBpZHMgYW5kIG5ldHdvcmsgbmFtZVxuICAgICdtYWlubmV0JyxcbiAgICB7XG4gICAgICBuYW1lOiBuZXR3b3JrLnR5cGUsXG4gICAgICBuZXR3b3JrSWQ6IG5ldHdvcmsuY2hhaW5JZCxcbiAgICAgIGNoYWluSWQ6IG5ldHdvcmsuY2hhaW5JZCxcbiAgICB9LFxuICAgICdsb25kb24nXG4gICk7XG59XG5cbi8qKlxuICogU2lnbnMgdGhlIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBhbGdvcml0aG1cbiAqIGFuZCB0aGUgcHJvdmlkZWQgY29tbW9uIGZvciB0aGUgYmxvY2tjaGFpblxuICpcbiAqIEBwYXJhbSB7VHhEYXRhfSB0cmFuc2FjdGlvbkRhdGEgdGhlIHRyYW5zYWN0aW9uIGRhdGEgdG8gc2lnblxuICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIHRoZSBzaWduZXIncyBrZXlwYWlyXG4gKiBAcGFyYW0ge0V0aGVyZXVtQ29tbW9ufSBjdXN0b21Db21tb24gdGhlIG5ldHdvcmsncyBjdXN0b20gY29tbW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgdHJhbnNhY3Rpb24gc2lnbmVkIGFuZCBlbmNvZGVkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduSW50ZXJuYWwoXG4gIHRyYW5zYWN0aW9uRGF0YTogVHhEYXRhLFxuICBrZXlQYWlyOiBLZXlQYWlyLFxuICBjdXN0b21Db21tb246IEV0aGVyZXVtQ29tbW9uXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBpZiAoIWtleVBhaXIuZ2V0S2V5cygpLnBydikge1xuICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgfVxuICBjb25zdCBldGhUeCA9IEV0aFRyYW5zYWN0aW9uRGF0YS5mcm9tSnNvbih0cmFuc2FjdGlvbkRhdGEsIGN1c3RvbUNvbW1vbik7XG4gIGV0aFR4LnNpZ24oa2V5UGFpcik7XG4gIHJldHVybiBldGhUeC50b1NlcmlhbGl6ZWQoKTtcbn1cblxuLyoqXG4gKiBTaWducyB0aGUgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIGFwcHJvcHJpYXRlIGFsZ29yaXRobVxuICpcbiAqIEBwYXJhbSB7VHhEYXRhfSB0cmFuc2FjdGlvbkRhdGEgdGhlIHRyYW5zYWN0aW9uIGRhdGEgdG8gc2lnblxuICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIHRoZSBzaWduZXIncyBrZXlwYWlyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgdHJhbnNhY3Rpb24gc2lnbmVkIGFuZCBlbmNvZGVkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduKHRyYW5zYWN0aW9uRGF0YTogVHhEYXRhLCBrZXlQYWlyOiBLZXlQYWlyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIHNpZ25JbnRlcm5hbCh0cmFuc2FjdGlvbkRhdGEsIGtleVBhaXIsIGdldENvbW1vbihjb2lucy5nZXQoJ3RldGgnKS5uZXR3b3JrIGFzIEV0aGVyZXVtTmV0d29yaykpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNvbnRyYWN0IG1ldGhvZCBlbmNvZGVkIGRhdGFcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG8gZGVzdGluYXRpb24gYWRkcmVzc1xuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIEFtb3VudCB0byB0cmFuZmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YSBhZGl0aW9uYWwgbWV0aG9kIGNhbGwgZGF0YVxuICogQHBhcmFtIHtudW1iZXJ9IGV4cGlyZVRpbWUgZXhwaXJhdGlvbiB0aW1lIGZvciB0aGUgdHJhbnNhY3Rpb24gaW4gc2Vjb25kc1xuICogQHBhcmFtIHtudW1iZXJ9IHNlcXVlbmNlSWQgc2VxdWVuY2UgaWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgc2lnbmF0dXJlIG9mIHRoZSBjYWxsXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtLSB0aGUgY29udHJhY3QgbWV0aG9kIGVuY29kZWQgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZE11bHRpU2lnRGF0YShcbiAgdG86IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZyxcbiAgZGF0YTogc3RyaW5nLFxuICBleHBpcmVUaW1lOiBudW1iZXIsXG4gIHNlcXVlbmNlSWQ6IG51bWJlcixcbiAgc2lnbmF0dXJlOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcmFtcyA9IFt0bywgdmFsdWUsIHRvQnVmZmVyKGRhdGEpLCBleHBpcmVUaW1lLCBzZXF1ZW5jZUlkLCB0b0J1ZmZlcihzaWduYXR1cmUpXTtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ3NlbmRNdWx0aVNpZycsIHNlbmRNdWx0aVNpZ1R5cGVzKTtcbiAgY29uc3QgYXJncyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZShzZW5kTXVsdGlTaWdUeXBlcywgcGFyYW1zKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNvbnRyYWN0IG1ldGhvZCBlbmNvZGVkIGRhdGFcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG8gZGVzdGluYXRpb24gYWRkcmVzc1xuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIEFtb3VudCB0byB0cmFuZmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW5Db250cmFjdEFkZHJlc3MgdGhlIGFkZHJlc3Mgb2YgdGhlIGVyYzIwIHRva2VuIGNvbnRyYWN0XG4gKiBAcGFyYW0ge251bWJlcn0gZXhwaXJlVGltZSBleHBpcmF0aW9uIHRpbWUgZm9yIHRoZSB0cmFuc2FjdGlvbiBpbiBzZWNvbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gc2VxdWVuY2VJZCBzZXF1ZW5jZSBpZFxuICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSBzaWduYXR1cmUgb2YgdGhlIGNhbGxcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0tIHRoZSBjb250cmFjdCBtZXRob2QgZW5jb2RlZCBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kTXVsdGlTaWdUb2tlbkRhdGEoXG4gIHRvOiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGV4cGlyZVRpbWU6IG51bWJlcixcbiAgc2VxdWVuY2VJZDogbnVtYmVyLFxuICBzaWduYXR1cmU6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyYW1zID0gW3RvLCB2YWx1ZSwgdG9rZW5Db250cmFjdEFkZHJlc3MsIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQsIHRvQnVmZmVyKHNpZ25hdHVyZSldO1xuXG4gIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdzZW5kTXVsdGlTaWdUb2tlbicsIHNlbmRNdWx0aVNpZ1Rva2VuVHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHNlbmRNdWx0aVNpZ1Rva2VuVHlwZXMsIHBhcmFtcyk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRhdGEgcmVxdWlyZWQgdG8gbWFrZSBhIGZsdXNoIHRva2VucyBjb250cmFjdCBjYWxsXG4gKlxuICogQHBhcmFtIGZvcndhcmRlckFkZHJlc3MgVGhlIGZvcndhcmRlciBhZGRyZXNzIHRvIGZsdXNoXG4gKiBAcGFyYW0gdG9rZW5BZGRyZXNzIFRoZSB0b2tlbiBhZGRyZXNzIHRvIGZsdXNoIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsdXNoVG9rZW5zRGF0YShmb3J3YXJkZXJBZGRyZXNzOiBzdHJpbmcsIHRva2VuQWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyYW1zID0gW2ZvcndhcmRlckFkZHJlc3MsIHRva2VuQWRkcmVzc107XG4gIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdmbHVzaEZvcndhcmRlclRva2VucycsIGZsdXNoVG9rZW5zVHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKGZsdXNoVG9rZW5zVHlwZXMsIHBhcmFtcyk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRhdGEgcmVxdWlyZWQgdG8gbWFrZSBhIGZsdXNoIG5hdGl2ZSBjb2lucyBjb250cmFjdCBjYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbHVzaENvaW5zRGF0YSgpOiBzdHJpbmcge1xuICBjb25zdCBwYXJhbXMgPSBbXTtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2ZsdXNoJywgZmx1c2hDb2luc1R5cGVzKTtcbiAgY29uc3QgYXJncyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZShmbHVzaENvaW5zVHlwZXMsIHBhcmFtcyk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjcmVhdGUgZm9yd2FyZGVyIG1ldGhvZCBjYWxsaW5nIGRhdGFcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBjcmVhdGVGb3J3YXJkZXIgbWV0aG9kIGVuY29kZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NJbml0aWFsaXphdGlvbkRhdGEoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWF0ZUZvcndhcmRlck1ldGhvZElkO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEV0aCBhZGRyZXNzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSB0aGUgdHggaGFzaCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRXRoQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGFtb3VudCBudW1iZXJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IC0gdGhlIHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQW1vdW50KGFtb3VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgcmV0dXJuIGJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSAmJiBiaWdOdW1iZXJBbW91bnQuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygwKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzbWFydCBjb250cmFjdCBlbmNvZGVkIGRhdGFcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGF0YSBUaGUgd2FsbGV0IGNyZWF0aW9uIGRhdGEgdG8gZGVjb2RlXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IC0gVGhlIGxpc3Qgb2Ygc2lnbmVyIGFkZHJlc3Nlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlV2FsbGV0Q3JlYXRpb25EYXRhKGRhdGE6IHN0cmluZyk6IFdhbGxldEluaXRpYWxpemF0aW9uRGF0YSB7XG4gIGlmICghKGRhdGEuc3RhcnRzV2l0aCh3YWxsZXRJbml0aWFsaXphdGlvbkZpcnN0Qnl0ZXMpIHx8IGRhdGEuc3RhcnRzV2l0aCh2MUNyZWF0ZVdhbGxldE1ldGhvZElkKSkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHdhbGxldCBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG5cbiAgaWYgKGRhdGEuc3RhcnRzV2l0aCh3YWxsZXRJbml0aWFsaXphdGlvbkZpcnN0Qnl0ZXMpKSB7XG4gICAgY29uc3QgZGF0YUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKTtcblxuICAgIC8vIHRoZSBsYXN0IDE2MCBieXRlcyBjb250YWluIHRoZSBzZXJpYWxpemVkIGFkZHJlc3MgYXJyYXlcbiAgICBjb25zdCBzZXJpYWxpemVkU2lnbmVycyA9IGRhdGFCdWZmZXIuc2xpY2UoLTE2MCk7XG5cbiAgICBjb25zdCByZXN1bHRFbmNvZGVkUGFyYW1ldGVycyA9IEV0aGVyZXVtQWJpLnJhd0RlY29kZSh3YWxsZXRTaW1wbGVDb25zdHJ1Y3Rvciwgc2VyaWFsaXplZFNpZ25lcnMpO1xuICAgIGlmIChyZXN1bHRFbmNvZGVkUGFyYW1ldGVycy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYENvdWxkIG5vdCBkZWNvZGUgd2FsbGV0IGNvbnN0cnVjdG9yIGJ5dGVjb2RlOiAke3Jlc3VsdEVuY29kZWRQYXJhbWV0ZXJzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFkZHJlc3NlczogQk5bXSA9IHJlc3VsdEVuY29kZWRQYXJhbWV0ZXJzWzBdO1xuICAgIGlmIChhZGRyZXNzZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBpbnZhbGlkIG51bWJlciBvZiBhZGRyZXNzZXMgaW4gcGFyc2VkIGNvbnN0cnVjdG9yOiAke2FkZHJlc3Nlc31gKTtcbiAgICB9XG5cbiAgICAvLyBzb21ldGltZXMgZXRoZXJldW1qcy1hYmkgcmVtb3ZlcyAwIHBhZGRpbmcgYXQgdGhlIHN0YXJ0IG9mIGFkZHJlc3NlcyxcbiAgICAvLyBzbyB3ZSBzaG91bGQgcGFkIHVudGlsIHRoZXkgYXJlIHRoZSBzdGFuZGFyZCAyMCBieXRlc1xuICAgIGNvbnN0IHBhZGRlZEFkZHJlc3NlcyA9IGFkZHJlc3Nlcy5tYXAoKGFkZHJlc3MpID0+IHN0cmlwSGV4UHJlZml4KGFkZHJlc3MudG9TdHJpbmcoJ2hleCcpKS5wYWRTdGFydCg0MCwgJzAnKSk7XG5cbiAgICByZXR1cm4geyBvd25lcnM6IHBhZGRlZEFkZHJlc3Nlcy5tYXAoKGFkZHJlc3MpID0+IGFkZEhleFByZWZpeChhZGRyZXNzKSkgfTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZWNvZGVkRGF0YUZvcldhbGxldENyZWF0aW9uID0gZ2V0UmF3RGVjb2RlZChcbiAgICAgIGNyZWF0ZVYxV2FsbGV0VHlwZXMsXG4gICAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKHYxQ3JlYXRlV2FsbGV0TWV0aG9kSWQsIGRhdGEpXG4gICAgKTtcbiAgICBjb25zdCBhZGRyZXNzZXMgPSBkZWNvZGVkRGF0YUZvcldhbGxldENyZWF0aW9uWzBdIGFzIHN0cmluZ1tdO1xuICAgIGNvbnN0IHNhbHRCdWZmZXIgPSBkZWNvZGVkRGF0YUZvcldhbGxldENyZWF0aW9uWzFdO1xuICAgIGNvbnN0IHNhbHQgPSBidWZmZXJUb0hleChzYWx0QnVmZmVyIGFzIEJ1ZmZlcik7XG4gICAgY29uc3QgcGFkZGVkQWRkcmVzc2VzID0gYWRkcmVzc2VzLm1hcCgoYWRkcmVzcykgPT4gc3RyaXBIZXhQcmVmaXgoYWRkcmVzcy50b1N0cmluZygpKS5wYWRTdGFydCg0MCwgJzAnKSk7XG4gICAgY29uc3Qgb3duZXJzID0gcGFkZGVkQWRkcmVzc2VzLm1hcCgoYWRkcmVzcykgPT4gYWRkSGV4UHJlZml4KGFkZHJlc3MpKTtcbiAgICByZXR1cm4ge1xuICAgICAgb3duZXJzLFxuICAgICAgc2FsdCxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRGVjb2RlIHRoZSBnaXZlbiBBQkktZW5jb2RlZCB0cmFuc2ZlciBkYXRhIGFuZCByZXR1cm4gcGFyc2VkIGZpZWxkc1xuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGRlY29kZVxuICogQHJldHVybnMgcGFyc2VkIHRyYW5zZmVyIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiBUcmFuc2ZlckRhdGEge1xuICBpZiAoZGF0YS5zdGFydHNXaXRoKHNlbmRNdWx0aXNpZ01ldGhvZElkKSkge1xuICAgIHJldHVybiBkZWNvZGVOYXRpdmVUcmFuc2ZlckRhdGEoZGF0YSk7XG4gIH0gZWxzZSBpZiAoZGF0YS5zdGFydHNXaXRoKHNlbmRNdWx0aXNpZ1Rva2VuTWV0aG9kSWQpKSB7XG4gICAgcmV0dXJuIGRlY29kZVRva2VuVHJhbnNmZXJEYXRhKGRhdGEpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNmZXIgYnl0ZWNvZGU6ICR7ZGF0YX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIERlY29kZSB0aGUgZ2l2ZW4gQUJJLWVuY29kZWQgdHJhbnNmZXIgZGF0YSBmb3IgdGhlIHNlbmRNdWx0aXNpZ1Rva2VuIGZ1bmN0aW9uIGFuZCByZXR1cm4gcGFyc2VkIGZpZWxkc1xuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGRlY29kZVxuICogQHJldHVybnMgcGFyc2VkIHRva2VuIHRyYW5zZmVyIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRva2VuVHJhbnNmZXJEYXRhKGRhdGE6IHN0cmluZyk6IFRva2VuVHJhbnNmZXJEYXRhIHtcbiAgaWYgKCFkYXRhLnN0YXJ0c1dpdGgoc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbdG8sIGFtb3VudCwgdG9rZW5Db250cmFjdEFkZHJlc3MsIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQsIHNpZ25hdHVyZV0gPSBnZXRSYXdEZWNvZGVkKFxuICAgIHNlbmRNdWx0aVNpZ1Rva2VuVHlwZXMsXG4gICAgZ2V0QnVmZmVyZWRCeXRlQ29kZShzZW5kTXVsdGlzaWdUb2tlbk1ldGhvZElkLCBkYXRhKVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdG86IGFkZEhleFByZWZpeCh0byBhcyBzdHJpbmcpLFxuICAgIGFtb3VudDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleChhbW91bnQgYXMgQnVmZmVyKSkudG9GaXhlZCgpLFxuICAgIGV4cGlyZVRpbWU6IGJ1ZmZlclRvSW50KGV4cGlyZVRpbWUgYXMgQnVmZmVyKSxcbiAgICBzZXF1ZW5jZUlkOiBidWZmZXJUb0ludChzZXF1ZW5jZUlkIGFzIEJ1ZmZlciksXG4gICAgc2lnbmF0dXJlOiBidWZmZXJUb0hleChzaWduYXR1cmUgYXMgQnVmZmVyKSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogYWRkSGV4UHJlZml4KHRva2VuQ29udHJhY3RBZGRyZXNzIGFzIHN0cmluZyksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVFUkM3MjFUcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogRVJDNzIxVHJhbnNmZXJEYXRhIHtcbiAgaWYgKCFkYXRhLnN0YXJ0c1dpdGgoc2VuZE11bHRpc2lnTWV0aG9kSWQpKSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2ZlciBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG5cbiAgY29uc3QgW3RvLCBhbW91bnQsIGludGVybmFsRGF0YSwgZXhwaXJlVGltZSwgc2VxdWVuY2VJZCwgc2lnbmF0dXJlXSA9IGdldFJhd0RlY29kZWQoXG4gICAgc2VuZE11bHRpU2lnVHlwZXMsXG4gICAgZ2V0QnVmZmVyZWRCeXRlQ29kZShzZW5kTXVsdGlzaWdNZXRob2RJZCwgZGF0YSlcbiAgKTtcblxuICBjb25zdCBpbnRlcm5hbERhdGFIZXggPSBidWZmZXJUb0hleChpbnRlcm5hbERhdGEgYXMgQnVmZmVyKTtcbiAgaWYgKCFpbnRlcm5hbERhdGFIZXguc3RhcnRzV2l0aChFUkM3MjFTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQpKSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2ZlciBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG5cbiAgY29uc3QgW2Zyb20sIHJlY2VpdmVyLCB0b2tlbklkLCB1c2VyU2VudERhdGFdID0gZ2V0UmF3RGVjb2RlZChcbiAgICBFUkM3MjFTYWZlVHJhbnNmZXJUeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCwgaW50ZXJuYWxEYXRhSGV4KVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdG86IGFkZEhleFByZWZpeChyZWNlaXZlciBhcyBzdHJpbmcpLFxuICAgIGZyb206IGFkZEhleFByZWZpeChmcm9tIGFzIHN0cmluZyksXG4gICAgZXhwaXJlVGltZTogYnVmZmVyVG9JbnQoZXhwaXJlVGltZSBhcyBCdWZmZXIpLFxuICAgIGFtb3VudDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleChhbW91bnQgYXMgQnVmZmVyKSkudG9GaXhlZCgpLFxuICAgIHRva2VuSWQ6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodG9rZW5JZCBhcyBCdWZmZXIpKS50b0ZpeGVkKCksXG4gICAgc2VxdWVuY2VJZDogYnVmZmVyVG9JbnQoc2VxdWVuY2VJZCBhcyBCdWZmZXIpLFxuICAgIHNpZ25hdHVyZTogYnVmZmVyVG9IZXgoc2lnbmF0dXJlIGFzIEJ1ZmZlciksXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGFkZEhleFByZWZpeCh0byBhcyBzdHJpbmcpLFxuICAgIHVzZXJEYXRhOiBidWZmZXJUb0hleCh1c2VyU2VudERhdGEgYXMgQnVmZmVyKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUVSQzExNTVUcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogRVJDMTE1NVRyYW5zZmVyRGF0YSB7XG4gIGxldCBmcm9tLCByZWNlaXZlciwgdXNlclNlbnREYXRhO1xuICBsZXQgdG9rZW5JZHM6IHN0cmluZ1tdO1xuICBsZXQgdmFsdWVzOiBzdHJpbmdbXTtcblxuICBpZiAoIWRhdGEuc3RhcnRzV2l0aChzZW5kTXVsdGlzaWdNZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbdG8sIGFtb3VudCwgaW50ZXJuYWxEYXRhLCBleHBpcmVUaW1lLCBzZXF1ZW5jZUlkLCBzaWduYXR1cmVdID0gZ2V0UmF3RGVjb2RlZChcbiAgICBzZW5kTXVsdGlTaWdUeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKHNlbmRNdWx0aXNpZ01ldGhvZElkLCBkYXRhKVxuICApO1xuXG4gIGNvbnN0IGludGVybmFsRGF0YUhleCA9IGJ1ZmZlclRvSGV4KGludGVybmFsRGF0YSBhcyBCdWZmZXIpO1xuICBpZiAoaW50ZXJuYWxEYXRhSGV4LnN0YXJ0c1dpdGgoRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCkpIHtcbiAgICBsZXQgdG9rZW5JZDtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBbZnJvbSwgcmVjZWl2ZXIsIHRva2VuSWQsIHZhbHVlLCB1c2VyU2VudERhdGFdID0gZ2V0UmF3RGVjb2RlZChcbiAgICAgIEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlcyxcbiAgICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUoRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCwgaW50ZXJuYWxEYXRhSGV4KVxuICAgICk7XG5cbiAgICB0b2tlbklkcyA9IFtuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHRva2VuSWQpKS50b0ZpeGVkKCldO1xuICAgIHZhbHVlcyA9IFtuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHZhbHVlKSkudG9GaXhlZCgpXTtcbiAgfSBlbHNlIGlmIChidWZmZXJUb0hleChpbnRlcm5hbERhdGEgYXMgQnVmZmVyKS5zdGFydHNXaXRoKEVSQzExNTVCYXRjaFRyYW5zZmVyVHlwZU1ldGhvZElkKSkge1xuICAgIGxldCB0ZW1wVG9rZW5JZHMsIHRlbXBWYWx1ZXM7XG4gICAgW2Zyb20sIHJlY2VpdmVyLCB0ZW1wVG9rZW5JZHMsIHRlbXBWYWx1ZXMsIHVzZXJTZW50RGF0YV0gPSBnZXRSYXdEZWNvZGVkKFxuICAgICAgRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlcyxcbiAgICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUoRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlTWV0aG9kSWQsIGludGVybmFsRGF0YUhleClcbiAgICApO1xuICAgIHRva2VuSWRzID0gdGVtcFRva2VuSWRzLm1hcCgoeCkgPT4gbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh4KSkudG9GaXhlZCgpKTtcbiAgICB2YWx1ZXMgPSB0ZW1wVmFsdWVzLm1hcCgoeCkgPT4gbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh4KSkudG9GaXhlZCgpKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvOiBhZGRIZXhQcmVmaXgocmVjZWl2ZXIpLFxuICAgIGZyb206IGFkZEhleFByZWZpeChmcm9tKSxcbiAgICBleHBpcmVUaW1lOiBidWZmZXJUb0ludChleHBpcmVUaW1lIGFzIEJ1ZmZlciksXG4gICAgYW1vdW50OiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KGFtb3VudCBhcyBCdWZmZXIpKS50b0ZpeGVkKCksXG4gICAgdG9rZW5JZHMsXG4gICAgdmFsdWVzLFxuICAgIHNlcXVlbmNlSWQ6IGJ1ZmZlclRvSW50KHNlcXVlbmNlSWQgYXMgQnVmZmVyKSxcbiAgICBzaWduYXR1cmU6IGJ1ZmZlclRvSGV4KHNpZ25hdHVyZSBhcyBCdWZmZXIpLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBhZGRIZXhQcmVmaXgodG8gYXMgc3RyaW5nKSxcbiAgICB1c2VyRGF0YTogdXNlclNlbnREYXRhLFxuICB9O1xufVxuXG4vKipcbiAqIERlY29kZSB0aGUgZ2l2ZW4gQUJJLWVuY29kZWQgdHJhbnNmZXIgZGF0YSBmb3IgdGhlIHNlbmRNdWx0aXNpZyBmdW5jdGlvbiBhbmQgcmV0dXJuIHBhcnNlZCBmaWVsZHNcbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBkZWNvZGVcbiAqIEByZXR1cm5zIHBhcnNlZCB0cmFuc2ZlciBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVOYXRpdmVUcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogTmF0aXZlVHJhbnNmZXJEYXRhIHtcbiAgaWYgKCFkYXRhLnN0YXJ0c1dpdGgoc2VuZE11bHRpc2lnTWV0aG9kSWQpKSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2ZlciBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG5cbiAgY29uc3QgW3RvLCBhbW91bnQsIGludGVybmFsRGF0YSwgZXhwaXJlVGltZSwgc2VxdWVuY2VJZCwgc2lnbmF0dXJlXSA9IGdldFJhd0RlY29kZWQoXG4gICAgc2VuZE11bHRpU2lnVHlwZXMsXG4gICAgZ2V0QnVmZmVyZWRCeXRlQ29kZShzZW5kTXVsdGlzaWdNZXRob2RJZCwgZGF0YSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHRvOiBhZGRIZXhQcmVmaXgodG8gYXMgc3RyaW5nKSxcbiAgICBhbW91bnQ6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgoYW1vdW50IGFzIEJ1ZmZlcikpLnRvRml4ZWQoKSxcbiAgICBleHBpcmVUaW1lOiBidWZmZXJUb0ludChleHBpcmVUaW1lIGFzIEJ1ZmZlciksXG4gICAgc2VxdWVuY2VJZDogYnVmZmVyVG9JbnQoc2VxdWVuY2VJZCBhcyBCdWZmZXIpLFxuICAgIHNpZ25hdHVyZTogYnVmZmVyVG9IZXgoc2lnbmF0dXJlIGFzIEJ1ZmZlciksXG4gICAgZGF0YTogYnVmZmVyVG9IZXgoaW50ZXJuYWxEYXRhIGFzIEJ1ZmZlciksXG4gIH07XG59XG5cbi8qKlxuICogRGVjb2RlIHRoZSBnaXZlbiBBQkktZW5jb2RlZCBmbHVzaCB0b2tlbnMgZGF0YSBhbmQgcmV0dXJuIHBhcnNlZCBmaWVsZHNcbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBkZWNvZGVcbiAqIEByZXR1cm5zIHBhcnNlZCB0cmFuc2ZlciBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVGbHVzaFRva2Vuc0RhdGEoZGF0YTogc3RyaW5nKTogRmx1c2hUb2tlbnNEYXRhIHtcbiAgaWYgKCFkYXRhLnN0YXJ0c1dpdGgoZmx1c2hGb3J3YXJkZXJUb2tlbnNNZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbZm9yd2FyZGVyQWRkcmVzcywgdG9rZW5BZGRyZXNzXSA9IGdldFJhd0RlY29kZWQoXG4gICAgZmx1c2hUb2tlbnNUeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKGZsdXNoRm9yd2FyZGVyVG9rZW5zTWV0aG9kSWQsIGRhdGEpXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBmb3J3YXJkZXJBZGRyZXNzOiBhZGRIZXhQcmVmaXgoZm9yd2FyZGVyQWRkcmVzcyBhcyBzdHJpbmcpLFxuICAgIHRva2VuQWRkcmVzczogYWRkSGV4UHJlZml4KHRva2VuQWRkcmVzcyBhcyBzdHJpbmcpLFxuICB9O1xufVxuXG4vKipcbiAqIENsYXNzaWZ5IHRoZSBnaXZlbiB0cmFuc2FjdGlvbiBkYXRhIGJhc2VkIGFzIGEgdHJhbnNhY3Rpb24gdHlwZS5cbiAqIEVUSCB0cmFuc2FjdGlvbnMgYXJlIGRlZmluZWQgYnkgdGhlIGZpcnN0IDggYnl0ZXMgb2YgdGhlIHRyYW5zYWN0aW9uIGRhdGEsIGFsc28ga25vd24gYXMgdGhlIG1ldGhvZCBpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIFRoZSBkYXRhIHRvIGNsYXNzaWZ5IHRoZSB0cmFuc2FjdGlvbiB3aXRoXG4gKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25UeXBlfSBUaGUgY2xhc3NpZmllZCB0cmFuc2FjdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFzc2lmeVRyYW5zYWN0aW9uKGRhdGE6IHN0cmluZyk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gIGlmIChkYXRhLmxlbmd0aCA8IDEwKSB7XG4gICAgLy8gY29udHJhY3QgY2FsbHMgbXVzdCBoYXZlIGF0IGxlYXN0IDQgYnl0ZXMgKG1ldGhvZCBpZCkgYW5kICcweCdcbiAgICAvLyBpZiBpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGRhdGEgdG8gYmUgYSBjb250cmFjdCBjYWxsIGl0IG11c3QgYmUgYSBzaW5nbGUgc2lnIHNlbmRcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNpbmdsZVNpZ1NlbmQ7XG4gIH1cblxuICAvLyBUT0RPKFNUTFgtMTk3MCk6IHZhbGlkYXRlIGlmIHdlIGFyZSBnb2luZyB0byBjb25zdHJhaW50IHRvIHNvbWUgbWV0aG9kcyBhbGxvd2VkXG4gIGxldCB0cmFuc2FjdGlvblR5cGUgPSB0cmFuc2FjdGlvblR5cGVzTWFwW2RhdGEuc2xpY2UoMCwgMTApLnRvTG93ZXJDYXNlKCldO1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSB1bmRlZmluZWQpIHtcbiAgICB0cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsO1xuICB9XG5cbiAgcmV0dXJuIHRyYW5zYWN0aW9uVHlwZTtcbn1cblxuLyoqXG4gKiBBIHRyYW5zYWN0aW9uIHR5cGVzIG1hcCBhY2NvcmRpbmcgdG8gdGhlIHN0YXJ0aW5nIHBhcnQgb2YgdGhlIGVuY29kZWQgZGF0YVxuICovXG5jb25zdCB0cmFuc2FjdGlvblR5cGVzTWFwID0ge1xuICBbd2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzXTogVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uLFxuICBbdjFDcmVhdGVXYWxsZXRNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbixcbiAgW2NyZWF0ZUZvcndhcmRlck1ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbixcbiAgW3YxQ3JlYXRlRm9yd2FyZGVyTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uLFxuICBbc2VuZE11bHRpc2lnTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU2VuZCxcbiAgW2ZsdXNoRm9yd2FyZGVyVG9rZW5zTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuRmx1c2hUb2tlbnMsXG4gIFtmbHVzaENvaW5zTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuRmx1c2hDb2lucyxcbiAgW3NlbmRNdWx0aXNpZ1Rva2VuTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU2VuZCxcbiAgW0xvY2tNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nTG9jayxcbiAgW1ZvdGVNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVm90ZSxcbiAgW0FjdGl2YXRlTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlLFxuICBbVW52b3RlTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1Vudm90ZSxcbiAgW1VubG9ja01ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2ssXG4gIFtXaXRoZHJhd01ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdyxcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBudW0gbnVtYmVyIHRvIGJlIGNvbnZlcnRlZCB0byBoZXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBoZXggbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJUb0hleFN0cmluZyhudW06IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGhleCA9IG51bS50b1N0cmluZygxNik7XG4gIHJldHVybiBoZXgubGVuZ3RoICUgMiA9PT0gMCA/ICcweCcgKyBoZXggOiAnMHgwJyArIGhleDtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhleCBUaGUgaGV4IHN0cmluZyB0byBiZSBjb252ZXJ0ZWRcbiAqIEByZXR1cm5zIHtudW1iZXJ9IHRoZSByZXN1bHRpbmcgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZXhTdHJpbmdUb051bWJlcihoZXg6IHN0cmluZyk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUludChoZXguc2xpY2UoMiksIDE2KTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW4gYWRkcmVzcyBvZiB0aGUgZm9yd2FyZGVyIGFkZHJlc3MgdG8gYmUgZGVwbG95ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJhY3RBZGRyZXNzIHRoZSBhZGRyZXNzIHdoaWNoIGlzIGNyZWF0aW5nIHRoaXMgbmV3IGFkZHJlc3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb250cmFjdENvdW50ZXIgdGhlIG5vbmNlIG9mIHRoZSBjb250cmFjdCBhZGRyZXNzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgY2FsY3VsYXRlZCBmb3J3YXJkZXIgY29udHJhY3QgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRm9yd2FyZGVyQWRkcmVzcyhjb250cmFjdEFkZHJlc3M6IHN0cmluZywgY29udHJhY3RDb3VudGVyOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBmb3J3YXJkZXJBZGRyZXNzID0gZ2VuZXJhdGVBZGRyZXNzKFxuICAgIEJ1ZmZlci5mcm9tKHN0cmlwSGV4UHJlZml4KGNvbnRyYWN0QWRkcmVzcyksICdoZXgnKSxcbiAgICBCdWZmZXIuZnJvbShwYWRUb0V2ZW4oc3RyaXBIZXhQcmVmaXgobnVtYmVyVG9IZXhTdHJpbmcoY29udHJhY3RDb3VudGVyKSkpLCAnaGV4JylcbiAgKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChmb3J3YXJkZXJBZGRyZXNzLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBmb3J3YXJkZXIgdjEgYWRkcmVzcyB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkIGlmIGBjcmVhdG9yQWRkcmVzc2AgY3JlYXRlcyBpdCB3aXRoIHNhbHQgYHNhbHRgXG4gKiBhbmQgaW5pdGNvZGUgYGluaWNvZGUgdXNpbmcgdGhlIGNyZWF0ZTIgb3Bjb2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gY3JlYXRvckFkZHJlc3MgVGhlIGFkZHJlc3MgdGhhdCBpcyBzZW5kaW5nIHRoZSB0eCB0byBjcmVhdGUgYSBuZXcgYWRkcmVzcywgaGV4IHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHNhbHQgVGhlIHNhbHQgdG8gY3JlYXRlIHRoZSBhZGRyZXNzIHdpdGggdXNpbmcgY3JlYXRlMiwgaGV4IHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IGluaXRjb2RlIFRoZSBpbml0Y29kZSB0aGF0IHdpbGwgYmUgZGVwbG95ZWQgdG8gdGhlIGFkZHJlc3MsIGhleCBzdHJpbmdcbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNhbGN1bGF0ZWQgYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRm9yd2FyZGVyVjFBZGRyZXNzKGNyZWF0b3JBZGRyZXNzOiBzdHJpbmcsIHNhbHQ6IHN0cmluZywgaW5pdGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGZvcndhcmRlclYxQWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzczIoXG4gICAgQnVmZmVyLmZyb20oc3RyaXBIZXhQcmVmaXgoY3JlYXRvckFkZHJlc3MpLCAnaGV4JyksXG4gICAgQnVmZmVyLmZyb20oc3RyaXBIZXhQcmVmaXgoc2FsdCksICdoZXgnKSxcbiAgICBCdWZmZXIuZnJvbShwYWRUb0V2ZW4oc3RyaXBIZXhQcmVmaXgoaW5pdGNvZGUpKSwgJ2hleCcpXG4gICk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoZm9yd2FyZGVyVjFBZGRyZXNzLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogVGFrZSB0aGUgaW1wbGVtZW50YXRpb24gYWRkcmVzcyBmb3IgdGhlIHByb3h5IGNvbnRyYWN0LCBhbmQgZ2V0IHRoZSBiaW5hcnkgaW5pdGNvZGUgZm9yIHRoZSBhc3NvY2lhdGVkIHByb3h5XG4gKiBAcGFyYW0ge3N0cmluZ30gaW1wbGVtZW50YXRpb25BZGRyZXNzIFRoZSBhZGRyZXNzIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBjb250cmFjdCBmb3IgdGhlIHByb3h5XG4gKiBAcmV0dXJuIHtzdHJpbmd9IEJpbmFyeSBoZXggc3RyaW5nIG9mIHRoZSBwcm94eVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJveHlJbml0Y29kZShpbXBsZW1lbnRhdGlvbkFkZHJlc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHRhcmdldCA9IHN0cmlwSGV4UHJlZml4KGltcGxlbWVudGF0aW9uQWRkcmVzcy50b0xvd2VyQ2FzZSgpKS5wYWRTdGFydCg0MCwgJzAnKTtcblxuICAvLyBieXRlY29kZSBvZiB0aGUgcHJveHksIGZyb206XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRHby9ldGgtbXVsdGlzaWctdjQvYmxvYi9kNTQ2YTkzN2Y5MGY5M2U4M2IzNDIzYTViZjkzM2QxZDc3YzY3N2MzL2NvbnRyYWN0cy9DbG9uZUZhY3Rvcnkuc29sI0w0Mi1MNTZcbiAgcmV0dXJuIGAweDNkNjAyZDgwNjAwYTNkMzk4MWYzMzYzZDNkMzczZDNkM2QzNjNkNzMke3RhcmdldH01YWY0M2Q4MjgwM2U5MDNkOTE2MDJiNTdmZDViZjNgO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdGhlIGdpdmVuIHNpZ25hdHVyZSBwYXJ0cyB0byBhIHN0cmluZyByZXByZXNlbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7U2lnbmF0dXJlUGFydHN9IHNpZyBUaGUgc2lnbmF0dXJlIHRvIGNvbnZlcnQgdG8gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmdTaWcoc2lnOiBTaWduYXR1cmVQYXJ0cyk6IHN0cmluZyB7XG4gIHJldHVybiBidWZmZXJUb0hleChcbiAgICBCdWZmZXIuY29uY2F0KFtcbiAgICAgIHNldExlbmd0aExlZnQoQnVmZmVyLmZyb20oc3RyaXBIZXhQcmVmaXgoc2lnLnIpLCAnaGV4JyksIDMyKSxcbiAgICAgIHNldExlbmd0aExlZnQoQnVmZmVyLmZyb20oc3RyaXBIZXhQcmVmaXgoc2lnLnMpLCAnaGV4JyksIDMyKSxcbiAgICAgIHRvQnVmZmVyKHNpZy52KSxcbiAgICBdKVxuICApO1xufVxuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdHggZGF0YSBoYXMgYSBzaWduYXR1cmVcbiAqXG4gKiBAcGFyYW0ge1R4RGF0YX0gdHhEYXRhIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHRvIGNoZWNrIGZvciBzaWduYXR1cmVcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSB0eCBoYXMgYSBzaWduYXR1cmUsIGVsc2UgZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1NpZ25hdHVyZSh0eERhdGE6IFR4RGF0YSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIHR4RGF0YS52ICE9PSB1bmRlZmluZWQgJiZcbiAgICB0eERhdGEuciAhPT0gdW5kZWZpbmVkICYmXG4gICAgdHhEYXRhLnMgIT09IHVuZGVmaW5lZCAmJlxuICAgIHR4RGF0YS52Lmxlbmd0aCA+IDAgJiZcbiAgICB0eERhdGEuci5sZW5ndGggPiAwICYmXG4gICAgdHhEYXRhLnMubGVuZ3RoID4gMFxuICApO1xufVxuXG50eXBlIFJlY3Vyc2l2ZUJ1ZmZlck9yU3RyaW5nID0gc3RyaW5nIHwgQnVmZmVyIHwgQk4gfCBSZWN1cnNpdmVCdWZmZXJPclN0cmluZ1tdO1xuXG4vKipcbiAqIEdldCB0aGUgcmF3IGRhdGEgZGVjb2RlZCBmb3Igc29tZSB0eXBlc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHR5cGVzIEFCSSB0eXBlcyBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge0J1ZmZlcn0gc2VyaWFsaXplZEFyZ3MgZW5jb2RlZCBhcmdzXG4gKiBAcmV0dXJucyB7QnVmZmVyW119IHRoZSBkZWNvZGVkIHJhd1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmF3RGVjb2RlZCh0eXBlczogc3RyaW5nW10sIHNlcmlhbGl6ZWRBcmdzOiBCdWZmZXIpOiBSZWN1cnNpdmVCdWZmZXJPclN0cmluZ1tdIHtcbiAgZnVuY3Rpb24gbm9ybWFsaXplKHY6IHVua25vd24sIGk6IG51bWJlcik6IHVua25vd24ge1xuICAgIGlmIChCTi5pc0JOKHYpKSB7XG4gICAgICByZXR1cm4gdjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCBCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgIHJldHVybiB2O1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgcmV0dXJuIHYubWFwKG5vcm1hbGl6ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yICR7dHlwZXN9WyR7aX1dIGdvdCAke3R5cGVvZiB2fWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBFdGhlcmV1bUFiaS5yYXdEZWNvZGUodHlwZXMsIHNlcmlhbGl6ZWRBcmdzKS5tYXAobm9ybWFsaXplKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJ1ZmZlcmVkIGJ5dGVjb2RlIGZyb20gcmF3RGF0YSB1c2luZyBhIG1ldGhvZElkIGFzIGRlbGltaXRlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2RJZCB0aGUgaGV4IGVuY29kZWQgbWV0aG9kIElkXG4gKiBAcGFyYW0ge3N0cmluZ30gcmF3RGF0YSB0aGUgaGV4IGVuY29kZWQgcmF3IGRhdGFcbiAqIEByZXR1cm5zIHtCdWZmZXJ9IGRhdGEgYnVmZmVyZWQgYnl0ZWNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1ZmZlcmVkQnl0ZUNvZGUobWV0aG9kSWQ6IHN0cmluZywgcmF3RGF0YTogc3RyaW5nKTogQnVmZmVyIHtcbiAgY29uc3Qgc3BsaXRCeXRlY29kZSA9IHJhd0RhdGEuc3BsaXQobWV0aG9kSWQpO1xuICBpZiAoc3BsaXRCeXRlY29kZS5sZW5ndGggIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHNlbmQgYnl0ZWNvZGU6ICR7cmF3RGF0YX1gKTtcbiAgfVxuICBpZiAoc3BsaXRCeXRlY29kZVsxXS5sZW5ndGggJSAyICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBzZW5kIGJ5dGVjb2RlOiAke3Jhd0RhdGF9ICh3cm9uZyBsZW5naHQpYCk7XG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNwbGl0Qnl0ZWNvZGVbMV0sICdoZXgnKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN0YXRpY3MgY29pbiBvYmplY3QgbWF0Y2hpbmcgYSBnaXZlbiBjb250cmFjdCBhZGRyZXNzIGlmIGl0IGV4aXN0c1xuICpcbiAqIEBwYXJhbSB0b2tlbkNvbnRyYWN0QWRkcmVzcyBUaGUgY29udHJhY3QgYWRkcmVzcyB0byBtYXRjaCBhZ2FpbnN0XG4gKiBAcmV0dXJucyBzdGF0aWNzIEJhc2VDb2luIG9iamVjdCBmb3IgdGhlIG1hdGNoaW5nIHRva2VuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbih0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBCYXNlTmV0d29yayk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRva2VucyA9IGNvaW5zLmZpbHRlcigoY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjb2luLm5ldHdvcmsudHlwZSA9PT0gbmV0d29yay50eXBlICYmIGNvaW4uY29udHJhY3RBZGRyZXNzLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuQ29udHJhY3RBZGRyZXNzLnRvTG93ZXJDYXNlKClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG5cbiAgLy8gaWYgbGVuZ3RoIG9mIHRva2VucyBpcyAxLCByZXR1cm4gdGhlIGZpcnN0LCBlbHNlIHJldHVybiB1bmRlZmluZWRcbiAgLy8gQ2FuJ3QgZGlyZWN0bHkgaW5kZXggaW50byB0b2tlbnMsIG9yIGNhbGwgYGxlbmd0aGAsIHNvIHdlIHVzZSBtYXAgdG8gZ2V0IGFuIGFycmF5XG4gIGNvbnN0IHRva2Vuc0FycmF5ID0gdG9rZW5zLm1hcCgodG9rZW4pID0+IHRva2VuKTtcbiAgaWYgKHRva2Vuc0FycmF5Lmxlbmd0aCA+PSAxKSB7XG4gICAgLy8gdGhlcmUgc2hvdWxkIG5ldmVyIGJlIHR3byB0b2tlbnMgd2l0aCB0aGUgc2FtZSBjb250cmFjdCBhZGRyZXNzLCBzbyB3ZSBhc3NlcnQgdGhhdCBoZXJlXG4gICAgYXNzZXJ0KHRva2Vuc0FycmF5Lmxlbmd0aCA9PT0gMSk7XG4gICAgcmV0dXJuIHRva2Vuc0FycmF5WzBdO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3JlYXRlIHdhbGxldCBtZXRob2QgY2FsbGluZyBkYXRhIGZvciB2MSB3YWxsZXRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gd2FsbGV0T3duZXJzIC0gd2FsbGV0IG93bmVyIGFkZHJlc3NlcyBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IHNhbHQgLSBUaGUgc2FsdCBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uc1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgY3JlYXRlV2FsbGV0IG1ldGhvZCBlbmNvZGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWMVdhbGxldEluaXRpYWxpemF0aW9uRGF0YSh3YWxsZXRPd25lcnM6IHN0cmluZ1tdLCBzYWx0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzYWx0QnVmZmVyID0gc2V0TGVuZ3RoTGVmdCh0b0J1ZmZlcihzYWx0KSwgMzIpO1xuICBjb25zdCBwYXJhbXMgPSBbd2FsbGV0T3duZXJzLCBzYWx0QnVmZmVyXTtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2NyZWF0ZVdhbGxldCcsIGNyZWF0ZVYxV2FsbGV0VHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKGNyZWF0ZVYxV2FsbGV0VHlwZXMsIHBhcmFtcyk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjcmVhdGUgYWRkcmVzcyBtZXRob2QgY2FsbGluZyBkYXRhIGZvciB2MSB3YWxsZXRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGJhc2VBZGRyZXNzIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHdhbGxldCBjb250cmFjdFxuICogQHBhcmFtIHtzdHJpbmd9IHNhbHQgLSBUaGUgc2FsdCBmb3IgYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIGNyZWF0ZUZvcndhcmRlciBtZXRob2QgZW5jb2RlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VjFBZGRyZXNzSW5pdGlhbGl6YXRpb25EYXRhKGJhc2VBZGRyZXNzOiBzdHJpbmcsIHNhbHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNhbHRCdWZmZXIgPSBzZXRMZW5ndGhMZWZ0KHRvQnVmZmVyKHNhbHQpLCAzMik7XG4gIGNvbnN0IHBhcmFtcyA9IFtiYXNlQWRkcmVzcywgc2FsdEJ1ZmZlcl07XG4gIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdjcmVhdGVGb3J3YXJkZXInLCBjcmVhdGVWMUZvcndhcmRlclR5cGVzKTtcbiAgY29uc3QgYXJncyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZShjcmVhdGVWMUZvcndhcmRlclR5cGVzLCBwYXJhbXMpO1xuICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW21ldGhvZCwgYXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogRGVjb2RlIHRoZSBnaXZlbiBBQkktZW5jb2RlZCBjcmVhdGUgZm9yd2FyZGVyIGRhdGEgYW5kIHJldHVybiBwYXJzZWQgZmllbGRzXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gZGVjb2RlXG4gKiBAcmV0dXJucyBwYXJzZWQgdHJhbnNmZXIgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlRm9yd2FyZGVyQ3JlYXRpb25EYXRhKGRhdGE6IHN0cmluZyk6IEZvcndhcmRlckluaXRpYWxpemF0aW9uRGF0YSB7XG4gIGlmICghKGRhdGEuc3RhcnRzV2l0aCh2MUNyZWF0ZUZvcndhcmRlck1ldGhvZElkKSB8fCBkYXRhLnN0YXJ0c1dpdGgoY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQpKSkge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgYWRkcmVzcyBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG5cbiAgaWYgKGRhdGEuc3RhcnRzV2l0aChjcmVhdGVGb3J3YXJkZXJNZXRob2RJZCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFzZUFkZHJlc3M6IHVuZGVmaW5lZCxcbiAgICAgIGFkZHJlc3NDcmVhdGlvblNhbHQ6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFtiYXNlQWRkcmVzcywgc2FsdEJ1ZmZlcl0gPSBnZXRSYXdEZWNvZGVkKFxuICAgICAgY3JlYXRlVjFGb3J3YXJkZXJUeXBlcyxcbiAgICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUodjFDcmVhdGVGb3J3YXJkZXJNZXRob2RJZCwgZGF0YSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VBZGRyZXNzOiBhZGRIZXhQcmVmaXgoYmFzZUFkZHJlc3MgYXMgc3RyaW5nKSxcbiAgICAgIGFkZHJlc3NDcmVhdGlvblNhbHQ6IGJ1ZmZlclRvSGV4KHNhbHRCdWZmZXIgYXMgQnVmZmVyKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
577
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyxvREFBNEI7QUFDNUIscURBV3lCO0FBQ3pCLDRDQUE0RztBQUM1RyxvRUFBeUM7QUFDekMsZ0VBQWdEO0FBQ2hELGtEQUF1QjtBQUN2QixnRUFBcUM7QUFDckMsOENBVXlCO0FBZXpCLDZDQXVCc0I7QUFDdEIsbUNBQTZDO0FBRTdDOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE9BQXdCO0lBQ2hELE9BQU8sZ0JBQWMsQ0FBQyxjQUFjO0lBQ2xDLHdFQUF3RTtJQUN4RSxTQUFTLEVBQ1Q7UUFDRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQzFCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztLQUN6QixFQUNELFFBQVEsQ0FDVCxDQUFDO0FBQ0osQ0FBQztBQVhELDhCQVdDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxlQUF1QixFQUN2QixPQUFnQixFQUNoQixZQUE0QjtJQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUMxQixNQUFNLElBQUksdUJBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsTUFBTSxLQUFLLEdBQUcsMEJBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6RSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFYRCxvQ0FXQztBQUVEOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsZUFBdUIsRUFBRSxPQUFnQjtJQUNsRSxPQUFP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R0FBRyxhQUFhLENBQzdDLG1DQUFzQixFQUN0QixtQkFBbUIsQ0FBQyxzQ0FBeUIsRUFBRSxJQUFJLENBQUMsQ0FDckQsQ0FBQztRQUVGLE9BQU87WUFDTCxXQUFXLEVBQUUsOEJBQVksQ0FBQyxXQUFxQixDQUFDO1lBQ2hELG1CQUFtQixFQUFFLDZCQUFXLENBQUMsVUFBb0IsQ0FBQztTQUN2RCxDQUFDO0tBQ0g7QUFDSCxDQUFDO0FBckJELGtFQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBhZGRIZXhQcmVmaXgsXG4gIGJ1ZmZlclRvSGV4LFxuICBidWZmZXJUb0ludCxcbiAgZ2VuZXJhdGVBZGRyZXNzLFxuICBpc1ZhbGlkQWRkcmVzcyxcbiAgc2V0TGVuZ3RoTGVmdCxcbiAgc3RyaXBIZXhQcmVmaXgsXG4gIHRvQnVmZmVyLFxuICBnZW5lcmF0ZUFkZHJlc3MyLFxuICBwYWRUb0V2ZW4sXG59IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBCYXNlQ29pbiwgQmFzZU5ldHdvcmssIGNvaW5zLCBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4sIEV0aGVyZXVtTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBFdGhlcmV1bUFiaSBmcm9tICdldGhlcmV1bWpzLWFiaSc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCBCTiBmcm9tICdibi5qcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZU1ldGhvZElkLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIExvY2tNZXRob2RJZCxcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFVubG9ja01ldGhvZElkLFxuICBVbnZvdGVNZXRob2RJZCxcbiAgVm90ZU1ldGhvZElkLFxuICBXaXRoZHJhd01ldGhvZElkLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQge1xuICBFUkMxMTU1VHJhbnNmZXJEYXRhLFxuICBFUkM3MjFUcmFuc2ZlckRhdGEsXG4gIEZsdXNoVG9rZW5zRGF0YSxcbiAgTmF0aXZlVHJhbnNmZXJEYXRhLFxuICBTaWduYXR1cmVQYXJ0cyxcbiAgVG9rZW5UcmFuc2ZlckRhdGEsXG4gIFRyYW5zZmVyRGF0YSxcbiAgVHhEYXRhLFxuICBXYWxsZXRJbml0aWFsaXphdGlvbkRhdGEsXG4gIEZvcndhcmRlckluaXRpYWxpemF0aW9uRGF0YSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7XG4gIGNyZWF0ZUZvcndhcmRlck1ldGhvZElkLFxuICBFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVNZXRob2RJZCxcbiAgRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlcyxcbiAgRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCxcbiAgRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVzLFxuICBFUkM3MjFTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQsXG4gIEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVzLFxuICBmbHVzaENvaW5zTWV0aG9kSWQsXG4gIGZsdXNoQ29pbnNUeXBlcyxcbiAgZmx1c2hGb3J3YXJkZXJUb2tlbnNNZXRob2RJZCxcbiAgZmx1c2hUb2tlbnNUeXBlcyxcbiAgc2VuZE11bHRpc2lnTWV0aG9kSWQsXG4gIHNlbmRNdWx0aXNpZ1Rva2VuTWV0aG9kSWQsXG4gIHNlbmRNdWx0aVNpZ1Rva2VuVHlwZXMsXG4gIHNlbmRNdWx0aVNpZ1R5cGVzLFxuICB3YWxsZXRJbml0aWFsaXphdGlvbkZpcnN0Qnl0ZXMsXG4gIHYxQ3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQsXG4gIHdhbGxldFNpbXBsZUNvbnN0cnVjdG9yLFxuICBjcmVhdGVWMVdhbGxldFR5cGVzLFxuICB2MUNyZWF0ZVdhbGxldE1ldGhvZElkLFxuICBjcmVhdGVWMUZvcndhcmRlclR5cGVzLFxuICByZWNvdmVyeVdhbGxldEluaXRpYWxpemF0aW9uRmlyc3RCeXRlcyxcbn0gZnJvbSAnLi93YWxsZXRVdGlsJztcbmltcG9ydCB7IEV0aFRyYW5zYWN0aW9uRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21tb24obmV0d29yazogRXRoZXJldW1OZXR3b3JrKTogRXRoZXJldW1Db21tb24ge1xuICByZXR1cm4gRXRoZXJldW1Db21tb24uZm9yQ3VzdG9tQ2hhaW4oXG4gICAgLy8gdXNlIHRoZSBtYWlubmV0IGNvbmZpZyBhcyBhIGJhc2UsIG92ZXJyaWRlIGNoYWluIGlkcyBhbmQgbmV0d29yayBuYW1lXG4gICAgJ21haW5uZXQnLFxuICAgIHtcbiAgICAgIG5hbWU6IG5ldHdvcmsudHlwZSxcbiAgICAgIG5ldHdvcmtJZDogbmV0d29yay5jaGFpbklkLFxuICAgICAgY2hhaW5JZDogbmV0d29yay5jaGFpbklkLFxuICAgIH0sXG4gICAgJ2xvbmRvbidcbiAgKTtcbn1cblxuLyoqXG4gKiBTaWducyB0aGUgdHJhbnNhY3Rpb24gdXNpbmcgdGhlIGFwcHJvcHJpYXRlIGFsZ29yaXRobVxuICogYW5kIHRoZSBwcm92aWRlZCBjb21tb24gZm9yIHRoZSBibG9ja2NoYWluXG4gKlxuICogQHBhcmFtIHtUeERhdGF9IHRyYW5zYWN0aW9uRGF0YSB0aGUgdHJhbnNhY3Rpb24gZGF0YSB0byBzaWduXG4gKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgdGhlIHNpZ25lcidzIGtleXBhaXJcbiAqIEBwYXJhbSB7RXRoZXJldW1Db21tb259IGN1c3RvbUNvbW1vbiB0aGUgbmV0d29yaydzIGN1c3RvbSBjb21tb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSB0cmFuc2FjdGlvbiBzaWduZWQgYW5kIGVuY29kZWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25JbnRlcm5hbChcbiAgdHJhbnNhY3Rpb25EYXRhOiBUeERhdGEsXG4gIGtleVBhaXI6IEtleVBhaXIsXG4gIGN1c3RvbUNvbW1vbjogRXRoZXJldW1Db21tb25cbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmICgha2V5UGFpci5nZXRLZXlzKCkucHJ2KSB7XG4gICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBwcml2YXRlIGtleScpO1xuICB9XG4gIGNvbnN0IGV0aFR4ID0gRXRoVHJhbnNhY3Rpb25EYXRhLmZyb21Kc29uKHRyYW5zYWN0aW9uRGF0YSwgY3VzdG9tQ29tbW9uKTtcbiAgZXRoVHguc2lnbihrZXlQYWlyKTtcbiAgcmV0dXJuIGV0aFR4LnRvU2VyaWFsaXplZCgpO1xufVxuXG4vKipcbiAqIFNpZ25zIHRoZSB0cmFuc2FjdGlvbiB1c2luZyB0aGUgYXBwcm9wcmlhdGUgYWxnb3JpdGhtXG4gKlxuICogQHBhcmFtIHtUeERhdGF9IHRyYW5zYWN0aW9uRGF0YSB0aGUgdHJhbnNhY3Rpb24gZGF0YSB0byBzaWduXG4gKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgdGhlIHNpZ25lcidzIGtleXBhaXJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSB0cmFuc2FjdGlvbiBzaWduZWQgYW5kIGVuY29kZWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ24odHJhbnNhY3Rpb25EYXRhOiBUeERhdGEsIGtleVBhaXI6IEtleVBhaXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gc2lnbkludGVybmFsKHRyYW5zYWN0aW9uRGF0YSwga2V5UGFpciwgZ2V0Q29tbW9uKGNvaW5zLmdldCgndGV0aCcpLm5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY29udHJhY3QgbWV0aG9kIGVuY29kZWQgZGF0YVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0byBkZXN0aW5hdGlvbiBhZGRyZXNzXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgQW1vdW50IHRvIHRyYW5mZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIGFkaXRpb25hbCBtZXRob2QgY2FsbCBkYXRhXG4gKiBAcGFyYW0ge251bWJlcn0gZXhwaXJlVGltZSBleHBpcmF0aW9uIHRpbWUgZm9yIHRoZSB0cmFuc2FjdGlvbiBpbiBzZWNvbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gc2VxdWVuY2VJZCBzZXF1ZW5jZSBpZFxuICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSBzaWduYXR1cmUgb2YgdGhlIGNhbGxcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0tIHRoZSBjb250cmFjdCBtZXRob2QgZW5jb2RlZCBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kTXVsdGlTaWdEYXRhKFxuICB0bzogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBkYXRhOiBzdHJpbmcsXG4gIGV4cGlyZVRpbWU6IG51bWJlcixcbiAgc2VxdWVuY2VJZDogbnVtYmVyLFxuICBzaWduYXR1cmU6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyYW1zID0gW3RvLCB2YWx1ZSwgdG9CdWZmZXIoZGF0YSksIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQsIHRvQnVmZmVyKHNpZ25hdHVyZSldO1xuICBjb25zdCBtZXRob2QgPSBFdGhlcmV1bUFiaS5tZXRob2RJRCgnc2VuZE11bHRpU2lnJywgc2VuZE11bHRpU2lnVHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHNlbmRNdWx0aVNpZ1R5cGVzLCBwYXJhbXMpO1xuICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW21ldGhvZCwgYXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY29udHJhY3QgbWV0aG9kIGVuY29kZWQgZGF0YVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0byBkZXN0aW5hdGlvbiBhZGRyZXNzXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgQW1vdW50IHRvIHRyYW5mZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b2tlbkNvbnRyYWN0QWRkcmVzcyB0aGUgYWRkcmVzcyBvZiB0aGUgZXJjMjAgdG9rZW4gY29udHJhY3RcbiAqIEBwYXJhbSB7bnVtYmVyfSBleHBpcmVUaW1lIGV4cGlyYXRpb24gdGltZSBmb3IgdGhlIHRyYW5zYWN0aW9uIGluIHNlY29uZHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBzZXF1ZW5jZUlkIHNlcXVlbmNlIGlkXG4gKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHNpZ25hdHVyZSBvZiB0aGUgY2FsbFxuICogQHJldHVybnMge3N0cmluZ30gLS0gdGhlIGNvbnRyYWN0IG1ldGhvZCBlbmNvZGVkIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YShcbiAgdG86IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZyxcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZyxcbiAgZXhwaXJlVGltZTogbnVtYmVyLFxuICBzZXF1ZW5jZUlkOiBudW1iZXIsXG4gIHNpZ25hdHVyZTogc3RyaW5nXG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJhbXMgPSBbdG8sIHZhbHVlLCB0b2tlbkNvbnRyYWN0QWRkcmVzcywgZXhwaXJlVGltZSwgc2VxdWVuY2VJZCwgdG9CdWZmZXIoc2lnbmF0dXJlKV07XG5cbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ3NlbmRNdWx0aVNpZ1Rva2VuJywgc2VuZE11bHRpU2lnVG9rZW5UeXBlcyk7XG4gIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoc2VuZE11bHRpU2lnVG9rZW5UeXBlcywgcGFyYW1zKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgZGF0YSByZXF1aXJlZCB0byBtYWtlIGEgZmx1c2ggdG9rZW5zIGNvbnRyYWN0IGNhbGxcbiAqXG4gKiBAcGFyYW0gZm9yd2FyZGVyQWRkcmVzcyBUaGUgZm9yd2FyZGVyIGFkZHJlc3MgdG8gZmx1c2hcbiAqIEBwYXJhbSB0b2tlbkFkZHJlc3MgVGhlIHRva2VuIGFkZHJlc3MgdG8gZmx1c2ggZnJvbVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmx1c2hUb2tlbnNEYXRhKGZvcndhcmRlckFkZHJlc3M6IHN0cmluZywgdG9rZW5BZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBwYXJhbXMgPSBbZm9yd2FyZGVyQWRkcmVzcywgdG9rZW5BZGRyZXNzXTtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2ZsdXNoRm9yd2FyZGVyVG9rZW5zJywgZmx1c2hUb2tlbnNUeXBlcyk7XG4gIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoZmx1c2hUb2tlbnNUeXBlcywgcGFyYW1zKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgZGF0YSByZXF1aXJlZCB0byBtYWtlIGEgZmx1c2ggbmF0aXZlIGNvaW5zIGNvbnRyYWN0IGNhbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsdXNoQ29pbnNEYXRhKCk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcmFtcyA9IFtdO1xuICBjb25zdCBtZXRob2QgPSBFdGhlcmV1bUFiaS5tZXRob2RJRCgnZmx1c2gnLCBmbHVzaENvaW5zVHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKGZsdXNoQ29pbnNUeXBlcywgcGFyYW1zKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNyZWF0ZSBmb3J3YXJkZXIgbWV0aG9kIGNhbGxpbmcgZGF0YVxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIGNyZWF0ZUZvcndhcmRlciBtZXRob2QgZW5jb2RlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc0luaXRpYWxpemF0aW9uRGF0YSgpOiBzdHJpbmcge1xuICByZXR1cm4gY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgRXRoIGFkZHJlc3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIHRoZSB0eCBoYXNoIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFdGhBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSB0aGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpICYmIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHNtYXJ0IGNvbnRyYWN0IGVuY29kZWQgZGF0YVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIFRoZSB3YWxsZXQgY3JlYXRpb24gZGF0YSB0byBkZWNvZGVcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gLSBUaGUgbGlzdCBvZiBzaWduZXIgYWRkcmVzc2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVXYWxsZXRDcmVhdGlvbkRhdGEoZGF0YTogc3RyaW5nKTogV2FsbGV0SW5pdGlhbGl6YXRpb25EYXRhIHtcbiAgaWYgKCEoZGF0YS5zdGFydHNXaXRoKHdhbGxldEluaXRpYWxpemF0aW9uRmlyc3RCeXRlcykgfHwgZGF0YS5zdGFydHNXaXRoKHYxQ3JlYXRlV2FsbGV0TWV0aG9kSWQpKSkge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgd2FsbGV0IGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBpZiAoZGF0YS5zdGFydHNXaXRoKHdhbGxldEluaXRpYWxpemF0aW9uRmlyc3RCeXRlcykpIHtcbiAgICBjb25zdCBkYXRhQnVmZmVyID0gQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpO1xuXG4gICAgLy8gdGhlIGxhc3QgMTYwIGJ5dGVzIGNvbnRhaW4gdGhlIHNlcmlhbGl6ZWQgYWRkcmVzcyBhcnJheVxuICAgIGNvbnN0IHNlcmlhbGl6ZWRTaWduZXJzID0gZGF0YUJ1ZmZlci5zbGljZSgtMTYwKTtcblxuICAgIGNvbnN0IHJlc3VsdEVuY29kZWRQYXJhbWV0ZXJzID0gRXRoZXJldW1BYmkucmF3RGVjb2RlKHdhbGxldFNpbXBsZUNvbnN0cnVjdG9yLCBzZXJpYWxpemVkU2lnbmVycyk7XG4gICAgaWYgKHJlc3VsdEVuY29kZWRQYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgQ291bGQgbm90IGRlY29kZSB3YWxsZXQgY29uc3RydWN0b3IgYnl0ZWNvZGU6ICR7cmVzdWx0RW5jb2RlZFBhcmFtZXRlcnN9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYWRkcmVzc2VzOiBCTltdID0gcmVzdWx0RW5jb2RlZFBhcmFtZXRlcnNbMF07XG4gICAgaWYgKGFkZHJlc3Nlcy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYGludmFsaWQgbnVtYmVyIG9mIGFkZHJlc3NlcyBpbiBwYXJzZWQgY29uc3RydWN0b3I6ICR7YWRkcmVzc2VzfWApO1xuICAgIH1cblxuICAgIC8vIHNvbWV0aW1lcyBldGhlcmV1bWpzLWFiaSByZW1vdmVzIDAgcGFkZGluZyBhdCB0aGUgc3RhcnQgb2YgYWRkcmVzc2VzLFxuICAgIC8vIHNvIHdlIHNob3VsZCBwYWQgdW50aWwgdGhleSBhcmUgdGhlIHN0YW5kYXJkIDIwIGJ5dGVzXG4gICAgY29uc3QgcGFkZGVkQWRkcmVzc2VzID0gYWRkcmVzc2VzLm1hcCgoYWRkcmVzcykgPT4gc3RyaXBIZXhQcmVmaXgoYWRkcmVzcy50b1N0cmluZygnaGV4JykpLnBhZFN0YXJ0KDQwLCAnMCcpKTtcblxuICAgIHJldHVybiB7IG93bmVyczogcGFkZGVkQWRkcmVzc2VzLm1hcCgoYWRkcmVzcykgPT4gYWRkSGV4UHJlZml4KGFkZHJlc3MpKSB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGRlY29kZWREYXRhRm9yV2FsbGV0Q3JlYXRpb24gPSBnZXRSYXdEZWNvZGVkKFxuICAgICAgY3JlYXRlVjFXYWxsZXRUeXBlcyxcbiAgICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUodjFDcmVhdGVXYWxsZXRNZXRob2RJZCwgZGF0YSlcbiAgICApO1xuICAgIGNvbnN0IGFkZHJlc3NlcyA9IGRlY29kZWREYXRhRm9yV2FsbGV0Q3JlYXRpb25bMF0gYXMgc3RyaW5nW107XG4gICAgY29uc3Qgc2FsdEJ1ZmZlciA9IGRlY29kZWREYXRhRm9yV2FsbGV0Q3JlYXRpb25bMV07XG4gICAgY29uc3Qgc2FsdCA9IGJ1ZmZlclRvSGV4KHNhbHRCdWZmZXIgYXMgQnVmZmVyKTtcbiAgICBjb25zdCBwYWRkZWRBZGRyZXNzZXMgPSBhZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PiBzdHJpcEhleFByZWZpeChhZGRyZXNzLnRvU3RyaW5nKCkpLnBhZFN0YXJ0KDQwLCAnMCcpKTtcbiAgICBjb25zdCBvd25lcnMgPSBwYWRkZWRBZGRyZXNzZXMubWFwKChhZGRyZXNzKSA9PiBhZGRIZXhQcmVmaXgoYWRkcmVzcykpO1xuICAgIHJldHVybiB7XG4gICAgICBvd25lcnMsXG4gICAgICBzYWx0LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBEZWNvZGUgdGhlIGdpdmVuIEFCSS1lbmNvZGVkIHRyYW5zZmVyIGRhdGEgYW5kIHJldHVybiBwYXJzZWQgZmllbGRzXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gZGVjb2RlXG4gKiBAcmV0dXJucyBwYXJzZWQgdHJhbnNmZXIgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGE6IHN0cmluZyk6IFRyYW5zZmVyRGF0YSB7XG4gIGlmIChkYXRhLnN0YXJ0c1dpdGgoc2VuZE11bHRpc2lnTWV0aG9kSWQpKSB7XG4gICAgcmV0dXJuIGRlY29kZU5hdGl2ZVRyYW5zZmVyRGF0YShkYXRhKTtcbiAgfSBlbHNlIGlmIChkYXRhLnN0YXJ0c1dpdGgoc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZCkpIHtcbiAgICByZXR1cm4gZGVjb2RlVG9rZW5UcmFuc2ZlckRhdGEoZGF0YSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0cmFuc2ZlciBieXRlY29kZTogJHtkYXRhfWApO1xuICB9XG59XG5cbi8qKlxuICogRGVjb2RlIHRoZSBnaXZlbiBBQkktZW5jb2RlZCB0cmFuc2ZlciBkYXRhIGZvciB0aGUgc2VuZE11bHRpc2lnVG9rZW4gZnVuY3Rpb24gYW5kIHJldHVybiBwYXJzZWQgZmllbGRzXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gZGVjb2RlXG4gKiBAcmV0dXJucyBwYXJzZWQgdG9rZW4gdHJhbnNmZXIgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVG9rZW5UcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogVG9rZW5UcmFuc2ZlckRhdGEge1xuICBpZiAoIWRhdGEuc3RhcnRzV2l0aChzZW5kTXVsdGlzaWdUb2tlbk1ldGhvZElkKSkge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNmZXIgYnl0ZWNvZGU6ICR7ZGF0YX1gKTtcbiAgfVxuXG4gIGNvbnN0IFt0bywgYW1vdW50LCB0b2tlbkNvbnRyYWN0QWRkcmVzcywgZXhwaXJlVGltZSwgc2VxdWVuY2VJZCwgc2lnbmF0dXJlXSA9IGdldFJhd0RlY29kZWQoXG4gICAgc2VuZE11bHRpU2lnVG9rZW5UeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKHNlbmRNdWx0aXNpZ1Rva2VuTWV0aG9kSWQsIGRhdGEpXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0bzogYWRkSGV4UHJlZml4KHRvIGFzIHN0cmluZyksXG4gICAgYW1vdW50OiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KGFtb3VudCBhcyBCdWZmZXIpKS50b0ZpeGVkKCksXG4gICAgZXhwaXJlVGltZTogYnVmZmVyVG9JbnQoZXhwaXJlVGltZSBhcyBCdWZmZXIpLFxuICAgIHNlcXVlbmNlSWQ6IGJ1ZmZlclRvSW50KHNlcXVlbmNlSWQgYXMgQnVmZmVyKSxcbiAgICBzaWduYXR1cmU6IGJ1ZmZlclRvSGV4KHNpZ25hdHVyZSBhcyBCdWZmZXIpLFxuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBhZGRIZXhQcmVmaXgodG9rZW5Db250cmFjdEFkZHJlc3MgYXMgc3RyaW5nKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUVSQzcyMVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiBFUkM3MjFUcmFuc2ZlckRhdGEge1xuICBpZiAoIWRhdGEuc3RhcnRzV2l0aChzZW5kTXVsdGlzaWdNZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbdG8sIGFtb3VudCwgaW50ZXJuYWxEYXRhLCBleHBpcmVUaW1lLCBzZXF1ZW5jZUlkLCBzaWduYXR1cmVdID0gZ2V0UmF3RGVjb2RlZChcbiAgICBzZW5kTXVsdGlTaWdUeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKHNlbmRNdWx0aXNpZ01ldGhvZElkLCBkYXRhKVxuICApO1xuXG4gIGNvbnN0IGludGVybmFsRGF0YUhleCA9IGJ1ZmZlclRvSGV4KGludGVybmFsRGF0YSBhcyBCdWZmZXIpO1xuICBpZiAoIWludGVybmFsRGF0YUhleC5zdGFydHNXaXRoKEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVNZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbZnJvbSwgcmVjZWl2ZXIsIHRva2VuSWQsIHVzZXJTZW50RGF0YV0gPSBnZXRSYXdEZWNvZGVkKFxuICAgIEVSQzcyMVNhZmVUcmFuc2ZlclR5cGVzLFxuICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUoRVJDNzIxU2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkLCBpbnRlcm5hbERhdGFIZXgpXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0bzogYWRkSGV4UHJlZml4KHJlY2VpdmVyIGFzIHN0cmluZyksXG4gICAgZnJvbTogYWRkSGV4UHJlZml4KGZyb20gYXMgc3RyaW5nKSxcbiAgICBleHBpcmVUaW1lOiBidWZmZXJUb0ludChleHBpcmVUaW1lIGFzIEJ1ZmZlciksXG4gICAgYW1vdW50OiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KGFtb3VudCBhcyBCdWZmZXIpKS50b0ZpeGVkKCksXG4gICAgdG9rZW5JZDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0b2tlbklkIGFzIEJ1ZmZlcikpLnRvRml4ZWQoKSxcbiAgICBzZXF1ZW5jZUlkOiBidWZmZXJUb0ludChzZXF1ZW5jZUlkIGFzIEJ1ZmZlciksXG4gICAgc2lnbmF0dXJlOiBidWZmZXJUb0hleChzaWduYXR1cmUgYXMgQnVmZmVyKSxcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogYWRkSGV4UHJlZml4KHRvIGFzIHN0cmluZyksXG4gICAgdXNlckRhdGE6IGJ1ZmZlclRvSGV4KHVzZXJTZW50RGF0YSBhcyBCdWZmZXIpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlRVJDMTE1NVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiBFUkMxMTU1VHJhbnNmZXJEYXRhIHtcbiAgbGV0IGZyb20sIHJlY2VpdmVyLCB1c2VyU2VudERhdGE7XG4gIGxldCB0b2tlbklkczogc3RyaW5nW107XG4gIGxldCB2YWx1ZXM6IHN0cmluZ1tdO1xuXG4gIGlmICghZGF0YS5zdGFydHNXaXRoKHNlbmRNdWx0aXNpZ01ldGhvZElkKSkge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNmZXIgYnl0ZWNvZGU6ICR7ZGF0YX1gKTtcbiAgfVxuXG4gIGNvbnN0IFt0bywgYW1vdW50LCBpbnRlcm5hbERhdGEsIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQsIHNpZ25hdHVyZV0gPSBnZXRSYXdEZWNvZGVkKFxuICAgIHNlbmRNdWx0aVNpZ1R5cGVzLFxuICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUoc2VuZE11bHRpc2lnTWV0aG9kSWQsIGRhdGEpXG4gICk7XG5cbiAgY29uc3QgaW50ZXJuYWxEYXRhSGV4ID0gYnVmZmVyVG9IZXgoaW50ZXJuYWxEYXRhIGFzIEJ1ZmZlcik7XG4gIGlmIChpbnRlcm5hbERhdGFIZXguc3RhcnRzV2l0aChFUkMxMTU1U2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkKSkge1xuICAgIGxldCB0b2tlbklkO1xuICAgIGxldCB2YWx1ZTtcblxuICAgIFtmcm9tLCByZWNlaXZlciwgdG9rZW5JZCwgdmFsdWUsIHVzZXJTZW50RGF0YV0gPSBnZXRSYXdEZWNvZGVkKFxuICAgICAgRVJDMTE1NVNhZmVUcmFuc2ZlclR5cGVzLFxuICAgICAgZ2V0QnVmZmVyZWRCeXRlQ29kZShFUkMxMTU1U2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkLCBpbnRlcm5hbERhdGFIZXgpXG4gICAgKTtcblxuICAgIHRva2VuSWRzID0gW25ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodG9rZW5JZCkpLnRvRml4ZWQoKV07XG4gICAgdmFsdWVzID0gW25ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodmFsdWUpKS50b0ZpeGVkKCldO1xuICB9IGVsc2UgaWYgKGJ1ZmZlclRvSGV4KGludGVybmFsRGF0YSBhcyBCdWZmZXIpLnN0YXJ0c1dpdGgoRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlTWV0aG9kSWQpKSB7XG4gICAgbGV0IHRlbXBUb2tlbklkcywgdGVtcFZhbHVlcztcbiAgICBbZnJvbSwgcmVjZWl2ZXIsIHRlbXBUb2tlbklkcywgdGVtcFZhbHVlcywgdXNlclNlbnREYXRhXSA9IGdldFJhd0RlY29kZWQoXG4gICAgICBFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVzLFxuICAgICAgZ2V0QnVmZmVyZWRCeXRlQ29kZShFUkMxMTU1QmF0Y2hUcmFuc2ZlclR5cGVNZXRob2RJZCwgaW50ZXJuYWxEYXRhSGV4KVxuICAgICk7XG4gICAgdG9rZW5JZHMgPSB0ZW1wVG9rZW5JZHMubWFwKCh4KSA9PiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHgpKS50b0ZpeGVkKCkpO1xuICAgIHZhbHVlcyA9IHRlbXBWYWx1ZXMubWFwKCh4KSA9PiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHgpKS50b0ZpeGVkKCkpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNmZXIgYnl0ZWNvZGU6ICR7ZGF0YX1gKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdG86IGFkZEhleFByZWZpeChyZWNlaXZlciksXG4gICAgZnJvbTogYWRkSGV4UHJlZml4KGZyb20pLFxuICAgIGV4cGlyZVRpbWU6IGJ1ZmZlclRvSW50KGV4cGlyZVRpbWUgYXMgQnVmZmVyKSxcbiAgICBhbW91bnQ6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgoYW1vdW50IGFzIEJ1ZmZlcikpLnRvRml4ZWQoKSxcbiAgICB0b2tlbklkcyxcbiAgICB2YWx1ZXMsXG4gICAgc2VxdWVuY2VJZDogYnVmZmVyVG9JbnQoc2VxdWVuY2VJZCBhcyBCdWZmZXIpLFxuICAgIHNpZ25hdHVyZTogYnVmZmVyVG9IZXgoc2lnbmF0dXJlIGFzIEJ1ZmZlciksXG4gICAgdG9rZW5Db250cmFjdEFkZHJlc3M6IGFkZEhleFByZWZpeCh0byBhcyBzdHJpbmcpLFxuICAgIHVzZXJEYXRhOiB1c2VyU2VudERhdGEsXG4gIH07XG59XG5cbi8qKlxuICogRGVjb2RlIHRoZSBnaXZlbiBBQkktZW5jb2RlZCB0cmFuc2ZlciBkYXRhIGZvciB0aGUgc2VuZE11bHRpc2lnIGZ1bmN0aW9uIGFuZCByZXR1cm4gcGFyc2VkIGZpZWxkc1xuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGRlY29kZVxuICogQHJldHVybnMgcGFyc2VkIHRyYW5zZmVyIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZU5hdGl2ZVRyYW5zZmVyRGF0YShkYXRhOiBzdHJpbmcpOiBOYXRpdmVUcmFuc2ZlckRhdGEge1xuICBpZiAoIWRhdGEuc3RhcnRzV2l0aChzZW5kTXVsdGlzaWdNZXRob2RJZCkpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHRyYW5zZmVyIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBjb25zdCBbdG8sIGFtb3VudCwgaW50ZXJuYWxEYXRhLCBleHBpcmVUaW1lLCBzZXF1ZW5jZUlkLCBzaWduYXR1cmVdID0gZ2V0UmF3RGVjb2RlZChcbiAgICBzZW5kTXVsdGlTaWdUeXBlcyxcbiAgICBnZXRCdWZmZXJlZEJ5dGVDb2RlKHNlbmRNdWx0aXNpZ01ldGhvZElkLCBkYXRhKVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdG86IGFkZEhleFByZWZpeCh0byBhcyBzdHJpbmcpLFxuICAgIGFtb3VudDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleChhbW91bnQgYXMgQnVmZmVyKSkudG9GaXhlZCgpLFxuICAgIGV4cGlyZVRpbWU6IGJ1ZmZlclRvSW50KGV4cGlyZVRpbWUgYXMgQnVmZmVyKSxcbiAgICBzZXF1ZW5jZUlkOiBidWZmZXJUb0ludChzZXF1ZW5jZUlkIGFzIEJ1ZmZlciksXG4gICAgc2lnbmF0dXJlOiBidWZmZXJUb0hleChzaWduYXR1cmUgYXMgQnVmZmVyKSxcbiAgICBkYXRhOiBidWZmZXJUb0hleChpbnRlcm5hbERhdGEgYXMgQnVmZmVyKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZWNvZGUgdGhlIGdpdmVuIEFCSS1lbmNvZGVkIGZsdXNoIHRva2VucyBkYXRhIGFuZCByZXR1cm4gcGFyc2VkIGZpZWxkc1xuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGRlY29kZVxuICogQHJldHVybnMgcGFyc2VkIHRyYW5zZmVyIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUZsdXNoVG9rZW5zRGF0YShkYXRhOiBzdHJpbmcpOiBGbHVzaFRva2Vuc0RhdGEge1xuICBpZiAoIWRhdGEuc3RhcnRzV2l0aChmbHVzaEZvcndhcmRlclRva2Vuc01ldGhvZElkKSkge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNmZXIgYnl0ZWNvZGU6ICR7ZGF0YX1gKTtcbiAgfVxuXG4gIGNvbnN0IFtmb3J3YXJkZXJBZGRyZXNzLCB0b2tlbkFkZHJlc3NdID0gZ2V0UmF3RGVjb2RlZChcbiAgICBmbHVzaFRva2Vuc1R5cGVzLFxuICAgIGdldEJ1ZmZlcmVkQnl0ZUNvZGUoZmx1c2hGb3J3YXJkZXJUb2tlbnNNZXRob2RJZCwgZGF0YSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGZvcndhcmRlckFkZHJlc3M6IGFkZEhleFByZWZpeChmb3J3YXJkZXJBZGRyZXNzIGFzIHN0cmluZyksXG4gICAgdG9rZW5BZGRyZXNzOiBhZGRIZXhQcmVmaXgodG9rZW5BZGRyZXNzIGFzIHN0cmluZyksXG4gIH07XG59XG5cbi8qKlxuICogQ2xhc3NpZnkgdGhlIGdpdmVuIHRyYW5zYWN0aW9uIGRhdGEgYmFzZWQgYXMgYSB0cmFuc2FjdGlvbiB0eXBlLlxuICogRVRIIHRyYW5zYWN0aW9ucyBhcmUgZGVmaW5lZCBieSB0aGUgZmlyc3QgOCBieXRlcyBvZiB0aGUgdHJhbnNhY3Rpb24gZGF0YSwgYWxzbyBrbm93biBhcyB0aGUgbWV0aG9kIGlkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgVGhlIGRhdGEgdG8gY2xhc3NpZnkgdGhlIHRyYW5zYWN0aW9uIHdpdGhcbiAqIEByZXR1cm5zIHtUcmFuc2FjdGlvblR5cGV9IFRoZSBjbGFzc2lmaWVkIHRyYW5zYWN0aW9uIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzaWZ5VHJhbnNhY3Rpb24oZGF0YTogc3RyaW5nKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgaWYgKGRhdGEubGVuZ3RoIDwgMTApIHtcbiAgICAvLyBjb250cmFjdCBjYWxscyBtdXN0IGhhdmUgYXQgbGVhc3QgNCBieXRlcyAobWV0aG9kIGlkKSBhbmQgJzB4J1xuICAgIC8vIGlmIGl0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggZGF0YSB0byBiZSBhIGNvbnRyYWN0IGNhbGwgaXQgbXVzdCBiZSBhIHNpbmdsZSBzaWcgc2VuZFxuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2luZ2xlU2lnU2VuZDtcbiAgfVxuXG4gIC8vIFRPRE8oU1RMWC0xOTcwKTogdmFsaWRhdGUgaWYgd2UgYXJlIGdvaW5nIHRvIGNvbnN0cmFpbnQgdG8gc29tZSBtZXRob2RzIGFsbG93ZWRcbiAgbGV0IHRyYW5zYWN0aW9uVHlwZSA9IHRyYW5zYWN0aW9uVHlwZXNNYXBbZGF0YS5zbGljZSgwLCAxMCkudG9Mb3dlckNhc2UoKV07XG4gIGlmICh0cmFuc2FjdGlvblR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGw7XG4gIH1cblxuICByZXR1cm4gdHJhbnNhY3Rpb25UeXBlO1xufVxuXG4vKipcbiAqIEEgdHJhbnNhY3Rpb24gdHlwZXMgbWFwIGFjY29yZGluZyB0byB0aGUgc3RhcnRpbmcgcGFydCBvZiB0aGUgZW5jb2RlZCBkYXRhXG4gKi9cbmNvbnN0IHRyYW5zYWN0aW9uVHlwZXNNYXAgPSB7XG4gIFt3YWxsZXRJbml0aWFsaXphdGlvbkZpcnN0Qnl0ZXNdOiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24sXG4gIFtyZWNvdmVyeVdhbGxldEluaXRpYWxpemF0aW9uRmlyc3RCeXRlc106IFRyYW5zYWN0aW9uVHlwZS5SZWNvdmVyeVdhbGxldERlcGxveW1lbnQsXG4gIFt2MUNyZWF0ZVdhbGxldE1ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uLFxuICBbY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uLFxuICBbdjFDcmVhdGVGb3J3YXJkZXJNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24sXG4gIFtzZW5kTXVsdGlzaWdNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICBbZmx1c2hGb3J3YXJkZXJUb2tlbnNNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5GbHVzaFRva2VucyxcbiAgW2ZsdXNoQ29pbnNNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5GbHVzaENvaW5zLFxuICBbc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TZW5kLFxuICBbTG9ja01ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrLFxuICBbVm90ZU1ldGhvZElkXTogVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlLFxuICBbQWN0aXZhdGVNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUsXG4gIFtVbnZvdGVNZXRob2RJZF06IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW52b3RlLFxuICBbVW5sb2NrTWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayxcbiAgW1dpdGhkcmF3TWV0aG9kSWRdOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3LFxufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IG51bSBudW1iZXIgdG8gYmUgY29udmVydGVkIHRvIGhleFxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGhleCBudW1iZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclRvSGV4U3RyaW5nKG51bTogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgaGV4ID0gbnVtLnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuIGhleC5sZW5ndGggJSAyID09PSAwID8gJzB4JyArIGhleCA6ICcweDAnICsgaGV4O1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4IFRoZSBoZXggc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICogQHJldHVybnMge251bWJlcn0gdGhlIHJlc3VsdGluZyBudW1iZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhleFN0cmluZ1RvTnVtYmVyKGhleDogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlSW50KGhleC5zbGljZSgyKSwgMTYpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbiBhZGRyZXNzIG9mIHRoZSBmb3J3YXJkZXIgYWRkcmVzcyB0byBiZSBkZXBsb3llZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250cmFjdEFkZHJlc3MgdGhlIGFkZHJlc3Mgd2hpY2ggaXMgY3JlYXRpbmcgdGhpcyBuZXcgYWRkcmVzc1xuICogQHBhcmFtIHtudW1iZXJ9IGNvbnRyYWN0Q291bnRlciB0aGUgbm9uY2Ugb2YgdGhlIGNvbnRyYWN0IGFkZHJlc3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBjYWxjdWxhdGVkIGZvcndhcmRlciBjb250cmFjdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVGb3J3YXJkZXJBZGRyZXNzKGNvbnRyYWN0QWRkcmVzczogc3RyaW5nLCBjb250cmFjdENvdW50ZXI6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGZvcndhcmRlckFkZHJlc3MgPSBnZW5lcmF0ZUFkZHJlc3MoXG4gICAgQnVmZmVyLmZyb20oc3RyaXBIZXhQcmVmaXgoY29udHJhY3RBZGRyZXNzKSwgJ2hleCcpLFxuICAgIEJ1ZmZlci5mcm9tKHBhZFRvRXZlbihzdHJpcEhleFByZWZpeChudW1iZXJUb0hleFN0cmluZyhjb250cmFjdENvdW50ZXIpKSksICdoZXgnKVxuICApO1xuICByZXR1cm4gYWRkSGV4UHJlZml4KGZvcndhcmRlckFkZHJlc3MudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIGZvcndhcmRlciB2MSBhZGRyZXNzIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgaWYgYGNyZWF0b3JBZGRyZXNzYCBjcmVhdGVzIGl0IHdpdGggc2FsdCBgc2FsdGBcbiAqIGFuZCBpbml0Y29kZSBgaW5pY29kZSB1c2luZyB0aGUgY3JlYXRlMiBvcGNvZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjcmVhdG9yQWRkcmVzcyBUaGUgYWRkcmVzcyB0aGF0IGlzIHNlbmRpbmcgdGhlIHR4IHRvIGNyZWF0ZSBhIG5ldyBhZGRyZXNzLCBoZXggc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gc2FsdCBUaGUgc2FsdCB0byBjcmVhdGUgdGhlIGFkZHJlc3Mgd2l0aCB1c2luZyBjcmVhdGUyLCBoZXggc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gaW5pdGNvZGUgVGhlIGluaXRjb2RlIHRoYXQgd2lsbCBiZSBkZXBsb3llZCB0byB0aGUgYWRkcmVzcywgaGV4IHN0cmluZ1xuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY2FsY3VsYXRlZCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVGb3J3YXJkZXJWMUFkZHJlc3MoY3JlYXRvckFkZHJlc3M6IHN0cmluZywgc2FsdDogc3RyaW5nLCBpbml0Y29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZm9yd2FyZGVyVjFBZGRyZXNzID0gZ2VuZXJhdGVBZGRyZXNzMihcbiAgICBCdWZmZXIuZnJvbShzdHJpcEhleFByZWZpeChjcmVhdG9yQWRkcmVzcyksICdoZXgnKSxcbiAgICBCdWZmZXIuZnJvbShzdHJpcEhleFByZWZpeChzYWx0KSwgJ2hleCcpLFxuICAgIEJ1ZmZlci5mcm9tKHBhZFRvRXZlbihzdHJpcEhleFByZWZpeChpbml0Y29kZSkpLCAnaGV4JylcbiAgKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChmb3J3YXJkZXJWMUFkZHJlc3MudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBUYWtlIHRoZSBpbXBsZW1lbnRhdGlvbiBhZGRyZXNzIGZvciB0aGUgcHJveHkgY29udHJhY3QsIGFuZCBnZXQgdGhlIGJpbmFyeSBpbml0Y29kZSBmb3IgdGhlIGFzc29jaWF0ZWQgcHJveHlcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbXBsZW1lbnRhdGlvbkFkZHJlc3MgVGhlIGFkZHJlc3Mgb2YgdGhlIGltcGxlbWVudGF0aW9uIGNvbnRyYWN0IGZvciB0aGUgcHJveHlcbiAqIEByZXR1cm4ge3N0cmluZ30gQmluYXJ5IGhleCBzdHJpbmcgb2YgdGhlIHByb3h5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm94eUluaXRjb2RlKGltcGxlbWVudGF0aW9uQWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdGFyZ2V0ID0gc3RyaXBIZXhQcmVmaXgoaW1wbGVtZW50YXRpb25BZGRyZXNzLnRvTG93ZXJDYXNlKCkpLnBhZFN0YXJ0KDQwLCAnMCcpO1xuXG4gIC8vIGJ5dGVjb2RlIG9mIHRoZSBwcm94eSwgZnJvbTpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0JpdEdvL2V0aC1tdWx0aXNpZy12NC9ibG9iL2Q1NDZhOTM3ZjkwZjkzZTgzYjM0MjNhNWJmOTMzZDFkNzdjNjc3YzMvY29udHJhY3RzL0Nsb25lRmFjdG9yeS5zb2wjTDQyLUw1NlxuICByZXR1cm4gYDB4M2Q2MDJkODA2MDBhM2QzOTgxZjMzNjNkM2QzNzNkM2QzZDM2M2Q3MyR7dGFyZ2V0fTVhZjQzZDgyODAzZTkwM2Q5MTYwMmI1N2ZkNWJmM2A7XG59XG5cbi8qKlxuICogQ29udmVydCB0aGUgZ2l2ZW4gc2lnbmF0dXJlIHBhcnRzIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gKlxuICogQHBhcmFtIHtTaWduYXR1cmVQYXJ0c30gc2lnIFRoZSBzaWduYXR1cmUgdG8gY29udmVydCB0byBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc2lnbmF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1N0cmluZ1NpZyhzaWc6IFNpZ25hdHVyZVBhcnRzKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJ1ZmZlclRvSGV4KFxuICAgIEJ1ZmZlci5jb25jYXQoW1xuICAgICAgc2V0TGVuZ3RoTGVmdChCdWZmZXIuZnJvbShzdHJpcEhleFByZWZpeChzaWcuciksICdoZXgnKSwgMzIpLFxuICAgICAgc2V0TGVuZ3RoTGVmdChCdWZmZXIuZnJvbShzdHJpcEhleFByZWZpeChzaWcucyksICdoZXgnKSwgMzIpLFxuICAgICAgdG9CdWZmZXIoc2lnLnYpLFxuICAgIF0pXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiB0eCBkYXRhIGhhcyBhIHNpZ25hdHVyZVxuICpcbiAqIEBwYXJhbSB7VHhEYXRhfSB0eERhdGEgVGhlIHRyYW5zYWN0aW9uIGRhdGEgdG8gY2hlY2sgZm9yIHNpZ25hdHVyZVxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHR4IGhhcyBhIHNpZ25hdHVyZSwgZWxzZSBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzU2lnbmF0dXJlKHR4RGF0YTogVHhEYXRhKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdHhEYXRhLnYgIT09IHVuZGVmaW5lZCAmJlxuICAgIHR4RGF0YS5yICE9PSB1bmRlZmluZWQgJiZcbiAgICB0eERhdGEucyAhPT0gdW5kZWZpbmVkICYmXG4gICAgdHhEYXRhLnYubGVuZ3RoID4gMCAmJlxuICAgIHR4RGF0YS5yLmxlbmd0aCA+IDAgJiZcbiAgICB0eERhdGEucy5sZW5ndGggPiAwXG4gICk7XG59XG5cbnR5cGUgUmVjdXJzaXZlQnVmZmVyT3JTdHJpbmcgPSBzdHJpbmcgfCBCdWZmZXIgfCBCTiB8IFJlY3Vyc2l2ZUJ1ZmZlck9yU3RyaW5nW107XG5cbi8qKlxuICogR2V0IHRoZSByYXcgZGF0YSBkZWNvZGVkIGZvciBzb21lIHR5cGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gdHlwZXMgQUJJIHR5cGVzIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7QnVmZmVyfSBzZXJpYWxpemVkQXJncyBlbmNvZGVkIGFyZ3NcbiAqIEByZXR1cm5zIHtCdWZmZXJbXX0gdGhlIGRlY29kZWQgcmF3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYXdEZWNvZGVkKHR5cGVzOiBzdHJpbmdbXSwgc2VyaWFsaXplZEFyZ3M6IEJ1ZmZlcik6IFJlY3Vyc2l2ZUJ1ZmZlck9yU3RyaW5nW10ge1xuICBmdW5jdGlvbiBub3JtYWxpemUodjogdW5rbm93biwgaTogbnVtYmVyKTogdW5rbm93biB7XG4gICAgaWYgKEJOLmlzQk4odikpIHtcbiAgICAgIHJldHVybiB2O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHYgPT09ICdzdHJpbmcnIHx8IEJ1ZmZlci5pc0J1ZmZlcih2KSkge1xuICAgICAgcmV0dXJuIHY7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICByZXR1cm4gdi5tYXAobm9ybWFsaXplKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgJHt0eXBlc31bJHtpfV0gZ290ICR7dHlwZW9mIHZ9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEV0aGVyZXVtQWJpLnJhd0RlY29kZSh0eXBlcywgc2VyaWFsaXplZEFyZ3MpLm1hcChub3JtYWxpemUpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgYnVmZmVyZWQgYnl0ZWNvZGUgZnJvbSByYXdEYXRhIHVzaW5nIGEgbWV0aG9kSWQgYXMgZGVsaW1pdGVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZElkIHRoZSBoZXggZW5jb2RlZCBtZXRob2QgSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdEYXRhIHRoZSBoZXggZW5jb2RlZCByYXcgZGF0YVxuICogQHJldHVybnMge0J1ZmZlcn0gZGF0YSBidWZmZXJlZCBieXRlY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnVmZmVyZWRCeXRlQ29kZShtZXRob2RJZDogc3RyaW5nLCByYXdEYXRhOiBzdHJpbmcpOiBCdWZmZXIge1xuICBjb25zdCBzcGxpdEJ5dGVjb2RlID0gcmF3RGF0YS5zcGxpdChtZXRob2RJZCk7XG4gIGlmIChzcGxpdEJ5dGVjb2RlLmxlbmd0aCAhPT0gMikge1xuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgc2VuZCBieXRlY29kZTogJHtyYXdEYXRhfWApO1xuICB9XG4gIGlmIChzcGxpdEJ5dGVjb2RlWzFdLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHNlbmQgYnl0ZWNvZGU6ICR7cmF3RGF0YX0gKHdyb25nIGxlbmdodClgKTtcbiAgfVxuICByZXR1cm4gQnVmZmVyLmZyb20oc3BsaXRCeXRlY29kZVsxXSwgJ2hleCcpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgc3RhdGljcyBjb2luIG9iamVjdCBtYXRjaGluZyBhIGdpdmVuIGNvbnRyYWN0IGFkZHJlc3MgaWYgaXQgZXhpc3RzXG4gKlxuICogQHBhcmFtIHRva2VuQ29udHJhY3RBZGRyZXNzIFRoZSBjb250cmFjdCBhZGRyZXNzIHRvIG1hdGNoIGFnYWluc3RcbiAqIEByZXR1cm5zIHN0YXRpY3MgQmFzZUNvaW4gb2JqZWN0IGZvciB0aGUgbWF0Y2hpbmcgdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuKHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmcsIG5ldHdvcms6IEJhc2VOZXR3b3JrKTogUmVhZG9ubHk8QmFzZUNvaW4+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdG9rZW5zID0gY29pbnMuZmlsdGVyKChjb2luKSA9PiB7XG4gICAgaWYgKGNvaW4gaW5zdGFuY2VvZiBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvaW4ubmV0d29yay50eXBlID09PSBuZXR3b3JrLnR5cGUgJiYgY29pbi5jb250cmFjdEFkZHJlc3MudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW5Db250cmFjdEFkZHJlc3MudG9Mb3dlckNhc2UoKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcblxuICAvLyBpZiBsZW5ndGggb2YgdG9rZW5zIGlzIDEsIHJldHVybiB0aGUgZmlyc3QsIGVsc2UgcmV0dXJuIHVuZGVmaW5lZFxuICAvLyBDYW4ndCBkaXJlY3RseSBpbmRleCBpbnRvIHRva2Vucywgb3IgY2FsbCBgbGVuZ3RoYCwgc28gd2UgdXNlIG1hcCB0byBnZXQgYW4gYXJyYXlcbiAgY29uc3QgdG9rZW5zQXJyYXkgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4gdG9rZW4pO1xuICBpZiAodG9rZW5zQXJyYXkubGVuZ3RoID49IDEpIHtcbiAgICAvLyB0aGVyZSBzaG91bGQgbmV2ZXIgYmUgdHdvIHRva2VucyB3aXRoIHRoZSBzYW1lIGNvbnRyYWN0IGFkZHJlc3MsIHNvIHdlIGFzc2VydCB0aGF0IGhlcmVcbiAgICBhc3NlcnQodG9rZW5zQXJyYXkubGVuZ3RoID09PSAxKTtcbiAgICByZXR1cm4gdG9rZW5zQXJyYXlbMF07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjcmVhdGUgd2FsbGV0IG1ldGhvZCBjYWxsaW5nIGRhdGEgZm9yIHYxIHdhbGxldHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSB3YWxsZXRPd25lcnMgLSB3YWxsZXQgb3duZXIgYWRkcmVzc2VzIGZvciB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gc2FsdCAtIFRoZSBzYWx0IGZvciB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBjcmVhdGVXYWxsZXQgbWV0aG9kIGVuY29kZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFYxV2FsbGV0SW5pdGlhbGl6YXRpb25EYXRhKHdhbGxldE93bmVyczogc3RyaW5nW10sIHNhbHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNhbHRCdWZmZXIgPSBzZXRMZW5ndGhMZWZ0KHRvQnVmZmVyKHNhbHQpLCAzMik7XG4gIGNvbnN0IHBhcmFtcyA9IFt3YWxsZXRPd25lcnMsIHNhbHRCdWZmZXJdO1xuICBjb25zdCBtZXRob2QgPSBFdGhlcmV1bUFiaS5tZXRob2RJRCgnY3JlYXRlV2FsbGV0JywgY3JlYXRlVjFXYWxsZXRUeXBlcyk7XG4gIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoY3JlYXRlVjFXYWxsZXRUeXBlcywgcGFyYW1zKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGNyZWF0ZSBhZGRyZXNzIG1ldGhvZCBjYWxsaW5nIGRhdGEgZm9yIHYxIHdhbGxldHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZUFkZHJlc3MgLSBUaGUgYWRkcmVzcyBvZiB0aGUgd2FsbGV0IGNvbnRyYWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gc2FsdCAtIFRoZSBzYWx0IGZvciBhZGRyZXNzIGluaXRpYWxpemF0aW9uIHRyYW5zYWN0aW9uc1xuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgY3JlYXRlRm9yd2FyZGVyIG1ldGhvZCBlbmNvZGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWMUFkZHJlc3NJbml0aWFsaXphdGlvbkRhdGEoYmFzZUFkZHJlc3M6IHN0cmluZywgc2FsdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgc2FsdEJ1ZmZlciA9IHNldExlbmd0aExlZnQodG9CdWZmZXIoc2FsdCksIDMyKTtcbiAgY29uc3QgcGFyYW1zID0gW2Jhc2VBZGRyZXNzLCBzYWx0QnVmZmVyXTtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2NyZWF0ZUZvcndhcmRlcicsIGNyZWF0ZVYxRm9yd2FyZGVyVHlwZXMpO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKGNyZWF0ZVYxRm9yd2FyZGVyVHlwZXMsIHBhcmFtcyk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBEZWNvZGUgdGhlIGdpdmVuIEFCSS1lbmNvZGVkIGNyZWF0ZSBmb3J3YXJkZXIgZGF0YSBhbmQgcmV0dXJuIHBhcnNlZCBmaWVsZHNcbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBkZWNvZGVcbiAqIEByZXR1cm5zIHBhcnNlZCB0cmFuc2ZlciBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVGb3J3YXJkZXJDcmVhdGlvbkRhdGEoZGF0YTogc3RyaW5nKTogRm9yd2FyZGVySW5pdGlhbGl6YXRpb25EYXRhIHtcbiAgaWYgKCEoZGF0YS5zdGFydHNXaXRoKHYxQ3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQpIHx8IGRhdGEuc3RhcnRzV2l0aChjcmVhdGVGb3J3YXJkZXJNZXRob2RJZCkpKSB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBhZGRyZXNzIGJ5dGVjb2RlOiAke2RhdGF9YCk7XG4gIH1cblxuICBpZiAoZGF0YS5zdGFydHNXaXRoKGNyZWF0ZUZvcndhcmRlck1ldGhvZElkKSkge1xuICAgIHJldHVybiB7XG4gICAgICBiYXNlQWRkcmVzczogdW5kZWZpbmVkLFxuICAgICAgYWRkcmVzc0NyZWF0aW9uU2FsdDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgW2Jhc2VBZGRyZXNzLCBzYWx0QnVmZmVyXSA9IGdldFJhd0RlY29kZWQoXG4gICAgICBjcmVhdGVWMUZvcndhcmRlclR5cGVzLFxuICAgICAgZ2V0QnVmZmVyZWRCeXRlQ29kZSh2MUNyZWF0ZUZvcndhcmRlck1ldGhvZElkLCBkYXRhKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmFzZUFkZHJlc3M6IGFkZEhleFByZWZpeChiYXNlQWRkcmVzcyBhcyBzdHJpbmcpLFxuICAgICAgYWRkcmVzc0NyZWF0aW9uU2FsdDogYnVmZmVyVG9IZXgoc2FsdEJ1ZmZlciBhcyBCdWZmZXIpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,6 +5,7 @@ export declare const v1WalletInitializationFirstBytes = "0x60806040";
|
|
|
5
5
|
export declare const v1CreateWalletMethodId = "0x7117f3fa";
|
|
6
6
|
export declare const createForwarderMethodId = "0xa68a76cc";
|
|
7
7
|
export declare const walletInitializationFirstBytes = "0x60606040";
|
|
8
|
+
export declare const recoveryWalletInitializationFirstBytes = "0x60c06040";
|
|
8
9
|
export declare const flushForwarderTokensMethodId = "0x2da03409";
|
|
9
10
|
export declare const flushCoinsMethodId = "0x6b9f96ea";
|
|
10
11
|
export declare const ERC721SafeTransferTypeMethodId = "0xb88d4fde";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletUtil.d.ts","sourceRoot":"","sources":["../../../src/lib/walletUtil.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAC7D,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAC5D,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAC7D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAStC,eAAO,MAAM,oBAAoB,6rVAC2pV,CAAC;AAE7rV,eAAO,MAAM,uBAAuB,UAAgB,CAAC;AACrD,eAAO,MAAM,mBAAmB,UAA2B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,UAAyB,CAAC;AACvD,eAAO,MAAM,eAAe,SAAK,CAAC;AAElC,eAAO,MAAM,iBAAiB,UAAwD,CAAC;AAEvF,eAAO,MAAM,sBAAsB,UAA0D,CAAC;AAE9F,eAAO,MAAM,uBAAuB,UAA6C,CAAC;AAElF,eAAO,MAAM,wBAAwB,UAAwD,CAAC;AAC9F,eAAO,MAAM,yBAAyB,UAA4D,CAAC;AACnG,eAAO,MAAM,sBAAsB,UAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"walletUtil.d.ts","sourceRoot":"","sources":["../../../src/lib/walletUtil.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAC7D,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,sCAAsC,eAAe,CAAC;AACnE,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAC5D,eAAO,MAAM,gCAAgC,eAAe,CAAC;AAC7D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAStC,eAAO,MAAM,oBAAoB,6rVAC2pV,CAAC;AAE7rV,eAAO,MAAM,uBAAuB,UAAgB,CAAC;AACrD,eAAO,MAAM,mBAAmB,UAA2B,CAAC;AAC5D,eAAO,MAAM,gBAAgB,UAAyB,CAAC;AACvD,eAAO,MAAM,eAAe,SAAK,CAAC;AAElC,eAAO,MAAM,iBAAiB,UAAwD,CAAC;AAEvF,eAAO,MAAM,sBAAsB,UAA0D,CAAC;AAE9F,eAAO,MAAM,uBAAuB,UAA6C,CAAC;AAElF,eAAO,MAAM,wBAAwB,UAAwD,CAAC;AAC9F,eAAO,MAAM,yBAAyB,UAA4D,CAAC;AACnG,eAAO,MAAM,sBAAsB,UAAyB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createV1ForwarderTypes = exports.ERC1155BatchTransferTypes = exports.ERC1155SafeTransferTypes = exports.ERC721SafeTransferTypes = exports.sendMultiSigTokenTypes = exports.sendMultiSigTypes = exports.flushCoinsTypes = exports.flushTokensTypes = exports.createV1WalletTypes = exports.walletSimpleConstructor = exports.walletSimpleByteCode = exports.defaultWalletVersion = exports.defaultForwarderVersion = exports.ERC1155BatchTransferTypeMethodId = exports.ERC1155SafeTransferTypeMethodId = exports.ERC721SafeTransferTypeMethodId = exports.flushCoinsMethodId = exports.flushForwarderTokensMethodId = exports.walletInitializationFirstBytes = exports.createForwarderMethodId = exports.v1CreateWalletMethodId = exports.v1WalletInitializationFirstBytes = exports.v1CreateForwarderMethodId = exports.sendMultisigTokenMethodId = exports.sendMultisigMethodId = void 0;
|
|
3
|
+
exports.createV1ForwarderTypes = exports.ERC1155BatchTransferTypes = exports.ERC1155SafeTransferTypes = exports.ERC721SafeTransferTypes = exports.sendMultiSigTokenTypes = exports.sendMultiSigTypes = exports.flushCoinsTypes = exports.flushTokensTypes = exports.createV1WalletTypes = exports.walletSimpleConstructor = exports.walletSimpleByteCode = exports.defaultWalletVersion = exports.defaultForwarderVersion = exports.ERC1155BatchTransferTypeMethodId = exports.ERC1155SafeTransferTypeMethodId = exports.ERC721SafeTransferTypeMethodId = exports.flushCoinsMethodId = exports.flushForwarderTokensMethodId = exports.recoveryWalletInitializationFirstBytes = exports.walletInitializationFirstBytes = exports.createForwarderMethodId = exports.v1CreateWalletMethodId = exports.v1WalletInitializationFirstBytes = exports.v1CreateForwarderMethodId = exports.sendMultisigTokenMethodId = exports.sendMultisigMethodId = void 0;
|
|
4
4
|
exports.sendMultisigMethodId = '0x39125215';
|
|
5
5
|
exports.sendMultisigTokenMethodId = '0x0dcd7a6c';
|
|
6
6
|
exports.v1CreateForwarderMethodId = '0xfb90b320';
|
|
@@ -8,6 +8,7 @@ exports.v1WalletInitializationFirstBytes = '0x60806040';
|
|
|
8
8
|
exports.v1CreateWalletMethodId = '0x7117f3fa';
|
|
9
9
|
exports.createForwarderMethodId = '0xa68a76cc';
|
|
10
10
|
exports.walletInitializationFirstBytes = '0x60606040';
|
|
11
|
+
exports.recoveryWalletInitializationFirstBytes = '0x60c06040';
|
|
11
12
|
exports.flushForwarderTokensMethodId = '0x2da03409';
|
|
12
13
|
exports.flushCoinsMethodId = '0x6b9f96ea';
|
|
13
14
|
exports.ERC721SafeTransferTypeMethodId = '0xb88d4fde';
|
|
@@ -33,4 +34,4 @@ exports.ERC721SafeTransferTypes = ['address', 'address', 'uint256', 'bytes'];
|
|
|
33
34
|
exports.ERC1155SafeTransferTypes = ['address', 'address', 'uint256', 'uint256', 'bytes'];
|
|
34
35
|
exports.ERC1155BatchTransferTypes = ['address', 'address', 'uint256[]', 'uint256[]', 'bytes'];
|
|
35
36
|
exports.createV1ForwarderTypes = ['address', 'bytes32'];
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2FsbGV0VXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLG9CQUFvQixHQUFHLFlBQVksQ0FBQztBQUNwQyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLGdDQUFnQyxHQUFHLFlBQVksQ0FBQztBQUNoRCxRQUFBLHNCQUFzQixHQUFHLFlBQVksQ0FBQztBQUN0QyxRQUFBLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUN2QyxRQUFBLDhCQUE4QixHQUFHLFlBQVksQ0FBQztBQUM5QyxRQUFBLDRCQUE0QixHQUFHLFlBQVksQ0FBQztBQUM1QyxRQUFBLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUVsQyxRQUFBLDhCQUE4QixHQUFHLFlBQVksQ0FBQztBQUM5QyxRQUFBLCtCQUErQixHQUFHLFlBQVksQ0FBQztBQUMvQyxRQUFBLGdDQUFnQyxHQUFHLFlBQVksQ0FBQztBQUNoRCxRQUFBLHVCQUF1QixHQUFHLENBQUMsQ0FBQztBQUM1QixRQUFBLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUV0Qzs7Ozs7O0VBTUU7QUFDVyxRQUFBLG9CQUFvQixHQUMvQiwwclZBQTByVixDQUFDO0FBRWhyVixRQUFBLHVCQUF1QixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDeEMsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvQyxRQUFBLGdCQUFnQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLFFBQUEsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUVyQixRQUFBLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUUxRSxRQUFBLHNCQUFzQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUVqRixRQUFBLHVCQUF1QixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFckUsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRixRQUFBLHlCQUF5QixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RGLFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2VuZE11bHRpc2lnTWV0aG9kSWQgPSAnMHgzOTEyNTIxNSc7XG5leHBvcnQgY29uc3Qgc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZCA9ICcweDBkY2Q3YTZjJztcbmV4cG9ydCBjb25zdCB2MUNyZWF0ZUZvcndhcmRlck1ldGhvZElkID0gJzB4ZmI5MGIzMjAnO1xuZXhwb3J0IGNvbnN0IHYxV2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzID0gJzB4NjA4MDYwNDAnO1xuZXhwb3J0IGNvbnN0IHYxQ3JlYXRlV2FsbGV0TWV0aG9kSWQgPSAnMHg3MTE3ZjNmYSc7XG5leHBvcnQgY29uc3QgY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQgPSAnMHhhNjhhNzZjYyc7XG5leHBvcnQgY29uc3Qgd2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzID0gJzB4NjA2MDYwNDAnO1xuZXhwb3J0IGNvbnN0IGZsdXNoRm9yd2FyZGVyVG9rZW5zTWV0aG9kSWQgPSAnMHgyZGEwMzQwOSc7XG5leHBvcnQgY29uc3QgZmx1c2hDb2luc01ldGhvZElkID0gJzB4NmI5Zjk2ZWEnO1xuXG5leHBvcnQgY29uc3QgRVJDNzIxU2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkID0gJzB4Yjg4ZDRmZGUnO1xuZXhwb3J0IGNvbnN0IEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQgPSAnMHhmMjQyNDMyYSc7XG5leHBvcnQgY29uc3QgRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlTWV0aG9kSWQgPSAnMHgyZWIyYzJkNic7XG5leHBvcnQgY29uc3QgZGVmYXVsdEZvcndhcmRlclZlcnNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRXYWxsZXRWZXJzaW9uID0gMDtcblxuLypcbiAgU3RlcHMgdG8gcmVwcm9kdWNlOlxuICBDaGVja291dCBodHRwczovL2dpdGh1Yi5jb20vYml0Z28vZXRoLW11bHRpc2lnLXYyXG4gIG5wbSBpbnN0YWxsIC1nIHNvbGNAMC40LjE4XG4gIHNvbGNqcyAtLWJpbiAuL2NvbnRyYWN0cy9XYWxsZXRTaW1wbGUuc29sIC4vY29udHJhY3RzL0ZvcndhcmRlci5zb2wgLi9jb250cmFjdHMvRVJDMjBJbnRlcmZhY2Uuc29sXG4gIGNhdCBXYWxsZXRTaW1wbGUuYmluXG4qL1xuZXhwb3J0IGNvbnN0IHdhbGxldFNpbXBsZUJ5dGVDb2RlID1cbiAgJzB4NjA2MDYwNDA1MjYwMDA2MDAxNjAwMDYxMDEwMDBhODE1NDgxNjBmZjAyMTkxNjkwODMxNTE1MDIxNzkwNTU1MDM0MTU2MTAwMmE1NzYwMDA4MGZkNWI2MDQwNTE2MTE1NWIzODAzODA2MTE1NWI4MzM5ODEwMTYwNDA1MjgwODA1MTgyMDE5MTkwNTA1MDYwMDM4MTUxMTQxNTE1NjEwMDU2NTc2MDAwODBmZDViODA2MDAwOTA4MDUxOTA2MDIwMDE5MDYxMDA2YzkyOTE5MDYxMDA3MzU2NWI1MDUwNjEwMTQwNTY1YjgyODA1NDgyODI1NTkwNjAwMDUyNjAyMDYwMDAyMDkwODEwMTkyODIxNTYxMDBlYzU3OTE2MDIwMDI4MjAxNWI4MjgxMTExNTYxMDBlYjU3ODI1MTgyNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDkxNjAyMDAxOTE5MDYwMDEwMTkwNjEwMDkzNTY1YjViNTA5MDUwNjEwMGY5OTE5MDYxMDBmZDU2NWI1MDkwNTY1YjYxMDEzZDkxOTA1YjgwODIxMTE1NjEwMTM5NTc2MDAwODE4MTYxMDEwMDBhODE1NDkwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA1NTUwNjAwMTAxNjEwMTAzNTY1YjUwOTA1NjViOTA1NjViNjExNDBjODA2MTAxNGY2MDAwMzk2MDAwZjMwMDYwNjA2MDQwNTI2MDA0MzYxMDYxMDA5OTU3NjAwMDM1N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAwNDYzZmZmZmZmZmYxNjgwNjMwZGNkN2E2YzE0NjEwMTMzNTc4MDYzMjA3OWZiOWExNDYxMDFlOTU3ODA2MzJkYTAzNDA5MTQ2MTAyNGM1NzgwNjMzOTEyNTIxNTE0NjEwMmE0NTc4MDYzN2RmNzNlMjcxNDYxMDM3ZTU3ODA2M2EwYjc5NjdiMTQ2MTAzY2Y1NzgwNjNhNjhhNzZjYzE0NjEwM2Y4NTc4MDYzYWJlMzIxOWMxNDYxMDQ0ZDU3ODA2M2ZjMGYzOTJkMTQ2MTA0N2E1NzViNjAwMDM0MTExNTYxMDEzMTU3N2Y2ZTg5ZDUxNzA1NzAyODE5MDU2MGRkMjAwY2Y2YmY3OTI4NDI4NjEzNTNkMTE3Mzc2MWRmYTM2MmUxYzEzM2YwMzMzNDYwMDAzNjYwNDA1MTgwODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgwNjAyMDAxODI4MTAzODI1Mjg0ODQ4MjgxODE1MjYwMjAwMTkyNTA4MDgyODQzNzgyMDE5MTUwNTA5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwYTE1YjAwNWIzNDE1NjEwMTNlNTc2MDAwODBmZDViNjEwMWU3NjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDQ4ZjU2NWIwMDViMzQxNTYxMDFmNDU3NjAwMDgwZmQ1YjYxMDIwYTYwMDQ4MDgwMzU5MDYwMjAwMTkwOTE5MDUwNTA2MTA2Njg1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDI1NzU3NjAwMDgwZmQ1YjYxMDJhMjYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA1MDUwNjEwNmE3NTY1YjAwNWIzNDE1NjEwMmFmNTc2MDAwODBmZDViNjEwMzdjNjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDgyMDE4MDM1OTA2MDIwMDE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3ODIwMTkxNTA1MDUwNTA1MDUwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDc3MzU2NWIwMDViMzQxNTYxMDM4OTU3NjAwMDgwZmQ1YjYxMDNiNTYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMGE3MjU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDNkYTU3NjAwMDgwZmQ1YjYxMDNlMjYxMGIxNjU2NWI2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTA0MDM1NzYwMDA4MGZkNWI2MTA0MGI2MTBiNzA1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ1ODU3NjAwMDgwZmQ1YjYxMDQ2MDYxMGI5NTU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ4NTU3NjAwMDgwZmQ1YjYxMDQ4ZDYxMGJhODU2NWIwMDViNjAwMDgwNjEwNDliMzM2MTBhNzI1NjViMTUxNTYxMDRhNjU3NjAwMDgwZmQ1Yjg3ODc4Nzg3ODc2MDQwNTE4MDgwN2Y0NTUyNDMzMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwNjAwNTAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NmMwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyODE1MjYwMTQwMTg1ODE1MjYwMjAwMTg0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4MzgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwMjA5MTUwNjEwNTg5ODg4Mzg1ODg4ODYxMGMzYjU2NWI1MDg1OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2E5MDU5Y2JiODk4OTYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgzNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTI1MDUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDYzODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTA2NDk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDE1MTU2MTA2NWU1NzYwMDA4MGZkNWI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MTgxNTQ4MTEwMTUxNTYxMDY3NzU3ZmU1YjkwNjAwMDUyNjAyMDYwMDAyMDkwMDE2MDAwOTE1MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTY1YjYwMDA2MTA2YjIzMzYxMGE3MjU2NWIxNTE1NjEwNmJkNTc2MDAwODBmZDViODI5MDUwODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzM2VmMTMzNjc4MzYwNDA1MTgyNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1MTU2MTA3NWE1NzYwMDA4MGZkNWI2MTAyYzY1YTAzZjExNTE1NjEwNzZiNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDc3ZjMzNjEwYTcyNTY1YjE1MTU2MTA3OGE1NzYwMDA4MGZkNWI4Nzg3ODc4Nzg3NjA0MDUxODA4MDdmNDU1NDQ4NDU1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDYwMDUwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4NTgxNTI2MDIwMDE4NDgwNTE5MDYwMjAwMTkwODA4MzgzNWI2MDIwODMxMDE1MTU2MTA4MzM1NzgwNTE4MjUyNjAyMDgyMDE5MTUwNjAyMDgxMDE5MDUwNjAyMDgzMDM5MjUwNjEwODBlNTY1YjYwMDE4MzYwMjAwMzYxMDEwMDBhMDM4MDE5ODI1MTE2ODE4NDUxMTY4MDgyMTc4NTUyNTA1MDUwNTA1MDUwOTA1MDAxODM4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MDIwOTE1MDYxMDg3Zjg4ODM4NTg4ODg2MTBjM2I1NjViOTA1MDg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4Nzg3NjA0MDUxODA4MjgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTA4Yzc1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTA4YWM1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwOGY0NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5MTUwNTA2MDAwNjA0MDUxODA4MzAzODE4NTg3NjE4Nzk2NWEwM2YxOTI1MDUwNTAxNTE1NjEwOTE4NTc2MDAwODBmZDViN2Y1OWJlZDlhYjVkNzgwNzM0NjVkZDY0MmE5ZTNlNzZkZmRiN2Q1M2JjYWU5ZDA5ZGY3ZDBiOGY1MjM0ZDVhODA2MzM4Mjg0OGI4YjhiNjA0MDUxODA4NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg1NjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4NDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODM4MTUyNjAyMDAxODA2MDIwMDE4MjgxMDM4MjUyODM4MTgxNTE4MTUyNjAyMDAxOTE1MDgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTBhMjk1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhMGU1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwYTU2NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5NzUwNTA1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwOTA1MDViNjAwMDgwNTQ5MDUwODExMDE1NjEwYjBiNTc4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMDgyODE1NDgxMTAxNTE1NjEwYWFkNTdmZTViOTA2MDAwNTI2MDIwNjAwMDIwOTAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MTQxNTYxMGFmZTU3NjAwMTkxNTA2MTBiMTA1NjViODA4MDYwMDEwMTkxNTA1MDYxMGE3YTU2NWI2MDAwOTE1MDViNTA5MTkwNTA1NjViNjAwMDgwNjAwMDgwOTE1MDYwMDA5MDUwNWI2MDBhODExMDE1NjEwYjY1NTc4MTYwMDI4MjYwMGE4MTEwMTUxNTYxMGIzYzU3ZmU1YjAxNTQxMTE1NjEwYjU4NTc2MDAyODE2MDBhODExMDE1MTU2MTBiNTM1N2ZlNWIwMTU0OTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGIyMzU2NWI2MDAxODIwMTkyNTA1MDUwOTA1NjViNjAwMDYxMGI3YTYxMGU5MDU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTUxNTYxMGI5MDU3NjAwMDgwZmQ1YjkwNTA5MDU2NWI2MDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjgxNTY1YjYxMGJiMTMzNjEwYTcyNTY1YjE1MTU2MTBiYmM1NzYwMDA4MGZkNWI2MDAxODA2MDAwNjEwMTAwMGE4MTU0ODE2MGZmMDIxOTE2OTA4MzE1MTUwMjE3OTA1NTUwN2YwOTA5ZThmNzZhNGZkM2U5NzBmMmVhZWY1NmMwZWU2ZGZhZjhiODdjNWI4ZDNmNTZmZmNlNzhlODI1YTkxMTU3MzM2MDQwNTE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGExNTY1YjYwMDA4MDYxMGM0ODg2ODY2MTBjZTY1NjViOTA1MDYwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NjBmZjE2ODAxNTYxMGM2YzU3NTA2MTBjNmE4NzYxMGE3MjU2NWIxNTViMTU2MTBjNzY1NzYwMDA4MGZkNWI0Mjg0MTAxNTYxMGM4MzU3NjAwMDgwZmQ1YjYxMGM4YzgzNjEwZGI5NTY1YjYxMGM5NTgxNjEwYTcyNTY1YjE1MTU2MTBjYTA1NzYwMDA4MGZkNWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0MTU2MTBjZDk1NzYwMDA4MGZkNWI4MDkxNTA1MDk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwNDE4NTUxMTQxNTE1NjEwY2ZjNTc2MDAwODBmZDViNjAyMDg1MDE1MTkyNTA2MDQwODUwMTUxOTE1MDYwZmY2MDQxODYwMTUxMTY5MDUwNjAxYjgxNjBmZjE2MTAxNTYxMGQyNzU3NjAxYjgxMDE5MDUwNWI2MDAxODY4Mjg1ODU2MDQwNTE2MDAwODE1MjYwMjAwMTYwNDA1MjYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgwODU2MDAwMTkxNjYwMDAxOTE2ODE1MjYwMjAwMTg0NjBmZjE2NjBmZjE2ODE1MjYwMjAwMTgzNjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4MjYwMDAxOTE2NjAwMDE5MTY4MTUyNjAyMDAxOTQ1MDUwNTA1MDUwNjAyMDYwNDA1MTYwMjA4MTAzOTA4MDg0MDM5MDYwMDA4NjYxNjQ2ZTVhMDNmMTE1MTU2MTBkYTU1NzYwMDA4MGZkNWI1MDUwNjAyMDYwNDA1MTAzNTE5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjEwZGM1MzM2MTBhNzI1NjViMTUxNTYxMGRkMDU3NjAwMDgwZmQ1YjYwMDA5MTUwNjAwMDkwNTA1YjYwMGE4MTEwMTU2MTBlMzg1NzgyNjAwMjgyNjAwYTgxMTAxNTE1NjEwZGYyNTdmZTViMDE1NDE0MTU2MTBkZmY1NzYwMDA4MGZkNWI2MDAyODI2MDBhODExMDE1MTU2MTBlMGU1N2ZlNWIwMTU0NjAwMjgyNjAwYTgxMTAxNTE1NjEwZTFmNTdmZTViMDE1NDEwMTU2MTBlMmI1NzgwOTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGRkOTU2NWI2MDAyODI2MDBhODExMDE1MTU2MTBlNDc1N2ZlNWIwMTU0ODMxMDE1NjEwZTU1NTc2MDAwODBmZDViNjEyNzEwNjAwMjgzNjAwYTgxMTAxNTE1NjEwZTY3NTdmZTViMDE1NDAxODMxMTE1NjEwZTc2NTc2MDAwODBmZDViODI2MDAyODM2MDBhODExMDE1MTU2MTBlODY1N2ZlNWIwMTgxOTA1NTUwNTA1MDUwNTY1YjYwNDA1MTYxMDU0MDgwNjEwZWExODMzOTAxOTA1NjAwNjA2MDYwNDA1MjM0MTU2MTAwMGY1NzYwMDA4MGZkNWIzMzYwMDA4MDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDRlMjgwNjEwMDVlNjAwMDM5NjAwMGYzMDA2MDYwNjA0MDUyNjAwNDM2MTA2MTAwNTY1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYyODIxZGUzMTQ2MTAxNDc1NzgwNjMzZWYxMzM2NzE0NjEwMTljNTc4MDYzNmI5Zjk2ZWExNDYxMDFkNTU3NWI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjMzQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTUxNTYxMDBiNzU3NjAwMDgwZmQ1YjdmNjliMzE1NDhkZWE5YjNiNzA3YjRkZmYzNTdkMzI2ZTNlOTM0OGIyNGU3YTYwODBhMjE4YTZlZGVlZWM0OGY5YjMzMzQ2MDAwMzY2MDQwNTE4MDg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4NDgxNTI2MDIwMDE4MDYwMjAwMTgyODEwMzgyNTI4NDg0ODI4MTgxNTI2MDIwMDE5MjUwODA4Mjg0Mzc4MjAxOTE1MDUwOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExMDA1YjM0MTU2MTAxNTI1NzYwMDA4MGZkNWI2MTAxNWE2MTAxZWE1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDFhNzU3NjAwMDgwZmQ1YjYxMDFkMzYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMDIwZjU2NWIwMDViMzQxNTYxMDFlMDU3NjAwMDgwZmQ1YjYxMDFlODYxMDQzYzU2NWIwMDViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTU2NWI2MDAwODA2MDAwODA2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjMzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYxNDE1MTU2MTAyNmY1NzYwMDA4MGZkNWI4MzkyNTAzMDkxNTA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MGEwODIzMTgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODI2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDMxODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTAzMjk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDkwNTA2MDAwODExNDE1NjEwMzQzNTc2MTA0MzY1NjViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYTkwNTljYmI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODM2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5MjUwNTA1MDYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTE1NjEwNDBmNTc2MDAwODBmZDViNjEwMmM2NWEwM2YxMTUxNTYxMDQyMDU3NjAwMDgwZmQ1YjUwNTA1MDYwNDA1MTgwNTE5MDUwMTUxNTYxMDQzNTU3NjAwMDgwZmQ1YjViNTA1MDUwNTA1NjViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMTkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTE1NjEwNGI0NTc2MDAwODBmZDViNTYwMGExNjU2MjdhN2E3MjMwNTgyMDA4OGNjZTkwNWU0MjRiZmU0NzQ1MTBlZmU0MTc2MTg5M2U5ZTM0YjU0Yjg4NWI4ZmVlNTQ2ZDhiZTg4YWVlM2MwMDI5YTE2NTYyN2E3YTcyMzA1ODIwODI3YWRjM2VmM2ExNzk3NTdiYzMzMDAzZTQxMDcwZmJiZmNkZmM1ZGIzMTI3NWFmM2NiMDM5NTE1NWNkM2JiYjAwMjknO1xuXG5leHBvcnQgY29uc3Qgd2FsbGV0U2ltcGxlQ29uc3RydWN0b3IgPSBbJ2FkZHJlc3NbXSddO1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVYxV2FsbGV0VHlwZXMgPSBbJ2FkZHJlc3NbXScsICdieXRlczMyJ107XG5leHBvcnQgY29uc3QgZmx1c2hUb2tlbnNUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJ107XG5leHBvcnQgY29uc3QgZmx1c2hDb2luc1R5cGVzID0gW107XG5cbmV4cG9ydCBjb25zdCBzZW5kTXVsdGlTaWdUeXBlcyA9IFsnYWRkcmVzcycsICd1aW50JywgJ2J5dGVzJywgJ3VpbnQnLCAndWludCcsICdieXRlcyddO1xuXG5leHBvcnQgY29uc3Qgc2VuZE11bHRpU2lnVG9rZW5UeXBlcyA9IFsnYWRkcmVzcycsICd1aW50JywgJ2FkZHJlc3MnLCAndWludCcsICd1aW50JywgJ2J5dGVzJ107XG5cbmV4cG9ydCBjb25zdCBFUkM3MjFTYWZlVHJhbnNmZXJUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJywgJ3VpbnQyNTYnLCAnYnl0ZXMnXTtcblxuZXhwb3J0IGNvbnN0IEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJywgJ3VpbnQyNTYnLCAndWludDI1NicsICdieXRlcyddO1xuZXhwb3J0IGNvbnN0IEVSQzExNTVCYXRjaFRyYW5zZmVyVHlwZXMgPSBbJ2FkZHJlc3MnLCAnYWRkcmVzcycsICd1aW50MjU2W10nLCAndWludDI1NltdJywgJ2J5dGVzJ107XG5leHBvcnQgY29uc3QgY3JlYXRlVjFGb3J3YXJkZXJUeXBlcyA9IFsnYWRkcmVzcycsICdieXRlczMyJ107XG4iXX0=
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2FsbGV0VXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLG9CQUFvQixHQUFHLFlBQVksQ0FBQztBQUNwQyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLGdDQUFnQyxHQUFHLFlBQVksQ0FBQztBQUNoRCxRQUFBLHNCQUFzQixHQUFHLFlBQVksQ0FBQztBQUN0QyxRQUFBLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUN2QyxRQUFBLDhCQUE4QixHQUFHLFlBQVksQ0FBQztBQUM5QyxRQUFBLHNDQUFzQyxHQUFHLFlBQVksQ0FBQztBQUN0RCxRQUFBLDRCQUE0QixHQUFHLFlBQVksQ0FBQztBQUM1QyxRQUFBLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUVsQyxRQUFBLDhCQUE4QixHQUFHLFlBQVksQ0FBQztBQUM5QyxRQUFBLCtCQUErQixHQUFHLFlBQVksQ0FBQztBQUMvQyxRQUFBLGdDQUFnQyxHQUFHLFlBQVksQ0FBQztBQUNoRCxRQUFBLHVCQUF1QixHQUFHLENBQUMsQ0FBQztBQUM1QixRQUFBLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQUV0Qzs7Ozs7O0VBTUU7QUFDVyxRQUFBLG9CQUFvQixHQUMvQiwwclZBQTByVixDQUFDO0FBRWhyVixRQUFBLHVCQUF1QixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDeEMsUUFBQSxtQkFBbUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvQyxRQUFBLGdCQUFnQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFDLFFBQUEsZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUVyQixRQUFBLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUUxRSxRQUFBLHNCQUFzQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUVqRixRQUFBLHVCQUF1QixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFckUsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNqRixRQUFBLHlCQUF5QixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RGLFFBQUEsc0JBQXNCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2VuZE11bHRpc2lnTWV0aG9kSWQgPSAnMHgzOTEyNTIxNSc7XG5leHBvcnQgY29uc3Qgc2VuZE11bHRpc2lnVG9rZW5NZXRob2RJZCA9ICcweDBkY2Q3YTZjJztcbmV4cG9ydCBjb25zdCB2MUNyZWF0ZUZvcndhcmRlck1ldGhvZElkID0gJzB4ZmI5MGIzMjAnO1xuZXhwb3J0IGNvbnN0IHYxV2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzID0gJzB4NjA4MDYwNDAnO1xuZXhwb3J0IGNvbnN0IHYxQ3JlYXRlV2FsbGV0TWV0aG9kSWQgPSAnMHg3MTE3ZjNmYSc7XG5leHBvcnQgY29uc3QgY3JlYXRlRm9yd2FyZGVyTWV0aG9kSWQgPSAnMHhhNjhhNzZjYyc7XG5leHBvcnQgY29uc3Qgd2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzID0gJzB4NjA2MDYwNDAnO1xuZXhwb3J0IGNvbnN0IHJlY292ZXJ5V2FsbGV0SW5pdGlhbGl6YXRpb25GaXJzdEJ5dGVzID0gJzB4NjBjMDYwNDAnO1xuZXhwb3J0IGNvbnN0IGZsdXNoRm9yd2FyZGVyVG9rZW5zTWV0aG9kSWQgPSAnMHgyZGEwMzQwOSc7XG5leHBvcnQgY29uc3QgZmx1c2hDb2luc01ldGhvZElkID0gJzB4NmI5Zjk2ZWEnO1xuXG5leHBvcnQgY29uc3QgRVJDNzIxU2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkID0gJzB4Yjg4ZDRmZGUnO1xuZXhwb3J0IGNvbnN0IEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQgPSAnMHhmMjQyNDMyYSc7XG5leHBvcnQgY29uc3QgRVJDMTE1NUJhdGNoVHJhbnNmZXJUeXBlTWV0aG9kSWQgPSAnMHgyZWIyYzJkNic7XG5leHBvcnQgY29uc3QgZGVmYXVsdEZvcndhcmRlclZlcnNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRXYWxsZXRWZXJzaW9uID0gMDtcblxuLypcbiAgU3RlcHMgdG8gcmVwcm9kdWNlOlxuICBDaGVja291dCBodHRwczovL2dpdGh1Yi5jb20vYml0Z28vZXRoLW11bHRpc2lnLXYyXG4gIG5wbSBpbnN0YWxsIC1nIHNvbGNAMC40LjE4XG4gIHNvbGNqcyAtLWJpbiAuL2NvbnRyYWN0cy9XYWxsZXRTaW1wbGUuc29sIC4vY29udHJhY3RzL0ZvcndhcmRlci5zb2wgLi9jb250cmFjdHMvRVJDMjBJbnRlcmZhY2Uuc29sXG4gIGNhdCBXYWxsZXRTaW1wbGUuYmluXG4qL1xuZXhwb3J0IGNvbnN0IHdhbGxldFNpbXBsZUJ5dGVDb2RlID1cbiAgJzB4NjA2MDYwNDA1MjYwMDA2MDAxNjAwMDYxMDEwMDBhODE1NDgxNjBmZjAyMTkxNjkwODMxNTE1MDIxNzkwNTU1MDM0MTU2MTAwMmE1NzYwMDA4MGZkNWI2MDQwNTE2MTE1NWIzODAzODA2MTE1NWI4MzM5ODEwMTYwNDA1MjgwODA1MTgyMDE5MTkwNTA1MDYwMDM4MTUxMTQxNTE1NjEwMDU2NTc2MDAwODBmZDViODA2MDAwOTA4MDUxOTA2MDIwMDE5MDYxMDA2YzkyOTE5MDYxMDA3MzU2NWI1MDUwNjEwMTQwNTY1YjgyODA1NDgyODI1NTkwNjAwMDUyNjAyMDYwMDAyMDkwODEwMTkyODIxNTYxMDBlYzU3OTE2MDIwMDI4MjAxNWI4MjgxMTExNTYxMDBlYjU3ODI1MTgyNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDkxNjAyMDAxOTE5MDYwMDEwMTkwNjEwMDkzNTY1YjViNTA5MDUwNjEwMGY5OTE5MDYxMDBmZDU2NWI1MDkwNTY1YjYxMDEzZDkxOTA1YjgwODIxMTE1NjEwMTM5NTc2MDAwODE4MTYxMDEwMDBhODE1NDkwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA1NTUwNjAwMTAxNjEwMTAzNTY1YjUwOTA1NjViOTA1NjViNjExNDBjODA2MTAxNGY2MDAwMzk2MDAwZjMwMDYwNjA2MDQwNTI2MDA0MzYxMDYxMDA5OTU3NjAwMDM1N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAwNDYzZmZmZmZmZmYxNjgwNjMwZGNkN2E2YzE0NjEwMTMzNTc4MDYzMjA3OWZiOWExNDYxMDFlOTU3ODA2MzJkYTAzNDA5MTQ2MTAyNGM1NzgwNjMzOTEyNTIxNTE0NjEwMmE0NTc4MDYzN2RmNzNlMjcxNDYxMDM3ZTU3ODA2M2EwYjc5NjdiMTQ2MTAzY2Y1NzgwNjNhNjhhNzZjYzE0NjEwM2Y4NTc4MDYzYWJlMzIxOWMxNDYxMDQ0ZDU3ODA2M2ZjMGYzOTJkMTQ2MTA0N2E1NzViNjAwMDM0MTExNTYxMDEzMTU3N2Y2ZTg5ZDUxNzA1NzAyODE5MDU2MGRkMjAwY2Y2YmY3OTI4NDI4NjEzNTNkMTE3Mzc2MWRmYTM2MmUxYzEzM2YwMzMzNDYwMDAzNjYwNDA1MTgwODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgwNjAyMDAxODI4MTAzODI1Mjg0ODQ4MjgxODE1MjYwMjAwMTkyNTA4MDgyODQzNzgyMDE5MTUwNTA5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwYTE1YjAwNWIzNDE1NjEwMTNlNTc2MDAwODBmZDViNjEwMWU3NjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDQ4ZjU2NWIwMDViMzQxNTYxMDFmNDU3NjAwMDgwZmQ1YjYxMDIwYTYwMDQ4MDgwMzU5MDYwMjAwMTkwOTE5MDUwNTA2MTA2Njg1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDI1NzU3NjAwMDgwZmQ1YjYxMDJhMjYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA1MDUwNjEwNmE3NTY1YjAwNWIzNDE1NjEwMmFmNTc2MDAwODBmZDViNjEwMzdjNjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDgyMDE4MDM1OTA2MDIwMDE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3ODIwMTkxNTA1MDUwNTA1MDUwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDc3MzU2NWIwMDViMzQxNTYxMDM4OTU3NjAwMDgwZmQ1YjYxMDNiNTYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMGE3MjU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDNkYTU3NjAwMDgwZmQ1YjYxMDNlMjYxMGIxNjU2NWI2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTA0MDM1NzYwMDA4MGZkNWI2MTA0MGI2MTBiNzA1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ1ODU3NjAwMDgwZmQ1YjYxMDQ2MDYxMGI5NTU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ4NTU3NjAwMDgwZmQ1YjYxMDQ4ZDYxMGJhODU2NWIwMDViNjAwMDgwNjEwNDliMzM2MTBhNzI1NjViMTUxNTYxMDRhNjU3NjAwMDgwZmQ1Yjg3ODc4Nzg3ODc2MDQwNTE4MDgwN2Y0NTUyNDMzMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwNjAwNTAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NmMwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyODE1MjYwMTQwMTg1ODE1MjYwMjAwMTg0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4MzgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwMjA5MTUwNjEwNTg5ODg4Mzg1ODg4ODYxMGMzYjU2NWI1MDg1OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2E5MDU5Y2JiODk4OTYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgzNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTI1MDUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDYzODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTA2NDk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDE1MTU2MTA2NWU1NzYwMDA4MGZkNWI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MTgxNTQ4MTEwMTUxNTYxMDY3NzU3ZmU1YjkwNjAwMDUyNjAyMDYwMDAyMDkwMDE2MDAwOTE1MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTY1YjYwMDA2MTA2YjIzMzYxMGE3MjU2NWIxNTE1NjEwNmJkNTc2MDAwODBmZDViODI5MDUwODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzM2VmMTMzNjc4MzYwNDA1MTgyNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1MTU2MTA3NWE1NzYwMDA4MGZkNWI2MTAyYzY1YTAzZjExNTE1NjEwNzZiNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDc3ZjMzNjEwYTcyNTY1YjE1MTU2MTA3OGE1NzYwMDA4MGZkNWI4Nzg3ODc4Nzg3NjA0MDUxODA4MDdmNDU1NDQ4NDU1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDYwMDUwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4NTgxNTI2MDIwMDE4NDgwNTE5MDYwMjAwMTkwODA4MzgzNWI2MDIwODMxMDE1MTU2MTA4MzM1NzgwNTE4MjUyNjAyMDgyMDE5MTUwNjAyMDgxMDE5MDUwNjAyMDgzMDM5MjUwNjEwODBlNTY1YjYwMDE4MzYwMjAwMzYxMDEwMDBhMDM4MDE5ODI1MTE2ODE4NDUxMTY4MDgyMTc4NTUyNTA1MDUwNTA1MDUwOTA1MDAxODM4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MDIwOTE1MDYxMDg3Zjg4ODM4NTg4ODg2MTBjM2I1NjViOTA1MDg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4Nzg3NjA0MDUxODA4MjgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTA4Yzc1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTA4YWM1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwOGY0NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5MTUwNTA2MDAwNjA0MDUxODA4MzAzODE4NTg3NjE4Nzk2NWEwM2YxOTI1MDUwNTAxNTE1NjEwOTE4NTc2MDAwODBmZDViN2Y1OWJlZDlhYjVkNzgwNzM0NjVkZDY0MmE5ZTNlNzZkZmRiN2Q1M2JjYWU5ZDA5ZGY3ZDBiOGY1MjM0ZDVhODA2MzM4Mjg0OGI4YjhiNjA0MDUxODA4NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg1NjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4NDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODM4MTUyNjAyMDAxODA2MDIwMDE4MjgxMDM4MjUyODM4MTgxNTE4MTUyNjAyMDAxOTE1MDgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTBhMjk1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhMGU1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwYTU2NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5NzUwNTA1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwOTA1MDViNjAwMDgwNTQ5MDUwODExMDE1NjEwYjBiNTc4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMDgyODE1NDgxMTAxNTE1NjEwYWFkNTdmZTViOTA2MDAwNTI2MDIwNjAwMDIwOTAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MTQxNTYxMGFmZTU3NjAwMTkxNTA2MTBiMTA1NjViODA4MDYwMDEwMTkxNTA1MDYxMGE3YTU2NWI2MDAwOTE1MDViNTA5MTkwNTA1NjViNjAwMDgwNjAwMDgwOTE1MDYwMDA5MDUwNWI2MDBhODExMDE1NjEwYjY1NTc4MTYwMDI4MjYwMGE4MTEwMTUxNTYxMGIzYzU3ZmU1YjAxNTQxMTE1NjEwYjU4NTc2MDAyODE2MDBhODExMDE1MTU2MTBiNTM1N2ZlNWIwMTU0OTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGIyMzU2NWI2MDAxODIwMTkyNTA1MDUwOTA1NjViNjAwMDYxMGI3YTYxMGU5MDU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTUxNTYxMGI5MDU3NjAwMDgwZmQ1YjkwNTA5MDU2NWI2MDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjgxNTY1YjYxMGJiMTMzNjEwYTcyNTY1YjE1MTU2MTBiYmM1NzYwMDA4MGZkNWI2MDAxODA2MDAwNjEwMTAwMGE4MTU0ODE2MGZmMDIxOTE2OTA4MzE1MTUwMjE3OTA1NTUwN2YwOTA5ZThmNzZhNGZkM2U5NzBmMmVhZWY1NmMwZWU2ZGZhZjhiODdjNWI4ZDNmNTZmZmNlNzhlODI1YTkxMTU3MzM2MDQwNTE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGExNTY1YjYwMDA4MDYxMGM0ODg2ODY2MTBjZTY1NjViOTA1MDYwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NjBmZjE2ODAxNTYxMGM2YzU3NTA2MTBjNmE4NzYxMGE3MjU2NWIxNTViMTU2MTBjNzY1NzYwMDA4MGZkNWI0Mjg0MTAxNTYxMGM4MzU3NjAwMDgwZmQ1YjYxMGM4YzgzNjEwZGI5NTY1YjYxMGM5NTgxNjEwYTcyNTY1YjE1MTU2MTBjYTA1NzYwMDA4MGZkNWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0MTU2MTBjZDk1NzYwMDA4MGZkNWI4MDkxNTA1MDk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwNDE4NTUxMTQxNTE1NjEwY2ZjNTc2MDAwODBmZDViNjAyMDg1MDE1MTkyNTA2MDQwODUwMTUxOTE1MDYwZmY2MDQxODYwMTUxMTY5MDUwNjAxYjgxNjBmZjE2MTAxNTYxMGQyNzU3NjAxYjgxMDE5MDUwNWI2MDAxODY4Mjg1ODU2MDQwNTE2MDAwODE1MjYwMjAwMTYwNDA1MjYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgwODU2MDAwMTkxNjYwMDAxOTE2ODE1MjYwMjAwMTg0NjBmZjE2NjBmZjE2ODE1MjYwMjAwMTgzNjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4MjYwMDAxOTE2NjAwMDE5MTY4MTUyNjAyMDAxOTQ1MDUwNTA1MDUwNjAyMDYwNDA1MTYwMjA4MTAzOTA4MDg0MDM5MDYwMDA4NjYxNjQ2ZTVhMDNmMTE1MTU2MTBkYTU1NzYwMDA4MGZkNWI1MDUwNjAyMDYwNDA1MTAzNTE5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjEwZGM1MzM2MTBhNzI1NjViMTUxNTYxMGRkMDU3NjAwMDgwZmQ1YjYwMDA5MTUwNjAwMDkwNTA1YjYwMGE4MTEwMTU2MTBlMzg1NzgyNjAwMjgyNjAwYTgxMTAxNTE1NjEwZGYyNTdmZTViMDE1NDE0MTU2MTBkZmY1NzYwMDA4MGZkNWI2MDAyODI2MDBhODExMDE1MTU2MTBlMGU1N2ZlNWIwMTU0NjAwMjgyNjAwYTgxMTAxNTE1NjEwZTFmNTdmZTViMDE1NDEwMTU2MTBlMmI1NzgwOTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGRkOTU2NWI2MDAyODI2MDBhODExMDE1MTU2MTBlNDc1N2ZlNWIwMTU0ODMxMDE1NjEwZTU1NTc2MDAwODBmZDViNjEyNzEwNjAwMjgzNjAwYTgxMTAxNTE1NjEwZTY3NTdmZTViMDE1NDAxODMxMTE1NjEwZTc2NTc2MDAwODBmZDViODI2MDAyODM2MDBhODExMDE1MTU2MTBlODY1N2ZlNWIwMTgxOTA1NTUwNTA1MDUwNTY1YjYwNDA1MTYxMDU0MDgwNjEwZWExODMzOTAxOTA1NjAwNjA2MDYwNDA1MjM0MTU2MTAwMGY1NzYwMDA4MGZkNWIzMzYwMDA4MDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDRlMjgwNjEwMDVlNjAwMDM5NjAwMGYzMDA2MDYwNjA0MDUyNjAwNDM2MTA2MTAwNTY1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYyODIxZGUzMTQ2MTAxNDc1NzgwNjMzZWYxMzM2NzE0NjEwMTljNTc4MDYzNmI5Zjk2ZWExNDYxMDFkNTU3NWI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjMzQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTUxNTYxMDBiNzU3NjAwMDgwZmQ1YjdmNjliMzE1NDhkZWE5YjNiNzA3YjRkZmYzNTdkMzI2ZTNlOTM0OGIyNGU3YTYwODBhMjE4YTZlZGVlZWM0OGY5YjMzMzQ2MDAwMzY2MDQwNTE4MDg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4NDgxNTI2MDIwMDE4MDYwMjAwMTgyODEwMzgyNTI4NDg0ODI4MTgxNTI2MDIwMDE5MjUwODA4Mjg0Mzc4MjAxOTE1MDUwOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExMDA1YjM0MTU2MTAxNTI1NzYwMDA4MGZkNWI2MTAxNWE2MTAxZWE1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDFhNzU3NjAwMDgwZmQ1YjYxMDFkMzYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMDIwZjU2NWIwMDViMzQxNTYxMDFlMDU3NjAwMDgwZmQ1YjYxMDFlODYxMDQzYzU2NWIwMDViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTU2NWI2MDAwODA2MDAwODA2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjMzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYxNDE1MTU2MTAyNmY1NzYwMDA4MGZkNWI4MzkyNTAzMDkxNTA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MGEwODIzMTgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODI2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDMxODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTAzMjk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDkwNTA2MDAwODExNDE1NjEwMzQzNTc2MTA0MzY1NjViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYTkwNTljYmI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODM2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5MjUwNTA1MDYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTE1NjEwNDBmNTc2MDAwODBmZDViNjEwMmM2NWEwM2YxMTUxNTYxMDQyMDU3NjAwMDgwZmQ1YjUwNTA1MDYwNDA1MTgwNTE5MDUwMTUxNTYxMDQzNTU3NjAwMDgwZmQ1YjViNTA1MDUwNTA1NjViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMTkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTE1NjEwNGI0NTc2MDAwODBmZDViNTYwMGExNjU2MjdhN2E3MjMwNTgyMDA4OGNjZTkwNWU0MjRiZmU0NzQ1MTBlZmU0MTc2MTg5M2U5ZTM0YjU0Yjg4NWI4ZmVlNTQ2ZDhiZTg4YWVlM2MwMDI5YTE2NTYyN2E3YTcyMzA1ODIwODI3YWRjM2VmM2ExNzk3NTdiYzMzMDAzZTQxMDcwZmJiZmNkZmM1ZGIzMTI3NWFmM2NiMDM5NTE1NWNkM2JiYjAwMjknO1xuXG5leHBvcnQgY29uc3Qgd2FsbGV0U2ltcGxlQ29uc3RydWN0b3IgPSBbJ2FkZHJlc3NbXSddO1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVYxV2FsbGV0VHlwZXMgPSBbJ2FkZHJlc3NbXScsICdieXRlczMyJ107XG5leHBvcnQgY29uc3QgZmx1c2hUb2tlbnNUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJ107XG5leHBvcnQgY29uc3QgZmx1c2hDb2luc1R5cGVzID0gW107XG5cbmV4cG9ydCBjb25zdCBzZW5kTXVsdGlTaWdUeXBlcyA9IFsnYWRkcmVzcycsICd1aW50JywgJ2J5dGVzJywgJ3VpbnQnLCAndWludCcsICdieXRlcyddO1xuXG5leHBvcnQgY29uc3Qgc2VuZE11bHRpU2lnVG9rZW5UeXBlcyA9IFsnYWRkcmVzcycsICd1aW50JywgJ2FkZHJlc3MnLCAndWludCcsICd1aW50JywgJ2J5dGVzJ107XG5cbmV4cG9ydCBjb25zdCBFUkM3MjFTYWZlVHJhbnNmZXJUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJywgJ3VpbnQyNTYnLCAnYnl0ZXMnXTtcblxuZXhwb3J0IGNvbnN0IEVSQzExNTVTYWZlVHJhbnNmZXJUeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJywgJ3VpbnQyNTYnLCAndWludDI1NicsICdieXRlcyddO1xuZXhwb3J0IGNvbnN0IEVSQzExNTVCYXRjaFRyYW5zZmVyVHlwZXMgPSBbJ2FkZHJlc3MnLCAnYWRkcmVzcycsICd1aW50MjU2W10nLCAndWludDI1NltdJywgJ2J5dGVzJ107XG5leHBvcnQgY29uc3QgY3JlYXRlVjFGb3J3YXJkZXJUeXBlcyA9IFsnYWRkcmVzcycsICdieXRlczMyJ107XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/sdk-coin-eth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.0",
|
|
4
4
|
"description": "BitGo SDK coin library for Ethereum",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo/sdk-core": "^4.2.
|
|
44
|
-
"@bitgo/statics": "^12.1.
|
|
43
|
+
"@bitgo/sdk-core": "^4.2.1",
|
|
44
|
+
"@bitgo/statics": "^12.1.1",
|
|
45
45
|
"@bitgo/utxo-lib": "^7.1.0",
|
|
46
46
|
"@ethereumjs/common": "^2.4.0",
|
|
47
47
|
"@ethereumjs/tx": "^3.3.0",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"superagent": "^3.8.3"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@bitgo/sdk-api": "^1.9.
|
|
61
|
-
"@bitgo/sdk-test": "^1.2.
|
|
60
|
+
"@bitgo/sdk-api": "^1.9.3",
|
|
61
|
+
"@bitgo/sdk-test": "^1.2.8",
|
|
62
62
|
"tweetnacl": "^1.0.3"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "74b4cbf831a01fcffbec102cfba82325752f6023"
|
|
65
65
|
}
|