@bitgo/account-lib 2.19.0-rc.5 → 2.19.0-rc.6

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/account-lib",
3
- "version": "2.19.0-rc.5",
3
+ "version": "2.19.0-rc.6",
4
4
  "description": "BitGo's account library functions",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -126,5 +126,5 @@
126
126
  "publishConfig": {
127
127
  "access": "public"
128
128
  },
129
- "gitHead": "094cb83a8ff1cb53199e0b35de7259285c66e8e3"
129
+ "gitHead": "755ed572324ce879757f1a103209070154d36622"
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batchTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/batchTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD;;;;;;;;OAQG;IACH,SAAS,CAAC,qBAAqB,IAAI,mBAAmB;IAWtD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAQrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAyBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IASpC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,8BAA8B;IAMtC,OAAO,CAAC,qBAAqB;CAa9B"}
1
+ {"version":3,"file":"batchTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/batchTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD;;;;;;;;OAQG;IACH,SAAS,CAAC,qBAAqB,IAAI,mBAAmB;IAWtD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAQrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAyBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IASpC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,8BAA8B;IAMtC,OAAO,CAAC,qBAAqB;CAa9B"}
@@ -142,4 +142,4 @@ var BatchTransactionBuilder = /** @class */ (function (_super) {
142
142
  return BatchTransactionBuilder;
143
143
  }(transactionBuilder_1.TransactionBuilder));
144
144
  exports.BatchTransactionBuilder = BatchTransactionBuilder;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQTBEO0FBRTFELG9FQUF3RDtBQUN4RCx3Q0FBOEM7QUFDOUMsaUNBQWtFO0FBQ2xFLDZDQUF5RztBQUN6Ryx5Q0FBcUQ7QUFHckQ7SUFBNkMsMkNBQWtCO0lBSTdELGlDQUFZLFdBQWlDO2VBQzNDLGtCQUFNLFdBQVcsQ0FBQztJQUNwQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0RBQWdCLEdBQTFCO1FBQ0UsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyx1REFBcUIsR0FBL0I7UUFDRSxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDMUI7WUFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFjLG9EQUFlO2FBQTdCO1lBQ0UsT0FBTywwQkFBZSxDQUFDLEtBQUssQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVEOzs7OztPQUtHO0lBQ0gsdUNBQUssR0FBTCxVQUFNLEtBQWU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsNERBQTBCLEdBQTFCLFVBQTJCLFVBQW1EO1FBQzVFLElBQU0sUUFBUSxH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QUM7UUFDM0MsSUFBTSxRQUFRLEdBQUcsNEJBQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUN0QztZQUNFLFNBQVMsRUFBRSxNQUFBLFVBQVUsQ0FBQyxJQUFJLDBDQUFFLFVBQVU7WUFDdEMsS0FBSyxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksMENBQUUsS0FBSztZQUM3QixLQUFLLEVBQUUsTUFBQSxVQUFVLENBQUMsSUFBSSwwQ0FBRSxLQUFLO1NBQzlCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBQ0gsOEJBQUM7QUFBRCxDQUFDLEFBcklELENBQTZDLHVDQUFrQixHQXFJOUQ7QUFySVksMERBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBtZXRob2RzIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQmF0Y2hDYWxsT2JqZWN0LCBCYXRjaEFyZ3MsIE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX2NhbGxzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHByb3RlY3RlZCBidWlsZFRyYW5zYWN0aW9uKCk6IFVuc2lnbmVkVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkQmF0Y2hUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgdHJhbnNhY3Rpb24gd2hpY2ggYmF0Y2hlcyB0b2dldGhlciBtdWx0aXBsZSB0cmFuc2FjdGlvbnMuXG4gICAqIFRoZSB0cmFuc2FjdGlvbnMgd2hpY2ggYXJlIGJhdGNoZWQgdG9nZXRoZXIgYXJlIHBhc3NlZCBpbiBhcyBhbiBhcnJheSBvZiBoZXggc3RyaW5nc1xuICAgKiB3aGljaCBhcmUgY29tcG9zZWQgb2YgdGhlIG1ldGhvZCB0byBjYWxsIGFuZCB0aGUgYXJndW1lbnRzIHRvIHBhc3MgaW50byB0aGUgbWV0aG9kLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VW5zaWduZWRUcmFuc2FjdGlvbn1cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BvbGthZG90LmpzLm9yZy9kb2NzL3N1YnN0cmF0ZS9leHRyaW5zaWNzLyNiYXRjaGNhbGxzLXZlY2NhbGxcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEJhdGNoVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgYmFzZVR4SW5mbyA9IHRoaXMuY3JlYXRlQmFzZVR4SW5mbygpO1xuICAgIHJldHVybiBtZXRob2RzLnV0aWxpdHkuYmF0Y2goXG4gICAgICB7XG4gICAgICAgIGNhbGxzOiB0aGlzLl9jYWxscyxcbiAgICAgIH0sXG4gICAgICBiYXNlVHhJbmZvLmJhc2VUeEluZm8sXG4gICAgICBiYXNlVHhJbmZvLm9wdGlvbnMsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5CYXRjaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbXVsdGlwbGUgdW5zaWduZWQgdHJhbnNhY3Rpb25zIHRvIGJlIGJhdGNoZWQgYW5kIGJyb2FkY2FzdCBhcyBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge0JhdGNoQ2FsbFtdfSBjYWxscyB1bnNpZ25lZCB0cmFuc2FjdGlvbnNcbiAgICogQHJldHVybnMge0JhdGNoVHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIGJhdGNoIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqL1xuICBjYWxscyhjYWxsczogc3RyaW5nW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlQ2FsbHMoY2FsbHMpO1xuICAgIHRoaXMuX2NhbGxzID0gY2FsbHM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4bjogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogdm9pZCB7XG4gICAgY29uc3QgdHhNZXRob2QgPSBkZWNvZGVkVHhuLm1ldGhvZC5hcmdzIGFzIHVua25vd24gYXMgQmF0Y2hBcmdzO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSB0aGlzLnZhbGlkYXRlQmF0Y2hUcmFuc2FjdGlvbkZpZWxkcyh0eE1ldGhvZC5jYWxscyk7XG4gICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBzdXBlci5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmICh0aGlzLl9tZXRob2Q/Lm5hbWUgPT09IE1ldGhvZE5hbWVzLkJhdGNoKSB7XG4gICAgICBjb25zdCB0eE1ldGhvZCA9IHRoaXMuX21ldGhvZC5hcmdzIGFzIEJhdGNoQXJncztcbiAgICAgIGlmICghdHhNZXRob2QuY2FsbHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdmYWlsZWQgdG8gZGVjb2RlIGNhbGxzIGZyb20gYmF0Y2ggdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhbGxzVG9CYXRjaDogc3RyaW5nW10gPSBbXTtcbiAgICAgIHR4TWV0aG9kLmNhbGxzLmZvckVhY2goKGNhbGwpID0+IHtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGNhbGwgYXMgQmF0Y2hDYWxsT2JqZWN0KS5jYWxsSW5kZXg7XG4gICAgICAgIGlmIChtZXRob2QgPT09ICcweDE2MDQnKSB7XG4gICAgICAgICAgY2FsbHNUb0JhdGNoLnB1c2godGhpcy5nZXRBbm9ueW1vdXNQcm94eUNhbGwoY2FsbCBhcyBCYXRjaENhbGxPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcihgYmF0Y2hpbmcgb2YgdHJhbnNhY3Rpb25zIHdpdGggaW5kZXggJHttZXRob2R9IHVuc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYWxscyhjYWxsc1RvQmF0Y2gpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7dGhpcy5fbWV0aG9kPy5uYW1lfS4gRXhwZWN0ZWQgJHtNZXRob2ROYW1lcy5CYXRjaH1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKF8pO1xuICAgIHRoaXMudmFsaWRhdGVGaWVsZHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBsaXN0IG9mIHVuc2lnbmVkIHRyYW5zYWN0aW9ucyBhZGRlZCB0byBiYXRjaFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjYWxsc1xuICAgKlxuICAgKi9cbiAgdmFsaWRhdGVDYWxscyhjYWxsczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjYWxscy5mb3JFYWNoKChjYWxsKSA9PiB7XG4gICAgICBpZiAoY2FsbC5zbGljZSgwLCAyKSAhPT0gJzB4Jykge1xuICAgICAgICAvLyBleGFtcGxlOiAnMHgxNjA0MDAwMDAwMDAwMDAwMDAnXG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2NhbGwgaW4gc3RyaW5nIGZvcm1hdCBtdXN0IGJlIGhleCBmb3JtYXQgb2YgYSBtZXRob2QgYW5kIGl0cyBhcmd1bWVudHMnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZHMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKHRoaXMuX2NhbGxzKTtcbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgQWRkcmVzc0luaXRpYWxpemF0aW9uIFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQmF0Y2hUcmFuc2FjdGlvbkZpZWxkcyhjYWxsczogKHN0cmluZyB8IEJhdGNoQ2FsbE9iamVjdClbXSk6IGFueSB7XG4gICAgcmV0dXJuIEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgY2FsbHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFub255bW91c1Byb3h5Q2FsbChjYWxsT2JqZWN0OiBCYXRjaENhbGxPYmplY3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB1bnNpZ25lZCA9IG1ldGhvZHMucHJveHkuYW5vbnltb3VzKFxuICAgICAge1xuICAgICAgICBwcm94eVR5cGU6IGNhbGxPYmplY3QuYXJncz8ucHJveHlfdHlwZSxcbiAgICAgICAgaW5kZXg6IGNhbGxPYmplY3QuYXJncz8uaW5kZXgsXG4gICAgICAgIGRlbGF5OiBjYWxsT2JqZWN0LmFyZ3M/LmRlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9ucyxcbiAgICApO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvYmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkRBQTBEO0FBRTFELG9FQUF3RDtBQUN4RCx3Q0FBOEM7QUFDOUMsaUNBQWtFO0FBQ2xFLDZDQUF5RztBQUN6Ryx5Q0FBcUQ7QUFJckQ7SUFBNkMsMkNBQWtCO0lBSTdELGlDQUFZLFdBQWlDO2VBQzNDLGtCQUFNLFdBQVcsQ0FBQztJQUNwQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0RBQWdCLEdBQTFCO1FBQ0UsT0FBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyx1REFBcUIsR0FBL0I7UUFDRSxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxPQUFPLDRCQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDMUI7WUFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbkIsRUFDRCxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFjLG9EQUFlO2FBQTdCO1lBQ0UsT0FBTywwQkFBZSxDQUFDLEtBQUssQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVEOzs7OztPQUtHO0lBQ0gsdUNBQUssR0FBTCxVQUFNLEtBQWU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsNERBQTBCLEdBQTFCLFVBQTJCLFVBQW1EO1FBQzVFLElBQU0sUUFBUSxH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QUM7UUFDM0MsSUFBTSxRQUFRLEdBQUcsNEJBQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUN0QztZQUNFLFNBQVMsRUFBRSxNQUFBLFVBQVUsQ0FBQyxJQUFJLDBDQUFFLFVBQVU7WUFDdEMsS0FBSyxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksMENBQUUsS0FBSztZQUM3QixLQUFLLEVBQUUsTUFBQSxVQUFVLENBQUMsSUFBSSwwQ0FBRSxLQUFLO1NBQzlCLEVBQ0QsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBQ0gsOEJBQUM7QUFBRCxDQUFDLEFBcklELENBQTZDLHVDQUFrQixHQXFJOUQ7QUFySVksMERBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZSc7XG5pbXBvcnQgeyBtZXRob2RzIH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQmF0Y2hDYWxsT2JqZWN0LCBCYXRjaEFyZ3MsIE1ldGhvZE5hbWVzIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJ2pvaSc7XG5cbmV4cG9ydCBjbGFzcyBCYXRjaFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfY2FsbHM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgX3R5cGU6IFRyYW5zYWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkVHJhbnNhY3Rpb24oKTogVW5zaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRCYXRjaFRyYW5zYWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSB0cmFuc2FjdGlvbiB3aGljaCBiYXRjaGVzIHRvZ2V0aGVyIG11bHRpcGxlIHRyYW5zYWN0aW9ucy5cbiAgICogVGhlIHRyYW5zYWN0aW9ucyB3aGljaCBhcmUgYmF0Y2hlZCB0b2dldGhlciBhcmUgcGFzc2VkIGluIGFzIGFuIGFycmF5IG9mIGhleCBzdHJpbmdzXG4gICAqIHdoaWNoIGFyZSBjb21wb3NlZCBvZiB0aGUgbWV0aG9kIHRvIGNhbGwgYW5kIHRoZSBhcmd1bWVudHMgdG8gcGFzcyBpbnRvIHRoZSBtZXRob2QuXG4gICAqXG4gICAqIEByZXR1cm5zIHtVbnNpZ25lZFRyYW5zYWN0aW9ufVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcG9sa2Fkb3QuanMub3JnL2RvY3Mvc3Vic3RyYXRlL2V4dHJpbnNpY3MvI2JhdGNoY2FsbHMtdmVjY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkQmF0Y2hUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCBiYXNlVHhJbmZvID0gdGhpcy5jcmVhdGVCYXNlVHhJbmZvKCk7XG4gICAgcmV0dXJuIG1ldGhvZHMudXRpbGl0eS5iYXRjaChcbiAgICAgIHtcbiAgICAgICAgY2FsbHM6IHRoaXMuX2NhbGxzLFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkJhdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBtdWx0aXBsZSB1bnNpZ25lZCB0cmFuc2FjdGlvbnMgdG8gYmUgYmF0Y2hlZCBhbmQgYnJvYWRjYXN0IGFzIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7QmF0Y2hDYWxsW119IGNhbGxzIHVuc2lnbmVkIHRyYW5zYWN0aW9uc1xuICAgKiBAcmV0dXJucyB7QmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgYmF0Y2ggdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICovXG4gIGNhbGxzKGNhbGxzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVDYWxscyhjYWxscyk7XG4gICAgdGhpcy5fY2FsbHMgPSBjYWxscztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgpOiB2b2lkIHtcbiAgICBjb25zdCB0eE1ldGhvZCA9IGRlY29kZWRUeG4ubWV0aG9kLmFyZ3MgYXMgdW5rbm93biBhcyBCYXRjaEFyZ3M7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHRoaXMudmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKHR4TWV0aG9kLmNhbGxzKTtcbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKHRoaXMuX21ldGhvZD8ubmFtZSA9PT0gTWV0aG9kTmFtZXMuQmF0Y2gpIHtcbiAgICAgIGNvbnN0IHR4TWV0aG9kID0gdGhpcy5fbWV0aG9kLmFyZ3MgYXMgQmF0Y2hBcmdzO1xuICAgICAgaWYgKCF0eE1ldGhvZC5jYWxscykge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgY2FsbHMgZnJvbSBiYXRjaCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgY2FsbHNUb0JhdGNoOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgdHhNZXRob2QuY2FsbHMuZm9yRWFjaCgoY2FsbCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2QgPSAoY2FsbCBhcyBCYXRjaENhbGxPYmplY3QpLmNhbGxJbmRleDtcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gJzB4MTYwNCcpIHtcbiAgICAgICAgICBjYWxsc1RvQmF0Y2gucHVzaCh0aGlzLmdldEFub255bW91c1Byb3h5Q2FsbChjYWxsIGFzIEJhdGNoQ2FsbE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKGBiYXRjaGluZyBvZiB0cmFuc2FjdGlvbnMgd2l0aCBpbmRleCAke21ldGhvZH0gdW5zdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNhbGxzKGNhbGxzVG9CYXRjaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgYEludmFsaWQgVHJhbnNhY3Rpb24gVHlwZTogJHt0aGlzLl9tZXRob2Q/Lm5hbWV9LiBFeHBlY3RlZCAke01ldGhvZE5hbWVzLkJhdGNofWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbihfOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24oXyk7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGxpc3Qgb2YgdW5zaWduZWQgdHJhbnNhY3Rpb25zIGFkZGVkIHRvIGJhdGNoXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNhbGxzXG4gICAqXG4gICAqL1xuICB2YWxpZGF0ZUNhbGxzKGNhbGxzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNhbGxzLmZvckVhY2goKGNhbGwpID0+IHtcbiAgICAgIGlmIChjYWxsLnNsaWNlKDAsIDIpICE9PSAnMHgnKSB7XG4gICAgICAgIC8vIGV4YW1wbGU6ICcweDE2MDQwMDAwMDAwMDAwMDAwMCdcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignY2FsbCBpbiBzdHJpbmcgZm9ybWF0IG11c3QgYmUgaGV4IGZvcm1hdCBvZiBhIG1ldGhvZCBhbmQgaXRzIGFyZ3VtZW50cycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gdGhpcy52YWxpZGF0ZUJhdGNoVHJhbnNhY3Rpb25GaWVsZHModGhpcy5fY2FsbHMpO1xuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBBZGRyZXNzSW5pdGlhbGl6YXRpb24gVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXRjaFRyYW5zYWN0aW9uRmllbGRzKGNhbGxzOiAoc3RyaW5nIHwgQmF0Y2hDYWxsT2JqZWN0KVtdKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgcmV0dXJuIEJhdGNoVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgY2FsbHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFub255bW91c1Byb3h5Q2FsbChjYWxsT2JqZWN0OiBCYXRjaENhbGxPYmplY3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VUeEluZm8gPSB0aGlzLmNyZWF0ZUJhc2VUeEluZm8oKTtcbiAgICBjb25zdCB1bnNpZ25lZCA9IG1ldGhvZHMucHJveHkuYW5vbnltb3VzKFxuICAgICAge1xuICAgICAgICBwcm94eVR5cGU6IGNhbGxPYmplY3QuYXJncz8ucHJveHlfdHlwZSxcbiAgICAgICAgaW5kZXg6IGNhbGxPYmplY3QuYXJncz8uaW5kZXgsXG4gICAgICAgIGRlbGF5OiBjYWxsT2JqZWN0LmFyZ3M/LmRlbGF5LFxuICAgICAgfSxcbiAgICAgIGJhc2VUeEluZm8uYmFzZVR4SW5mbyxcbiAgICAgIGJhc2VUeEluZm8ub3B0aW9ucyxcbiAgICApO1xuICAgIHJldHVybiB1bnNpZ25lZC5tZXRob2Q7XG4gIH1cbn1cbiJdfQ==
@@ -384,4 +384,4 @@ var TransactionBuilder = /** @class */ (function (_super) {
384
384
  return TransactionBuilder;
385
385
  }(baseCoin_1.BaseTransactionBuilder));
386
386
  exports.TransactionBuilder = TransactionBuilder;
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxvRUFBb0U7QUFDcEUsa0RBQXVCO0FBQ3ZCLDhEQUFxQztBQUNyQyw2Q0FBd0Q7QUFDeEQsd0NBQWlGO0FBQ2pGLDZDQUFvRjtBQVNwRixtQ0FBbUU7QUFFbkUscUNBQW9DO0FBQ3BDLDZDQUE0QztBQUM1Qyx5Q0FBOEc7QUFDOUcsa0RBQTJDO0FBRTNDO0lBQWlELHNDQUFzQjtJQWtCckUsNEJBQVksV0FBaUM7UUFBN0MsWUFDRSxrQkFBTSxXQUFXLENBQUMsU0FFbkI7UUFSRCxtRUFBbUU7UUFDbkUsMkVBQTJFO1FBQzNFLCtEQUErRDtRQUNyRCxpQkFBVyxHQUEwQixFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7UUFJbkYsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7O0lBQ25ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsbUNBQU0sR0FBTixVQUFPLEVBQXdCO1lBQXRCLE9BQU8sYUFBQTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHVDQUFVLEdBQVYsVUFBVyxLQUFpQjtRQUMxQixJQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FB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a0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBQb2xrYWRvdFNwZWNOYW1lVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUsIGdldFJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGlzVmFsaWRFZDI1NTE5U2VlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBUcmFuc2FjdGlvblR5cGUsIEludGVyZmFjZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEZlZU9wdGlvbnMsXG4gIFNlcXVlbmNlSWQsXG4gIFZhbGlkaXR5V2luZG93LFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbn0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciwgSW52YWxpZEZlZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ3JlYXRlQmFzZVR4SW5mbywgTWF0ZXJpYWwsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25TY2hlbWEsIFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLCBTaWduaW5nUGF5bG9hZFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyB1dGlscyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX2tleVBhaXI6IEtleVBhaXI7XG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF9ibG9ja051bWJlcjogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZmVyZW5jZUJsb2NrOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbm9uY2U6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF90aXA/OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZXJhUGVyaW9kPzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gIHByb3RlY3RlZCBfbWV0aG9kPzogVHhNZXRob2Q7XG4gIHByb3RlY3RlZCBfX21hdGVyaWFsPzogTWF0ZXJpYWw7XG4gIC8vIHNpZ25hdHVyZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2lnbiBhIHRyYW5zYWN0aW9uIHdoZW4gYnVpbGRpbmdcbiAgLy8gbm90IHRoZSBzYW1lIGFzIHRoZSBfc2lnbmF0dXJlcyBpbiB0cmFuc2FjdGlvbiB3aGljaCBpcyB0aGUgc2lnbmF0dXJlIGluXG4gIC8vIHN0cmluZyBoZXggZm9ybWF0IHVzZWQgZm9yIHZhbGlkYXRpb24gYWZ0ZXIgd2UgY2FsbCAuYnVpbGQoKVxuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEludGVyZmFjZS5TaWduYXR1cmVbXSA9IFtdOyAvLyBvbmx5IHN1cHBvcnQgc2luZ2xlIHNpZyBmb3Igbm93XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhZGRyZXNzIG9mIHNlbmRpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gYWRkcmVzcyBUaGUgU1M1OC1lbmNvZGVkIGFkZHJlc3MuXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgc2VuZGVyKHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNlbmRlcihhZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbm9uY2UgZm9yIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBub25jZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIHNlcXVlbmNlSWQobm9uY2U6IFNlcXVlbmNlSWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBCaWdOdW1iZXIobm9uY2UudmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbm9uY2UgPSB2YWx1ZS50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aXAgdG8gaW5jcmVhc2UgdHJhbnNhY3Rpb24gcHJpb3JpdHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbZmVlLnR5cGVdIG9wdGlvbnMgZm9yIGJ1aWxkaW5nIGZlZSB0eFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIGZlZShmZWU6IEZlZU9wdGlvbnMpOiB0aGlzIHtcbiAgICBpZiAoZmVlLnR5cGUgIT09ICd0aXAnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEZlZUVycm9yKGZlZS50eXBlLCAndGlwJyk7XG4gICAgfVxuICAgIGNvbnN0IHRpcEJOID0gbmV3IEJpZ051bWJlcihmZWUuYW1vdW50KTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUodGlwQk4pO1xuICAgIHRoaXMuX3RpcCA9IHRpcEJOLnRvTnVtYmVyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aGUgY2hlY2twb2ludCBibG9jayBhZnRlciB3aGljaCB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICpcbiAgICogQHBhcmFtIHtWYWxpZGl0eVdpbmRvd30gZmlyc3RWYWxpZCBibG9jayBjaGVja3BvaW50IHdoZXJlIHRyYW5zYWN0aW9uIGlzIGZpcnN0IHZhbGlkXG4gICAqIEBwYXJhbSB7VmFsaWRpdHlXaW5kb3d9IG1heER1cmF0aW9uIG51bWJlciBvZiBibG9ja3MgYWZ0ZXIgY2hlY2twb2ludCBmb3Igd2hpY2ggdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICB2YWxpZGl0eSh7IGZpcnN0VmFsaWQsIG1heER1cmF0aW9uIH06IFZhbGlkaXR5V2luZG93KTogdGhpcyB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKGZpcnN0VmFsaWQpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihmaXJzdFZhbGlkKSk7XG4gICAgICB0aGlzLl9ibG9ja051bWJlciA9IGZpcnN0VmFsaWQ7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChtYXhEdXJhdGlvbikpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKG1heER1cmF0aW9uKSk7XG4gICAgICB0aGlzLl9lcmFQZXJpb2QgPSBtYXhEdXJhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhhc2ggb2YgdGhlIGNoZWNrcG9pbnQgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VCbG9jayBibG9jayBoYXNoIGNoZWNrcG9pbnQgZnJvbSB3aGVyZSB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvI3RyYW5zYWN0aW9uLW1vcnRhbGl0eVxuICAgKi9cbiAgcmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2s6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrID0gcmVmZXJlbmNlQmxvY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdHJhbnNhY3Rpb25WZXJzaW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIHdhcyBhZGRlZCBpbiBtYXRlcmlhbCBkYXRhLlxuICAgKi9cbiAgdmVyc2lvbih0cmFuc2FjdGlvblZlcnNpb246IG51bWJlcik6IHRoaXMge1xuICAgIC8vIHRoaXMuX3RyYW5zYWN0aW9uVmVyc2lvbiA9IHRyYW5zYWN0aW9uVmVyc2lvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgbWV0aG9kKG1ldGhvZDogVHhNZXRob2QpOiB0aGlzIHtcbiAgICB0aGlzLl9tZXRob2QgPSBtZXRob2Q7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1hdGVyaWFsIGRhdGEgZm9yIHRoZSBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIHtNYXRlcmlhbH0gbWF0ZXJpYWxcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBtYXRlcmlhbChtYXRlcmlhbDogTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9fbWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLl9yZWdpc3RyeSA9IGdldFJlZ2lzdHJ5KHtcbiAgICAgIGNoYWluTmFtZTogbWF0ZXJpYWwuY2hhaW5OYW1lLFxuICAgICAgc3BlY05hbWU6IG1hdGVyaWFsLnNwZWNOYW1lLFxuICAgICAgc3BlY1ZlcnNpb246IG1hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgbWV0YWRhdGFScGM6IG1hdGVyaWFsLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBfbWF0ZXJpYWwoKTogTWF0ZXJpYWwge1xuICAgIGlmICghdGhpcy5fX21hdGVyaWFsKSB7XG4gICAgICBjb25zdCBtID0gdXRpbHMuZ2V0TWF0ZXJpYWwodGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICB0aGlzLm1hdGVyaWFsKG0pO1xuICAgICAgcmV0dXJuIG07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9fbWF0ZXJpYWw7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgZGVjb2RlZFR4biA9IGRlY29kZShyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgIH0pIGFzIERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeDtcbiAgICBpZiAodXRpbHMuaXNTaWduaW5nUGF5bG9hZChkZWNvZGVkVHhuKSkge1xuICAgICAgdGhpcy5yZWZlcmVuY2VCbG9jayhkZWNvZGVkVHhuLmJsb2NrSGFzaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VuZGVyKHsgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhkZWNvZGVkVHhuLmFkZHJlc3MpIH0pO1xuICAgICAgY29uc3QgZWRTaWduYXR1cmUgPSB1dGlscy5yZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHJhd1RyYW5zYWN0aW9uLCB7IHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSB9KTtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25hdHVyZS5wdXNoKGVkU2lnbmF0dXJlKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGl0eSh7IG1heER1cmF0aW9uOiBkZWNvZGVkVHhuLmVyYVBlcmlvZCB9KTtcbiAgICB0aGlzLnNlcXVlbmNlSWQoe1xuICAgICAgbmFtZTogJ05vbmNlJyxcbiAgICAgIGtleXdvcmQ6ICdub25jZScsXG4gICAgICB2YWx1ZTogZGVjb2RlZFR4bi5ub25jZSxcbiAgICB9KTtcbiAgICBpZiAoZGVjb2RlZFR4bi50aXApIHtcbiAgICAgIHRoaXMuZmVlKHsgYW1vdW50OiBgJHtkZWNvZGVkVHhuLnRpcH1gLCB0eXBlOiAndGlwJyB9KTtcbiAgICB9XG4gICAgdGhpcy5tZXRob2QoZGVjb2RlZFR4bi5tZXRob2QgYXMgdW5rbm93biBhcyBUeE1ldGhvZCk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uKHRoaXMuYnVpbGRUcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWdpc3RyeSh0aGlzLl9yZWdpc3RyeSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5jaGFpbk5hbWUodGhpcy5fbWF0ZXJpYWwuY2hhaW5OYW1lKTtcbiAgICBpZiAodGhpcy5fa2V5UGFpcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX2tleVBhaXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gaWYgd2UgaGF2ZSBhIHNpZ25hdHVyZSwgYXBwbHkgdGhhdCBhbmQgdXBkYXRlIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmNvbnN0cnVjdFNpZ25lZFBheWxvYWQodGhpcy5fc2lnbmF0dXJlc1swXS5zaWduYXR1cmUpO1xuICAgIH1cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUJhc2VUeEluZm8oKTogQ3JlYXRlQmFzZVR4SW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VUeEluZm86IHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICBibG9ja0hhc2g6IHRoaXMuX3JlZmVyZW5jZUJsb2NrLFxuICAgICAgICBibG9ja051bWJlcjogdGhpcy5fcmVnaXN0cnkuY3JlYXRlVHlwZSgnQmxvY2tOdW1iZXInLCB0aGlzLl9ibG9ja051bWJlcikudG9OdW1iZXIoKSxcbiAgICAgICAgZXJhUGVyaW9kOiB0aGlzLl9lcmFQZXJpb2QsXG4gICAgICAgIGdlbmVzaXNIYXNoOiB0aGlzLl9tYXRlcmlhbC5nZW5lc2lzSGFzaCxcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgICBzcGVjVmVyc2lvbjogdGhpcy5fbWF0ZXJpYWwuc3BlY1ZlcnNpb24sXG4gICAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogdGhpcy5fbWF0ZXJpYWwudHhWZXJzaW9uLFxuICAgICAgICBub25jZTogdGhpcy5fbm9uY2UsXG4gICAgICAgIHRpcDogdGhpcy5fdGlwLFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBidWlsZGVyIGludGVybmFsbHlcbiAgICogdXNpbmcgdGhlIEBzdWJzdHJhdGUvdHh3cmFwcGVyIGJ1aWxkZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQWRkcmVzc1ZhbGlkYXRpb25FcnJvcihhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleSh7IGtleSB9OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgbGV0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzO1xuICAgIGNvbnN0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUhleCA9IGlzVmFsaWRFZDI1NTE5U2VlZChrZXkpO1xuICAgIGNvbnN0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShrZXksICdiYXNlNjQnKS50b1N0cmluZygnaGV4JykpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkU2VlZCA9IHV0aWxzLmRlY29kZVNlZWQoa2V5KTtcbiAgICAgIGlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzID0gaXNWYWxpZEVkMjU1MTlTZWVkKEJ1ZmZlci5mcm9tKGRlY29kZWRTZWVkLnNlZWQpLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUhleCAmJiAhaXNWYWxpZFByaXZhdGVLZXlGcm9tQmFzZTY0KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBLZXkgdmFsaWRhdGlvbiBmYWlsZWRgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBidWlsZGVyIGludGVybmFsbHlcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihcbiAgICBkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgsXG4gICAgcmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KSBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHg7XG5cbiAgICBjb25zdCBlcmFQZXJpb2QgPSBkZWNvZGVkVHhuLmVyYVBlcmlvZDtcbiAgICBjb25zdCBub25jZSA9IGRlY29kZWRUeG4ubm9uY2U7XG4gICAgY29uc3QgdGlwID0gZGVjb2RlZFR4bi50aXA7XG5cbiAgICBpZiAodXRpbHMuaXNTaWduaW5nUGF5bG9hZChkZWNvZGVkVHhuKSkge1xuICAgICAgY29uc3QgYmxvY2tIYXNoID0gZGVjb2RlZFR4bi5ibG9ja0hhc2g7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gU2lnbmluZ1BheWxvYWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIGVyYVBlcmlvZCxcbiAgICAgICAgYmxvY2tIYXNoLFxuICAgICAgICBub25jZSxcbiAgICAgICAgdGlwLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VuZGVyID0gZGVjb2RlZFR4bi5hZGRyZXNzO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgICAgc2VuZGVyLFxuICAgICAgICBub25jZSxcbiAgICAgICAgZXJhUGVyaW9kLFxuICAgICAgICB0aXAsXG4gICAgICB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4biwgcmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlQmFzZUZpZWxkcyhcbiAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgIHRoaXMuX2Jsb2NrTnVtYmVyLFxuICAgICAgdGhpcy5fcmVmZXJlbmNlQmxvY2ssXG4gICAgICB0aGlzLl9tYXRlcmlhbC5nZW5lc2lzSGFzaCxcbiAgICAgIHRoaXMuX21hdGVyaWFsLmNoYWluTmFtZSxcbiAgICAgIHRoaXMuX25vbmNlLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuc3BlY1ZlcnNpb24sXG4gICAgICB0aGlzLl9tYXRlcmlhbC5zcGVjTmFtZSxcbiAgICAgIHRoaXMuX21hdGVyaWFsLnR4VmVyc2lvbixcbiAgICAgIHRoaXMuX2VyYVBlcmlvZCxcbiAgICAgIHRoaXMuX3RpcCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgc2VuZGVyOiBzdHJpbmcsXG4gICAgYmxvY2tOdW1iZXI6IG51bWJlcixcbiAgICBibG9ja0hhc2g6IHN0cmluZyxcbiAgICBnZW5lc2lzSGFzaDogc3RyaW5nLFxuICAgIGNoYWluTmFtZTogc3RyaW5nLFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgc3BlY1ZlcnNpb246IG51bWJlcixcbiAgICBzcGVjTmFtZTogUG9sa2Fkb3RTcGVjTmFtZVR5cGUsXG4gICAgdHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXIsXG4gICAgZXJhUGVyaW9kOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgdGlwOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBCYXNlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgc2VuZGVyLFxuICAgICAgYmxvY2tOdW1iZXIsXG4gICAgICBibG9ja0hhc2gsXG4gICAgICBnZW5lc2lzSGFzaCxcbiAgICAgIGNoYWluTmFtZSxcbiAgICAgIG5vbmNlLFxuICAgICAgc3BlY1ZlcnNpb24sXG4gICAgICBzcGVjTmFtZSxcbiAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbixcbiAgICAgIGVyYVBlcmlvZCxcbiAgICAgIHRpcCxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKHsga2V5IH06IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy5fa2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vZG90L3RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxvRUFBb0U7QUFDcEUsa0RBQXVCO0FBQ3ZCLDhEQUFxQztBQUNyQyw2Q0FBd0Q7QUFDeEQsd0NBQWlGO0FBQ2pGLDZDQUFvRjtBQVNwRixtQ0FBbUU7QUFFbkUscUNBQW9DO0FBQ3BDLDZDQUE0QztBQUM1Qyx5Q0FBOEc7QUFDOUcsa0RBQTRCO0FBRTVCO0lBQWlELHNDQUFzQjtJQWtCckUsNEJBQVksV0FBaUM7UUFBN0MsWUFDRSxrQkFBTSxXQUFXLENBQUMsU0FFbkI7UUFSRCxtRUFBbUU7UUFDbkUsMkVBQTJFO1FBQzNFLCtEQUErRDtRQUNyRCxpQkFBVyxHQUEwQixFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7UUFJbkYsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7O0lBQ25ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsbUNBQU0sR0FBTixVQUFPLEVBQXdCO1lBQXRCLE9BQU8sYUFBQTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHVDQUFVLEdBQVYsVUFBVyxLQUFpQjtRQUMxQixJQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FB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a0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBQb2xrYWRvdFNwZWNOYW1lVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlJztcbmltcG9ydCB7IERlY29kZWRTaWduZWRUeCwgRGVjb2RlZFNpZ25pbmdQYXlsb2FkLCBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUsIGdldFJlZ2lzdHJ5IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItcG9sa2Fkb3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGlzVmFsaWRFZDI1NTE5U2VlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBUcmFuc2FjdGlvblR5cGUsIEludGVyZmFjZSB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEZlZU9wdGlvbnMsXG4gIFNlcXVlbmNlSWQsXG4gIFZhbGlkaXR5V2luZG93LFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbn0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciwgSW52YWxpZEZlZUVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQ3JlYXRlQmFzZVR4SW5mbywgTWF0ZXJpYWwsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25TY2hlbWEsIFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLCBTaWduaW5nUGF5bG9hZFRyYW5zYWN0aW9uU2NoZW1hIH0gZnJvbSAnLi90eG5TY2hlbWEnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX2tleVBhaXI6IEtleVBhaXI7XG4gIHByb3RlY3RlZCBfc2VuZGVyOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF9ibG9ja051bWJlcjogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZmVyZW5jZUJsb2NrOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfbm9uY2U6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF90aXA/OiBudW1iZXI7XG4gIHByb3RlY3RlZCBfZXJhUGVyaW9kPzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3JlZ2lzdHJ5OiBUeXBlUmVnaXN0cnk7XG4gIHByb3RlY3RlZCBfbWV0aG9kPzogVHhNZXRob2Q7XG4gIHByb3RlY3RlZCBfX21hdGVyaWFsPzogTWF0ZXJpYWw7XG4gIC8vIHNpZ25hdHVyZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc2lnbiBhIHRyYW5zYWN0aW9uIHdoZW4gYnVpbGRpbmdcbiAgLy8gbm90IHRoZSBzYW1lIGFzIHRoZSBfc2lnbmF0dXJlcyBpbiB0cmFuc2FjdGlvbiB3aGljaCBpcyB0aGUgc2lnbmF0dXJlIGluXG4gIC8vIHN0cmluZyBoZXggZm9ybWF0IHVzZWQgZm9yIHZhbGlkYXRpb24gYWZ0ZXIgd2UgY2FsbCAuYnVpbGQoKVxuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZXM6IEludGVyZmFjZS5TaWduYXR1cmVbXSA9IFtdOyAvLyBvbmx5IHN1cHBvcnQgc2luZ2xlIHNpZyBmb3Igbm93XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhZGRyZXNzIG9mIHNlbmRpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gYWRkcmVzcyBUaGUgU1M1OC1lbmNvZGVkIGFkZHJlc3MuXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKi9cbiAgc2VuZGVyKHsgYWRkcmVzcyB9OiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzcyB9KTtcbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNlbmRlcihhZGRyZXNzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbm9uY2UgZm9yIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBub25jZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIHNlcXVlbmNlSWQobm9uY2U6IFNlcXVlbmNlSWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBCaWdOdW1iZXIobm9uY2UudmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fbm9uY2UgPSB2YWx1ZS50b051bWJlcigpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aXAgdG8gaW5jcmVhc2UgdHJhbnNhY3Rpb24gcHJpb3JpdHkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBbZmVlLnR5cGVdIG9wdGlvbnMgZm9yIGJ1aWxkaW5nIGZlZSB0eFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC10cmFuc2FjdGlvbi1jb25zdHJ1Y3Rpb25cbiAgICovXG4gIGZlZShmZWU6IEZlZU9wdGlvbnMpOiB0aGlzIHtcbiAgICBpZiAoZmVlLnR5cGUgIT09ICd0aXAnKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEZlZUVycm9yKGZlZS50eXBlLCAndGlwJyk7XG4gICAgfVxuICAgIGNvbnN0IHRpcEJOID0gbmV3IEJpZ051bWJlcihmZWUuYW1vdW50KTtcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWUodGlwQk4pO1xuICAgIHRoaXMuX3RpcCA9IHRpcEJOLnRvTnVtYmVyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aGUgY2hlY2twb2ludCBibG9jayBhZnRlciB3aGljaCB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICpcbiAgICogQHBhcmFtIHtWYWxpZGl0eVdpbmRvd30gZmlyc3RWYWxpZCBibG9jayBjaGVja3BvaW50IHdoZXJlIHRyYW5zYWN0aW9uIGlzIGZpcnN0IHZhbGlkXG4gICAqIEBwYXJhbSB7VmFsaWRpdHlXaW5kb3d9IG1heER1cmF0aW9uIG51bWJlciBvZiBibG9ja3MgYWZ0ZXIgY2hlY2twb2ludCBmb3Igd2hpY2ggdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICB2YWxpZGl0eSh7IGZpcnN0VmFsaWQsIG1heER1cmF0aW9uIH06IFZhbGlkaXR5V2luZG93KTogdGhpcyB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKGZpcnN0VmFsaWQpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcihmaXJzdFZhbGlkKSk7XG4gICAgICB0aGlzLl9ibG9ja051bWJlciA9IGZpcnN0VmFsaWQ7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChtYXhEdXJhdGlvbikpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKG1heER1cmF0aW9uKSk7XG4gICAgICB0aGlzLl9lcmFQZXJpb2QgPSBtYXhEdXJhdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhhc2ggb2YgdGhlIGNoZWNrcG9pbnQgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByZWZlcmVuY2VCbG9jayBibG9jayBoYXNoIGNoZWNrcG9pbnQgZnJvbSB3aGVyZSB0aGUgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly93aWtpLnBvbGthZG90Lm5ldHdvcmsvZG9jcy9idWlsZC1wcm90b2NvbC1pbmZvI3RyYW5zYWN0aW9uLW1vcnRhbGl0eVxuICAgKi9cbiAgcmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2s6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuX3JlZmVyZW5jZUJsb2NrID0gcmVmZXJlbmNlQmxvY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgdHJhbnNhY3Rpb24gZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdHJhbnNhY3Rpb25WZXJzaW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2J1aWxkLXRyYW5zYWN0aW9uLWNvbnN0cnVjdGlvblxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIHdhcyBhZGRlZCBpbiBtYXRlcmlhbCBkYXRhLlxuICAgKi9cbiAgdmVyc2lvbih0cmFuc2FjdGlvblZlcnNpb246IG51bWJlcik6IHRoaXMge1xuICAgIC8vIHRoaXMuX3RyYW5zYWN0aW9uVmVyc2lvbiA9IHRyYW5zYWN0aW9uVmVyc2lvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgbWV0aG9kKG1ldGhvZDogVHhNZXRob2QpOiB0aGlzIHtcbiAgICB0aGlzLl9tZXRob2QgPSBtZXRob2Q7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1hdGVyaWFsIGRhdGEgZm9yIHRoZSBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIHtNYXRlcmlhbH0gbWF0ZXJpYWxcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd2lraS5wb2xrYWRvdC5uZXR3b3JrL2RvY3MvYnVpbGQtdHJhbnNhY3Rpb24tY29uc3RydWN0aW9uXG4gICAqL1xuICBtYXRlcmlhbChtYXRlcmlhbDogTWF0ZXJpYWwpOiB0aGlzIHtcbiAgICB0aGlzLl9fbWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLl9yZWdpc3RyeSA9IGdldFJlZ2lzdHJ5KHtcbiAgICAgIGNoYWluTmFtZTogbWF0ZXJpYWwuY2hhaW5OYW1lLFxuICAgICAgc3BlY05hbWU6IG1hdGVyaWFsLnNwZWNOYW1lLFxuICAgICAgc3BlY1ZlcnNpb246IG1hdGVyaWFsLnNwZWNWZXJzaW9uLFxuICAgICAgbWV0YWRhdGFScGM6IG1hdGVyaWFsLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBfbWF0ZXJpYWwoKTogTWF0ZXJpYWwge1xuICAgIGlmICghdGhpcy5fX21hdGVyaWFsKSB7XG4gICAgICBjb25zdCBtID0gdXRpbHMuZ2V0TWF0ZXJpYWwodGhpcy5fY29pbkNvbmZpZyk7XG4gICAgICB0aGlzLm1hdGVyaWFsKG0pO1xuICAgICAgcmV0dXJuIG07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9fbWF0ZXJpYWw7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgZGVjb2RlZFR4biA9IGRlY29kZShyYXdUcmFuc2FjdGlvbiwge1xuICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgcmVnaXN0cnk6IHRoaXMuX3JlZ2lzdHJ5LFxuICAgIH0pIGFzIERlY29kZWRTaWduaW5nUGF5bG9hZCB8IERlY29kZWRTaWduZWRUeDtcbiAgICBpZiAodXRpbHMuaXNTaWduaW5nUGF5bG9hZChkZWNvZGVkVHhuKSkge1xuICAgICAgdGhpcy5yZWZlcmVuY2VCbG9jayhkZWNvZGVkVHhuLmJsb2NrSGFzaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VuZGVyKHsgYWRkcmVzczogdXRpbHMuZGVjb2RlRG90QWRkcmVzcyhkZWNvZGVkVHhuLmFkZHJlc3MpIH0pO1xuICAgICAgY29uc3QgZWRTaWduYXR1cmUgPSB1dGlscy5yZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHJhd1RyYW5zYWN0aW9uLCB7IHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSB9KTtcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25hdHVyZS5wdXNoKGVkU2lnbmF0dXJlKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGl0eSh7IG1heER1cmF0aW9uOiBkZWNvZGVkVHhuLmVyYVBlcmlvZCB9KTtcbiAgICB0aGlzLnNlcXVlbmNlSWQoe1xuICAgICAgbmFtZTogJ05vbmNlJyxcbiAgICAgIGtleXdvcmQ6ICdub25jZScsXG4gICAgICB2YWx1ZTogZGVjb2RlZFR4bi5ub25jZSxcbiAgICB9KTtcbiAgICBpZiAoZGVjb2RlZFR4bi50aXApIHtcbiAgICAgIHRoaXMuZmVlKHsgYW1vdW50OiBgJHtkZWNvZGVkVHhuLnRpcH1gLCB0eXBlOiAndGlwJyB9KTtcbiAgICB9XG4gICAgdGhpcy5tZXRob2QoZGVjb2RlZFR4bi5tZXRob2QgYXMgdW5rbm93biBhcyBUeE1ldGhvZCk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uKHRoaXMuYnVpbGRUcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWdpc3RyeSh0aGlzLl9yZWdpc3RyeSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5jaGFpbk5hbWUodGhpcy5fbWF0ZXJpYWwuY2hhaW5OYW1lKTtcbiAgICBpZiAodGhpcy5fa2V5UGFpcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX2tleVBhaXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gaWYgd2UgaGF2ZSBhIHNpZ25hdHVyZSwgYXBwbHkgdGhhdCBhbmQgdXBkYXRlIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLmNvbnN0cnVjdFNpZ25lZFBheWxvYWQodGhpcy5fc2lnbmF0dXJlc1swXS5zaWduYXR1cmUpO1xuICAgIH1cbiAgICB0aGlzLl90cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUJhc2VUeEluZm8oKTogQ3JlYXRlQmFzZVR4SW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VUeEluZm86IHtcbiAgICAgICAgYWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICBibG9ja0hhc2g6IHRoaXMuX3JlZmVyZW5jZUJsb2NrLFxuICAgICAgICBibG9ja051bWJlcjogdGhpcy5fcmVnaXN0cnkuY3JlYXRlVHlwZSgnQmxvY2tOdW1iZXInLCB0aGlzLl9ibG9ja051bWJlcikudG9OdW1iZXIoKSxcbiAgICAgICAgZXJhUGVyaW9kOiB0aGlzLl9lcmFQZXJpb2QsXG4gICAgICAgIGdlbmVzaXNIYXNoOiB0aGlzLl9tYXRlcmlhbC5nZW5lc2lzSGFzaCxcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgICBzcGVjVmVyc2lvbjogdGhpcy5fbWF0ZXJpYWwuc3BlY1ZlcnNpb24sXG4gICAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogdGhpcy5fbWF0ZXJpYWwudHhWZXJzaW9uLFxuICAgICAgICBub25jZTogdGhpcy5fbm9uY2UsXG4gICAgICAgIHRpcDogdGhpcy5fdGlwLFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbWV0YWRhdGFScGM6IHRoaXMuX21hdGVyaWFsLm1ldGFkYXRhLFxuICAgICAgICByZWdpc3RyeTogdGhpcy5fcmVnaXN0cnksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBidWlsZGVyIGludGVybmFsbHlcbiAgICogdXNpbmcgdGhlIEBzdWJzdHJhdGUvdHh3cmFwcGVyIGJ1aWxkZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYnVpbGRUcmFuc2FjdGlvbigpOiBVbnNpZ25lZFRyYW5zYWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNhY3Rpb24gdHlwZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZTtcblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQWRkcmVzc1ZhbGlkYXRpb25FcnJvcihhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleSh7IGtleSB9OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgbGV0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzO1xuICAgIGNvbnN0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUhleCA9IGlzVmFsaWRFZDI1NTE5U2VlZChrZXkpO1xuICAgIGNvbnN0IGlzVmFsaWRQcml2YXRlS2V5RnJvbUJhc2U2NCA9IGlzVmFsaWRFZDI1NTE5U2VlZChCdWZmZXIuZnJvbShrZXksICdiYXNlNjQnKS50b1N0cmluZygnaGV4JykpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkU2VlZCA9IHV0aWxzLmRlY29kZVNlZWQoa2V5KTtcbiAgICAgIGlzVmFsaWRQcml2YXRlS2V5RnJvbUJ5dGVzID0gaXNWYWxpZEVkMjU1MTlTZWVkKEJ1ZmZlci5mcm9tKGRlY29kZWRTZWVkLnNlZWQpLnRvU3RyaW5nKCdoZXgnKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpc1ZhbGlkUHJpdmF0ZUtleUZyb21CeXRlcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZFByaXZhdGVLZXlGcm9tQnl0ZXMgJiYgIWlzVmFsaWRQcml2YXRlS2V5RnJvbUhleCAmJiAhaXNWYWxpZFByaXZhdGVLZXlGcm9tQmFzZTY0KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBLZXkgdmFsaWRhdGlvbiBmYWlsZWRgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBidWlsZGVyIGludGVybmFsbHlcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCB2YWxpZGF0ZURlY29kZWRUcmFuc2FjdGlvbihcbiAgICBkZWNvZGVkVHhuOiBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHgsXG4gICAgcmF3VHJhbnNhY3Rpb24/OiBzdHJpbmcsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGRlY29kZWRUeG4gPSBkZWNvZGUocmF3VHJhbnNhY3Rpb24sIHtcbiAgICAgIG1ldGFkYXRhUnBjOiB0aGlzLl9tYXRlcmlhbC5tZXRhZGF0YSxcbiAgICAgIHJlZ2lzdHJ5OiB0aGlzLl9yZWdpc3RyeSxcbiAgICB9KSBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQgfCBEZWNvZGVkU2lnbmVkVHg7XG5cbiAgICBjb25zdCBlcmFQZXJpb2QgPSBkZWNvZGVkVHhuLmVyYVBlcmlvZDtcbiAgICBjb25zdCBub25jZSA9IGRlY29kZWRUeG4ubm9uY2U7XG4gICAgY29uc3QgdGlwID0gZGVjb2RlZFR4bi50aXA7XG5cbiAgICBpZiAodXRpbHMuaXNTaWduaW5nUGF5bG9hZChkZWNvZGVkVHhuKSkge1xuICAgICAgY29uc3QgYmxvY2tIYXNoID0gZGVjb2RlZFR4bi5ibG9ja0hhc2g7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gU2lnbmluZ1BheWxvYWRUcmFuc2FjdGlvblNjaGVtYS52YWxpZGF0ZSh7XG4gICAgICAgIGVyYVBlcmlvZCxcbiAgICAgICAgYmxvY2tIYXNoLFxuICAgICAgICBub25jZSxcbiAgICAgICAgdGlwLFxuICAgICAgfSk7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VuZGVyID0gZGVjb2RlZFR4bi5hZGRyZXNzO1xuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IFNpZ25lZFRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgICAgc2VuZGVyLFxuICAgICAgICBub25jZSxcbiAgICAgICAgZXJhUGVyaW9kLFxuICAgICAgICB0aXAsXG4gICAgICB9KTtcbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgVHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQ6ICR7dmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVEZWNvZGVkVHJhbnNhY3Rpb24oZGVjb2RlZFR4biwgcmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24oXzogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlQmFzZUZpZWxkcyhcbiAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgIHRoaXMuX2Jsb2NrTnVtYmVyLFxuICAgICAgdGhpcy5fcmVmZXJlbmNlQmxvY2ssXG4gICAgICB0aGlzLl9tYXRlcmlhbC5nZW5lc2lzSGFzaCxcbiAgICAgIHRoaXMuX21hdGVyaWFsLmNoYWluTmFtZSxcbiAgICAgIHRoaXMuX25vbmNlLFxuICAgICAgdGhpcy5fbWF0ZXJpYWwuc3BlY1ZlcnNpb24sXG4gICAgICB0aGlzLl9tYXRlcmlhbC5zcGVjTmFtZSxcbiAgICAgIHRoaXMuX21hdGVyaWFsLnR4VmVyc2lvbixcbiAgICAgIHRoaXMuX2VyYVBlcmlvZCxcbiAgICAgIHRoaXMuX3RpcCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJhc2VGaWVsZHMoXG4gICAgc2VuZGVyOiBzdHJpbmcsXG4gICAgYmxvY2tOdW1iZXI6IG51bWJlcixcbiAgICBibG9ja0hhc2g6IHN0cmluZyxcbiAgICBnZW5lc2lzSGFzaDogc3RyaW5nLFxuICAgIGNoYWluTmFtZTogc3RyaW5nLFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgc3BlY1ZlcnNpb246IG51bWJlcixcbiAgICBzcGVjTmFtZTogUG9sa2Fkb3RTcGVjTmFtZVR5cGUsXG4gICAgdHJhbnNhY3Rpb25WZXJzaW9uOiBudW1iZXIsXG4gICAgZXJhUGVyaW9kOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgdGlwOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBCYXNlVHJhbnNhY3Rpb25TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgc2VuZGVyLFxuICAgICAgYmxvY2tOdW1iZXIsXG4gICAgICBibG9ja0hhc2gsXG4gICAgICBnZW5lc2lzSGFzaCxcbiAgICAgIGNoYWluTmFtZSxcbiAgICAgIG5vbmNlLFxuICAgICAgc3BlY1ZlcnNpb24sXG4gICAgICBzcGVjTmFtZSxcbiAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbixcbiAgICAgIGVyYVBlcmlvZCxcbiAgICAgIHRpcCxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTGVzc1RoYW4oMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1ZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVuZHJlZ2lvblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYWRkU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goeyBwdWJsaWNLZXksIHNpZ25hdHVyZSB9KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKHsga2V5IH06IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhpcy5fa2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBrZXkgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
@@ -100,7 +100,6 @@ export declare class Utils implements BaseUtils {
100
100
  isSigningPayload(payload: DecodedSigningPayload | DecodedSignedTx): payload is DecodedSigningPayload;
101
101
  isProxyTransfer(arg: TxMethod['args']): arg is ProxyArgs;
102
102
  isTransfer(arg: TxMethod['args']): arg is TransferArgs;
103
- checkValidHex(str: string): asserts str is HexString;
104
103
  /**
105
104
  * extracts and returns the signature in hex format given a raw signed transaction
106
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAG3G,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAiB,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAc,MAAM,gBAAgB,CAAC;AAIpE,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK5C;;;;;;;OAOG;IACH,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAOnF,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B;;;;;OAKG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;OAMG;IACH,gBAAgB,CACd,EAAE,EAAE,MAAM,GAAG,mBAAmB,EAChC,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GACvD,YAAY;IAwBf;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAQ1C;;;;;;;;;OASG;IACH,cAAc,CACZ,IAAI,EAAE,WAAW,EACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,mBAAmB,EAChC,OAAO,EAAE;QAAE,WAAW,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,GAC1D,MAAM;IAkBT;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9D;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9D;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ;IAcvD,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,eAAe,GAAG,OAAO,IAAI,qBAAqB;IAIpG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,SAAS;IAIxD,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY;IAItD;;;;;OAKG;IACH,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,MAAM;CAatF;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -212,11 +212,6 @@ var Utils = /** @class */ (function () {
212
212
  var _a;
213
213
  return ((_a = arg.dest) === null || _a === void 0 ? void 0 : _a.id) !== undefined && arg.value !== undefined;
214
214
  };
215
- Utils.prototype.checkValidHex = function (str) {
216
- if (!str.startsWith("0x")) {
217
- throw new Error("This is not in correct format of hex string: " + str);
218
- }
219
- };
220
215
  /**
221
216
  * extracts and returns the signature in hex format given a raw signed transaction
222
217
  *
@@ -240,4 +235,4 @@ var Utils = /** @class */ (function () {
240
235
  exports.Utils = Utils;
241
236
  var utils = new Utils();
242
237
  exports.default = utils;
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQTBFO0FBQzFFLHdEQUEyRDtBQUUzRCxvRUFBMkU7QUFDM0UsdUNBQXFFO0FBQ3JFLHFEQUFzRTtBQUN0RSw2Q0FBNkQ7QUFHN0Qsb0VBQTBFO0FBQzFFLHdEQUErQjtBQUMvQixzQkFBNEI7QUFJNUIsd0RBQTZCO0FBRTdCLHlDQUEyRztBQUUzRyxJQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQjtJQUFBO0lBb1BBLENBQUM7SUFuUEMsa0JBQWtCO0lBQ2xCLDhCQUFjLEdBQWQsVUFBZSxPQUFlO1FBQzVCLElBQUk7WUFDRix1QkFBYSxDQUFDLFlBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLElBQVk7UUFDekIsT0FBTyxZQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUNBQWlCLEdBQWpCLFVBQWtCLEdBQVc7UUFDM0IsSUFBSTtZQUNGLElBQU0sVUFBVSxHQUFHLGVBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLEtBQUssbUJBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztTQUM1RDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFF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cG9ydCB7IGRlY29kZUFkZHJlc3MsIGVuY29kZUFkZHJlc3MsIEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBkZWNvZGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpci9kZWNvZGUnO1xuaW1wb3J0IHsgS2V5cmluZ1BhaXIgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZy90eXBlcyc7XG5pbXBvcnQgeyBFWFRSSU5TSUNfVkVSU0lPTiB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcy9leHRyaW5zaWMvdjQvRXh0cmluc2ljJztcbmltcG9ydCB7IGhleFRvVThhLCBpc0hleCwgdThhVG9IZXgsIHU4YVRvVThhIH0gZnJvbSAnQHBvbGthZG90L3V0aWwnO1xuaW1wb3J0IHsgYmFzZTY0RGVjb2RlLCBzaWduYXR1cmVWZXJpZnkgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbC1jcnlwdG8nO1xuaW1wb3J0IHsgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi91dGlscy9jcnlwdG8nO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFR5cGVSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUvbGliL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdCwgY3JlYXRlTWV0YWRhdGEgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBCYXNlVXRpbHMgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBTZWVkIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgSGV4U3RyaW5nLCBNYXRlcmlhbCwgUHJveHlBcmdzLCBQcm94eUNhbGxBcmdzLCBUcmFuc2ZlckFyZ3MsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgRG90TmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVR5cGVVbnNhZmUsIEdlbmVyaWNDYWxsLCBHZW5lcmljRXh0cmluc2ljLCBHZW5lcmljRXh0cmluc2ljUGF5bG9hZCB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcyc7XG5cbmNvbnN0IFBST1hZX01FVEhPRF9BUkcgPSAyO1xuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBlbmNvZGVBZGRyZXNzKGlzSGV4KGFkZHJlc3MpID8gaGV4VG9VOGEoYWRkcmVzcykgOiBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleChoYXNoLCAyNTYpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWRQcnYgPSBoZXhUb1U4YShrZXkpO1xuICAgICAgcmV0dXJuIGRlY29kZWRQcnYubGVuZ3RoID09PSBuYWNsLnNpZ24uc2VjcmV0S2V5TGVuZ3RoIC8gMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlVThhID0gdThhVG9VOGEoc2lnbmF0dXJlKTtcbiAgICByZXR1cm4gWzY0LCA2NSwgNjZdLmluY2x1ZGVzKHNpZ25hdHVyZVU4YS5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgb24gYSBnaXZlbiBtZXNzYWdlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRNZXNzYWdlIHRoZSBzaWduZWQgbWVzc2FnZSBmb3IgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHdoZXRoZXIgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCBvciBub3RcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShzaWduZWRNZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIGNvbnN0IGhleFB1YmxpY0tleSA9IHU4YVRvSGV4KHB1YmxpY0tleSk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmVyaWZ5KHNpZ25lZE1lc3NhZ2UsIHNpZ25hdHVyZSwgaGV4UHVibGljS2V5KS5pc1ZhbGlkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleCh0eElkLCAyNTYpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVNlZWQgZGVjb2RlcyBhIGRvdCBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gdGhlIHNlZWQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKiBAcmV0dXJucyB7U2VlZH0gLSB0aGUgb2JqZWN0IFNlZWRcbiAgICovXG4gIGRlY29kZVNlZWQoc2VlZDogc3RyaW5nKTogU2VlZCB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogQnVmZmVyLmZyb20oZGVjb2RlZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVjb2RlIHRoZSBpbnRlcm5hbCBtZXRob2QgaGV4IGluIGNhc2Ugb2YgYSBwcm94eSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFVuc2lnbmVkVHJhbnNhY3Rpb259IHR4XG4gICAqIEBwYXJhbSB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckFyZ3N9XG4gICAqL1xuICBkZWNvZGVDYWxsTWV0aG9kKFxuICAgIHR4OiBzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIG9wdGlvbnM6IHsgbWV0YWRhdGFScGM6IHN0cmluZzsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9LFxuICApOiBUcmFuc2ZlckFyZ3Mge1xuICAgIGNvbnN0IHsgbWV0YWRhdGFScGMsIHJlZ2lzdHJ5IH0gPSBvcHRpb25zO1xuICAgIHJlZ2lzdHJ5LnNldE1ldGFkYXRhKGNyZWF0ZU1ldGFkYXRhKHJlZ2lzdHJ5LCBtZXRhZGF0YVJwYykpO1xuICAgIGxldCBtZXRob2RDYWxsOiBHZW5lcmljQ2FsbCB8IEdlbmVyaWNFeHRyaW5zaWM7XG4gICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IEdlbmVyaWNFeHRyaW5zaWNQYXlsb2FkID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0V4dHJpbnNpY1BheWxvYWQnLCBbXG4gICAgICAgICAgdHgsXG4gICAgICAgICAgeyB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTiB9LFxuICAgICAgICBdKTtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IGNyZWF0ZVR5cGVVbnNhZmUocmVnaXN0cnksICdDYWxsJywgW3BheWxvYWQubWV0aG9kXSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdFeHRyaW5zaWMnLCBoZXhUb1U4YSh0eCksIHtcbiAgICAgICAgICBpc1NpZ25lZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdDYWxsJywgdHgubWV0aG9kKTtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gbWV0aG9kQ2FsbC5hcmdzW1BST1hZX01FVEhPRF9BUkddO1xuICAgIGNvbnN0IGRlY29kZWRBcmdzID0gbWV0aG9kLnRvSlNPTigpIGFzIHVua25vd24gYXMgUHJveHlDYWxsQXJncztcbiAgICByZXR1cm4gZGVjb2RlZEFyZ3MuYXJncztcbiAgfVxuXG4gIC8qKlxuICAgKiBrZXlQYWlyRnJvbVNlZWQgZ2VuZXJhdGVzIGFuIG9iamVjdCB3aXRoIHNlY3JldEtleSBhbmQgcHVibGljS2V5IHVzaW5nIHRoZSBwb2xrYWRvdCBzZGtcbiAgICogQHBhcmFtIHNlZWQgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIGtleVBhaXJGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogS2V5UGFpciB7XG4gICAgY29uc3Qga2V5cmluZyA9IG5ldyBLZXlyaW5nKHsgdHlwZTogJ2VkMjU1MTknIH0pO1xuICAgIGNvbnN0IGtleXJpbmdQYWlyID0ga2V5cmluZy5hZGRGcm9tU2VlZChzZWVkKTtcbiAgICBjb25zdCBwYWlySnNvbiA9IGtleXJpbmdQYWlyLnRvSnNvbigpO1xuICAgIGNvbnN0IGRlY29kZWRLZXlQYWlyID0gZGVjb2RlUGFpcignJywgYmFzZTY0RGVjb2RlKHBhaXJKc29uLmVuY29kZWQpLCBwYWlySnNvbi5lbmNvZGluZy50eXBlKTtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwcnY6IEJ1ZmZlci5mcm9tKGRlY29kZWRLZXlQYWlyLnNlY3JldEtleSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25pbmcgZnVuY3Rpb24uIEltcGxlbWVudCB0aGlzIG9uIHRoZSBPRkZMSU5FIHNpZ25pbmcgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleXJpbmdQYWlyfSBwYWlyIC0gVGhlIHNpZ25pbmcgcGFpci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25pbmdQYXlsb2FkIC0gUGF5bG9hZCB0byBzaWduLlxuICAgKiBAcGFyYW0ge1Vuc2lnbmVkVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIC0gcmF3IHRyYW5zYWN0aW9uIHRvIHNpZ25cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtIZXhTdHJpbmd9IG9wdGlvbnMubWV0YWRhdGFScGMgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICogQHBhcmFtIHtUeXBlUmVnaXN0cnl9IG9wdGlvbnMucmVnaXN0cnkgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICovXG4gIGNyZWF0ZVNpZ25lZFR4KFxuICAgIHBhaXI6IEtleXJpbmdQYWlyLFxuICAgIHNpZ25pbmdQYXlsb2FkOiBzdHJpbmcsXG4gICAgdHJhbnNhY3Rpb246IFVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgb3B0aW9uczogeyBtZXRhZGF0YVJwYzogSGV4U3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSwgbWV0YWRhdGFScGMgfSA9IG9wdGlvbnM7XG4gICAgLy8gSW1wb3J0YW50ISBUaGUgcmVnaXN0cnkgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIGxhdGVzdCBtZXRhZGF0YSwgc28gbWFrZVxuICAgIC8vIHN1cmUgdG8gcnVuIGByZWdpc3RyeS5zZXRNZXRhZGF0YShtZXRhZGF0YSlgIGJlZm9yZSBzaWduaW5nLlxuICAgIHJlZ2lzdHJ5LnNldE1ldGFkYXRhKGNyZWF0ZU1ldGFkYXRhKHJlZ2lzdHJ5LCBtZXRhZGF0YVJwYykpO1xuICAgIGNvbnN0IHsgc2lnbmF0dXJlIH0gPSByZWdpc3RyeVxuICAgICAgLmNyZWF0ZVR5cGUoJ0V4dHJpbnNpY1BheWxvYWQnLCBzaWduaW5nUGF5bG9hZCwge1xuICAgICAgICB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTixcbiAgICAgIH0pXG4gICAgICAuc2lnbihwYWlyKTtcblxuICAgIC8vIFNlcmlhbGl6ZSBhIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICByZXR1cm4gY29uc3RydWN0LnNpZ25lZFR4KHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIHtcbiAgICAgIG1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGRlY29kZURvdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoYWRkcmVzcywgdW5kZWZpbmVkLCBzczU4Rm9ybWF0KSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICAgIHJldHVybiBrZXlwYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5jb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVBZGRyZXNzKGFkZHJlc3MsIHNzNThGb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdHhIYXNoIG9mIGEgc2lnbmVkIHR4SGV4XG4gICAqXG4gICAqIEBwYXJhbSB0eEhleCBzaWduZWQgdHJhbnNhY3Rpb24gaGV4XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXRUeEhhc2godHhIZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdC50eEhhc2godHhIZXgpO1xuICB9XG5cbiAgZ2V0TWF0ZXJpYWwoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pOiBNYXRlcmlhbCB7XG4gICAgY29uc3QgbmV0d29ya0NvbmZpZyA9IGNvaW5Db25maWcubmV0d29yayBhcyBEb3ROZXR3b3JrO1xuICAgIGNvbnN0IHsgc3BlY05hbWUsIHNwZWNWZXJzaW9uLCBjaGFpbk5hbWUsIHR4VmVyc2lvbiwgZ2VuZXNpc0hhc2ggfSA9IG5ldHdvcmtDb25maWc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BlY05hbWUsXG4gICAgICBzcGVjVmVyc2lvbixcbiAgICAgIGNoYWluTmFtZSxcbiAgICAgIG1ldGFkYXRhOiBuZXR3b3JrQ29uZmlnLm1ldGFkYXRhUnBjLFxuICAgICAgdHhWZXJzaW9uLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgfSBhcyBNYXRlcmlhbDtcbiAgfVxuXG4gIGlzU2lnbmluZ1BheWxvYWQocGF5bG9hZDogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogcGF5bG9hZCBpcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQge1xuICAgIHJldHVybiAocGF5bG9hZCBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQpLmJsb2NrSGFzaCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNQcm94eVRyYW5zZmVyKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBQcm94eUFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFByb3h5QXJncykucmVhbCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNUcmFuc2Zlcihhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgVHJhbnNmZXJBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLmRlc3Q/LmlkICE9PSB1bmRlZmluZWQgJiYgKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBjaGVja1ZhbGlkSGV4KHN0cjogc3RyaW5nKTogYXNzZXJ0cyBzdHIgaXMgSGV4U3RyaW5nIHtcbiAgICBpZiAoIXN0ci5zdGFydHNXaXRoKGAweGApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoaXMgaXMgbm90IGluIGNvcnJlY3QgZm9ybWF0IG9mIGhleCBzdHJpbmc6ICR7c3RyfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBhbmQgcmV0dXJucyB0aGUgc2lnbmF0dXJlIGluIGhleCBmb3JtYXQgZ2l2ZW4gYSByYXcgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUeCBzaWduZWQgcmF3IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIHJlZ2lzdHJ5IGRvdCByZWdpc3RyeSB1c2VkIHRvIHJldHJpZXZlIHRoZSBzaWduYXR1cmVcbiAgICovXG4gIHJlY292ZXJTaWduYXR1cmVGcm9tUmF3VHgocmF3VHg6IHN0cmluZywgb3B0aW9uczogeyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgcmVnaXN0cnkgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgbWV0aG9kQ2FsbCA9IHJlZ2lzdHJ5LmNyZWF0ZVR5cGUoJ0V4dHJpbnNpYycsIHJhd1R4LCB7XG4gICAgICBpc1NpZ25lZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBsZXQgc2lnbmF0dXJlID0gdThhVG9IZXgobWV0aG9kQ2FsbC5zaWduYXR1cmUpIGFzIHN0cmluZztcblxuICAgIC8vIHJlbW92ZSAweCBmcm9tIHRoZSBzaWduYXR1cmUgc2luY2UgdGhpcyBpcyBob3cgaXQncyByZXR1cm5lZCBmcm9tIFRTUyBzaWduaW5nXG4gICAgaWYgKHNpZ25hdHVyZS5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmUuc3Vic3RyKDIpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmF0dXJlO1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkNBQTBFO0FBQzFFLHdEQUEyRDtBQUUzRCxvRUFBMkU7QUFDM0UsdUNBQXFFO0FBQ3JFLHFEQUFzRTtBQUN0RSw2Q0FBNkQ7QUFHN0Qsb0VBQTBFO0FBQzFFLHdEQUErQjtBQUMvQixzQkFBNEI7QUFJNUIsd0RBQTZCO0FBRTdCLHlDQUEyRztBQUUzRyxJQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQjtJQUFBO0lBOE9BLENBQUM7SUE3T0Msa0JBQWtCO0lBQ2xCLDhCQUFjLEdBQWQsVUFBZSxPQUFlO1FBQzVCLElBQUk7WUFDRix1QkFBYSxDQUFDLFlBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLElBQVk7UUFDekIsT0FBTyxZQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUNBQWlCLEdBQWpCLFVBQWtCLEdBQVc7UUFDM0IsSUFBSTtZQUNGLElBQU0sVUFBVSxHQUFHLGVBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxPQUFPLFVBQVUsQ0FBQyxNQUFNLEtBQUssbUJBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztTQUM1RDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFF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S0FBSyxTQUFTLENBQUM7SUFDcEUsQ0FBQztJQUVELCtCQUFlLEdBQWYsVUFBZ0IsR0FBcUI7UUFDbkMsT0FBUSxHQUFpQixDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVELDBCQUFVLEdBQVYsVUFBVyxHQUFxQjs7UUFDOUIsT0FBTyxDQUFBLE1BQUMsR0FBb0IsQ0FBQyxJQUFJLDBDQUFFLEVBQUUsTUFBSyxTQUFTLElBQUssR0FBb0IsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlDQUF5QixHQUF6QixVQUEwQixLQUFhLEVBQUUsT0FBbUM7UUFDbEUsSUFBQSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBQ3pELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxTQUFTLEdBQUcsZUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQVcsQ0FBQztRQUV6RCxnRkFBZ0Y7UUFDaEYsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNILFlBQUM7QUFBRCxDQUFDLEFBOU9ELElBOE9DO0FBOU9ZLHNCQUFLO0FBZ1BsQixJQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlY29kZUFkZHJlc3MsIGVuY29kZUFkZHJlc3MsIEtleXJpbmcgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZyc7XG5pbXBvcnQgeyBkZWNvZGVQYWlyIH0gZnJvbSAnQHBvbGthZG90L2tleXJpbmcvcGFpci9kZWNvZGUnO1xuaW1wb3J0IHsgS2V5cmluZ1BhaXIgfSBmcm9tICdAcG9sa2Fkb3Qva2V5cmluZy90eXBlcyc7XG5pbXBvcnQgeyBFWFRSSU5TSUNfVkVSU0lPTiB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcy9leHRyaW5zaWMvdjQvRXh0cmluc2ljJztcbmltcG9ydCB7IGhleFRvVThhLCBpc0hleCwgdThhVG9IZXgsIHU4YVRvVThhIH0gZnJvbSAnQHBvbGthZG90L3V0aWwnO1xuaW1wb3J0IHsgYmFzZTY0RGVjb2RlLCBzaWduYXR1cmVWZXJpZnkgfSBmcm9tICdAcG9sa2Fkb3QvdXRpbC1jcnlwdG8nO1xuaW1wb3J0IHsgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi91dGlscy9jcnlwdG8nO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUnO1xuaW1wb3J0IHsgRGVjb2RlZFNpZ25lZFR4LCBEZWNvZGVkU2lnbmluZ1BheWxvYWQsIFR5cGVSZWdpc3RyeSB9IGZyb20gJ0BzdWJzdHJhdGUvdHh3cmFwcGVyLWNvcmUvbGliL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdCwgY3JlYXRlTWV0YWRhdGEgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1wb2xrYWRvdCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBCYXNlVXRpbHMgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBTZWVkIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IHsgSGV4U3RyaW5nLCBNYXRlcmlhbCwgUHJveHlBcmdzLCBQcm94eUNhbGxBcmdzLCBUcmFuc2ZlckFyZ3MsIFR4TWV0aG9kIH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZywgRG90TmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGNyZWF0ZVR5cGVVbnNhZmUsIEdlbmVyaWNDYWxsLCBHZW5lcmljRXh0cmluc2ljLCBHZW5lcmljRXh0cmluc2ljUGF5bG9hZCB9IGZyb20gJ0Bwb2xrYWRvdC90eXBlcyc7XG5cbmNvbnN0IFBST1hZX01FVEhPRF9BUkcgPSAyO1xuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBlbmNvZGVBZGRyZXNzKGlzSGV4KGFkZHJlc3MpID8gaGV4VG9VOGEoYWRkcmVzcykgOiBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleChoYXNoLCAyNTYpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWRQcnYgPSBoZXhUb1U4YShrZXkpO1xuICAgICAgcmV0dXJuIGRlY29kZWRQcnYubGVuZ3RoID09PSBuYWNsLnNpZ24uc2VjcmV0S2V5TGVuZ3RoIC8gMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlVThhID0gdThhVG9VOGEoc2lnbmF0dXJlKTtcbiAgICByZXR1cm4gWzY0LCA2NSwgNjZdLmluY2x1ZGVzKHNpZ25hdHVyZVU4YS5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgb24gYSBnaXZlbiBtZXNzYWdlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRNZXNzYWdlIHRoZSBzaWduZWQgbWVzc2FnZSBmb3IgdGhlIHNpZ25hdHVyZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIHRoZSBhZGRyZXNzIG9mIHRoZSBzaWduZXJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHdoZXRoZXIgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCBvciBub3RcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShzaWduZWRNZXNzYWdlOiBzdHJpbmcsIHNpZ25hdHVyZTogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBkZWNvZGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIGNvbnN0IGhleFB1YmxpY0tleSA9IHU4YVRvSGV4KHB1YmxpY0tleSk7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlVmVyaWZ5KHNpZ25lZE1lc3NhZ2UsIHNpZ25hdHVyZSwgaGV4UHVibGljS2V5KS5pc1ZhbGlkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0hleCh0eElkLCAyNTYpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlY29kZVNlZWQgZGVjb2RlcyBhIGRvdCBzZWVkXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gdGhlIHNlZWQgdG8gYmUgdmFsaWRhdGVkLlxuICAgKiBAcmV0dXJucyB7U2VlZH0gLSB0aGUgb2JqZWN0IFNlZWRcbiAgICovXG4gIGRlY29kZVNlZWQoc2VlZDogc3RyaW5nKTogU2VlZCB7XG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VlZDogQnVmZmVyLmZyb20oZGVjb2RlZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbC5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVjb2RlIHRoZSBpbnRlcm5hbCBtZXRob2QgaGV4IGluIGNhc2Ugb2YgYSBwcm94eSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFVuc2lnbmVkVHJhbnNhY3Rpb259IHR4XG4gICAqIEBwYXJhbSB7IG1ldGFkYXRhUnBjOiBzdHJpbmc7IHJlZ2lzdHJ5OiBUeXBlUmVnaXN0cnkgfSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckFyZ3N9XG4gICAqL1xuICBkZWNvZGVDYWxsTWV0aG9kKFxuICAgIHR4OiBzdHJpbmcgfCBVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIG9wdGlvbnM6IHsgbWV0YWRhdGFScGM6IHN0cmluZzsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9LFxuICApOiBUcmFuc2ZlckFyZ3Mge1xuICAgIGNvbnN0IHsgbWV0YWRhdGFScGMsIHJlZ2lzdHJ5IH0gPSBvcHRpb25zO1xuICAgIHJlZ2lzdHJ5LnNldE1ldGFkYXRhKGNyZWF0ZU1ldGFkYXRhKHJlZ2lzdHJ5LCBtZXRhZGF0YVJwYykpO1xuICAgIGxldCBtZXRob2RDYWxsOiBHZW5lcmljQ2FsbCB8IEdlbmVyaWNFeHRyaW5zaWM7XG4gICAgaWYgKHR5cGVvZiB0eCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IEdlbmVyaWNFeHRyaW5zaWNQYXlsb2FkID0gY3JlYXRlVHlwZVVuc2FmZShyZWdpc3RyeSwgJ0V4dHJpbnNpY1BheWxvYWQnLCBbXG4gICAgICAgICAgdHgsXG4gICAgICAgICAgeyB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTiB9LFxuICAgICAgICBdKTtcbiAgICAgICAgbWV0aG9kQ2FsbCA9IGNyZWF0ZVR5cGVVbnNhZmUocmVnaXN0cnksICdDYWxsJywgW3BheWxvYWQubWV0aG9kXSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdFeHRyaW5zaWMnLCBoZXhUb1U4YSh0eCksIHtcbiAgICAgICAgICBpc1NpZ25lZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdDYWxsJywgdHgubWV0aG9kKTtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gbWV0aG9kQ2FsbC5hcmdzW1BST1hZX01FVEhPRF9BUkddO1xuICAgIGNvbnN0IGRlY29kZWRBcmdzID0gbWV0aG9kLnRvSlNPTigpIGFzIHVua25vd24gYXMgUHJveHlDYWxsQXJncztcbiAgICByZXR1cm4gZGVjb2RlZEFyZ3MuYXJncztcbiAgfVxuXG4gIC8qKlxuICAgKiBrZXlQYWlyRnJvbVNlZWQgZ2VuZXJhdGVzIGFuIG9iamVjdCB3aXRoIHNlY3JldEtleSBhbmQgcHVibGljS2V5IHVzaW5nIHRoZSBwb2xrYWRvdCBzZGtcbiAgICogQHBhcmFtIHNlZWQgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIGtleVBhaXJGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogS2V5UGFpciB7XG4gICAgY29uc3Qga2V5cmluZyA9IG5ldyBLZXlyaW5nKHsgdHlwZTogJ2VkMjU1MTknIH0pO1xuICAgIGNvbnN0IGtleXJpbmdQYWlyID0ga2V5cmluZy5hZGRGcm9tU2VlZChzZWVkKTtcbiAgICBjb25zdCBwYWlySnNvbiA9IGtleXJpbmdQYWlyLnRvSnNvbigpO1xuICAgIGNvbnN0IGRlY29kZWRLZXlQYWlyID0gZGVjb2RlUGFpcignJywgYmFzZTY0RGVjb2RlKHBhaXJKc29uLmVuY29kZWQpLCBwYWlySnNvbi5lbmNvZGluZy50eXBlKTtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwcnY6IEJ1ZmZlci5mcm9tKGRlY29kZWRLZXlQYWlyLnNlY3JldEtleSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25pbmcgZnVuY3Rpb24uIEltcGxlbWVudCB0aGlzIG9uIHRoZSBPRkZMSU5FIHNpZ25pbmcgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleXJpbmdQYWlyfSBwYWlyIC0gVGhlIHNpZ25pbmcgcGFpci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNpZ25pbmdQYXlsb2FkIC0gUGF5bG9hZCB0byBzaWduLlxuICAgKiBAcGFyYW0ge1Vuc2lnbmVkVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIC0gcmF3IHRyYW5zYWN0aW9uIHRvIHNpZ25cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtIZXhTdHJpbmd9IG9wdGlvbnMubWV0YWRhdGFScGMgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICogQHBhcmFtIHtUeXBlUmVnaXN0cnl9IG9wdGlvbnMucmVnaXN0cnkgLSBtZXRhZGF0YSB0aGF0IGlzIG5lZWRlZCBmb3IgZG90IHRvIHNpZ25cbiAgICovXG4gIGNyZWF0ZVNpZ25lZFR4KFxuICAgIHBhaXI6IEtleXJpbmdQYWlyLFxuICAgIHNpZ25pbmdQYXlsb2FkOiBzdHJpbmcsXG4gICAgdHJhbnNhY3Rpb246IFVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgb3B0aW9uczogeyBtZXRhZGF0YVJwYzogSGV4U3RyaW5nOyByZWdpc3RyeTogVHlwZVJlZ2lzdHJ5IH0sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpc3RyeSwgbWV0YWRhdGFScGMgfSA9IG9wdGlvbnM7XG4gICAgLy8gSW1wb3J0YW50ISBUaGUgcmVnaXN0cnkgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIGxhdGVzdCBtZXRhZGF0YSwgc28gbWFrZVxuICAgIC8vIHN1cmUgdG8gcnVuIGByZWdpc3RyeS5zZXRNZXRhZGF0YShtZXRhZGF0YSlgIGJlZm9yZSBzaWduaW5nLlxuICAgIHJlZ2lzdHJ5LnNldE1ldGFkYXRhKGNyZWF0ZU1ldGFkYXRhKHJlZ2lzdHJ5LCBtZXRhZGF0YVJwYykpO1xuICAgIGNvbnN0IHsgc2lnbmF0dXJlIH0gPSByZWdpc3RyeVxuICAgICAgLmNyZWF0ZVR5cGUoJ0V4dHJpbnNpY1BheWxvYWQnLCBzaWduaW5nUGF5bG9hZCwge1xuICAgICAgICB2ZXJzaW9uOiBFWFRSSU5TSUNfVkVSU0lPTixcbiAgICAgIH0pXG4gICAgICAuc2lnbihwYWlyKTtcblxuICAgIC8vIFNlcmlhbGl6ZSBhIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICByZXR1cm4gY29uc3RydWN0LnNpZ25lZFR4KHRyYW5zYWN0aW9uLCBzaWduYXR1cmUsIHtcbiAgICAgIG1ldGFkYXRhUnBjLFxuICAgICAgcmVnaXN0cnksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUgZG90IGFkZHJlc3MgZnJvbSB0aGUgZ2l2ZW4gZm9ybWF0XG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc3M1OEZvcm1hdF1cbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGRlY29kZURvdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nLCBzczU4Rm9ybWF0PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlwYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKGRlY29kZUFkZHJlc3MoYWRkcmVzcywgdW5kZWZpbmVkLCBzczU4Rm9ybWF0KSkudG9TdHJpbmcoJ2hleCcpIH0pO1xuICAgIHJldHVybiBrZXlwYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBkb3QgYWRkcmVzcyBmcm9tIHRoZSBnaXZlbiBmb3JtYXRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtzczU4Rm9ybWF0XVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5jb2RlRG90QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHNzNThGb3JtYXQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVBZGRyZXNzKGFkZHJlc3MsIHNzNThGb3JtYXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgdHhIYXNoIG9mIGEgc2lnbmVkIHR4SGV4XG4gICAqXG4gICAqIEBwYXJhbSB0eEhleCBzaWduZWQgdHJhbnNhY3Rpb24gaGV4XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXRUeEhhc2godHhIZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdC50eEhhc2godHhIZXgpO1xuICB9XG5cbiAgZ2V0TWF0ZXJpYWwoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pOiBNYXRlcmlhbCB7XG4gICAgY29uc3QgbmV0d29ya0NvbmZpZyA9IGNvaW5Db25maWcubmV0d29yayBhcyBEb3ROZXR3b3JrO1xuICAgIGNvbnN0IHsgc3BlY05hbWUsIHNwZWNWZXJzaW9uLCBjaGFpbk5hbWUsIHR4VmVyc2lvbiwgZ2VuZXNpc0hhc2ggfSA9IG5ldHdvcmtDb25maWc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BlY05hbWUsXG4gICAgICBzcGVjVmVyc2lvbixcbiAgICAgIGNoYWluTmFtZSxcbiAgICAgIG1ldGFkYXRhOiBuZXR3b3JrQ29uZmlnLm1ldGFkYXRhUnBjLFxuICAgICAgdHhWZXJzaW9uLFxuICAgICAgZ2VuZXNpc0hhc2gsXG4gICAgfSBhcyBNYXRlcmlhbDtcbiAgfVxuXG4gIGlzU2lnbmluZ1BheWxvYWQocGF5bG9hZDogRGVjb2RlZFNpZ25pbmdQYXlsb2FkIHwgRGVjb2RlZFNpZ25lZFR4KTogcGF5bG9hZCBpcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQge1xuICAgIHJldHVybiAocGF5bG9hZCBhcyBEZWNvZGVkU2lnbmluZ1BheWxvYWQpLmJsb2NrSGFzaCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNQcm94eVRyYW5zZmVyKGFyZzogVHhNZXRob2RbJ2FyZ3MnXSk6IGFyZyBpcyBQcm94eUFyZ3Mge1xuICAgIHJldHVybiAoYXJnIGFzIFByb3h5QXJncykucmVhbCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNUcmFuc2Zlcihhcmc6IFR4TWV0aG9kWydhcmdzJ10pOiBhcmcgaXMgVHJhbnNmZXJBcmdzIHtcbiAgICByZXR1cm4gKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLmRlc3Q/LmlkICE9PSB1bmRlZmluZWQgJiYgKGFyZyBhcyBUcmFuc2ZlckFyZ3MpLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogZXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIHNpZ25hdHVyZSBpbiBoZXggZm9ybWF0IGdpdmVuIGEgcmF3IHNpZ25lZCB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHggc2lnbmVkIHJhdyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyByZWdpc3RyeSBkb3QgcmVnaXN0cnkgdXNlZCB0byByZXRyaWV2ZSB0aGUgc2lnbmF0dXJlXG4gICAqL1xuICByZWNvdmVyU2lnbmF0dXJlRnJvbVJhd1R4KHJhd1R4OiBzdHJpbmcsIG9wdGlvbnM6IHsgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeSB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lzdHJ5IH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG1ldGhvZENhbGwgPSByZWdpc3RyeS5jcmVhdGVUeXBlKCdFeHRyaW5zaWMnLCByYXdUeCwge1xuICAgICAgaXNTaWduZWQ6IHRydWUsXG4gICAgfSk7XG4gICAgbGV0IHNpZ25hdHVyZSA9IHU4YVRvSGV4KG1ldGhvZENhbGwuc2lnbmF0dXJlKSBhcyBzdHJpbmc7XG5cbiAgICAvLyByZW1vdmUgMHggZnJvbSB0aGUgc2lnbmF0dXJlIHNpbmNlIHRoaXMgaXMgaG93IGl0J3MgcmV0dXJuZWQgZnJvbSBUU1Mgc2lnbmluZ1xuICAgIGlmIChzaWduYXR1cmUuc3RhcnRzV2l0aCgnMHgnKSkge1xuICAgICAgc2lnbmF0dXJlID0gc2lnbmF0dXJlLnN1YnN0cigyKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { AccountMeta, PublicKey, TransactionInstruction } from '@solana/web3.js';
5
+ export declare enum TokenInstruction {
6
+ InitializeMint = 0,
7
+ InitializeAccount = 1,
8
+ InitializeMultisig = 2,
9
+ Transfer = 3,
10
+ Approve = 4,
11
+ Revoke = 5,
12
+ SetAuthority = 6,
13
+ MintTo = 7,
14
+ Burn = 8,
15
+ CloseAccount = 9,
16
+ FreezeAccount = 10,
17
+ ThawAccount = 11,
18
+ TransferChecked = 12,
19
+ ApproveChecked = 13,
20
+ MintToChecked = 14,
21
+ BurnChecked = 15,
22
+ InitializeAccount2 = 16,
23
+ SyncNative = 17,
24
+ InitializeAccount3 = 18,
25
+ InitializeMultisig2 = 19,
26
+ InitializeMint2 = 20
27
+ }
28
+ export declare abstract class TokenError extends Error {
29
+ name: string;
30
+ constructor(message?: string);
31
+ }
32
+ /** Thrown if an instruction's program is invalid */
33
+ export declare class TokenInvalidInstructionProgramError extends TokenError {
34
+ name: string;
35
+ }
36
+ /** Thrown if an instruction's keys are invalid */
37
+ export declare class TokenInvalidInstructionKeysError extends TokenError {
38
+ name: string;
39
+ }
40
+ /** Thrown if an instruction's type is invalid */
41
+ export declare class TokenInvalidInstructionTypeError extends TokenError {
42
+ name: string;
43
+ }
44
+ /** A decoded, valid TransferChecked instruction */
45
+ export interface DecodedTransferCheckedInstruction {
46
+ programId: PublicKey;
47
+ keys: {
48
+ source: AccountMeta;
49
+ mint: AccountMeta;
50
+ destination: AccountMeta;
51
+ owner: AccountMeta;
52
+ multiSigners: AccountMeta[];
53
+ };
54
+ data: {
55
+ instruction: TokenInstruction.TransferChecked;
56
+ amount: number;
57
+ decimals: number;
58
+ };
59
+ }
60
+ /**
61
+ * Decode a TransferChecked instruction and validate it
62
+ *
63
+ * @param instruction Transaction instruction to decode
64
+ * @param programId SPL Token program account
65
+ *
66
+ * @return Decoded, valid instruction
67
+ */
68
+ export declare function decodeTransferCheckedInstruction(instruction: TransactionInstruction, programId?: any): DecodedTransferCheckedInstruction;
69
+ /** A decoded, non-validated TransferChecked instruction */
70
+ export interface DecodedTransferCheckedInstructionUnchecked {
71
+ programId: PublicKey;
72
+ keys: {
73
+ source: AccountMeta | undefined;
74
+ mint: AccountMeta | undefined;
75
+ destination: AccountMeta | undefined;
76
+ owner: AccountMeta | undefined;
77
+ multiSigners: AccountMeta[];
78
+ };
79
+ data: {
80
+ instruction: number;
81
+ amount: number;
82
+ decimals: number;
83
+ };
84
+ }
85
+ //# sourceMappingURL=tokenEncodeDecode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenEncodeDecode.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/tokenEncodeDecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAYjF,oBAAY,gBAAgB;IAC1B,cAAc,IAAI;IAClB,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,MAAM,IAAI;IACV,YAAY,IAAI;IAChB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,YAAY,IAAI;IAChB,aAAa,KAAK;IAClB,WAAW,KAAK;IAChB,eAAe,KAAK;IACpB,cAAc,KAAK;IACnB,aAAa,KAAK;IAClB,WAAW,KAAK;IAChB,kBAAkB,KAAK;IACvB,UAAU,KAAK;IACf,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,eAAe,KAAK;CACrB;AAED,8BAAsB,UAAW,SAAQ,KAAK;IAC5C,IAAI,EAAE,MAAM,CAAC;gBACD,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,oDAAoD;AACpD,qBAAa,mCAAoC,SAAQ,UAAU;IACjE,IAAI,SAAyC;CAC9C;AAED,kDAAkD;AAClD,qBAAa,gCAAiC,SAAQ,UAAU;IAC9D,IAAI,SAAsC;CAC3C;AAED,iDAAiD;AACjD,qBAAa,gCAAiC,SAAQ,UAAU;IAC9D,IAAI,SAAsC;CAC3C;AAED,mDAAmD;AACnD,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QACJ,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,WAAW,EAAE,WAAW,CAAC;QACzB,KAAK,EAAE,WAAW,CAAC;QACnB,YAAY,EAAE,WAAW,EAAE,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,gBAAgB,CAAC,eAAe,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,sBAAsB,EACnC,SAAS,MAA4B,GACpC,iCAAiC,CAqBnC;AAED,2DAA2D;AAC3D,MAAM,WAAW,0CAA0C;IACzD,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QACJ,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;QAChC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;QAC9B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;QACrC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;QAC/B,YAAY,EAAE,WAAW,EAAE,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.decodeTransferCheckedInstruction = exports.TokenInvalidInstructionTypeError = exports.TokenInvalidInstructionKeysError = exports.TokenInvalidInstructionProgramError = exports.TokenError = exports.TokenInstruction = void 0;
19
+ var splToken = require('@solana/spl-token');
20
+ var BigNumber = require('bignumber.js');
21
+ /*
22
+ IMPORTANT:
23
+
24
+ Since token transfer encoding and decoding is in alpha (v 0.2.0-alpha.2), a version that is currently not functional due to typing bugs,
25
+ this file is the cherry-picked methods that are required to complete the token transfer feature. When the Solana foundation releases a stable
26
+ version, this file should be deleted and the spl-token methods should be used.
27
+ */
28
+ var TokenInstruction;
29
+ (function (TokenInstruction) {
30
+ TokenInstruction[TokenInstruction["InitializeMint"] = 0] = "InitializeMint";
31
+ TokenInstruction[TokenInstruction["InitializeAccount"] = 1] = "InitializeAccount";
32
+ TokenInstruction[TokenInstruction["InitializeMultisig"] = 2] = "InitializeMultisig";
33
+ TokenInstruction[TokenInstruction["Transfer"] = 3] = "Transfer";
34
+ TokenInstruction[TokenInstruction["Approve"] = 4] = "Approve";
35
+ TokenInstruction[TokenInstruction["Revoke"] = 5] = "Revoke";
36
+ TokenInstruction[TokenInstruction["SetAuthority"] = 6] = "SetAuthority";
37
+ TokenInstruction[TokenInstruction["MintTo"] = 7] = "MintTo";
38
+ TokenInstruction[TokenInstruction["Burn"] = 8] = "Burn";
39
+ TokenInstruction[TokenInstruction["CloseAccount"] = 9] = "CloseAccount";
40
+ TokenInstruction[TokenInstruction["FreezeAccount"] = 10] = "FreezeAccount";
41
+ TokenInstruction[TokenInstruction["ThawAccount"] = 11] = "ThawAccount";
42
+ TokenInstruction[TokenInstruction["TransferChecked"] = 12] = "TransferChecked";
43
+ TokenInstruction[TokenInstruction["ApproveChecked"] = 13] = "ApproveChecked";
44
+ TokenInstruction[TokenInstruction["MintToChecked"] = 14] = "MintToChecked";
45
+ TokenInstruction[TokenInstruction["BurnChecked"] = 15] = "BurnChecked";
46
+ TokenInstruction[TokenInstruction["InitializeAccount2"] = 16] = "InitializeAccount2";
47
+ TokenInstruction[TokenInstruction["SyncNative"] = 17] = "SyncNative";
48
+ TokenInstruction[TokenInstruction["InitializeAccount3"] = 18] = "InitializeAccount3";
49
+ TokenInstruction[TokenInstruction["InitializeMultisig2"] = 19] = "InitializeMultisig2";
50
+ TokenInstruction[TokenInstruction["InitializeMint2"] = 20] = "InitializeMint2";
51
+ })(TokenInstruction = exports.TokenInstruction || (exports.TokenInstruction = {}));
52
+ var TokenError = /** @class */ (function (_super) {
53
+ __extends(TokenError, _super);
54
+ function TokenError(message) {
55
+ return _super.call(this, message) || this;
56
+ }
57
+ return TokenError;
58
+ }(Error));
59
+ exports.TokenError = TokenError;
60
+ /** Thrown if an instruction's program is invalid */
61
+ var TokenInvalidInstructionProgramError = /** @class */ (function (_super) {
62
+ __extends(TokenInvalidInstructionProgramError, _super);
63
+ function TokenInvalidInstructionProgramError() {
64
+ var _this = _super !== null && _super.apply(this, arguments) || this;
65
+ _this.name = 'TokenInvalidInstructionProgramError';
66
+ return _this;
67
+ }
68
+ return TokenInvalidInstructionProgramError;
69
+ }(TokenError));
70
+ exports.TokenInvalidInstructionProgramError = TokenInvalidInstructionProgramError;
71
+ /** Thrown if an instruction's keys are invalid */
72
+ var TokenInvalidInstructionKeysError = /** @class */ (function (_super) {
73
+ __extends(TokenInvalidInstructionKeysError, _super);
74
+ function TokenInvalidInstructionKeysError() {
75
+ var _this = _super !== null && _super.apply(this, arguments) || this;
76
+ _this.name = 'TokenInvalidInstructionKeysError';
77
+ return _this;
78
+ }
79
+ return TokenInvalidInstructionKeysError;
80
+ }(TokenError));
81
+ exports.TokenInvalidInstructionKeysError = TokenInvalidInstructionKeysError;
82
+ /** Thrown if an instruction's type is invalid */
83
+ var TokenInvalidInstructionTypeError = /** @class */ (function (_super) {
84
+ __extends(TokenInvalidInstructionTypeError, _super);
85
+ function TokenInvalidInstructionTypeError() {
86
+ var _this = _super !== null && _super.apply(this, arguments) || this;
87
+ _this.name = 'TokenInvalidInstructionTypeError';
88
+ return _this;
89
+ }
90
+ return TokenInvalidInstructionTypeError;
91
+ }(TokenError));
92
+ exports.TokenInvalidInstructionTypeError = TokenInvalidInstructionTypeError;
93
+ /**
94
+ * Decode a TransferChecked instruction and validate it
95
+ *
96
+ * @param instruction Transaction instruction to decode
97
+ * @param programId SPL Token program account
98
+ *
99
+ * @return Decoded, valid instruction
100
+ */
101
+ function decodeTransferCheckedInstruction(instruction, programId) {
102
+ if (programId === void 0) { programId = splToken.TOKEN_PROGRAM_ID; }
103
+ if (!instruction.programId.equals(programId))
104
+ throw new TokenInvalidInstructionProgramError();
105
+ var _a = decodeTransferCheckedInstructionUnchecked(instruction), _b = _a.keys, source = _b.source, mint = _b.mint, destination = _b.destination, owner = _b.owner, multiSigners = _b.multiSigners, data = _a.data;
106
+ if (data.instruction !== TokenInstruction.TransferChecked)
107
+ throw new TokenInvalidInstructionTypeError();
108
+ if (!source || !mint || !destination || !owner)
109
+ throw new TokenInvalidInstructionKeysError();
110
+ return {
111
+ programId: programId,
112
+ keys: {
113
+ source: source,
114
+ mint: mint,
115
+ destination: destination,
116
+ owner: owner,
117
+ multiSigners: multiSigners,
118
+ },
119
+ data: data,
120
+ };
121
+ }
122
+ exports.decodeTransferCheckedInstruction = decodeTransferCheckedInstruction;
123
+ function readBigUInt64LE(buffer, offset) {
124
+ if (offset === void 0) { offset = 0; }
125
+ var first = buffer[offset];
126
+ var last = buffer[offset + 7];
127
+ if (first === undefined || last === undefined) {
128
+ throw new Error('Out of bounds');
129
+ }
130
+ var lo = first + buffer[++offset] * Math.pow(2, 8) + buffer[++offset] * Math.pow(2, 16) + buffer[++offset] * Math.pow(2, 24);
131
+ var hi = buffer[++offset] + buffer[++offset] * Math.pow(2, 8) + buffer[++offset] * Math.pow(2, 16) + last * Math.pow(2, 24);
132
+ return (BigNumber(lo) + (BigNumber(hi) << BigNumber(32))) / 10;
133
+ }
134
+ /**
135
+ * Decode a TransferChecked instruction without validating it
136
+ *
137
+ * @param instruction Transaction instruction to decode
138
+ *
139
+ * @return Decoded, non-validated instruction
140
+ */
141
+ function decodeTransferCheckedInstructionUnchecked(_a) {
142
+ var programId = _a.programId, _b = _a.keys, source = _b[0], mint = _b[1], destination = _b[2], owner = _b[3], multiSigners = _b.slice(4), data = _a.data;
143
+ var type = data.slice(0, 1).readUInt8(0);
144
+ var amount = readBigUInt64LE(data.slice(1, 9), 0);
145
+ var decimals = data.slice(9).readUInt8(0);
146
+ return {
147
+ programId: programId,
148
+ keys: {
149
+ source: source,
150
+ mint: mint,
151
+ destination: destination,
152
+ owner: owner,
153
+ multiSigners: multiSigners,
154
+ },
155
+ data: {
156
+ instruction: type,
157
+ amount: amount,
158
+ decimals: decimals,
159
+ },
160
+ };
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5FbmNvZGVEZWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zb2wvdG9rZW5FbmNvZGVEZWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDOUMsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRTFDOzs7Ozs7R0FNRztBQUVILElBQVksZ0JBc0JYO0FBdEJELFdBQVksZ0JBQWdCO0lBQzFCLDJFQUFrQixDQUFBO0lBQ2xCLGlGQUFxQixDQUFBO0lBQ3JCLG1GQUFzQixDQUFBO0lBQ3RCLCtEQUFZLENBQUE7SUFDWiw2REFBVyxDQUFBO0lBQ1gsMkRBQVUsQ0FBQTtJQUNWLHVFQUFnQixDQUFBO0lBQ2hCLDJEQUFVLENBQUE7SUFDVix1REFBUSxDQUFBO0lBQ1IsdUVBQWdCLENBQUE7SUFDaEIsMEVBQWtCLENBQUE7SUFDbEIsc0VBQWdCLENBQUE7SUFDaEIsOEVBQW9CLENBQUE7SUFDcEIsNEVBQW1CLENBQUE7SUFDbkIsMEVBQWtCLENBQUE7SUFDbEIsc0VBQWdCLENBQUE7SUFDaEIsb0ZBQXVCLENBQUE7SUFDdkIsb0VBQWUsQ0FBQTtJQUNmLG9GQUF1QixDQUFBO0lBQ3ZCLHNGQUF3QixDQUFBO0lBQ3hCLDhFQUFvQixDQUFBO0FBQ3RCLENBQUMsRUF0QlcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFzQjNCO0FBRUQ7SUFBeUMsOEJBQUs7SUFFNUMsb0JBQVksT0FBZ0I7ZUFDMUIsa0JBQU0sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFDSCxpQkFBQztBQUFELENBQUMsQUFMRCxDQUF5QyxLQUFLLEdBSzdDO0FBTHFCLGdDQUFVO0FBT2hDLG9EQUFvRDtBQUNwRDtJQUF5RCx1REFBVTtJQUFuRTtRQUFBLHFFQUVDO1FB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QUFDLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMseUNBQXlDLENBQUMsRUFJMUI7UUFIdkIsU0FBUyxlQUFBLEVBQ1QsWUFBeUQsRUFBbEQsTUFBTSxRQUFBLEVBQUUsSUFBSSxRQUFBLEVBQUUsV0FBVyxRQUFBLEVBQUUsS0FBSyxRQUFBLEVBQUssWUFBWSxjQUFBLEVBQ3hELElBQUksVUFBQTtJQUVKLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsT0FBTztRQUNMLFNBQVMsV0FBQTtRQUNULElBQUksRUFBRTtZQUNKLE1BQU0sUUFBQTtZQUNOLElBQUksTUFBQTtZQUNKLFdBQVcsYUFBQTtZQUNYLEtBQUssT0FBQTtZQUNMLFlBQVksY0FBQTtTQUNiO1FBQ0QsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLElBQUk7WUFDakIsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsUUFBUTtTQUNuQjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQWNjb3VudE1ldGEsIFB1YmxpY0tleSwgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbiB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5jb25zdCBzcGxUb2tlbiA9IHJlcXVpcmUoJ0Bzb2xhbmEvc3BsLXRva2VuJyk7XG5jb25zdCBCaWdOdW1iZXIgPSByZXF1aXJlKCdiaWdudW1iZXIuanMnKTtcblxuLypcbiAgSU1QT1JUQU5UOlxuXG4gIFNpbmNlIHRva2VuIHRyYW5zZmVyIGVuY29kaW5nIGFuZCBkZWNvZGluZyBpcyBpbiBhbHBoYSAodiAwLjIuMC1hbHBoYS4yKSwgYSB2ZXJzaW9uIHRoYXQgaXMgY3VycmVudGx5IG5vdCBmdW5jdGlvbmFsIGR1ZSB0byB0eXBpbmcgYnVncyxcbiAgdGhpcyBmaWxlIGlzIHRoZSBjaGVycnktcGlja2VkIG1ldGhvZHMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhlIHRva2VuIHRyYW5zZmVyIGZlYXR1cmUuIFdoZW4gdGhlIFNvbGFuYSBmb3VuZGF0aW9uIHJlbGVhc2VzIGEgc3RhYmxlXG4gIHZlcnNpb24sIHRoaXMgZmlsZSBzaG91bGQgYmUgZGVsZXRlZCBhbmQgdGhlIHNwbC10b2tlbiBtZXRob2RzIHNob3VsZCBiZSB1c2VkLlxuICovXG5cbmV4cG9ydCBlbnVtIFRva2VuSW5zdHJ1Y3Rpb24ge1xuICBJbml0aWFsaXplTWludCA9IDAsXG4gIEluaXRpYWxpemVBY2NvdW50ID0gMSxcbiAgSW5pdGlhbGl6ZU11bHRpc2lnID0gMixcbiAgVHJhbnNmZXIgPSAzLFxuICBBcHByb3ZlID0gNCxcbiAgUmV2b2tlID0gNSxcbiAgU2V0QXV0aG9yaXR5ID0gNixcbiAgTWludFRvID0gNyxcbiAgQnVybiA9IDgsXG4gIENsb3NlQWNjb3VudCA9IDksXG4gIEZyZWV6ZUFjY291bnQgPSAxMCxcbiAgVGhhd0FjY291bnQgPSAxMSxcbiAgVHJhbnNmZXJDaGVja2VkID0gMTIsXG4gIEFwcHJvdmVDaGVja2VkID0gMTMsXG4gIE1pbnRUb0NoZWNrZWQgPSAxNCxcbiAgQnVybkNoZWNrZWQgPSAxNSxcbiAgSW5pdGlhbGl6ZUFjY291bnQyID0gMTYsXG4gIFN5bmNOYXRpdmUgPSAxNyxcbiAgSW5pdGlhbGl6ZUFjY291bnQzID0gMTgsXG4gIEluaXRpYWxpemVNdWx0aXNpZzIgPSAxOSxcbiAgSW5pdGlhbGl6ZU1pbnQyID0gMjAsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUb2tlbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG4vKiogVGhyb3duIGlmIGFuIGluc3RydWN0aW9uJ3MgcHJvZ3JhbSBpcyBpbnZhbGlkICovXG5leHBvcnQgY2xhc3MgVG9rZW5JbnZhbGlkSW5zdHJ1Y3Rpb25Qcm9ncmFtRXJyb3IgZXh0ZW5kcyBUb2tlbkVycm9yIHtcbiAgbmFtZSA9ICdUb2tlbkludmFsaWRJbnN0cnVjdGlvblByb2dyYW1FcnJvcic7XG59XG5cbi8qKiBUaHJvd24gaWYgYW4gaW5zdHJ1Y3Rpb24ncyBrZXlzIGFyZSBpbnZhbGlkICovXG5leHBvcnQgY2xhc3MgVG9rZW5JbnZhbGlkSW5zdHJ1Y3Rpb25LZXlzRXJyb3IgZXh0ZW5kcyBUb2tlbkVycm9yIHtcbiAgbmFtZSA9ICdUb2tlbkludmFsaWRJbnN0cnVjdGlvbktleXNFcnJvcic7XG59XG5cbi8qKiBUaHJvd24gaWYgYW4gaW5zdHJ1Y3Rpb24ncyB0eXBlIGlzIGludmFsaWQgKi9cbmV4cG9ydCBjbGFzcyBUb2tlbkludmFsaWRJbnN0cnVjdGlvblR5cGVFcnJvciBleHRlbmRzIFRva2VuRXJyb3Ige1xuICBuYW1lID0gJ1Rva2VuSW52YWxpZEluc3RydWN0aW9uVHlwZUVycm9yJztcbn1cblxuLyoqIEEgZGVjb2RlZCwgdmFsaWQgVHJhbnNmZXJDaGVja2VkIGluc3RydWN0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29kZWRUcmFuc2ZlckNoZWNrZWRJbnN0cnVjdGlvbiB7XG4gIHByb2dyYW1JZDogUHVibGljS2V5O1xuICBrZXlzOiB7XG4gICAgc291cmNlOiBBY2NvdW50TWV0YTtcbiAgICBtaW50OiBBY2NvdW50TWV0YTtcbiAgICBkZXN0aW5hdGlvbjogQWNjb3VudE1ldGE7XG4gICAgb3duZXI6IEFjY291bnRNZXRhO1xuICAgIG11bHRpU2lnbmVyczogQWNjb3VudE1ldGFbXTtcbiAgfTtcbiAgZGF0YToge1xuICAgIGluc3RydWN0aW9uOiBUb2tlbkluc3RydWN0aW9uLlRyYW5zZmVyQ2hlY2tlZDtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgICBkZWNpbWFsczogbnVtYmVyO1xuICB9O1xufVxuXG4vKipcbiAqIERlY29kZSBhIFRyYW5zZmVyQ2hlY2tlZCBpbnN0cnVjdGlvbiBhbmQgdmFsaWRhdGUgaXRcbiAqXG4gKiBAcGFyYW0gaW5zdHJ1Y3Rpb24gVHJhbnNhY3Rpb24gaW5zdHJ1Y3Rpb24gdG8gZGVjb2RlXG4gKiBAcGFyYW0gcHJvZ3JhbUlkICAgU1BMIFRva2VuIHByb2dyYW0gYWNjb3VudFxuICpcbiAqIEByZXR1cm4gRGVjb2RlZCwgdmFsaWQgaW5zdHJ1Y3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRyYW5zZmVyQ2hlY2tlZEluc3RydWN0aW9uKFxuICBpbnN0cnVjdGlvbjogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbixcbiAgcHJvZ3JhbUlkID0gc3BsVG9rZW4uVE9LRU5fUFJPR1JBTV9JRCxcbik6IERlY29kZWRUcmFuc2ZlckNoZWNrZWRJbnN0cnVjdGlvbiB7XG4gIGlmICghaW5zdHJ1Y3Rpb24ucHJvZ3JhbUlkLmVxdWFscyhwcm9ncmFtSWQpKSB0aHJvdyBuZXcgVG9rZW5JbnZhbGlkSW5zdHJ1Y3Rpb25Qcm9ncmFtRXJyb3IoKTtcblxuICBjb25zdCB7XG4gICAga2V5czogeyBzb3VyY2UsIG1pbnQsIGRlc3RpbmF0aW9uLCBvd25lciwgbXVsdGlTaWduZXJzIH0sXG4gICAgZGF0YSxcbiAgfSA9IGRlY29kZVRyYW5zZmVyQ2hlY2tlZEluc3RydWN0aW9uVW5jaGVja2VkKGluc3RydWN0aW9uKTtcbiAgaWYgKGRhdGEuaW5zdHJ1Y3Rpb24gIT09IFRva2VuSW5zdHJ1Y3Rpb24uVHJhbnNmZXJDaGVja2VkKSB0aHJvdyBuZXcgVG9rZW5JbnZhbGlkSW5zdHJ1Y3Rpb25UeXBlRXJyb3IoKTtcbiAgaWYgKCFzb3VyY2UgfHwgIW1pbnQgfHwgIWRlc3RpbmF0aW9uIHx8ICFvd25lcikgdGhyb3cgbmV3IFRva2VuSW52YWxpZEluc3RydWN0aW9uS2V5c0Vycm9yKCk7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9ncmFtSWQsXG4gICAga2V5czoge1xuICAgICAgc291cmNlLFxuICAgICAgbWludCxcbiAgICAgIGRlc3RpbmF0aW9uLFxuICAgICAgb3duZXIsXG4gICAgICBtdWx0aVNpZ25lcnMsXG4gICAgfSxcbiAgICBkYXRhLFxuICB9O1xufVxuXG4vKiogQSBkZWNvZGVkLCBub24tdmFsaWRhdGVkIFRyYW5zZmVyQ2hlY2tlZCBpbnN0cnVjdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvZGVkVHJhbnNmZXJDaGVja2VkSW5zdHJ1Y3Rpb25VbmNoZWNrZWQge1xuICBwcm9ncmFtSWQ6IFB1YmxpY0tleTtcbiAga2V5czoge1xuICAgIHNvdXJjZTogQWNjb3VudE1ldGEgfCB1bmRlZmluZWQ7XG4gICAgbWludDogQWNjb3VudE1ldGEgfCB1bmRlZmluZWQ7XG4gICAgZGVzdGluYXRpb246IEFjY291bnRNZXRhIHwgdW5kZWZpbmVkO1xuICAgIG93bmVyOiBBY2NvdW50TWV0YSB8IHVuZGVmaW5lZDtcbiAgICBtdWx0aVNpZ25lcnM6IEFjY291bnRNZXRhW107XG4gIH07XG4gIGRhdGE6IHtcbiAgICBpbnN0cnVjdGlvbjogbnVtYmVyO1xuICAgIGFtb3VudDogbnVtYmVyO1xuICAgIGRlY2ltYWxzOiBudW1iZXI7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlYWRCaWdVSW50NjRMRShidWZmZXIsIG9mZnNldCA9IDApIHtcbiAgY29uc3QgZmlyc3QgPSBidWZmZXJbb2Zmc2V0XTtcbiAgY29uc3QgbGFzdCA9IGJ1ZmZlcltvZmZzZXQgKyA3XTtcbiAgaWYgKGZpcnN0ID09PSB1bmRlZmluZWQgfHwgbGFzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPdXQgb2YgYm91bmRzJyk7XG4gIH1cblxuICBjb25zdCBsbyA9IGZpcnN0ICsgYnVmZmVyWysrb2Zmc2V0XSAqIDIgKiogOCArIGJ1ZmZlclsrK29mZnNldF0gKiAyICoqIDE2ICsgYnVmZmVyWysrb2Zmc2V0XSAqIDIgKiogMjQ7XG4gIGNvbnN0IGhpID0gYnVmZmVyWysrb2Zmc2V0XSArIGJ1ZmZlclsrK29mZnNldF0gKiAyICoqIDggKyBidWZmZXJbKytvZmZzZXRdICogMiAqKiAxNiArIGxhc3QgKiAyICoqIDI0O1xuXG4gIHJldHVybiAoQmlnTnVtYmVyKGxvKSArIChCaWdOdW1iZXIoaGkpIDw8IEJpZ051bWJlcigzMikpKSAvIDEwO1xufVxuXG4vKipcbiAqIERlY29kZSBhIFRyYW5zZmVyQ2hlY2tlZCBpbnN0cnVjdGlvbiB3aXRob3V0IHZhbGlkYXRpbmcgaXRcbiAqXG4gKiBAcGFyYW0gaW5zdHJ1Y3Rpb24gVHJhbnNhY3Rpb24gaW5zdHJ1Y3Rpb24gdG8gZGVjb2RlXG4gKlxuICogQHJldHVybiBEZWNvZGVkLCBub24tdmFsaWRhdGVkIGluc3RydWN0aW9uXG4gKi9cbmZ1bmN0aW9uIGRlY29kZVRyYW5zZmVyQ2hlY2tlZEluc3RydWN0aW9uVW5jaGVja2VkKHtcbiAgcHJvZ3JhbUlkLFxuICBrZXlzOiBbc291cmNlLCBtaW50LCBkZXN0aW5hdGlvbiwgb3duZXIsIC4uLm11bHRpU2lnbmVyc10sXG4gIGRhdGEsXG59OiBUcmFuc2FjdGlvbkluc3RydWN0aW9uKTogRGVjb2RlZFRyYW5zZmVyQ2hlY2tlZEluc3RydWN0aW9uVW5jaGVja2VkIHtcbiAgY29uc3QgdHlwZSA9IGRhdGEuc2xpY2UoMCwgMSkucmVhZFVJbnQ4KDApO1xuICBjb25zdCBhbW91bnQgPSByZWFkQmlnVUludDY0TEUoZGF0YS5zbGljZSgxLCA5KSwgMCk7XG4gIGNvbnN0IGRlY2ltYWxzID0gZGF0YS5zbGljZSg5KS5yZWFkVUludDgoMCk7XG4gIHJldHVybiB7XG4gICAgcHJvZ3JhbUlkLFxuICAgIGtleXM6IHtcbiAgICAgIHNvdXJjZSxcbiAgICAgIG1pbnQsXG4gICAgICBkZXN0aW5hdGlvbixcbiAgICAgIG93bmVyLFxuICAgICAgbXVsdGlTaWduZXJzLFxuICAgIH0sXG4gICAgZGF0YToge1xuICAgICAgaW5zdHJ1Y3Rpb246IHR5cGUsXG4gICAgICBhbW91bnQ6IGFtb3VudCxcbiAgICAgIGRlY2ltYWxzOiBkZWNpbWFscyxcbiAgICB9LFxuICB9O1xufVxuIl19