Socket
Socket
Sign inDemoInstall

deso-protocol

Package Overview
Dependencies
52
Maintainers
4
Versions
210
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.6.6-beta.6 to 2.6.7-beta.1

2

package.json
{
"name": "deso-protocol",
"version": "2.6.6-beta.6",
"version": "2.6.7-beta.1",
"license": "MIT",

@@ -5,0 +5,0 @@ "description": "Client side typescript/javascript SDK for building web3 applications for the DeSo blockchain.",

@@ -276,2 +276,1 @@ # deso-protocol

```

@@ -214,13 +214,3 @@ import { ec } from 'elliptic';

AccessGroupMembers = "ACCESS_GROUP_MEMBERS",
NewMessage = "NEW_MESSAGE",
RegisterAsValidator = "REGISTER_AS_VALIDATOR",
UnregisterAsValidator = "UNREGISTER_AS_VALIDATOR",
Stake = "STAKE",
Unstake = "UNSTAKE",
UnlockStake = "UNLOCK_STAKE",
UnjailValidator = "UNJAIL_VALIDATOR",
CoinLockup = "COIN_LOCKUP",
UpdateCoinLockupParams = "UPDATE_COIN_LOCKUP_PARAMS",
CoinLockupTransfer = "COIN_LOCKUP_TRANSFER",
CoinUnlock = "COIN_UNLOCK"
NewMessage = "NEW_MESSAGE"
}

@@ -227,0 +217,0 @@ export interface IdentityDeriveParams {

@@ -65,12 +65,2 @@ export var DeSoNetwork;

TransactionType["NewMessage"] = "NEW_MESSAGE";
TransactionType["RegisterAsValidator"] = "REGISTER_AS_VALIDATOR";
TransactionType["UnregisterAsValidator"] = "UNREGISTER_AS_VALIDATOR";
TransactionType["Stake"] = "STAKE";
TransactionType["Unstake"] = "UNSTAKE";
TransactionType["UnlockStake"] = "UNLOCK_STAKE";
TransactionType["UnjailValidator"] = "UNJAIL_VALIDATOR";
TransactionType["CoinLockup"] = "COIN_LOCKUP";
TransactionType["UpdateCoinLockupParams"] = "UPDATE_COIN_LOCKUP_PARAMS";
TransactionType["CoinLockupTransfer"] = "COIN_LOCKUP_TRANSFER";
TransactionType["CoinUnlock"] = "COIN_UNLOCK";
})(TransactionType || (TransactionType = {}));

@@ -89,2 +79,2 @@ // Temporary manual creation of classes for DAO coin limit orders

})(MessagingGroupOperation || (MessagingGroupOperation = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzby10eXBlcy1jdXN0b20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC10eXBlcy9kZXNvLXR5cGVzLWN1c3RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEySUEsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFvQkQsTUFBTSxDQUFOLElBQVksK0JBS1g7QUFMRCxXQUFZLCtCQUErQjtJQUN6Qyw4Q0FBVyxDQUFBO0lBQ1gsOENBQVcsQ0FBQTtJQUNYLGdEQUFhLENBQUE7SUFDYix3REFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsK0JBQStCLEtBQS9CLCtCQUErQixRQUsxQztBQUVELE1BQU0sQ0FBTixJQUFZLDJCQU9YO0FBUEQsV0FBWSwyQkFBMkI7SUFDckMsMENBQVcsQ0FBQTtJQUNYLDRDQUFhLENBQUE7SUFDYiw0Q0FBYSxDQUFBO0lBQ2Isa0VBQW1DLENBQUE7SUFDbkMsd0dBQXlFLENBQUE7SUFDekUsb0RBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVBXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFPdEM7QUEwQkQsTUFBTSxDQUFOLElBQVksdUJBUVg7QUFSRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsNENBQWlCLENBQUE7SUFDakIsMENBQWUsQ0FBQTtJQUNmLHdEQUE2QixDQUFBO0lBQzdCLGdEQUFxQixDQUFBO0lBQ3JCLHdDQUFhLENBQUE7SUFDYixrRUFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBUlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVFsQztBQU9ELE1BQU0sQ0FBTixJQUFZLGVBMENYO0FBMUNELFdBQVksZUFBZTtJQUN6QixtREFBZ0MsQ0FBQTtJQUNoQyx1REFBb0MsQ0FBQTtJQUNwQyxxREFBa0MsQ0FBQTtJQUNsQyw2Q0FBMEIsQ0FBQTtJQUMxQixtREFBZ0MsQ0FBQTtJQUNoQyxvRkFBaUUsQ0FBQTtJQUNqRSxvQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBYSxDQUFBO0lBQ2IsK0NBQTRCLENBQUE7SUFDNUIsaURBQThCLENBQUE7SUFDOUIsOERBQTJDLENBQUE7SUFDM0MsZ0VBQTZDLENBQUE7SUFDN0MsMkNBQXdCLENBQUE7SUFDeEIsMkNBQXdCLENBQUE7SUFDeEIsa0RBQStCLENBQUE7SUFDL0IscUNBQWtCLENBQUE7SUFDbEIsK0NBQTRCLENBQUE7SUFDNUIsNERBQXlDLENBQUE7SUFDekMsdUNBQW9CLENBQUE7SUFDcEIsZ0VBQTZDLENBQUE7SUFDN0MscURBQWtDLENBQUE7SUFDbEMsdUNBQW9CLENBQUE7SUFDcEIsd0RBQXFDLENBQUE7SUFDckMsNkRBQTBDLENBQUE7SUFDMUMsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsK0NBQTRCLENBQUE7SUFDNUIsOERBQTJDLENBQUE7SUFDM0MsNkNBQTBCLENBQUE7SUFDMUIsZ0VBQTZDLENBQUE7SUFDN0Msb0VBQWlELENBQUE7SUFDakQsa0NBQWUsQ0FBQTtJQUNmLHNDQUFtQixDQUFBO0lBQ25CLCtDQUE0QixDQUFBO0lBQzVCLHVEQUFvQyxDQUFBO0lBQ3BDLDZDQUEwQixDQUFBO0lBQzFCLHVFQUFvRCxDQUFBO0lBQ3BELDhEQUEyQyxDQUFBO0lBQzNDLDZDQUEwQixDQUFBO0FBQzVCLENBQUMsRUExQ1csZUFBZSxLQUFmLGVBQWUsUUEwQzFCO0FBcUNELGlFQUFpRTtBQUVqRSxNQUFNLENBQU4sSUFBWSxvQ0FHWDtBQUhELFdBQVksb0NBQW9DO0lBQzlDLHVGQUErQyxDQUFBO0lBQy9DLHVGQUErQyxDQUFBO0FBQ2pELENBQUMsRUFIVyxvQ0FBb0MsS0FBcEMsb0NBQW9DLFFBRy9DO0FBc0pELE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFDakMscURBQTBCLENBQUE7SUFDMUIsdURBQTRCLENBQUE7SUFDNUIscURBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFJbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlYyB9IGZyb20gJ2VsbGlwdGljJztcbmltcG9ydCB7IFBhcnRpYWxXaXRoUmVxdWlyZWRGaWVsZHMgfSBmcm9tICcuLi9kYXRhL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIERBT0NvaW5MaW1pdE9yZGVyU2ltdWxhdGVkRXhlY3V0aW9uUmVzdWx0LFxuICBEZVNvTm9uY2UsXG4gIE1zZ0RlU29UeG4sXG4gIFN1Ym1pdFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIFRyYW5zYWN0aW9uRmVlLFxuICBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZSxcbn0gZnJvbSAnLi9kZXNvLXR5cGVzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBHZXRBcHByb3ZlUmVzcG9uc2Uge1xuICBpZD86IHN0cmluZztcbiAgc2VydmljZTogJ2lkZW50aXR5JztcbiAgbWV0aG9kOiAnYXBwcm92ZSc7XG4gIHBheWxvYWQ6IHtcbiAgICB1c2Vyczoge1xuICAgICAgW2tleTogc3RyaW5nXToge1xuICAgICAgICBhY2Nlc3NMZXZlbDogbnVtYmVyO1xuICAgICAgICBhY2Nlc3NMZXZlbEhtYWM6IHN0cmluZztcbiAgICAgICAgYnRjRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgZW5jcnlwdGVkU2VlZEhleDogc3RyaW5nO1xuICAgICAgICBoYXNFeHRyYVRleHQ6IGJvb2xlYW47XG4gICAgICAgIG5ldHdvcms6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBzaWduZWRUcmFuc2FjdGlvbkhleDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5TG9naW5SZXNwb25zZSB7XG4gIGlkPzogc3RyaW5nO1xuICBzZXJ2aWNlOiAnaWRlbnRpdHknO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGF5bG9hZDoge1xuICAgIHVzZXJzOiBMb2dpblVzZXJzO1xuICAgIHB1YmxpY0tleUFkZGVkOiBzdHJpbmc7XG4gICAgc2lnbmVkVXA6IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkSW1hZ2VSZXF1ZXN0IHtcbiAgVXNlclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIEpXVDogc3RyaW5nO1xuICBmaWxlOiBGaWxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFZpZGVvUmVxdWVzdCB7XG4gIFVzZXJQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBKV1Q6IHN0cmluZztcbiAgZmlsZTogRmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRWaWRlb1N0YXR1c1JlcXVlc3Qge1xuICB2aWRlb0lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkVmlkZW9SZXNwb25zZSB7XG4gIHN0cmVhbU1lZGlhSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblVzZXIge1xuICBhY2Nlc3NMZXZlbDogbnVtYmVyO1xuICBhY2Nlc3NMZXZlbEhtYWM6IHN0cmluZztcbiAgYnRjRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZW5jcnlwdGVkU2VlZEhleDogc3RyaW5nO1xuICBoYXNFeHRyYVRleHQ6IGJvb2xlYW47XG4gIGV0aERlcG9zaXRBZGRyZXNzOiBzdHJpbmc7XG4gIG5ldHdvcms6IHN0cmluZztcbiAgZW5jcnlwdGVkTWVzc2FnaW5nS2V5UmFuZG9tbmVzcz86IHN0cmluZztcbiAgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlcnMge1xuICBbdXNlcjogc3RyaW5nXTogTG9naW5Vc2VyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5QXBwcm92ZVJlc3BvbnNlIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcnZpY2U6ICdpZGVudGl0eSc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBwYXlsb2FkOiB7XG4gICAgdXNlcnM6IExvZ2luVXNlcjtcbiAgICBzaWduZWRUcmFuc2FjdGlvbkhleDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5Snd0UmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBzZXJ2aWNlOiAnaWRlbnRpdHknO1xuICBwYXlsb2FkOiB7XG4gICAgand0OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlTaWduUmVxdWVzdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIHBheWxvYWQ6IHtcbiAgICBhY2Nlc3NMZXZlbDogbnVtYmVyO1xuICAgIGFjY2Vzc0xldmVsSG1hYzogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFNlZWRIZXg6IHN0cmluZztcbiAgICB0cmFuc2FjdGlvbkhleD86IHN0cmluZztcbiAgICBzaWduZWRUcmFuc2FjdGlvbkhleD86IHN0cmluZztcbiAgICBlbmNyeXB0ZWRNZXNzYWdlPzoge1xuICAgICAgRW5jcnlwdGVkSGV4OiBzdHJpbmc7XG4gICAgICBQdWJsaWNLZXk6IHN0cmluZztcbiAgICAgIElzU2VuZGVyOiBib29sZWFuO1xuICAgICAgTGVnYWN5OiBib29sZWFuO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXREZWNyeXB0TWVzc2FnZXNSZXF1ZXN0IHtcbiAgRW5jcnlwdGVkSGV4OiBzdHJpbmc7XG4gIFB1YmxpY0tleTogc3RyaW5nO1xuICBJc1NlbmRlcjogYm9vbGVhbjtcbiAgTGVnYWN5OiBib29sZWFuO1xuICBWZXJzaW9uOiBudW1iZXI7XG4gIFNlbmRlck1lc3NhZ2luZ1B1YmxpY0tleTogc3RyaW5nO1xuICBTZW5kZXJNZXNzYWdpbmdHcm91cEtleU5hbWU6IHN0cmluZztcbiAgUmVjaXBpZW50TWVzc2FnaW5nUHVibGljS2V5OiBzdHJpbmc7XG4gIFJlY2lwaWVudE1lc3NhZ2luZ0dyb3VwS2V5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldERlY3J5cHRNZXNzYWdlc1Jlc3BvbnNlIHtcbiAgRW5jcnlwdGVkSGV4OiBzdHJpbmc7XG4gIFB1YmxpY0tleTogc3RyaW5nO1xuICBJc1NlbmRlcjogYm9vbGVhbjtcbiAgTGVnYWN5OiBib29sZWFuO1xuICBWZXJzaW9uOiBudW1iZXI7XG4gIFNlbmRlck1lc3NhZ2luZ1B1YmxpY0tleTogc3RyaW5nO1xuICBTZW5kZXJNZXNzYWdpbmdHcm91cEtleU5hbWU6IHN0cmluZztcbiAgUmVjaXBpZW50TWVzc2FnaW5nUHVibGljS2V5OiBzdHJpbmc7XG4gIFJlY2lwaWVudE1lc3NhZ2luZ0dyb3VwS2V5TmFtZTogc3RyaW5nO1xuICBkZWNyeXB0ZWRNZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIERlU29OZXR3b3JrIHtcbiAgbWFpbm5ldCA9ICdtYWlubmV0JyxcbiAgdGVzdG5ldCA9ICd0ZXN0bmV0Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVkUHJpdmF0ZVVzZXJJbmZvIHtcbiAgZGVyaXZlZFNlZWRIZXg6IHN0cmluZztcbiAgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIHB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIGJ0Y0RlcG9zaXRBZGRyZXNzOiBzdHJpbmc7XG4gIGV0aERlcG9zaXRBZGRyZXNzOiBzdHJpbmc7XG4gIGV4cGlyYXRpb25CbG9jazogbnVtYmVyO1xuICBuZXR3b3JrOiBEZVNvTmV0d29yaztcbiAgYWNjZXNzU2lnbmF0dXJlOiBzdHJpbmc7XG4gIGp3dDogc3RyaW5nO1xuICBkZXJpdmVkSnd0OiBzdHJpbmc7XG4gIG1lc3NhZ2luZ1B1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIG1lc3NhZ2luZ1ByaXZhdGVLZXk6IHN0cmluZztcbiAgbWVzc2FnaW5nS2V5TmFtZTogc3RyaW5nO1xuICBtZXNzYWdpbmdLZXlTaWduYXR1cmU6IHN0cmluZztcbiAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBlbnVtIENyZWF0b3JDb2luTGltaXRPcGVyYXRpb25TdHJpbmcge1xuICBBTlkgPSAnYW55JyxcbiAgQlVZID0gJ2J1eScsXG4gIFNFTEwgPSAnc2VsbCcsXG4gIFRSQU5TRkVSID0gJ3RyYW5zZmVyJyxcbn1cblxuZXhwb3J0IGVudW0gREFPQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nIHtcbiAgQU5ZID0gJ2FueScsXG4gIE1JTlQgPSAnbWludCcsXG4gIEJVUk4gPSAnYnVybicsXG4gIERJU0FCTEVfTUlOVElORyA9ICdkaXNhYmxlX21pbnRpbmcnLFxuICBVUERBVEVfVFJBTlNGRVJfUkVTVFJJQ1RJT05fU1RBVFVTID0gJ3VwZGF0ZV90cmFuc2Zlcl9yZXN0cmljdGlvbl9zdGF0dXMnLFxuICBUUkFOU0ZFUiA9ICd0cmFuc2ZlcicsXG59XG5cbmV4cG9ydCB0eXBlIENvaW5MaW1pdE9wZXJhdGlvblN0cmluZyA9XG4gIHwgREFPQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nXG4gIHwgQ3JlYXRvckNvaW5MaW1pdE9wZXJhdGlvblN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBDb2luT3BlcmF0aW9uTGltaXRNYXA8VCBleHRlbmRzIENvaW5MaW1pdE9wZXJhdGlvblN0cmluZz4ge1xuICBbcHVibGljX2tleTogc3RyaW5nXTogT3BlcmF0aW9uVG9Db3VudE1hcDxUPjtcbn1cblxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uVG9Db3VudE1hcDxUIGV4dGVuZHMgTGltaXRPcGVyYXRpb25TdHJpbmc+ID0ge1xuICBbb3BlcmF0aW9uIGluIFRdPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTGltaXRPcGVyYXRpb25TdHJpbmcgPVxuICB8IERBT0NvaW5MaW1pdE9wZXJhdGlvblN0cmluZ1xuICB8IENyZWF0b3JDb2luTGltaXRPcGVyYXRpb25TdHJpbmdcbiAgfCBORlRMaW1pdE9wZXJhdGlvblN0cmluZztcbmV4cG9ydCB0eXBlIENyZWF0b3JDb2luT3BlcmF0aW9uTGltaXRNYXAgPVxuICBDb2luT3BlcmF0aW9uTGltaXRNYXA8Q3JlYXRvckNvaW5MaW1pdE9wZXJhdGlvblN0cmluZz47XG5leHBvcnQgdHlwZSBEQU9Db2luT3BlcmF0aW9uTGltaXRNYXAgPVxuICBDb2luT3BlcmF0aW9uTGltaXRNYXA8REFPQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nPjtcbmV4cG9ydCB0eXBlIERBT0NvaW5MaW1pdE9yZGVyTGltaXRNYXAgPSB7XG4gIFtidXlpbmdfcHVibGljX2tleTogc3RyaW5nXTogeyBbc2VsbGluZ19wdWJsaWNfa2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbn07XG5cbmV4cG9ydCBlbnVtIE5GVExpbWl0T3BlcmF0aW9uU3RyaW5nIHtcbiAgQU5ZID0gJ2FueScsXG4gIFVQREFURSA9ICd1cGRhdGUnLFxuICBCSUQgPSAnbmZ0X2JpZCcsXG4gIEFDQ0VQVF9CSUQgPSAnYWNjZXB0X25mdF9iaWQnLFxuICBUUkFOU0ZFUiA9ICd0cmFuc2ZlcicsXG4gIEJVUk4gPSAnYnVybicsXG4gIEFDQ0VQVF9UUkFOU0ZFUiA9ICdhY2NlcHRfbmZ0X3RyYW5zZmVyJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTkZUT3BlcmF0aW9uTGltaXRNYXAge1xuICBbcG9zdF9oYXNoX2hleDogc3RyaW5nXToge1xuICAgIFtzZXJpYWxfbnVtYmVyOiBudW1iZXJdOiBPcGVyYXRpb25Ub0NvdW50TWFwPE5GVExpbWl0T3BlcmF0aW9uU3RyaW5nPjtcbiAgfTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlIHtcbiAgQmFzaWNUcmFuc2ZlciA9ICdCQVNJQ19UUkFOU0ZFUicsXG4gIEJpdGNvaW5FeGNoYW5nZSA9ICdCSVRDT0lOX0VYQ0hBTkdFJyxcbiAgUHJpdmF0ZU1lc3NhZ2UgPSAnUFJJVkFURV9NRVNTQUdFJyxcbiAgU3VibWl0UG9zdCA9ICdTVUJNSVRfUE9TVCcsXG4gIFVwZGF0ZVByb2ZpbGUgPSAnVVBEQVRFX1BST0ZJTEUnLFxuICBVcGRhdGVCaXRjb2luVVNERXhjaGFuZ2VSYXRlID0gJ1VQREFURV9CSVRDT0lOX1VTRF9FWENIQU5HRV9SQVRFJyxcbiAgRm9sbG93ID0gJ0ZPTExPVycsXG4gIExpa2UgPSAnTElLRScsXG4gIENyZWF0b3JDb2luID0gJ0NSRUFUT1JfQ09JTicsXG4gIFN3YXBJZGVudGl0eSA9ICdTV0FQX0lERU5USVRZJyxcbiAgVXBkYXRlR2xvYmFsUGFyYW1zID0gJ1VQREFURV9HTE9CQUxfUEFSQU1TJyxcbiAgQ3JlYXRvckNvaW5UcmFuc2ZlciA9ICdDUkVBVE9SX0NPSU5fVFJBTlNGRVInLFxuICBDcmVhdGVORlQgPSAnQ1JFQVRFX05GVCcsXG4gIFVwZGF0ZU5GVCA9ICdVUERBVEVfTkZUJyxcbiAgQWNjZXB0TkZUQmlkID0gJ0FDQ0VQVF9ORlRfQklEJyxcbiAgTkZUQmlkID0gJ05GVF9CSUQnLFxuICBORlRUcmFuc2ZlciA9ICdORlRfVFJBTlNGRVInLFxuICBBY2NlcHRORlRUcmFuc2ZlciA9ICdBQ0NFUFRfTkZUX1RSQU5TRkVSJyxcbiAgQnVybk5GVCA9ICdCVVJOX05GVCcsXG4gIEF1dGhvcml6ZURlcml2ZWRLZXkgPSAnQVVUSE9SSVpFX0RFUklWRURfS0VZJyxcbiAgTWVzc2FnaW5nR3JvdXAgPSAnTUVTU0FHSU5HX0dST1VQJyxcbiAgREFPQ29pbiA9ICdEQU9fQ09JTicsXG4gIERBT0NvaW5UcmFuc2ZlciA9ICdEQU9fQ09JTl9UUkFOU0ZFUicsXG4gIERBT0NvaW5MaW1pdE9yZGVyID0gJ0RBT19DT0lOX0xJTUlUX09SREVSJyxcbiAgQ3JlYXRlVXNlckFzc29jaWF0aW9uID0gJ0NSRUFURV9VU0VSX0FTU09DSUFUSU9OJyxcbiAgRGVsZXRlVXNlckFzc29jaWF0aW9uID0gJ0RFTEVURV9VU0VSX0FTU09DSUFUSU9OJyxcbiAgQ3JlYXRlUG9zdEFzc29jaWF0aW9uID0gJ0NSRUFURV9QT1NUX0FTU09DSUFUSU9OJyxcbiAgRGVsZXRlUG9zdEFzc29jaWF0aW9uID0gJ0RFTEVURV9QT1NUX0FTU09DSUFUSU9OJyxcbiAgQWNjZXNzR3JvdXAgPSAnQUNDRVNTX0dST1VQJyxcbiAgQWNjZXNzR3JvdXBNZW1iZXJzID0gJ0FDQ0VTU19HUk9VUF9NRU1CRVJTJyxcbiAgTmV3TWVzc2FnZSA9ICdORVdfTUVTU0FHRScsXG4gIFJlZ2lzdGVyQXNWYWxpZGF0b3IgPSAnUkVHSVNURVJfQVNfVkFMSURBVE9SJyxcbiAgVW5yZWdpc3RlckFzVmFsaWRhdG9yID0gJ1VOUkVHSVNURVJfQVNfVkFMSURBVE9SJyxcbiAgU3Rha2UgPSAnU1RBS0UnLFxuICBVbnN0YWtlID0gJ1VOU1RBS0UnLFxuICBVbmxvY2tTdGFrZSA9ICdVTkxPQ0tfU1RBS0UnLFxuICBVbmphaWxWYWxpZGF0b3IgPSAnVU5KQUlMX1ZBTElEQVRPUicsXG4gIENvaW5Mb2NrdXAgPSAnQ09JTl9MT0NLVVAnLFxuICBVcGRhdGVDb2luTG9ja3VwUGFyYW1zID0gJ1VQREFURV9DT0lOX0xPQ0tVUF9QQVJBTVMnLFxuICBDb2luTG9ja3VwVHJhbnNmZXIgPSAnQ09JTl9MT0NLVVBfVFJBTlNGRVInLFxuICBDb2luVW5sb2NrID0gJ0NPSU5fVU5MT0NLJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eURlcml2ZVBhcmFtcyB7XG4gIGNhbGxiYWNrPzogc3RyaW5nO1xuICB3ZWJ2aWV3PzogYm9vbGVhbjtcbiAgcHVibGljS2V5Pzogc3RyaW5nO1xuICB0cmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZT86IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlO1xuICBkZXJpdmVkUHVibGljS2V5Pzogc3RyaW5nO1xuICBkZWxldGVLZXk/OiBib29sZWFuO1xuICBleHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eURlcml2ZVF1ZXJ5UGFyYW1zIHtcbiAgY2FsbGJhY2s/OiBzdHJpbmc7XG4gIHdlYnZpZXc/OiBib29sZWFuO1xuICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlPzogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5Pzogc3RyaW5nO1xuICBkZWxldGVLZXk/OiBib29sZWFuO1xuICBleHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemVEZXJpdmVkS2V5UGFyYW1zIHtcbiAgT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjaz86IHN0cmluZztcbiAgRGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xuICBFeHBpcmF0aW9uQmxvY2s/OiBudW1iZXI7XG4gIERlbGV0ZUtleTogYm9vbGVhbjtcbiAgRGVyaXZlZEtleVNpZ25hdHVyZT86IGJvb2xlYW47XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlPzogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2U7XG4gIE1lbW8/OiBzdHJpbmc7XG4gIEFwcE5hbWU/OiBzdHJpbmc7XG4gIEV4dHJhRGF0YT86IHsgW2s6IHN0cmluZ106IHN0cmluZyB9O1xuICBFeHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuLy8gVGVtcG9yYXJ5IG1hbnVhbCBjcmVhdGlvbiBvZiBjbGFzc2VzIGZvciBEQU8gY29pbiBsaW1pdCBvcmRlcnNcblxuZXhwb3J0IGVudW0gREFPQ29pbkxpbWl0T3JkZXJPcGVyYXRpb25UeXBlU3RyaW5nIHtcbiAgREFPQ29pbkxpbWl0T3JkZXJPcGVyYXRpb25UeXBlU3RyaW5nQVNLID0gJ0FTSycsXG4gIERBT0NvaW5MaW1pdE9yZGVyT3BlcmF0aW9uVHlwZVN0cmluZ0JJRCA9ICdCSUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uQ29uc3RydWN0aW9uUmVzcG9uc2Uge1xuICBUcmFuc2FjdGlvbkhleDogc3RyaW5nO1xufVxuXG4vLyBpc3N1ZXMgd2l0aCB0aGUgY29udmVydGVyIGxhdGVseSBzbyBqdXN0IGdvaW5nIHRvIGFkZCB0aGVzZSB0byB0aGUgY3VzdG9tIHR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIERBT0NvaW5NYXJrZXRPcmRlcldpdGhRdWFudGl0eVJlcXVlc3Qge1xuICBUcmFuc2FjdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgQnV5aW5nREFPQ29pbkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBTZWxsaW5nREFPQ29pbkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBRdWFudGl0eVRvRmlsbDogbnVtYmVyO1xuICBPcGVyYXRpb25UeXBlOiBzdHJpbmc7XG4gIEZpbGxUeXBlOiBzdHJpbmc7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERBT0NvaW5MaW1pdE9yZGVyV2l0aEV4Y2hhbmdlUmF0ZUFuZFF1YW50aXR5UmVxdWVzdCB7XG4gIFRyYW5zYWN0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBCdXlpbmdEQU9Db2luQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIFNlbGxpbmdEQU9Db2luQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIFByaWNlOiBudW1iZXI7XG4gIFF1YW50aXR5OiBudW1iZXI7XG4gIFF1YW50aXR5VG9GaWxsOiBudW1iZXI7XG4gIEV4Y2hhbmdlUmF0ZUNvaW5zVG9TZWxsUGVyQ29pblRvQnV5OiBudW1iZXI7XG4gIE9wZXJhdGlvblR5cGU6IHN0cmluZztcbiAgTWluRmVlUmF0ZU5hbm9zUGVyS0I/OiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgREFPQ29pbkxpbWl0T3JkZXJSZXF1ZXN0IHtcbiAgVHJhbnNhY3RvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIEJ1eWluZ0RBT0NvaW5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgU2VsbGluZ0RBT0NvaW5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVjaW1hbCBzdHJpbmcgKGV4OiAnMS4yMycpIHJlcHJlc2VudGluZyB0aGUgZXhjaGFuZ2UgcmF0ZSBvZiB0aGUgdHdvIGNvaW5zIGluIHRoZSBvcmRlci5cbiAgICovXG4gIFByaWNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGRlY2ltYWwgc3RyaW5nIChleDogJzEuMjMnKSByZXByZXNlbnRpbmcgdGhlIHF1YW50aXR5IG9mIHRoZSBjb2lucyBiZWluZyBib3VnaHQgb3Igc29sZC5cbiAgICovXG4gIFF1YW50aXR5OiBzdHJpbmc7XG4gIEZpbGxUeXBlOiBzdHJpbmc7XG4gIE9wZXJhdGlvblR5cGU6ICdBU0snIHwgJ0JJRCc7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCPzogbnVtYmVyO1xuICBUcmFuc2FjdGlvbkZlZXM/OiBUcmFuc2FjdGlvbkZlZVtdIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgREFPQ29pbk1hcmtldE9yZGVyUmVxdWVzdCA9IE9taXQ8REFPQ29pbkxpbWl0T3JkZXJSZXF1ZXN0LCAnUHJpY2UnPjtcblxuZXhwb3J0IGludGVyZmFjZSBNZXRhTWFza0luaXRSZXNwb25zZSB7XG4gIGRlcml2ZWRLZXlQYWlyOiBlYy5LZXlQYWlyO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlO1xuICBldGhlcmV1bUFkZHJlc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbEZlZXNBbmRFeHRyYURhdGEge1xuICBNaW5GZWVSYXRlTmFub3NQZXJLQj86IG51bWJlcjtcbiAgVHJhbnNhY3Rpb25GZWVzPzogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG4gIEV4dHJhRGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIE5vbmNlPzogUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkczxEZVNvTm9uY2UsICdFeHBpcmF0aW9uQmxvY2tIZWlnaHQnPjtcbn1cblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YTxUPiA9IE9taXQ8XG4gIFQsXG4gIHwgJ01pbkZlZVJhdGVOYW5vc1BlcktCJ1xuICB8ICdUcmFuc2FjdGlvbkZlZXMnXG4gIHwgJ0V4dHJhRGF0YSdcbiAgfCAnSW5UdXRvcmlhbCdcbiAgfCAnTm9uY2UnXG4+ICZcbiAgT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgb25seSByZWxldmFudCBmb3Igd3JpdGUgb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgYSBzaWduZWRcbiAgICogdHJhbnNhY3Rpb24gKHN1Ym1pdC1wb3N0LCB1cGRhdGUtcHJvZmlsZSwgZXRjKS4gSXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvXG4gICAqIGJyb2FkY2FzdCB0aGUgdHJhbnNhY3Rpb24gdG8gdGhlIG5ldHdvcmsuIERlZmF1bHRzIHRvIHRydWUuIElmIHNldCB0b1xuICAgKiBmYWxzZSwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgYmUgY29uc3RydWN0ZWQgYnV0IG5vdCBzaWduZWQgb3Igc3VibWl0dGVkXG4gICAqIHdoaWNoIGlzIHVzZWZ1bCBmb3IgY29uc3RydWN0aW5nIHRyYW5zYWN0aW9ucyB0byBwcmV2aWV3IHRoZW0gd2l0aG91dFxuICAgKiBicm9hZGNhc3RpbmcgYXMgYSBzb3J0IG9mIFwiZHJ5LXJ1blwiLlxuICAgKi9cbiAgYnJvYWRjYXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG5vZGUgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by4gSWYgbm90IHByb3ZpZGVkLCBlaXRoZXIgdGhlIGRlZmF1bHQgbm9kZVxuICAgKiBvciB0aGUgY29uZmlndXJlZCBub2RlIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIG5vZGVVUkk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGVyaW1lbnRhbCBwYXJhbS4gV2hlbiBsb2NhbENvbnN0cnVjdGlvbiBpcyB0cnVlLCB0cmFuc2FjdGlvbnMgd2lsbFxuICAgKiBiZSBjb25zdHJ1Y3RlZCBsb2NhbGx5LiBUaGlzIG9ubHkgYXBwbGllcyBhZnRlciB0aGUgYmFsYW5jZSBtb2RlbCBmb3JrLlxuICAgKi9cbiAgbG9jYWxDb25zdHJ1Y3Rpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHRyYW5zYWN0aW9uIGxvY2FsbHkuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHJldHVybnMgUHJvbWlzZSB3aXRoIHRoZSBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2VcbiAgICovXG4gIGNvbnN0cnVjdGlvbkZ1bmN0aW9uPzogKFxuICAgIHBhcmFtczogYW55IC8vIFRPRE86IEkgYWN0dWFsbHkgdGhpbmsgd2Ugd2FudCBhbnkgdG8gYmUgVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YVxuICApID0+IFByb21pc2U8Q29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IHR5cGUgQ29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlID0ge1xuICBUcmFuc2FjdGlvbjogTXNnRGVTb1R4bjtcbiAgRmVlTmFub3M6IG51bWJlcjtcbiAgVHJhbnNhY3Rpb25IZXg6IHN0cmluZztcbiAgVHhuSGFzaEhleDogc3RyaW5nO1xuICBUb3RhbElucHV0TmFub3M6IG51bWJlcjtcbiAgQ2hhbmdlQW1vdW50TmFub3M6IG51bWJlcjtcbiAgU3BlbmRBbW91bnROYW5vczogbnVtYmVyO1xuICBUcmFuc2FjdGlvbklEQmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG4gIC8vIEJ1eSBvciBzZWxsIGNyZWF0b3IgY29pbnMgKHNlcnZlciBzaWRlIG9ubHkpXG4gIEV4cGVjdGVkRGVTb1JldHVybmVkTmFub3M/OiBudW1iZXI7XG4gIEV4cGVjdGVkQ3JlYXRvckNvaW5SZXR1cm5lZE5hbm9zPzogbnVtYmVyO1xuICBGb3VuZGVyUmV3YXJkR2VuZXJhdGVkTmFub3M/OiBudW1iZXI7XG4gIC8vIFN1Ym1pdFBvc3QgKHNlcnZlciBzaWRlIG9ubHkpXG4gIFRzdGFtcE5hbm9zPzogbnVtYmVyO1xuICBQb3N0SGFzaEhleD86IHN0cmluZztcbiAgLy8gVXBkYXRlUHJvZmlsZSAoc2VydmVyIHNpZGUgb25seSlcbiAgQ29tcFByb2ZpbGVDcmVhdGlvblR4bkhhc2hIZXg/OiBzdHJpbmc7XG4gIC8vIERBTyBDb2luIExpbWl0IE9yZGVyIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBTaW11bGF0ZWRFeGVjdXRpb25SZXN1bHQ/OiBEQU9Db2luTGltaXRPcmRlclNpbXVsYXRlZEV4ZWN1dGlvblJlc3VsdDtcbiAgLy8gQ3JlYXRlL1VwZGF0ZSBORlQsIE5GVCBCaWQsIEFjY2VwdCBORlQgQmlkIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBORlRQb3N0SGFzaEhleD86IHN0cmluZztcbiAgLy8gVXBkYXRlIE5GVCwgTkZUIEJpZCwgQWNjZXB0IE5GVCBCaWQgKHNlcnZlciBzaWRlIG9ubHkpXG4gIFNlcmlhbE51bWJlcj86IG51bWJlcjtcbiAgLy8gTkZUIEJpZCAoc2VydmVyIHNpZGUgb25seSlcbiAgVXBkYXRlclB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xuICAvLyBORlQgQmlkLCBBY2NlcHQgTkZUIEJpZCAoc2VydmVyIHNpZGUgb25seSlcbiAgQmlkQW1vdW50TmFub3M/OiBudW1iZXI7XG4gIC8vIEFjY2VwdCBORlQgQmlkIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBCaWRkZXJQdWJsaWNLZXlCYXNlNThDaGVjaz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2luZ0dyb3VwUGF5bG9hZCA9IHtcbiAgbWVzc2FnaW5nS2V5U2lnbmF0dXJlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFRvQXBwbGljYXRpb25Hcm91cE1lc3NhZ2luZ1ByaXZhdGVLZXk6IHN0cmluZztcbiAgZW5jcnlwdGVkVG9NZW1iZXJzR3JvdXBNZXNzYWdpbmdQcml2YXRlS2V5OiBzdHJpbmdbXTtcbiAgbWVzc2FnaW5nUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgZW5jcnlwdGVkTWVzc2FnaW5nS2V5UmFuZG9tbmVzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGVudW0gTWVzc2FnaW5nR3JvdXBPcGVyYXRpb24ge1xuICBERUZBVUxUX0tFWSA9ICdEZWZhdWx0S2V5JyxcbiAgQ1JFQVRFX0dST1VQID0gJ0NyZWF0ZUdyb3VwJyxcbiAgQUREX01FTUJFUlMgPSAnQWRkTWVtYmVycycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgREFPQ29pbkVudHJ5IHtcbiAgTnVtYmVyT2ZIb2xkZXJzOiBudW1iZXI7XG4gIENvaW5zSW5DaXJjdWxhdGlvbk5hbm9zOiBzdHJpbmc7XG4gIE1pbnRpbmdEaXNhYmxlZDogYm9vbGVhbjtcbiAgVHJhbnNmZXJSZXN0cmljdGlvblN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFZpZGVvVjJSZXNwb25zZSB7XG4gIGFzc2V0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBwbGF5YmFja0lkOiBzdHJpbmc7XG4gIH07XG4gIHR1c0VuZHBvaW50OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzby10eXBlcy1jdXN0b20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC10eXBlcy9kZXNvLXR5cGVzLWN1c3RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEySUEsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFvQkQsTUFBTSxDQUFOLElBQVksK0JBS1g7QUFMRCxXQUFZLCtCQUErQjtJQUN6Qyw4Q0FBVyxDQUFBO0lBQ1gsOENBQVcsQ0FBQTtJQUNYLGdEQUFhLENBQUE7SUFDYix3REFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBTFcsK0JBQStCLEtBQS9CLCtCQUErQixRQUsxQztBQUVELE1BQU0sQ0FBTixJQUFZLDJCQU9YO0FBUEQsV0FBWSwyQkFBMkI7SUFDckMsMENBQVcsQ0FBQTtJQUNYLDRDQUFhLENBQUE7SUFDYiw0Q0FBYSxDQUFBO0lBQ2Isa0VBQW1DLENBQUE7SUFDbkMsd0dBQXlFLENBQUE7SUFDekUsb0RBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVBXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFPdEM7QUEwQkQsTUFBTSxDQUFOLElBQVksdUJBUVg7QUFSRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsNENBQWlCLENBQUE7SUFDakIsMENBQWUsQ0FBQTtJQUNmLHdEQUE2QixDQUFBO0lBQzdCLGdEQUFxQixDQUFBO0lBQ3JCLHdDQUFhLENBQUE7SUFDYixrRUFBdUMsQ0FBQTtBQUN6QyxDQUFDLEVBUlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVFsQztBQU9ELE1BQU0sQ0FBTixJQUFZLGVBZ0NYO0FBaENELFdBQVksZUFBZTtJQUN6QixtREFBZ0MsQ0FBQTtJQUNoQyx1REFBb0MsQ0FBQTtJQUNwQyxxREFBa0MsQ0FBQTtJQUNsQyw2Q0FBMEIsQ0FBQTtJQUMxQixtREFBZ0MsQ0FBQTtJQUNoQyxvRkFBaUUsQ0FBQTtJQUNqRSxvQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBYSxDQUFBO0lBQ2IsK0NBQTRCLENBQUE7SUFDNUIsaURBQThCLENBQUE7SUFDOUIsOERBQTJDLENBQUE7SUFDM0MsZ0VBQTZDLENBQUE7SUFDN0MsMkNBQXdCLENBQUE7SUFDeEIsMkNBQXdCLENBQUE7SUFDeEIsa0RBQStCLENBQUE7SUFDL0IscUNBQWtCLENBQUE7SUFDbEIsK0NBQTRCLENBQUE7SUFDNUIsNERBQXlDLENBQUE7SUFDekMsdUNBQW9CLENBQUE7SUFDcEIsZ0VBQTZDLENBQUE7SUFDN0MscURBQWtDLENBQUE7SUFDbEMsdUNBQW9CLENBQUE7SUFDcEIsd0RBQXFDLENBQUE7SUFDckMsNkRBQTBDLENBQUE7SUFDMUMsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsb0VBQWlELENBQUE7SUFDakQsK0NBQTRCLENBQUE7SUFDNUIsOERBQTJDLENBQUE7SUFDM0MsNkNBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQWhDVyxlQUFlLEtBQWYsZUFBZSxRQWdDMUI7QUFxQ0QsaUVBQWlFO0FBRWpFLE1BQU0sQ0FBTixJQUFZLG9DQUdYO0FBSEQsV0FBWSxvQ0FBb0M7SUFDOUMsdUZBQStDLENBQUE7SUFDL0MsdUZBQStDLENBQUE7QUFDakQsQ0FBQyxFQUhXLG9DQUFvQyxLQUFwQyxvQ0FBb0MsUUFHL0M7QUFzSkQsTUFBTSxDQUFOLElBQVksdUJBSVg7QUFKRCxXQUFZLHVCQUF1QjtJQUNqQyxxREFBMEIsQ0FBQTtJQUMxQix1REFBNEIsQ0FBQTtJQUM1QixxREFBMEIsQ0FBQTtBQUM1QixDQUFDLEVBSlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUlsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVjIH0gZnJvbSAnZWxsaXB0aWMnO1xuaW1wb3J0IHsgUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkcyB9IGZyb20gJy4uL2RhdGEvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgREFPQ29pbkxpbWl0T3JkZXJTaW11bGF0ZWRFeGVjdXRpb25SZXN1bHQsXG4gIERlU29Ob25jZSxcbiAgTXNnRGVTb1R4bixcbiAgU3VibWl0VHJhbnNhY3Rpb25SZXNwb25zZSxcbiAgVHJhbnNhY3Rpb25GZWUsXG4gIFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlLFxufSBmcm9tICcuL2Rlc28tdHlwZXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcHJvdmVSZXNwb25zZSB7XG4gIGlkPzogc3RyaW5nO1xuICBzZXJ2aWNlOiAnaWRlbnRpdHknO1xuICBtZXRob2Q6ICdhcHByb3ZlJztcbiAgcGF5bG9hZDoge1xuICAgIHVzZXJzOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgIGFjY2Vzc0xldmVsOiBudW1iZXI7XG4gICAgICAgIGFjY2Vzc0xldmVsSG1hYzogc3RyaW5nO1xuICAgICAgICBidGNEZXBvc2l0QWRkcmVzczogc3RyaW5nO1xuICAgICAgICBlbmNyeXB0ZWRTZWVkSGV4OiBzdHJpbmc7XG4gICAgICAgIGhhc0V4dHJhVGV4dDogYm9vbGVhbjtcbiAgICAgICAgbmV0d29yazogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uSGV4OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlMb2dpblJlc3BvbnNlIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlcnZpY2U6ICdpZGVudGl0eSc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBwYXlsb2FkOiB7XG4gICAgdXNlcnM6IExvZ2luVXNlcnM7XG4gICAgcHVibGljS2V5QWRkZWQ6IHN0cmluZztcbiAgICBzaWduZWRVcDogYm9vbGVhbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRJbWFnZVJlcXVlc3Qge1xuICBVc2VyUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgSldUOiBzdHJpbmc7XG4gIGZpbGU6IEZpbGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkVmlkZW9SZXF1ZXN0IHtcbiAgVXNlclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIEpXVDogc3RyaW5nO1xuICBmaWxlOiBGaWxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFZpZGVvU3RhdHVzUmVxdWVzdCB7XG4gIHZpZGVvSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRWaWRlb1Jlc3BvbnNlIHtcbiAgc3RyZWFtTWVkaWFJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlciB7XG4gIGFjY2Vzc0xldmVsOiBudW1iZXI7XG4gIGFjY2Vzc0xldmVsSG1hYzogc3RyaW5nO1xuICBidGNEZXBvc2l0QWRkcmVzczogc3RyaW5nO1xuICBlbmNyeXB0ZWRTZWVkSGV4OiBzdHJpbmc7XG4gIGhhc0V4dHJhVGV4dDogYm9vbGVhbjtcbiAgZXRoRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgbmV0d29yazogc3RyaW5nO1xuICBlbmNyeXB0ZWRNZXNzYWdpbmdLZXlSYW5kb21uZXNzPzogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5Vc2VycyB7XG4gIFt1c2VyOiBzdHJpbmddOiBMb2dpblVzZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlBcHByb3ZlUmVzcG9uc2Uge1xuICBpZD86IHN0cmluZztcbiAgc2VydmljZTogJ2lkZW50aXR5JztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIHBheWxvYWQ6IHtcbiAgICB1c2VyczogTG9naW5Vc2VyO1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uSGV4OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlKd3RSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNlcnZpY2U6ICdpZGVudGl0eSc7XG4gIHBheWxvYWQ6IHtcbiAgICBqd3Q6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eVNpZ25SZXF1ZXN0IHtcbiAgaWQ6IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGF5bG9hZDoge1xuICAgIGFjY2Vzc0xldmVsOiBudW1iZXI7XG4gICAgYWNjZXNzTGV2ZWxIbWFjOiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkU2VlZEhleDogc3RyaW5nO1xuICAgIHRyYW5zYWN0aW9uSGV4Pzogc3RyaW5nO1xuICAgIHNpZ25lZFRyYW5zYWN0aW9uSGV4Pzogc3RyaW5nO1xuICAgIGVuY3J5cHRlZE1lc3NhZ2U/OiB7XG4gICAgICBFbmNyeXB0ZWRIZXg6IHN0cmluZztcbiAgICAgIFB1YmxpY0tleTogc3RyaW5nO1xuICAgICAgSXNTZW5kZXI6IGJvb2xlYW47XG4gICAgICBMZWdhY3k6IGJvb2xlYW47XG4gICAgfVtdO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldERlY3J5cHRNZXNzYWdlc1JlcXVlc3Qge1xuICBFbmNyeXB0ZWRIZXg6IHN0cmluZztcbiAgUHVibGljS2V5OiBzdHJpbmc7XG4gIElzU2VuZGVyOiBib29sZWFuO1xuICBMZWdhY3k6IGJvb2xlYW47XG4gIFZlcnNpb246IG51bWJlcjtcbiAgU2VuZGVyTWVzc2FnaW5nUHVibGljS2V5OiBzdHJpbmc7XG4gIFNlbmRlck1lc3NhZ2luZ0dyb3VwS2V5TmFtZTogc3RyaW5nO1xuICBSZWNpcGllbnRNZXNzYWdpbmdQdWJsaWNLZXk6IHN0cmluZztcbiAgUmVjaXBpZW50TWVzc2FnaW5nR3JvdXBLZXlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RGVjcnlwdE1lc3NhZ2VzUmVzcG9uc2Uge1xuICBFbmNyeXB0ZWRIZXg6IHN0cmluZztcbiAgUHVibGljS2V5OiBzdHJpbmc7XG4gIElzU2VuZGVyOiBib29sZWFuO1xuICBMZWdhY3k6IGJvb2xlYW47XG4gIFZlcnNpb246IG51bWJlcjtcbiAgU2VuZGVyTWVzc2FnaW5nUHVibGljS2V5OiBzdHJpbmc7XG4gIFNlbmRlck1lc3NhZ2luZ0dyb3VwS2V5TmFtZTogc3RyaW5nO1xuICBSZWNpcGllbnRNZXNzYWdpbmdQdWJsaWNLZXk6IHN0cmluZztcbiAgUmVjaXBpZW50TWVzc2FnaW5nR3JvdXBLZXlOYW1lOiBzdHJpbmc7XG4gIGRlY3J5cHRlZE1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gRGVTb05ldHdvcmsge1xuICBtYWlubmV0ID0gJ21haW5uZXQnLFxuICB0ZXN0bmV0ID0gJ3Rlc3RuZXQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZWRQcml2YXRlVXNlckluZm8ge1xuICBkZXJpdmVkU2VlZEhleDogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgcHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgYnRjRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZXRoRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZXhwaXJhdGlvbkJsb2NrOiBudW1iZXI7XG4gIG5ldHdvcms6IERlU29OZXR3b3JrO1xuICBhY2Nlc3NTaWduYXR1cmU6IHN0cmluZztcbiAgand0OiBzdHJpbmc7XG4gIGRlcml2ZWRKd3Q6IHN0cmluZztcbiAgbWVzc2FnaW5nUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgbWVzc2FnaW5nUHJpdmF0ZUtleTogc3RyaW5nO1xuICBtZXNzYWdpbmdLZXlOYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2luZ0tleVNpZ25hdHVyZTogc3RyaW5nO1xuICB0cmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGVudW0gQ3JlYXRvckNvaW5MaW1pdE9wZXJhdGlvblN0cmluZyB7XG4gIEFOWSA9ICdhbnknLFxuICBCVVkgPSAnYnV5JyxcbiAgU0VMTCA9ICdzZWxsJyxcbiAgVFJBTlNGRVIgPSAndHJhbnNmZXInLFxufVxuXG5leHBvcnQgZW51bSBEQU9Db2luTGltaXRPcGVyYXRpb25TdHJpbmcge1xuICBBTlkgPSAnYW55JyxcbiAgTUlOVCA9ICdtaW50JyxcbiAgQlVSTiA9ICdidXJuJyxcbiAgRElTQUJMRV9NSU5USU5HID0gJ2Rpc2FibGVfbWludGluZycsXG4gIFVQREFURV9UUkFOU0ZFUl9SRVNUUklDVElPTl9TVEFUVVMgPSAndXBkYXRlX3RyYW5zZmVyX3Jlc3RyaWN0aW9uX3N0YXR1cycsXG4gIFRSQU5TRkVSID0gJ3RyYW5zZmVyJyxcbn1cblxuZXhwb3J0IHR5cGUgQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nID1cbiAgfCBEQU9Db2luTGltaXRPcGVyYXRpb25TdHJpbmdcbiAgfCBDcmVhdG9yQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5PcGVyYXRpb25MaW1pdE1hcDxUIGV4dGVuZHMgQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nPiB7XG4gIFtwdWJsaWNfa2V5OiBzdHJpbmddOiBPcGVyYXRpb25Ub0NvdW50TWFwPFQ+O1xufVxuXG5leHBvcnQgdHlwZSBPcGVyYXRpb25Ub0NvdW50TWFwPFQgZXh0ZW5kcyBMaW1pdE9wZXJhdGlvblN0cmluZz4gPSB7XG4gIFtvcGVyYXRpb24gaW4gVF0/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBMaW1pdE9wZXJhdGlvblN0cmluZyA9XG4gIHwgREFPQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nXG4gIHwgQ3JlYXRvckNvaW5MaW1pdE9wZXJhdGlvblN0cmluZ1xuICB8IE5GVExpbWl0T3BlcmF0aW9uU3RyaW5nO1xuZXhwb3J0IHR5cGUgQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcCA9XG4gIENvaW5PcGVyYXRpb25MaW1pdE1hcDxDcmVhdG9yQ29pbkxpbWl0T3BlcmF0aW9uU3RyaW5nPjtcbmV4cG9ydCB0eXBlIERBT0NvaW5PcGVyYXRpb25MaW1pdE1hcCA9XG4gIENvaW5PcGVyYXRpb25MaW1pdE1hcDxEQU9Db2luTGltaXRPcGVyYXRpb25TdHJpbmc+O1xuZXhwb3J0IHR5cGUgREFPQ29pbkxpbWl0T3JkZXJMaW1pdE1hcCA9IHtcbiAgW2J1eWluZ19wdWJsaWNfa2V5OiBzdHJpbmddOiB7IFtzZWxsaW5nX3B1YmxpY19rZXk6IHN0cmluZ106IG51bWJlciB9O1xufTtcblxuZXhwb3J0IGVudW0gTkZUTGltaXRPcGVyYXRpb25TdHJpbmcge1xuICBBTlkgPSAnYW55JyxcbiAgVVBEQVRFID0gJ3VwZGF0ZScsXG4gIEJJRCA9ICduZnRfYmlkJyxcbiAgQUNDRVBUX0JJRCA9ICdhY2NlcHRfbmZ0X2JpZCcsXG4gIFRSQU5TRkVSID0gJ3RyYW5zZmVyJyxcbiAgQlVSTiA9ICdidXJuJyxcbiAgQUNDRVBUX1RSQU5TRkVSID0gJ2FjY2VwdF9uZnRfdHJhbnNmZXInLFxufVxuZXhwb3J0IGludGVyZmFjZSBORlRPcGVyYXRpb25MaW1pdE1hcCB7XG4gIFtwb3N0X2hhc2hfaGV4OiBzdHJpbmddOiB7XG4gICAgW3NlcmlhbF9udW1iZXI6IG51bWJlcl06IE9wZXJhdGlvblRvQ291bnRNYXA8TkZUTGltaXRPcGVyYXRpb25TdHJpbmc+O1xuICB9O1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblR5cGUge1xuICBCYXNpY1RyYW5zZmVyID0gJ0JBU0lDX1RSQU5TRkVSJyxcbiAgQml0Y29pbkV4Y2hhbmdlID0gJ0JJVENPSU5fRVhDSEFOR0UnLFxuICBQcml2YXRlTWVzc2FnZSA9ICdQUklWQVRFX01FU1NBR0UnLFxuICBTdWJtaXRQb3N0ID0gJ1NVQk1JVF9QT1NUJyxcbiAgVXBkYXRlUHJvZmlsZSA9ICdVUERBVEVfUFJPRklMRScsXG4gIFVwZGF0ZUJpdGNvaW5VU0RFeGNoYW5nZVJhdGUgPSAnVVBEQVRFX0JJVENPSU5fVVNEX0VYQ0hBTkdFX1JBVEUnLFxuICBGb2xsb3cgPSAnRk9MTE9XJyxcbiAgTGlrZSA9ICdMSUtFJyxcbiAgQ3JlYXRvckNvaW4gPSAnQ1JFQVRPUl9DT0lOJyxcbiAgU3dhcElkZW50aXR5ID0gJ1NXQVBfSURFTlRJVFknLFxuICBVcGRhdGVHbG9iYWxQYXJhbXMgPSAnVVBEQVRFX0dMT0JBTF9QQVJBTVMnLFxuICBDcmVhdG9yQ29pblRyYW5zZmVyID0gJ0NSRUFUT1JfQ09JTl9UUkFOU0ZFUicsXG4gIENyZWF0ZU5GVCA9ICdDUkVBVEVfTkZUJyxcbiAgVXBkYXRlTkZUID0gJ1VQREFURV9ORlQnLFxuICBBY2NlcHRORlRCaWQgPSAnQUNDRVBUX05GVF9CSUQnLFxuICBORlRCaWQgPSAnTkZUX0JJRCcsXG4gIE5GVFRyYW5zZmVyID0gJ05GVF9UUkFOU0ZFUicsXG4gIEFjY2VwdE5GVFRyYW5zZmVyID0gJ0FDQ0VQVF9ORlRfVFJBTlNGRVInLFxuICBCdXJuTkZUID0gJ0JVUk5fTkZUJyxcbiAgQXV0aG9yaXplRGVyaXZlZEtleSA9ICdBVVRIT1JJWkVfREVSSVZFRF9LRVknLFxuICBNZXNzYWdpbmdHcm91cCA9ICdNRVNTQUdJTkdfR1JPVVAnLFxuICBEQU9Db2luID0gJ0RBT19DT0lOJyxcbiAgREFPQ29pblRyYW5zZmVyID0gJ0RBT19DT0lOX1RSQU5TRkVSJyxcbiAgREFPQ29pbkxpbWl0T3JkZXIgPSAnREFPX0NPSU5fTElNSVRfT1JERVInLFxuICBDcmVhdGVVc2VyQXNzb2NpYXRpb24gPSAnQ1JFQVRFX1VTRVJfQVNTT0NJQVRJT04nLFxuICBEZWxldGVVc2VyQXNzb2NpYXRpb24gPSAnREVMRVRFX1VTRVJfQVNTT0NJQVRJT04nLFxuICBDcmVhdGVQb3N0QXNzb2NpYXRpb24gPSAnQ1JFQVRFX1BPU1RfQVNTT0NJQVRJT04nLFxuICBEZWxldGVQb3N0QXNzb2NpYXRpb24gPSAnREVMRVRFX1BPU1RfQVNTT0NJQVRJT04nLFxuICBBY2Nlc3NHcm91cCA9ICdBQ0NFU1NfR1JPVVAnLFxuICBBY2Nlc3NHcm91cE1lbWJlcnMgPSAnQUNDRVNTX0dST1VQX01FTUJFUlMnLFxuICBOZXdNZXNzYWdlID0gJ05FV19NRVNTQUdFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eURlcml2ZVBhcmFtcyB7XG4gIGNhbGxiYWNrPzogc3RyaW5nO1xuICB3ZWJ2aWV3PzogYm9vbGVhbjtcbiAgcHVibGljS2V5Pzogc3RyaW5nO1xuICB0cmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZT86IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlO1xuICBkZXJpdmVkUHVibGljS2V5Pzogc3RyaW5nO1xuICBkZWxldGVLZXk/OiBib29sZWFuO1xuICBleHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eURlcml2ZVF1ZXJ5UGFyYW1zIHtcbiAgY2FsbGJhY2s/OiBzdHJpbmc7XG4gIHdlYnZpZXc/OiBib29sZWFuO1xuICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlPzogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5Pzogc3RyaW5nO1xuICBkZWxldGVLZXk/OiBib29sZWFuO1xuICBleHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemVEZXJpdmVkS2V5UGFyYW1zIHtcbiAgT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjaz86IHN0cmluZztcbiAgRGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xuICBFeHBpcmF0aW9uQmxvY2s/OiBudW1iZXI7XG4gIERlbGV0ZUtleTogYm9vbGVhbjtcbiAgRGVyaXZlZEtleVNpZ25hdHVyZT86IGJvb2xlYW47XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlPzogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2U7XG4gIE1lbW8/OiBzdHJpbmc7XG4gIEFwcE5hbWU/OiBzdHJpbmc7XG4gIEV4dHJhRGF0YT86IHsgW2s6IHN0cmluZ106IHN0cmluZyB9O1xuICBFeHBpcmF0aW9uRGF5cz86IG51bWJlcjtcbn1cblxuLy8gVGVtcG9yYXJ5IG1hbnVhbCBjcmVhdGlvbiBvZiBjbGFzc2VzIGZvciBEQU8gY29pbiBsaW1pdCBvcmRlcnNcblxuZXhwb3J0IGVudW0gREFPQ29pbkxpbWl0T3JkZXJPcGVyYXRpb25UeXBlU3RyaW5nIHtcbiAgREFPQ29pbkxpbWl0T3JkZXJPcGVyYXRpb25UeXBlU3RyaW5nQVNLID0gJ0FTSycsXG4gIERBT0NvaW5MaW1pdE9yZGVyT3BlcmF0aW9uVHlwZVN0cmluZ0JJRCA9ICdCSUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uQ29uc3RydWN0aW9uUmVzcG9uc2Uge1xuICBUcmFuc2FjdGlvbkhleDogc3RyaW5nO1xufVxuXG4vLyBpc3N1ZXMgd2l0aCB0aGUgY29udmVydGVyIGxhdGVseSBzbyBqdXN0IGdvaW5nIHRvIGFkZCB0aGVzZSB0byB0aGUgY3VzdG9tIHR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIERBT0NvaW5NYXJrZXRPcmRlcldpdGhRdWFudGl0eVJlcXVlc3Qge1xuICBUcmFuc2FjdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgQnV5aW5nREFPQ29pbkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBTZWxsaW5nREFPQ29pbkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBRdWFudGl0eVRvRmlsbDogbnVtYmVyO1xuICBPcGVyYXRpb25UeXBlOiBzdHJpbmc7XG4gIEZpbGxUeXBlOiBzdHJpbmc7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERBT0NvaW5MaW1pdE9yZGVyV2l0aEV4Y2hhbmdlUmF0ZUFuZFF1YW50aXR5UmVxdWVzdCB7XG4gIFRyYW5zYWN0b3JQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBCdXlpbmdEQU9Db2luQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIFNlbGxpbmdEQU9Db2luQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIFByaWNlOiBudW1iZXI7XG4gIFF1YW50aXR5OiBudW1iZXI7XG4gIFF1YW50aXR5VG9GaWxsOiBudW1iZXI7XG4gIEV4Y2hhbmdlUmF0ZUNvaW5zVG9TZWxsUGVyQ29pblRvQnV5OiBudW1iZXI7XG4gIE9wZXJhdGlvblR5cGU6IHN0cmluZztcbiAgTWluRmVlUmF0ZU5hbm9zUGVyS0I/OiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uRmVlczogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgREFPQ29pbkxpbWl0T3JkZXJSZXF1ZXN0IHtcbiAgVHJhbnNhY3RvclB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIEJ1eWluZ0RBT0NvaW5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgU2VsbGluZ0RBT0NvaW5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVjaW1hbCBzdHJpbmcgKGV4OiAnMS4yMycpIHJlcHJlc2VudGluZyB0aGUgZXhjaGFuZ2UgcmF0ZSBvZiB0aGUgdHdvIGNvaW5zIGluIHRoZSBvcmRlci5cbiAgICovXG4gIFByaWNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGRlY2ltYWwgc3RyaW5nIChleDogJzEuMjMnKSByZXByZXNlbnRpbmcgdGhlIHF1YW50aXR5IG9mIHRoZSBjb2lucyBiZWluZyBib3VnaHQgb3Igc29sZC5cbiAgICovXG4gIFF1YW50aXR5OiBzdHJpbmc7XG4gIEZpbGxUeXBlOiBzdHJpbmc7XG4gIE9wZXJhdGlvblR5cGU6ICdBU0snIHwgJ0JJRCc7XG4gIE1pbkZlZVJhdGVOYW5vc1BlcktCPzogbnVtYmVyO1xuICBUcmFuc2FjdGlvbkZlZXM/OiBUcmFuc2FjdGlvbkZlZVtdIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgREFPQ29pbk1hcmtldE9yZGVyUmVxdWVzdCA9IE9taXQ8REFPQ29pbkxpbWl0T3JkZXJSZXF1ZXN0LCAnUHJpY2UnPjtcblxuZXhwb3J0IGludGVyZmFjZSBNZXRhTWFza0luaXRSZXNwb25zZSB7XG4gIGRlcml2ZWRLZXlQYWlyOiBlYy5LZXlQYWlyO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBTdWJtaXRUcmFuc2FjdGlvblJlc3BvbnNlO1xuICBldGhlcmV1bUFkZHJlc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25hbEZlZXNBbmRFeHRyYURhdGEge1xuICBNaW5GZWVSYXRlTmFub3NQZXJLQj86IG51bWJlcjtcbiAgVHJhbnNhY3Rpb25GZWVzPzogVHJhbnNhY3Rpb25GZWVbXSB8IG51bGw7XG4gIEV4dHJhRGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIE5vbmNlPzogUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkczxEZVNvTm9uY2UsICdFeHBpcmF0aW9uQmxvY2tIZWlnaHQnPjtcbn1cblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YTxUPiA9IE9taXQ8XG4gIFQsXG4gIHwgJ01pbkZlZVJhdGVOYW5vc1BlcktCJ1xuICB8ICdUcmFuc2FjdGlvbkZlZXMnXG4gIHwgJ0V4dHJhRGF0YSdcbiAgfCAnSW5UdXRvcmlhbCdcbiAgfCAnTm9uY2UnXG4+ICZcbiAgT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgb25seSByZWxldmFudCBmb3Igd3JpdGUgb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgYSBzaWduZWRcbiAgICogdHJhbnNhY3Rpb24gKHN1Ym1pdC1wb3N0LCB1cGRhdGUtcHJvZmlsZSwgZXRjKS4gSXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvXG4gICAqIGJyb2FkY2FzdCB0aGUgdHJhbnNhY3Rpb24gdG8gdGhlIG5ldHdvcmsuIERlZmF1bHRzIHRvIHRydWUuIElmIHNldCB0b1xuICAgKiBmYWxzZSwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgYmUgY29uc3RydWN0ZWQgYnV0IG5vdCBzaWduZWQgb3Igc3VibWl0dGVkXG4gICAqIHdoaWNoIGlzIHVzZWZ1bCBmb3IgY29uc3RydWN0aW5nIHRyYW5zYWN0aW9ucyB0byBwcmV2aWV3IHRoZW0gd2l0aG91dFxuICAgKiBicm9hZGNhc3RpbmcgYXMgYSBzb3J0IG9mIFwiZHJ5LXJ1blwiLlxuICAgKi9cbiAgYnJvYWRjYXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG5vZGUgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by4gSWYgbm90IHByb3ZpZGVkLCBlaXRoZXIgdGhlIGRlZmF1bHQgbm9kZVxuICAgKiBvciB0aGUgY29uZmlndXJlZCBub2RlIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIG5vZGVVUkk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cGVyaW1lbnRhbCBwYXJhbS4gV2hlbiBsb2NhbENvbnN0cnVjdGlvbiBpcyB0cnVlLCB0cmFuc2FjdGlvbnMgd2lsbFxuICAgKiBiZSBjb25zdHJ1Y3RlZCBsb2NhbGx5LiBUaGlzIG9ubHkgYXBwbGllcyBhZnRlciB0aGUgYmFsYW5jZSBtb2RlbCBmb3JrLlxuICAgKi9cbiAgbG9jYWxDb25zdHJ1Y3Rpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogRnVuY3Rpb24gdG8gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHRyYW5zYWN0aW9uIGxvY2FsbHkuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHJldHVybnMgUHJvbWlzZSB3aXRoIHRoZSBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2VcbiAgICovXG4gIGNvbnN0cnVjdGlvbkZ1bmN0aW9uPzogKFxuICAgIHBhcmFtczogYW55IC8vIFRPRE86IEkgYWN0dWFsbHkgdGhpbmsgd2Ugd2FudCBhbnkgdG8gYmUgVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YVxuICApID0+IFByb21pc2U8Q29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IHR5cGUgQ29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlID0ge1xuICBUcmFuc2FjdGlvbjogTXNnRGVTb1R4bjtcbiAgRmVlTmFub3M6IG51bWJlcjtcbiAgVHJhbnNhY3Rpb25IZXg6IHN0cmluZztcbiAgVHhuSGFzaEhleDogc3RyaW5nO1xuICBUb3RhbElucHV0TmFub3M6IG51bWJlcjtcbiAgQ2hhbmdlQW1vdW50TmFub3M6IG51bWJlcjtcbiAgU3BlbmRBbW91bnROYW5vczogbnVtYmVyO1xuICBUcmFuc2FjdGlvbklEQmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG4gIC8vIEJ1eSBvciBzZWxsIGNyZWF0b3IgY29pbnMgKHNlcnZlciBzaWRlIG9ubHkpXG4gIEV4cGVjdGVkRGVTb1JldHVybmVkTmFub3M/OiBudW1iZXI7XG4gIEV4cGVjdGVkQ3JlYXRvckNvaW5SZXR1cm5lZE5hbm9zPzogbnVtYmVyO1xuICBGb3VuZGVyUmV3YXJkR2VuZXJhdGVkTmFub3M/OiBudW1iZXI7XG4gIC8vIFN1Ym1pdFBvc3QgKHNlcnZlciBzaWRlIG9ubHkpXG4gIFRzdGFtcE5hbm9zPzogbnVtYmVyO1xuICBQb3N0SGFzaEhleD86IHN0cmluZztcbiAgLy8gVXBkYXRlUHJvZmlsZSAoc2VydmVyIHNpZGUgb25seSlcbiAgQ29tcFByb2ZpbGVDcmVhdGlvblR4bkhhc2hIZXg/OiBzdHJpbmc7XG4gIC8vIERBTyBDb2luIExpbWl0IE9yZGVyIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBTaW11bGF0ZWRFeGVjdXRpb25SZXN1bHQ/OiBEQU9Db2luTGltaXRPcmRlclNpbXVsYXRlZEV4ZWN1dGlvblJlc3VsdDtcbiAgLy8gQ3JlYXRlL1VwZGF0ZSBORlQsIE5GVCBCaWQsIEFjY2VwdCBORlQgQmlkIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBORlRQb3N0SGFzaEhleD86IHN0cmluZztcbiAgLy8gVXBkYXRlIE5GVCwgTkZUIEJpZCwgQWNjZXB0IE5GVCBCaWQgKHNlcnZlciBzaWRlIG9ubHkpXG4gIFNlcmlhbE51bWJlcj86IG51bWJlcjtcbiAgLy8gTkZUIEJpZCAoc2VydmVyIHNpZGUgb25seSlcbiAgVXBkYXRlclB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xuICAvLyBORlQgQmlkLCBBY2NlcHQgTkZUIEJpZCAoc2VydmVyIHNpZGUgb25seSlcbiAgQmlkQW1vdW50TmFub3M/OiBudW1iZXI7XG4gIC8vIEFjY2VwdCBORlQgQmlkIChzZXJ2ZXIgc2lkZSBvbmx5KVxuICBCaWRkZXJQdWJsaWNLZXlCYXNlNThDaGVjaz86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2luZ0dyb3VwUGF5bG9hZCA9IHtcbiAgbWVzc2FnaW5nS2V5U2lnbmF0dXJlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFRvQXBwbGljYXRpb25Hcm91cE1lc3NhZ2luZ1ByaXZhdGVLZXk6IHN0cmluZztcbiAgZW5jcnlwdGVkVG9NZW1iZXJzR3JvdXBNZXNzYWdpbmdQcml2YXRlS2V5OiBzdHJpbmdbXTtcbiAgbWVzc2FnaW5nUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgZW5jcnlwdGVkTWVzc2FnaW5nS2V5UmFuZG9tbmVzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGVudW0gTWVzc2FnaW5nR3JvdXBPcGVyYXRpb24ge1xuICBERUZBVUxUX0tFWSA9ICdEZWZhdWx0S2V5JyxcbiAgQ1JFQVRFX0dST1VQID0gJ0NyZWF0ZUdyb3VwJyxcbiAgQUREX01FTUJFUlMgPSAnQWRkTWVtYmVycycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgREFPQ29pbkVudHJ5IHtcbiAgTnVtYmVyT2ZIb2xkZXJzOiBudW1iZXI7XG4gIENvaW5zSW5DaXJjdWxhdGlvbk5hbm9zOiBzdHJpbmc7XG4gIE1pbnRpbmdEaXNhYmxlZDogYm9vbGVhbjtcbiAgVHJhbnNmZXJSZXN0cmljdGlvblN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFZpZGVvVjJSZXNwb25zZSB7XG4gIGFzc2V0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBwbGF5YmFja0lkOiBzdHJpbmc7XG4gIH07XG4gIHR1c0VuZHBvaW50OiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufVxuIl19

@@ -6,4 +6,2 @@ import { KeyPair, Network, jwtAlgorithm } from './types.js';

export declare const uint64ToBufBigEndian: (uint: number) => Uint8Array;
export declare const varint64ToBuf: (int: number) => Uint8Array;
export declare const bufToVarint64: (buffer: Uint8Array) => [number, Uint8Array];
interface Base58CheckOptions {

@@ -10,0 +8,0 @@ network: Network;

@@ -64,17 +64,2 @@ import { sha256 } from '@noble/hashes/sha256';

};
export const varint64ToBuf = (int) => {
let ux = BigInt(int) << BigInt(1);
if (int < 0) {
ux = ~ux;
}
return uvarint64ToBuf(Number(ux));
};
export const bufToVarint64 = (buffer) => {
const [ux, n] = bufToUvarint64(buffer);
let x = BigInt(ux) >> BigInt(1);
if (ux & 1) {
x = ~x;
}
return [Number(x), n];
};
// We are not using the native web crypto API to actually generate keys

@@ -362,2 +347,2 @@ // because it does not support the secp256k1 curve. Instead, we are using

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lkZW50aXR5L2NyeXB0by11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLElBQUksTUFBTSxFQUNkLEtBQUssSUFBSSxPQUFPLEVBQ2hCLFlBQVksRUFDWixlQUFlLElBQUksb0JBQW9CLEdBQ3hDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQW9CLEVBQUUsTUFBZTtJQUNyRSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMvRDtJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUss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QUMsRUFDcEUsTUFBTSxDQUNQLENBQUM7SUFFRixNQUFNLEdBQUcsVUFBVSxDQUFDO0lBRXBCLEtBQUssTUFBTSxDQUFDLEdBQUcsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFO1FBQ3RELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUNSLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxFQUNwRSxNQUFNLENBQ1AsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQy9CLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2hELEVBQUUsQ0FDSCxDQUFDO0lBRUYsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsYUFBcUIsRUFDckIsWUFBb0I7SUFFcEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdAbm9ibGUvaGFzaGVzL3NoYTI1Nic7XG5pbXBvcnQge1xuICBQb2ludCxcbiAgc2lnbiBhcyBlY1NpZ24sXG4gIHV0aWxzIGFzIGVjVXRpbHMsXG4gIGdldFB1YmxpY0tleSxcbiAgZ2V0U2hhcmVkU2VjcmV0IGFzIG5vYmxlR2V0U2hhcmVkU2VjcmV0LFxufSBmcm9tICdAbm9ibGUvc2VjcDI1NmsxJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IHsgUFVCTElDX0tFWV9QUkVGSVhFUyB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVjAgfSBmcm9tICcuL3RyYW5zYWN0aW9uLXRyYW5zY29kZXJzLmpzJztcbmltcG9ydCB7IEtleVBhaXIsIE5ldHdvcmssIGp3dEFsZ29yaXRobSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBCcm93c2VyIGZyaWVuZGx5IHZlcnNpb24gb2Ygbm9kZSdzIEJ1ZmZlci5jb25jYXQuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0VWludDhBcnJheXMoYXJyYXlzOiBVaW50OEFycmF5W10sIGxlbmd0aD86IG51bWJlcikge1xuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSBhcnJheXMucmVkdWNlKChhY2MsIGFycmF5KSA9PiBhY2MgKyBhcnJheS5sZW5ndGgsIDApO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gIGxldCBvZmZzZXQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChvZmZzZXQgKyBhcnJheXNbaV0ubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgICByZXN1bHQuc2V0KGFycmF5c1tpXS5zbGljZSgwLCBsZW5ndGggLSBvZmZzZXQpLCBvZmZzZXQpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdC5zZXQoYXJyYXlzW2ldLCBvZmZzZXQpO1xuICAgIG9mZnNldCArPSBhcnJheXNbaV0ubGVuZ3RoO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBjb25zdCB1dmFyaW50NjRUb0J1ZiA9ICh1aW50OiBudW1iZXIpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBudW1iZXJbXSA9IFtdO1xuICB3aGlsZSAodWludCA+PSAweDgwKSB7XG4gICAgcmVzdWx0LnB1c2goTnVtYmVyKChCaWdJbnQodWludCkgJiBCaWdJbnQoMHhmZikpIHwgQmlnSW50KDB4ODApKSk7XG4gICAgdWludCA9IE51bWJlcihCaWdJbnQodWludCkgPj4gQmlnSW50KDcpKTtcbiAgfVxuICByZXN1bHQucHVzaCh1aW50IHwgMCk7XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG59O1xuXG5leHBvcnQgY29uc3QgYnVmVG9VdmFyaW50NjQgPSAoYnVmZmVyOiBVaW50OEFycmF5KTogW251bWJlciwgVWludDhBcnJheV0gPT4ge1xuICBsZXQgeCA9IEJpZ0ludCgwKTtcbiAgbGV0IHMgPSBCaWdJbnQoMCk7XG5cbiAgLy8gVE9ETzogZml4IGxpbnRpbmcgZXJyb3JcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICBmb3IgKGxldCBpID0gMDsgdHJ1ZTsgaSsrKSB7XG4gICAgY29uc3QgYnl0ZSA9IGJ1ZmZlcltpXTtcblxuICAgIGlmIChpID4gOSB8fCAoaSA9PSA5ICYmIGJ5dGUgPiAxKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1aW50NjQgb3ZlcmZsb3cnKTtcbiAgICB9XG5cbiAgICBpZiAoYnl0ZSA8IDB4ODApIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIE51bWJlcihCaWdJbnQoeCkgfCAoQmlnSW50KGJ5dGUpIDw8IEJpZ0ludChzKSkpLFxuICAgICAgICBidWZmZXIuc2xpY2UoaSArIDEpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICB4IHw9IEJpZ0ludChieXRlICYgMHg3ZikgPDwgQmlnSW50KHMpO1xuICAgIHMgKz0gQmlnSW50KDcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdWludDY0VG9CdWZCaWdFbmRpYW4gPSAodWludDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICB3aGlsZSAoQmlnSW50KHVpbnQpID49IEJpZ0ludCgweGZmKSkge1xuICAgIHJlc3VsdC5wdXNoKE51bWJlcihCaWdJbnQodWludCkgJiBCaWdJbnQoMHhmZikpKTtcbiAgICB1aW50ID0gTnVtYmVyKEJpZ0ludCh1aW50KSA+PiBCaWdJbnQoOCkpO1xuICB9XG4gIHJlc3VsdC5wdXNoKE51bWJlcihCaWdJbnQodWludCkgfCBCaWdJbnQoMCkpKTtcbiAgd2hpbGUgKHJlc3VsdC5sZW5ndGggPCA4KSB7XG4gICAgcmVzdWx0LnB1c2goMCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdC5yZXZlcnNlKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhcmludDY0VG9CdWYgPSAoaW50OiBudW1iZXIpID0+IHtcbiAgbGV0IHV4ID0gQmlnSW50KGludCkgPDwgQmlnSW50KDEpO1xuICBpZiAoaW50IDwgMCkge1xuICAgIHV4ID0gfnV4O1xuICB9XG4gIHJldHVybiB1dmFyaW50NjRUb0J1ZihOdW1iZXIodXgpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWZUb1ZhcmludDY0ID0gKGJ1ZmZlcjogVWludDhBcnJheSk6IFtudW1iZXIsIFVpbnQ4QXJyYXldID0+IHtcbiAgY29uc3QgW3V4LCBuXSA9IGJ1ZlRvVXZhcmludDY0KGJ1ZmZlcik7XG4gIGxldCB4ID0gQmlnSW50KHV4KSA+PiBCaWdJbnQoMSk7XG4gIGlmICh1eCAmIDEpIHtcbiAgICB4ID0gfng7XG4gIH1cbiAgcmV0dXJuIFtOdW1iZXIoeCksIG5dO1xufTtcblxuaW50ZXJmYWNlIEJhc2U1OENoZWNrT3B0aW9ucyB7XG4gIG5ldHdvcms6IE5ldHdvcms7XG59XG5cbi8vIFdlIGFyZSBub3QgdXNpbmcgdGhlIG5hdGl2ZSB3ZWIgY3J5cHRvIEFQSSB0byBhY3R1YWxseSBnZW5lcmF0ZSBrZXlzXG4vLyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIHNlY3AyNTZrMSBjdXJ2ZS4gSW5zdGVhZCwgd2UgYXJlIHVzaW5nXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcGF1bG1pbGxyL25vYmxlLXNlY3AyNTZrMSB3aGljaCBpcyBhIGJyb3dzZXIgZnJpZW5kbHlcbi8vIGFsdGVybmF0aXZlIHRvIHRoZSBub2RlIGVsbGlwdGljIHBhY2thZ2Ugd2hpY2ggaXMgZmFyIHNtYWxsZXIgYW5kIG9ubHlcbi8vIGZvY3VzZXMgb24gc3VwcG9ydGluZyB0aGUgZWMgYWxnb3JpdGhtIHdlIGFyZSBhY3R1YWxseSBpbnRlcmVzdGVkIGluIGhlcmUuXG4vLyBJZiB0aGUgd2ViIGNyeXB0byBBUEkgZXZlciBhZGRzIHN1cHBvcnQgZm9yIHNlY3AyNTZrMSwgd2Ugc2hvdWxkIGNoYW5nZVxuLy8gdGhpcyB0byB1c2UgaXQuXG4vL1xuLy8gU2VlIHRoZSBmb2xsb3dpbmcgZm9yIG1vcmUgaW5mbzpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViY3J5cHRvL2lzc3Vlcy84MlxuLy9cbi8vIElmIHlvdSBkb24ndCBwcm92aWRlIGEgc2VlZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB5b3UgYW5kIGFcbi8vIHJhbmRvbSBrZXkgcGFpciB3aWxsIGJlIHJldHVybmVkLiBJZiB5b3UgZG8gcHJvdmlkZSBhIHNlZWQsIGl0IHNob3VsZCBiZSBhXG4vLyByYW5kb21seSBnZW5lcmF0ZWQgMzIgYnl0ZSB2YWx1ZSAoVWludDhBcnJheSBvZiBsZW5ndGggMzIgb3IgaGV4IHN0cmluZyBvZlxuLy8gbGVuZ3RoIDY0KVxuZXhwb3J0IGNvbnN0IGtleWdlbiA9IChzZWVkPzogc3RyaW5nIHwgVWludDhBcnJheSk6IEtleVBhaXIgPT4ge1xuICBjb25zdCBwcml2YXRlS2V5ID0gc2VlZCA/IG5vcm1hbGl6ZVNlZWQoc2VlZCkgOiBlY1V0aWxzLnJhbmRvbUJ5dGVzKDMyKTtcbiAgY29uc3Qgc2VlZEhleCA9IGVjVXRpbHMuYnl0ZXNUb0hleChwcml2YXRlS2V5KTtcblxuICByZXR1cm4ge1xuICAgIHNlZWRIZXgsXG4gICAgcHJpdmF0ZTogcHJpdmF0ZUtleSxcbiAgICBwdWJsaWM6IGdldFB1YmxpY0tleShwcml2YXRlS2V5LCB0cnVlIC8qIGlzQ29tcHJlc3NlZCAqLyksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVTZWVkID0gKHNlZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5ID0+IHtcbiAgaWYgKHR5cGVvZiBzZWVkID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlY1V0aWxzLmhleFRvQnl0ZXMoc2VlZCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNlZWQ7XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhIGNvdWxkIGJlIGEgaGV4IHN0cmluZyBvciBhIGJ5dGUgYXJyYXkgKFVpbnQ4QXJyYXkpXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3Qgc2hhMjU2WDIgPSAoZGF0YTogVWludDhBcnJheSB8IHN0cmluZyk6IFVpbnQ4QXJyYXkgPT4ge1xuICBjb25zdCBkID0gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnID8gZWNVdGlscy5oZXhUb0J5dGVzKGRhdGEpIDogZGF0YTtcbiAgcmV0dXJuIHNoYTI1NihzaGEyNTYoZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHB1YmxpY0tleVRvQmFzZTU4Q2hlY2sgPSAoXG4gIHB1YmxpY0tleUJ5dGVzOiBVaW50OEFycmF5LFxuICBvcHRpb25zPzogQmFzZTU4Q2hlY2tPcHRpb25zXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwcmVmaXggPSBQVUJMSUNfS0VZX1BSRUZJWEVTW29wdGlvbnM/Lm5ldHdvcmsgPz8gJ21haW5uZXQnXS5kZXNvO1xuICAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgYnM1OGNoZWNrIHBhY2thZ2UsIGJ1dCB3ZVxuICAvLyBzbGlnaHRseSBtb2RpZnkgaXQgdG8gdXNlIHRoZSBicm93c2VyIGZyaWVuZGx5IHZlcnNpb24gb2YgQnVmZmVyLmNvbmNhdC5cbiAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JzNThjaGVjay9ibG9iLzEyYjNlNzAwZjM1NWM1YzQ5ZDBiZTNmOGZjMjliZTZjNjZlNzUzZTkvYmFzZS5qcyNMMVxuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KFsuLi5wcmVmaXgsIC4uLnB1YmxpY0tleUJ5dGVzXSk7XG4gIGNvbnN0IGNoZWNrc3VtID0gc2hhMjU2WDIoYnl0ZXMpO1xuICByZXR1cm4gYnM1OC5lbmNvZGUoY29uY2F0VWludDhBcnJheXMoW2J5dGVzLCBjaGVja3N1bV0sIGJ5dGVzLmxlbmd0aCArIDQpKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbk9wdGlvbnMge1xuICBpc0Rlcml2ZWRLZXk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBzaWduID0gKG1zZ0hhc2hIZXg6IHN0cmluZywgcHJpdmF0ZUtleTogVWludDhBcnJheSkgPT4ge1xuICByZXR1cm4gZWNTaWduKG1zZ0hhc2hIZXgsIHByaXZhdGVLZXksIHtcbiAgICAvLyBGb3IgZGV0YWlscyBhYm91dCB0aGUgc2lnbmluZyBvcHRpb25zIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL3BhdWxtaWxsci9ub2JsZS1zZWNwMjU2azEjc2lnbm1zZ2hhc2gtcHJpdmF0ZWtleVxuICAgIGNhbm9uaWNhbDogdHJ1ZSxcbiAgICBkZXI6IHRydWUsXG4gICAgZXh0cmFFbnRyb3B5OiB0cnVlLFxuICAgIHJlY292ZXJlZDogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2lnblR4ID0gYXN5bmMgKFxuICB0eEhleDogc3RyaW5nLFxuICBzZWVkSGV4OiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBTaWduT3B0aW9uc1xuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgdHJhbnNhY3Rpb25CeXRlcyA9IGVjVXRpbHMuaGV4VG9CeXRlcyh0eEhleCk7XG4gIGNvbnN0IFtfLCB2MUZpZWxkc0J1ZmZlcl0gPSBUcmFuc2FjdGlvblYwLmZyb21CeXRlcyh0cmFuc2FjdGlvbkJ5dGVzKTtcbiAgY29uc3Qgc2lnbmF0dXJlSW5kZXggPSB0cmFuc2FjdGlvbkJ5dGVzLmxlbmd0aCAtIHYxRmllbGRzQnVmZmVyLmxlbmd0aCAtIDE7XG4gIGNvbnN0IHYwRmllbGRzV2l0aG91dFNpZ25hdHVyZSA9IHRyYW5zYWN0aW9uQnl0ZXMuc2xpY2UoMCwgc2lnbmF0dXJlSW5kZXgpO1xuICBjb25zdCBoYXNoZWRUeEJ5dGVzID0gc2hhMjU2WDIodHJhbnNhY3Rpb25CeXRlcyk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uSGFzaEhleCA9IGVjVXRpbHMuYnl0ZXNUb0hleChoYXNoZWRUeEJ5dGVzKTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGVjVXRpbHMuaGV4VG9CeXRlcyhzZWVkSGV4KTtcbiAgY29uc3QgW3NpZ25hdHVyZUJ5dGVzLCByZWNvdmVyeVBhcmFtXSA9IGF3YWl0IHNpZ24oXG4gICAgdHJhbnNhY3Rpb25IYXNoSGV4LFxuICAgIHByaXZhdGVLZXlcbiAgKTtcblxuICBjb25zdCBzaWduYXR1cmVMZW5ndGggPSB1dmFyaW50NjRUb0J1ZihzaWduYXR1cmVCeXRlcy5sZW5ndGgpO1xuXG4gIGlmIChvcHRpb25zPy5pc0Rlcml2ZWRLZXkpIHtcbiAgICBzaWduYXR1cmVCeXRlc1swXSArPSAxICsgcmVjb3ZlcnlQYXJhbTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uQnl0ZXMgPSBlY1V0aWxzLmNvbmNhdEJ5dGVzKFxuICAgIHYwRmllbGRzV2l0aG91dFNpZ25hdHVyZSxcbiAgICBzaWduYXR1cmVMZW5ndGgsXG4gICAgc2lnbmF0dXJlQnl0ZXMsXG4gICAgdjFGaWVsZHNCdWZmZXJcbiAgKTtcblxuICByZXR1cm4gZWNVdGlscy5ieXRlc1RvSGV4KHNpZ25lZFRyYW5zYWN0aW9uQnl0ZXMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNpZ25lZEpXVCA9IGFzeW5jIChcbiAgc2VlZEhleDogc3RyaW5nLFxuICBhbGc6IGp3dEFsZ29yaXRobSxcbiAge1xuICAgIGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICAvLyBUT0RPOiBhY3R1YWxseSBzdXBwb3J0IHRoaXMuLi4gb3IgcmVtb3ZlIGl0LlxuICAgIGV4cGlyYXRpb24sXG4gIH06IHtcbiAgICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG4gICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgfVxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgaGVhZGVyID0gSlNPTi5zdHJpbmdpZnkoeyBhbGcsIHR5cDogJ0pXVCcgfSk7XG4gIGNvbnN0IGlzc3VlZEF0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIGNvbnN0IHRoaXJ0eU1pbkZyb21Ob3cgPSBpc3N1ZWRBdCArIDMwICogNjA7XG4gIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgLi4uKGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjayA/IHsgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrIH0gOiB7fSksXG4gICAgaWF0OiBpc3N1ZWRBdCxcbiAgICBleHA6IHRoaXJ0eU1pbkZyb21Ob3csXG4gIH0pO1xuXG4gIGNvbnN0IGp3dCA9IGAke3VybFNhZmVCYXNlNjQoaGVhZGVyKX0uJHt1cmxTYWZlQmFzZTY0KHBheWxvYWQpfWA7XG4gIGNvbnN0IFtzaWduYXR1cmVdID0gYXdhaXQgc2lnbihcbiAgICBlY1V0aWxzLmJ5dGVzVG9IZXgoc2hhMjU2KG5ldyBVaW50OEFycmF5KG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShqd3QpKSkpLFxuICAgIGVjVXRpbHMuaGV4VG9CeXRlcyhzZWVkSGV4KVxuICApO1xuICBjb25zdCBlbmNvZGVkU2lnbmF0dXJlID0gZGVyVG9Kb3NlRW5jb2Rpbmcoc2lnbmF0dXJlKTtcblxuICByZXR1cm4gYCR7and0fS4ke2VuY29kZWRTaWduYXR1cmV9YDtcbn07XG5cbmZ1bmN0aW9uIHVybFNhZmVCYXNlNjQoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHdpbmRvd1xuICAgIC5idG9hKHN0cilcbiAgICAucmVwbGFjZSgvXFwrL2csICctJylcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAucmVwbGFjZSgvPS9nLCAnJyk7XG59XG5cbmV4cG9ydCBjb25zdCBlbmNyeXB0Q2hhdE1lc3NhZ2UgPSAoXG4gIHNlbmRlclNlZWRIZXg6IHN0cmluZyxcbiAgcmVjaXBpZW50UHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nXG4pID0+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGVjVXRpbHMuaGV4VG9CeXRlcyhzZW5kZXJTZWVkSGV4KTtcbiAgY29uc3QgcmVjaXBpZW50UHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQnl0ZXMoXG4gICAgcmVjaXBpZW50UHVibGljS2V5QmFzZTU4Q2hlY2tcbiAgKTtcbiAgY29uc3Qgc2hhcmVkUHJpdmF0ZUtleSA9IGdldFNoYXJlZFByaXZhdGVLZXkocHJpdmF0ZUtleSwgcmVjaXBpZW50UHVibGljS2V5KTtcbiAgY29uc3Qgc2hhcmVkUHVibGljS2V5ID0gZ2V0UHVibGljS2V5KHNoYXJlZFByaXZhdGVLZXkpO1xuXG4gIHJldHVybiBlbmNyeXB0KHNoYXJlZFB1YmxpY0tleSwgbWVzc2FnZSk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSBwdWJsaWNFbmNyeXB0aW9uS2V5IGNvdWxkIGJlIGluIHJhdyBieXRlcyBvciBiYXNlNThjaGVjayBmb3JtYXRcbiAqIEBwYXJhbSBwbGFpbnRleHRcbiAqIEByZXR1cm5zIGNpcGhlciB0ZXh0IGFzIGEgaGV4IHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZW5jcnlwdCA9IGFzeW5jIChcbiAgcHVibGljS2V5OiBVaW50OEFycmF5IHwgc3RyaW5nLFxuICBwbGFpbnRleHQ6IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgZXBoZW1Qcml2YXRlS2V5ID0gZWNVdGlscy5yYW5kb21CeXRlcygzMik7XG4gIGNvbnN0IGVwaGVtUHVibGljS2V5ID0gZ2V0UHVibGljS2V5KGVwaGVtUHJpdmF0ZUtleSk7XG4gIGNvbnN0IHB1YmxpY0tleUJ5dGVzID1cbiAgICB0eXBlb2YgcHVibGljS2V5ID09PSAnc3RyaW5nJyA/IGJzNThQdWJsaWNLZXlUb0J5dGVzKHB1YmxpY0tleSkgOiBwdWJsaWNLZXk7XG4gIGNvbnN0IHByaXZLZXkgPSBnZXRTaGFyZWRQcml2YXRlS2V5KGVwaGVtUHJpdmF0ZUtleSwgcHVibGljS2V5Qnl0ZXMpO1xuICBjb25zdCBlbmNyeXB0aW9uS2V5ID0gcHJpdktleS5zbGljZSgwLCAxNik7XG4gIGNvbnN0IGl2ID0gZWNVdGlscy5yYW5kb21CeXRlcygxNik7XG4gIGNvbnN0IG1hY0tleSA9IHNoYTI1Nihwcml2S2V5LnNsaWNlKDE2KSk7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHBsYWludGV4dCk7XG4gIGNvbnN0IGNyeXB0b0tleSA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgZW5jcnlwdGlvbktleSxcbiAgICAnQUVTLUNUUicsXG4gICAgdHJ1ZSxcbiAgICBbJ2VuY3J5cHQnXVxuICApO1xuICBjb25zdCBjaXBoZXJCeXRlcyA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5lbmNyeXB0KFxuICAgIHtcbiAgICAgIG5hbWU6ICdBRVMtQ1RSJyxcbiAgICAgIGNvdW50ZXI6IGl2LFxuICAgICAgbGVuZ3RoOiAxMjgsXG4gICAgfSxcbiAgICBjcnlwdG9LZXksXG4gICAgYnl0ZXNcbiAgKTtcbiAgY29uc3QgaG1hYyA9IGF3YWl0IGVjVXRpbHMuaG1hY1NoYTI1NihcbiAgICBtYWNLZXksXG4gICAgbmV3IFVpbnQ4QXJyYXkoWy4uLml2LCAuLi5uZXcgVWludDhBcnJheShjaXBoZXJCeXRlcyldKVxuICApO1xuXG4gIHJldHVybiBlY1V0aWxzLmJ5dGVzVG9IZXgoXG4gICAgbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgLi4uZXBoZW1QdWJsaWNLZXksXG4gICAgICAuLi5pdixcbiAgICAgIC4uLm5ldyBVaW50OEFycmF5KGNpcGhlckJ5dGVzKSxcbiAgICAgIC4uLmhtYWMsXG4gICAgXSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBiczU4UHVibGljS2V5VG9Db21wcmVzc2VkQnl0ZXMgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFzdHIpIHtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMzMpO1xuICB9XG4gIGNvbnN0IHB1YktleVVuY29tcHJlc3NlZCA9IGJzNThQdWJsaWNLZXlUb0J5dGVzKHN0cik7XG4gIHJldHVybiBQb2ludC5mcm9tSGV4KGVjVXRpbHMuYnl0ZXNUb0hleChwdWJLZXlVbmNvbXByZXNzZWQpKS50b1Jhd0J5dGVzKHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJzNThQdWJsaWNLZXlUb0J5dGVzID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJ5dGVzID0gYnM1OC5kZWNvZGUoc3RyKTtcbiAgY29uc3QgcGF5bG9hZCA9IGJ5dGVzLnNsaWNlKDAsIC00KTtcbiAgY29uc3QgY2hlY2tzdW1BID0gYnl0ZXMuc2xpY2UoLTQpO1xuICBjb25zdCBjaGVja3N1bUIgPSBzaGEyNTZYMihwYXlsb2FkKTtcblxuICBpZiAoXG4gICAgKGNoZWNrc3VtQVswXSBeIGNoZWNrc3VtQlswXSkgfFxuICAgIChjaGVja3N1bUFbMV0gXiBjaGVja3N1bUJbMV0pIHxcbiAgICAoY2hlY2tzdW1BWzJdIF4gY2hlY2tzdW1CWzJdKSB8XG4gICAgKGNoZWNrc3VtQVszXSBeIGNoZWNrc3VtQlszXSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNoZWNrc3VtJyk7XG4gIH1cblxuICByZXR1cm4gUG9pbnQuZnJvbUhleChlY1V0aWxzLmJ5dGVzVG9IZXgocGF5bG9hZC5zbGljZSgzKSkpLnRvUmF3Qnl0ZXMoZmFsc2UpO1xufTtcblxuY29uc3QgcmVnZXhNYWlubmV0ID0gL15CQ1sxLTlBLUhKLU5QLVphLWttLXpdezUzfSQvO1xuY29uc3QgcmVnZXhUZXN0bmV0ID0gL150QkNbMS05QS1ISi1OUC1aYS1rbS16XXs1MX0kLztcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRCUzU4UHVibGljS2V5ID0gKHB1YmxpY0tleTogc3RyaW5nLCBpc1Rlc3RuZXQgPSBmYWxzZSkgPT4ge1xuICBjb25zdCByZWdleFBhdHRlcm4gPSBpc1Rlc3RuZXQgPyByZWdleFRlc3RuZXQgOiByZWdleE1haW5uZXQ7XG4gIGlmICghcmVnZXhQYXR0ZXJuLnRlc3QocHVibGljS2V5KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGJzNThQdWJsaWNLZXlUb0J5dGVzKHB1YmxpY0tleSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmNvbnN0IGlzVmFsaWRIbWFjID0gKGNhbmRpZGF0ZTogVWludDhBcnJheSwga25vd25Hb29kOiBVaW50OEFycmF5KSA9PiB7XG4gIGlmIChjYW5kaWRhdGUubGVuZ3RoICE9PSBrbm93bkdvb2QubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrbm93bkdvb2QubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoY2FuZGlkYXRlW2ldICE9PSBrbm93bkdvb2RbaV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWNyeXB0Q2hhdE1lc3NhZ2UgPSBhc3luYyAoXG4gIHJlY2lwaWVudFNlZWRIZXg6IHN0cmluZyxcbiAgcHVibGljRGVjcnlwdGlvbktleTogc3RyaW5nLFxuICBjaXBoZXJUZXh0SGV4OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBwcml2YXRlS2V5ID0gZWNVdGlscy5oZXhUb0J5dGVzKHJlY2lwaWVudFNlZWRIZXgpO1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCBiczU4UHVibGljS2V5VG9CeXRlcyhwdWJsaWNEZWNyeXB0aW9uS2V5KTtcbiAgY29uc3Qgc2hhcmVkUHJpdmF0ZUtleSA9IGF3YWl0IGdldFNoYXJlZFByaXZhdGVLZXkocHJpdmF0ZUtleSwgcHVibGljS2V5KTtcbiAgcmV0dXJuIGRlY3J5cHQoc2hhcmVkUHJpdmF0ZUtleSwgY2lwaGVyVGV4dEhleCk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVjcnlwdCA9IGFzeW5jIChcbiAgcHJpdmF0ZURlY3J5cHRpb25LZXk6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsXG4gIGNpcGhlclRleHRIZXg6IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IGNpcGhlckJ5dGVzID0gZWNVdGlscy5oZXhUb0J5dGVzKGNpcGhlclRleHRIZXgpO1xuICBjb25zdCBtZXRhTGVuZ3RoID0gMTEzO1xuXG4gIGlmIChjaXBoZXJCeXRlcy5sZW5ndGggPCBtZXRhTGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNpcGhlciB0ZXh0LiBkYXRhIHRvbyBzbWFsbC4nKTtcbiAgfVxuXG4gIGlmICghKGNpcGhlckJ5dGVzWzBdID49IDIgJiYgY2lwaGVyQnl0ZXNbMF0gPD0gNCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY2lwaGVyIHRleHQuJyk7XG4gIH1cblxuICBjb25zdCBwcml2YXRlS2V5ID0gbm9ybWFsaXplU2VlZChwcml2YXRlRGVjcnlwdGlvbktleSk7XG4gIGNvbnN0IGVwaGVtUHVibGljS2V5ID0gY2lwaGVyQnl0ZXMuc2xpY2UoMCwgNjUpO1xuICBjb25zdCBjaXBoZXJUZXh0TGVuZ3RoID0gY2lwaGVyQnl0ZXMubGVuZ3RoIC0gbWV0YUxlbmd0aDtcbiAgY29uc3QgaXYgPSBjaXBoZXJCeXRlcy5zbGljZSg2NSwgNjUgKyAxNik7XG4gIGNvbnN0IGNpcGhlckFuZEl2ID0gY2lwaGVyQnl0ZXMuc2xpY2UoNjUsIDY1ICsgMTYgKyBjaXBoZXJUZXh0TGVuZ3RoKTtcbiAgY29uc3QgY2lwaGVyVGV4dCA9IGNpcGhlckFuZEl2LnNsaWNlKDE2KTtcbiAgY29uc3QgbXNnTWFjID0gY2lwaGVyQnl0ZXMuc2xpY2UoNjUgKyAxNiArIGNpcGhlclRleHRMZW5ndGgpO1xuICBjb25zdCBzaGFyZWRTZWNyZXRLZXkgPSBhd2FpdCBnZXRTaGFyZWRQcml2YXRlS2V5KHByaXZhdGVLZXksIGVwaGVtUHVibGljS2V5KTtcbiAgY29uc3QgZW5jcnlwdGlvbktleSA9IHNoYXJlZFNlY3JldEtleS5zbGljZSgwLCAxNik7XG4gIGNvbnN0IG1hY0tleSA9IHNoYTI1NihzaGFyZWRTZWNyZXRLZXkuc2xpY2UoMTYpKTtcbiAgY29uc3QgaG1hY0tub3duR29vZCA9IGF3YWl0IGVjVXRpbHMuaG1hY1NoYTI1NihtYWNLZXksIGNpcGhlckFuZEl2KTtcblxuICBpZiAoIWlzVmFsaWRIbWFjKG1zZ01hYywgaG1hY0tub3duR29vZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2luY29ycmVjdCBNQUMnKTtcbiAgfVxuXG4gIGNvbnN0IGNyeXB0b0tleSA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgZW5jcnlwdGlvbktleSxcbiAgICAnQUVTLUNUUicsXG4gICAgdHJ1ZSxcbiAgICBbJ2RlY3J5cHQnXVxuICApO1xuXG4gIGNvbnN0IGRlY3J5cHRlZEJ1ZmZlciA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5kZWNyeXB0KFxuICAgIHsgbmFtZTogJ0FFUy1DVFInLCBjb3VudGVyOiBpdiwgbGVuZ3RoOiAxMjggfSxcbiAgICBjcnlwdG9LZXksXG4gICAgY2lwaGVyVGV4dFxuICApO1xuXG4gIHJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZGVjcnlwdGVkQnVmZmVyKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTaGFyZWRQcml2YXRlS2V5ID0gKFxuICBwcml2S2V5OiBVaW50OEFycmF5LFxuICBwdWJLZXk6IFVpbnQ4QXJyYXlcbikgPT4ge1xuICBjb25zdCBzaGFyZWRTZWNyZXQgPSBnZXRTaGFyZWRTZWNyZXQocHJpdktleSwgcHViS2V5KTtcblxuICByZXR1cm4ga2RmKHNoYXJlZFNlY3JldCwgMzIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZVB1YmxpY0tleSA9IGFzeW5jIChwdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGRlY29kZWQgPSBhd2FpdCBiczU4UHVibGljS2V5VG9CeXRlcyhwdWJsaWNLZXlCYXNlNThDaGVjayk7XG4gIGNvbnN0IHdpdGhQcmVmaXhSZW1vdmVkID0gZGVjb2RlZC5zbGljZSgzKTtcbiAgY29uc3Qgc2VuZGVyUHViS2V5SGV4ID0gZWNVdGlscy5ieXRlc1RvSGV4KHdpdGhQcmVmaXhSZW1vdmVkKTtcblxuICByZXR1cm4gUG9pbnQuZnJvbUhleChzZW5kZXJQdWJLZXlIZXgpLnRvUmF3Qnl0ZXMoZmFsc2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZFNlY3JldCA9IChwcml2S2V5OiBVaW50OEFycmF5LCBwdWJLZXk6IFVpbnQ4QXJyYXkpID0+IHtcbiAgLy8gcGFzc2luZyB0cnVlIHRvIGNvbXByZXNzIHRoZSBwdWJsaWMga2V5LCBhbmQgdGhlbiBzbGljaW5nIG9mZiB0aGUgZmlyc3QgYnl0ZVxuICAvLyBtYXRjaGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBkZXJpdmUgaW4gdGhlIGVsbGlwdGljIHBhY2thZ2UuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsbWlsbHIvbm9ibGUtc2VjcDI1NmsxL2lzc3Vlcy8yOCNpc3N1ZWNvbW1lbnQtOTQ2NTM4MDM3XG4gIHJldHVybiBub2JsZUdldFNoYXJlZFNlY3JldChwcml2S2V5LCBwdWJLZXksIHRydWUpLnNsaWNlKDEpO1xufTtcblxuLy8gdGFrZW4gZnJvbSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gaW4gdGhlIGRlc28gY2hhdCBhcHA6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZGVzby1wcm90b2NvbC9hY2Nlc3MtZ3JvdXAtbWVzc2FnaW5nLWFwcC9ibG9iL2NkNWMyMzdmNWU1NzI5MTk2YWFjMGRhMTYxZDA4NTFiZGU3ODA5MmMvc3JjL3NlcnZpY2VzL2NyeXB0by11dGlscy5zZXJ2aWNlLnRzeCNMOTFcbmV4cG9ydCBjb25zdCBrZGYgPSAoc2VjcmV0OiBVaW50OEFycmF5LCBvdXRwdXRMZW5ndGg6IG51bWJlcikgPT4ge1xuICBsZXQgY3RyID0gMTtcbiAgbGV0IHdyaXR0ZW4gPSAwO1xuICBsZXQgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkoKTtcblxuICB3aGlsZSAod3JpdHRlbiA8IG91dHB1dExlbmd0aCkge1xuICAgIGNvbnN0IGhhc2ggPSBzaGEyNTYoXG4gICAgICBuZXcgVWludDhBcnJheShbXG4gICAgICAgIC4uLm5ldyBVaW50OEFycmF5KFtjdHIgPj4gMjQsIGN0ciA+PiAxNiwgY3RyID4+IDgsIGN0cl0pLFxuICAgICAgICAuLi5zZWNyZXQsXG4gICAgICBdKVxuICAgICk7XG4gICAgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkoWy4uLnJlc3VsdCwgLi4uaGFzaF0pO1xuICAgIHdyaXR0ZW4gKz0gMzI7XG4gICAgY3RyICs9IDE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVGhpcyBpcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGRlclRvSm9zZSBmdW5jdGlvbiBmcm9tXG4vLyBodHRwczovL2dpdGh1Yi5jb20vQnJpZ2h0c3BhY2Uvbm9kZS1lY2RzYS1zaWctZm9ybWF0dGVyL2Jsb2IvY2EyNWEyZmQ1YWU5ZGQ4NTAzNjA4MTYzMjkzNmU4MDJhNDdhMTI4OS9zcmMvZWNkc2Etc2lnLWZvcm1hdHRlci5qcyNMMzJcbi8vIFRoZSBvcmlnaW5hbCBwYWNrYWdlIGlzIG5vdCBicm93c2VyIGZyaWVuZGx5IGFuZCByZXF1aXJlcyBub2RlIHBvbHlmaWxscy4gV2Vcbi8vIGFsc28gZG9uJ3QgbmVlZCB0byBiZSBxdWl0ZSBhcyBkZWZlbnNpdmUgYXMgdGhlIG9yaWdpbmFsIHBhY2thZ2Ugc2luY2Ugd2Vcbi8vIGhhdmUgZnVsbCBjb250cm9sIG9mIHRoZSBpbnB1dC5cbmZ1bmN0aW9uIGRlclRvSm9zZUVuY29kaW5nKHNpZ25hdHVyZTogVWludDhBcnJheSkge1xuICBjb25zdCBwYXJhbUJ5dGVzID0gMzI7XG5cbiAgbGV0IG9mZnNldCA9IDM7XG4gIGNvbnN0IHJMZW5ndGggPSBzaWduYXR1cmVbb2Zmc2V0XTtcbiAgb2Zmc2V0ICs9IDE7XG4gIGNvbnN0IHJPZmZzZXQgPSBvZmZzZXQ7XG4gIG9mZnNldCArPSByTGVuZ3RoICsgMTtcbiAgY29uc3Qgc0xlbmd0aCA9IHNpZ25hdHVyZVtvZmZzZXRdO1xuICBvZmZzZXQgKz0gMTtcbiAgY29uc3Qgc09mZnNldCA9IG9mZnNldDtcbiAgb2Zmc2V0ICs9IHNMZW5ndGg7XG5cbiAgY29uc3QgclBhZGRpbmcgPSBwYXJhbUJ5dGVzIC0gckxlbmd0aDtcbiAgY29uc3Qgc1BhZGRpbmcgPSBwYXJhbUJ5dGVzIC0gc0xlbmd0aDtcblxuICBjb25zdCBvdXRQdXQgPSBuZXcgVWludDhBcnJheShyUGFkZGluZyArIHJMZW5ndGggKyBzUGFkZGluZyArIHNMZW5ndGgpO1xuXG4gIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgclBhZGRpbmc7ICsrb2Zmc2V0KSB7XG4gICAgb3V0UHV0W29mZnNldF0gPSAwO1xuICB9XG5cbiAgb3V0UHV0LnNldChcbiAgICBzaWduYXR1cmUuc2xpY2Uock9mZnNldCArIE1hdGgubWF4KC1yUGFkZGluZywgMCksIHJPZmZzZXQgKyByTGVuZ3RoKSxcbiAgICBvZmZzZXRcbiAgKTtcblxuICBvZmZzZXQgPSBwYXJhbUJ5dGVzO1xuXG4gIGZvciAoY29uc3QgbyA9IG9mZnNldDsgb2Zmc2V0IDwgbyArIHNQYWRkaW5nOyArK29mZnNldCkge1xuICAgIG91dFB1dFtvZmZzZXRdID0gMDtcbiAgfVxuXG4gIG91dFB1dC5zZXQoXG4gICAgc2lnbmF0dXJlLnNsaWNlKHNPZmZzZXQgKyBNYXRoLm1heCgtc1BhZGRpbmcsIDApLCBzT2Zmc2V0ICsgc0xlbmd0aCksXG4gICAgb2Zmc2V0XG4gICk7XG5cbiAgY29uc3Qgb3V0cHV0Q2hhcnMgPSBvdXRQdXQucmVkdWNlKFxuICAgIChkYXRhLCBieXRlKSA9PiBkYXRhICsgU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKSxcbiAgICAnJ1xuICApO1xuXG4gIHJldHVybiB1cmxTYWZlQmFzZTY0KG91dHB1dENoYXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZUFjY2Vzc0dyb3VwS2V5UGFpcihcbiAgcHJpdmF0ZUtleUhleDogc3RyaW5nLFxuICBncm91cEtleU5hbWU6IHN0cmluZ1xuKTogS2V5UGFpciB7XG4gIGNvbnN0IHNlY3JldEhhc2ggPSBzaGEyNTZYMihwcml2YXRlS2V5SGV4KTtcbiAgY29uc3Qga2V5TmFtZUhhc2ggPSBzaGEyNTZYMihuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZ3JvdXBLZXlOYW1lKSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBzaGEyNTZYMihuZXcgVWludDhBcnJheShbLi4uc2VjcmV0SGFzaCwgLi4ua2V5TmFtZUhhc2hdKSk7XG5cbiAgcmV0dXJuIGtleWdlbihwcml2YXRlS2V5KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lkZW50aXR5L2NyeXB0by11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLElBQUksTUFBTSxFQUNkLEtBQUssSUFBSSxPQUFPLEVBQ2hCLFlBQVksRUFDWixlQUFlLElBQUksb0JBQW9CLEdBQ3hDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQW9CLEVBQUUsTUFBZTtJQUNyRSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMvRDtJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUss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QUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdAbm9ibGUvaGFzaGVzL3NoYTI1Nic7XG5pbXBvcnQge1xuICBQb2ludCxcbiAgc2lnbiBhcyBlY1NpZ24sXG4gIHV0aWxzIGFzIGVjVXRpbHMsXG4gIGdldFB1YmxpY0tleSxcbiAgZ2V0U2hhcmVkU2VjcmV0IGFzIG5vYmxlR2V0U2hhcmVkU2VjcmV0LFxufSBmcm9tICdAbm9ibGUvc2VjcDI1NmsxJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IHsgUFVCTElDX0tFWV9QUkVGSVhFUyB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVjAgfSBmcm9tICcuL3RyYW5zYWN0aW9uLXRyYW5zY29kZXJzLmpzJztcbmltcG9ydCB7IEtleVBhaXIsIE5ldHdvcmssIGp3dEFsZ29yaXRobSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBCcm93c2VyIGZyaWVuZGx5IHZlcnNpb24gb2Ygbm9kZSdzIEJ1ZmZlci5jb25jYXQuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0VWludDhBcnJheXMoYXJyYXlzOiBVaW50OEFycmF5W10sIGxlbmd0aD86IG51bWJlcikge1xuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSBhcnJheXMucmVkdWNlKChhY2MsIGFycmF5KSA9PiBhY2MgKyBhcnJheS5sZW5ndGgsIDApO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gIGxldCBvZmZzZXQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChvZmZzZXQgKyBhcnJheXNbaV0ubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgICByZXN1bHQuc2V0KGFycmF5c1tpXS5zbGljZSgwLCBsZW5ndGggLSBvZmZzZXQpLCBvZmZzZXQpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdC5zZXQoYXJyYXlzW2ldLCBvZmZzZXQpO1xuICAgIG9mZnNldCArPSBhcnJheXNbaV0ubGVuZ3RoO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBjb25zdCB1dmFyaW50NjRUb0J1ZiA9ICh1aW50OiBudW1iZXIpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBudW1iZXJbXSA9IFtdO1xuICB3aGlsZSAodWludCA+PSAweDgwKSB7XG4gICAgcmVzdWx0LnB1c2goTnVtYmVyKChCaWdJbnQodWludCkgJiBCaWdJbnQoMHhmZikpIHwgQmlnSW50KDB4ODApKSk7XG4gICAgdWludCA9IE51bWJlcihCaWdJbnQodWludCkgPj4gQmlnSW50KDcpKTtcbiAgfVxuICByZXN1bHQucHVzaCh1aW50IHwgMCk7XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG59O1xuXG5leHBvcnQgY29uc3QgYnVmVG9VdmFyaW50NjQgPSAoYnVmZmVyOiBVaW50OEFycmF5KTogW251bWJlciwgVWludDhBcnJheV0gPT4ge1xuICBsZXQgeCA9IEJpZ0ludCgwKTtcbiAgbGV0IHMgPSBCaWdJbnQoMCk7XG5cbiAgLy8gVE9ETzogZml4IGxpbnRpbmcgZXJyb3JcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICBmb3IgKGxldCBpID0gMDsgdHJ1ZTsgaSsrKSB7XG4gICAgY29uc3QgYnl0ZSA9IGJ1ZmZlcltpXTtcblxuICAgIGlmIChpID4gOSB8fCAoaSA9PSA5ICYmIGJ5dGUgPiAxKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1aW50NjQgb3ZlcmZsb3cnKTtcbiAgICB9XG5cbiAgICBpZiAoYnl0ZSA8IDB4ODApIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIE51bWJlcihCaWdJbnQoeCkgfCAoQmlnSW50KGJ5dGUpIDw8IEJpZ0ludChzKSkpLFxuICAgICAgICBidWZmZXIuc2xpY2UoaSArIDEpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICB4IHw9IEJpZ0ludChieXRlICYgMHg3ZikgPDwgQmlnSW50KHMpO1xuICAgIHMgKz0gQmlnSW50KDcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdWludDY0VG9CdWZCaWdFbmRpYW4gPSAodWludDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICB3aGlsZSAoQmlnSW50KHVpbnQpID49IEJpZ0ludCgweGZmKSkge1xuICAgIHJlc3VsdC5wdXNoKE51bWJlcihCaWdJbnQodWludCkgJiBCaWdJbnQoMHhmZikpKTtcbiAgICB1aW50ID0gTnVtYmVyKEJpZ0ludCh1aW50KSA+PiBCaWdJbnQoOCkpO1xuICB9XG4gIHJlc3VsdC5wdXNoKE51bWJlcihCaWdJbnQodWludCkgfCBCaWdJbnQoMCkpKTtcbiAgd2hpbGUgKHJlc3VsdC5sZW5ndGggPCA4KSB7XG4gICAgcmVzdWx0LnB1c2goMCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdC5yZXZlcnNlKCkpO1xufTtcblxuaW50ZXJmYWNlIEJhc2U1OENoZWNrT3B0aW9ucyB7XG4gIG5ldHdvcms6IE5ldHdvcms7XG59XG5cbi8vIFdlIGFyZSBub3QgdXNpbmcgdGhlIG5hdGl2ZSB3ZWIgY3J5cHRvIEFQSSB0byBhY3R1YWxseSBnZW5lcmF0ZSBrZXlzXG4vLyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgdGhlIHNlY3AyNTZrMSBjdXJ2ZS4gSW5zdGVhZCwgd2UgYXJlIHVzaW5nXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcGF1bG1pbGxyL25vYmxlLXNlY3AyNTZrMSB3aGljaCBpcyBhIGJyb3dzZXIgZnJpZW5kbHlcbi8vIGFsdGVybmF0aXZlIHRvIHRoZSBub2RlIGVsbGlwdGljIHBhY2thZ2Ugd2hpY2ggaXMgZmFyIHNtYWxsZXIgYW5kIG9ubHlcbi8vIGZvY3VzZXMgb24gc3VwcG9ydGluZyB0aGUgZWMgYWxnb3JpdGhtIHdlIGFyZSBhY3R1YWxseSBpbnRlcmVzdGVkIGluIGhlcmUuXG4vLyBJZiB0aGUgd2ViIGNyeXB0byBBUEkgZXZlciBhZGRzIHN1cHBvcnQgZm9yIHNlY3AyNTZrMSwgd2Ugc2hvdWxkIGNoYW5nZVxuLy8gdGhpcyB0byB1c2UgaXQuXG4vL1xuLy8gU2VlIHRoZSBmb2xsb3dpbmcgZm9yIG1vcmUgaW5mbzpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViY3J5cHRvL2lzc3Vlcy84MlxuLy9cbi8vIElmIHlvdSBkb24ndCBwcm92aWRlIGEgc2VlZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB5b3UgYW5kIGFcbi8vIHJhbmRvbSBrZXkgcGFpciB3aWxsIGJlIHJldHVybmVkLiBJZiB5b3UgZG8gcHJvdmlkZSBhIHNlZWQsIGl0IHNob3VsZCBiZSBhXG4vLyByYW5kb21seSBnZW5lcmF0ZWQgMzIgYnl0ZSB2YWx1ZSAoVWludDhBcnJheSBvZiBsZW5ndGggMzIgb3IgaGV4IHN0cmluZyBvZlxuLy8gbGVuZ3RoIDY0KVxuZXhwb3J0IGNvbnN0IGtleWdlbiA9IChzZWVkPzogc3RyaW5nIHwgVWludDhBcnJheSk6IEtleVBhaXIgPT4ge1xuICBjb25zdCBwcml2YXRlS2V5ID0gc2VlZCA/IG5vcm1hbGl6ZVNlZWQoc2VlZCkgOiBlY1V0aWxzLnJhbmRvbUJ5dGVzKDMyKTtcbiAgY29uc3Qgc2VlZEhleCA9IGVjVXRpbHMuYnl0ZXNUb0hleChwcml2YXRlS2V5KTtcblxuICByZXR1cm4ge1xuICAgIHNlZWRIZXgsXG4gICAgcHJpdmF0ZTogcHJpdmF0ZUtleSxcbiAgICBwdWJsaWM6IGdldFB1YmxpY0tleShwcml2YXRlS2V5LCB0cnVlIC8qIGlzQ29tcHJlc3NlZCAqLyksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVTZWVkID0gKHNlZWQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5ID0+IHtcbiAgaWYgKHR5cGVvZiBzZWVkID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlY1V0aWxzLmhleFRvQnl0ZXMoc2VlZCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNlZWQ7XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhIGNvdWxkIGJlIGEgaGV4IHN0cmluZyBvciBhIGJ5dGUgYXJyYXkgKFVpbnQ4QXJyYXkpXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3Qgc2hhMjU2WDIgPSAoZGF0YTogVWludDhBcnJheSB8IHN0cmluZyk6IFVpbnQ4QXJyYXkgPT4ge1xuICBjb25zdCBkID0gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnID8gZWNVdGlscy5oZXhUb0J5dGVzKGRhdGEpIDogZGF0YTtcbiAgcmV0dXJuIHNoYTI1NihzaGEyNTYoZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHB1YmxpY0tleVRvQmFzZTU4Q2hlY2sgPSAoXG4gIHB1YmxpY0tleUJ5dGVzOiBVaW50OEFycmF5LFxuICBvcHRpb25zPzogQmFzZTU4Q2hlY2tPcHRpb25zXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwcmVmaXggPSBQVUJMSUNfS0VZX1BSRUZJWEVTW29wdGlvbnM/Lm5ldHdvcmsgPz8gJ21haW5uZXQnXS5kZXNvO1xuICAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgYnM1OGNoZWNrIHBhY2thZ2UsIGJ1dCB3ZVxuICAvLyBzbGlnaHRseSBtb2RpZnkgaXQgdG8gdXNlIHRoZSBicm93c2VyIGZyaWVuZGx5IHZlcnNpb24gb2YgQnVmZmVyLmNvbmNhdC5cbiAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JzNThjaGVjay9ibG9iLzEyYjNlNzAwZjM1NWM1YzQ5ZDBiZTNmOGZjMjliZTZjNjZlNzUzZTkvYmFzZS5qcyNMMVxuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KFsuLi5wcmVmaXgsIC4uLnB1YmxpY0tleUJ5dGVzXSk7XG4gIGNvbnN0IGNoZWNrc3VtID0gc2hhMjU2WDIoYnl0ZXMpO1xuICByZXR1cm4gYnM1OC5lbmNvZGUoY29uY2F0VWludDhBcnJheXMoW2J5dGVzLCBjaGVja3N1bV0sIGJ5dGVzLmxlbmd0aCArIDQpKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbk9wdGlvbnMge1xuICBpc0Rlcml2ZWRLZXk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBzaWduID0gKG1zZ0hhc2hIZXg6IHN0cmluZywgcHJpdmF0ZUtleTogVWludDhBcnJheSkgPT4ge1xuICByZXR1cm4gZWNTaWduKG1zZ0hhc2hIZXgsIHByaXZhdGVLZXksIHtcbiAgICAvLyBGb3IgZGV0YWlscyBhYm91dCB0aGUgc2lnbmluZyBvcHRpb25zIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL3BhdWxtaWxsci9ub2JsZS1zZWNwMjU2azEjc2lnbm1zZ2hhc2gtcHJpdmF0ZWtleVxuICAgIGNhbm9uaWNhbDogdHJ1ZSxcbiAgICBkZXI6IHRydWUsXG4gICAgZXh0cmFFbnRyb3B5OiB0cnVlLFxuICAgIHJlY292ZXJlZDogdHJ1ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2lnblR4ID0gYXN5bmMgKFxuICB0eEhleDogc3RyaW5nLFxuICBzZWVkSGV4OiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBTaWduT3B0aW9uc1xuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgdHJhbnNhY3Rpb25CeXRlcyA9IGVjVXRpbHMuaGV4VG9CeXRlcyh0eEhleCk7XG4gIGNvbnN0IFtfLCB2MUZpZWxkc0J1ZmZlcl0gPSBUcmFuc2FjdGlvblYwLmZyb21CeXRlcyh0cmFuc2FjdGlvbkJ5dGVzKTtcbiAgY29uc3Qgc2lnbmF0dXJlSW5kZXggPSB0cmFuc2FjdGlvbkJ5dGVzLmxlbmd0aCAtIHYxRmllbGRzQnVmZmVyLmxlbmd0aCAtIDE7XG4gIGNvbnN0IHYwRmllbGRzV2l0aG91dFNpZ25hdHVyZSA9IHRyYW5zYWN0aW9uQnl0ZXMuc2xpY2UoMCwgc2lnbmF0dXJlSW5kZXgpO1xuICBjb25zdCBoYXNoZWRUeEJ5dGVzID0gc2hhMjU2WDIodHJhbnNhY3Rpb25CeXRlcyk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uSGFzaEhleCA9IGVjVXRpbHMuYnl0ZXNUb0hleChoYXNoZWRUeEJ5dGVzKTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGVjVXRpbHMuaGV4VG9CeXRlcyhzZWVkSGV4KTtcbiAgY29uc3QgW3NpZ25hdHVyZUJ5dGVzLCByZWNvdmVyeVBhcmFtXSA9IGF3YWl0IHNpZ24oXG4gICAgdHJhbnNhY3Rpb25IYXNoSGV4LFxuICAgIHByaXZhdGVLZXlcbiAgKTtcblxuICBjb25zdCBzaWduYXR1cmVMZW5ndGggPSB1dmFyaW50NjRUb0J1ZihzaWduYXR1cmVCeXRlcy5sZW5ndGgpO1xuXG4gIGlmIChvcHRpb25zPy5pc0Rlcml2ZWRLZXkpIHtcbiAgICBzaWduYXR1cmVCeXRlc1swXSArPSAxICsgcmVjb3ZlcnlQYXJhbTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uQnl0ZXMgPSBlY1V0aWxzLmNvbmNhdEJ5dGVzKFxuICAgIHYwRmllbGRzV2l0aG91dFNpZ25hdHVyZSxcbiAgICBzaWduYXR1cmVMZW5ndGgsXG4gICAgc2lnbmF0dXJlQnl0ZXMsXG4gICAgdjFGaWVsZHNCdWZmZXJcbiAgKTtcblxuICByZXR1cm4gZWNVdGlscy5ieXRlc1RvSGV4KHNpZ25lZFRyYW5zYWN0aW9uQnl0ZXMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNpZ25lZEpXVCA9IGFzeW5jIChcbiAgc2VlZEhleDogc3RyaW5nLFxuICBhbGc6IGp3dEFsZ29yaXRobSxcbiAge1xuICAgIGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICAvLyBUT0RPOiBhY3R1YWxseSBzdXBwb3J0IHRoaXMuLi4gb3IgcmVtb3ZlIGl0LlxuICAgIGV4cGlyYXRpb24sXG4gIH06IHtcbiAgICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG4gICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgfVxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgaGVhZGVyID0gSlNPTi5zdHJpbmdpZnkoeyBhbGcsIHR5cDogJ0pXVCcgfSk7XG4gIGNvbnN0IGlzc3VlZEF0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIGNvbnN0IHRoaXJ0eU1pbkZyb21Ob3cgPSBpc3N1ZWRBdCArIDMwICogNjA7XG4gIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgLi4uKGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjayA/IHsgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrIH0gOiB7fSksXG4gICAgaWF0OiBpc3N1ZWRBdCxcbiAgICBleHA6IHRoaXJ0eU1pbkZyb21Ob3csXG4gIH0pO1xuXG4gIGNvbnN0IGp3dCA9IGAke3VybFNhZmVCYXNlNjQoaGVhZGVyKX0uJHt1cmxTYWZlQmFzZTY0KHBheWxvYWQpfWA7XG4gIGNvbnN0IFtzaWduYXR1cmVdID0gYXdhaXQgc2lnbihcbiAgICBlY1V0aWxzLmJ5dGVzVG9IZXgoc2hhMjU2KG5ldyBVaW50OEFycmF5KG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShqd3QpKSkpLFxuICAgIGVjVXRpbHMuaGV4VG9CeXRlcyhzZWVkSGV4KVxuICApO1xuICBjb25zdCBlbmNvZGVkU2lnbmF0dXJlID0gZGVyVG9Kb3NlRW5jb2Rpbmcoc2lnbmF0dXJlKTtcblxuICByZXR1cm4gYCR7and0fS4ke2VuY29kZWRTaWduYXR1cmV9YDtcbn07XG5cbmZ1bmN0aW9uIHVybFNhZmVCYXNlNjQoc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHdpbmRvd1xuICAgIC5idG9hKHN0cilcbiAgICAucmVwbGFjZSgvXFwrL2csICctJylcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAucmVwbGFjZSgvPS9nLCAnJyk7XG59XG5cbmV4cG9ydCBjb25zdCBlbmNyeXB0Q2hhdE1lc3NhZ2UgPSAoXG4gIHNlbmRlclNlZWRIZXg6IHN0cmluZyxcbiAgcmVjaXBpZW50UHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nXG4pID0+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGVjVXRpbHMuaGV4VG9CeXRlcyhzZW5kZXJTZWVkSGV4KTtcbiAgY29uc3QgcmVjaXBpZW50UHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQnl0ZXMoXG4gICAgcmVjaXBpZW50UHVibGljS2V5QmFzZTU4Q2hlY2tcbiAgKTtcbiAgY29uc3Qgc2hhcmVkUHJpdmF0ZUtleSA9IGdldFNoYXJlZFByaXZhdGVLZXkocHJpdmF0ZUtleSwgcmVjaXBpZW50UHVibGljS2V5KTtcbiAgY29uc3Qgc2hhcmVkUHVibGljS2V5ID0gZ2V0UHVibGljS2V5KHNoYXJlZFByaXZhdGVLZXkpO1xuXG4gIHJldHVybiBlbmNyeXB0KHNoYXJlZFB1YmxpY0tleSwgbWVzc2FnZSk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSBwdWJsaWNFbmNyeXB0aW9uS2V5IGNvdWxkIGJlIGluIHJhdyBieXRlcyBvciBiYXNlNThjaGVjayBmb3JtYXRcbiAqIEBwYXJhbSBwbGFpbnRleHRcbiAqIEByZXR1cm5zIGNpcGhlciB0ZXh0IGFzIGEgaGV4IHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZW5jcnlwdCA9IGFzeW5jIChcbiAgcHVibGljS2V5OiBVaW50OEFycmF5IHwgc3RyaW5nLFxuICBwbGFpbnRleHQ6IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgZXBoZW1Qcml2YXRlS2V5ID0gZWNVdGlscy5yYW5kb21CeXRlcygzMik7XG4gIGNvbnN0IGVwaGVtUHVibGljS2V5ID0gZ2V0UHVibGljS2V5KGVwaGVtUHJpdmF0ZUtleSk7XG4gIGNvbnN0IHB1YmxpY0tleUJ5dGVzID1cbiAgICB0eXBlb2YgcHVibGljS2V5ID09PSAnc3RyaW5nJyA/IGJzNThQdWJsaWNLZXlUb0J5dGVzKHB1YmxpY0tleSkgOiBwdWJsaWNLZXk7XG4gIGNvbnN0IHByaXZLZXkgPSBnZXRTaGFyZWRQcml2YXRlS2V5KGVwaGVtUHJpdmF0ZUtleSwgcHVibGljS2V5Qnl0ZXMpO1xuICBjb25zdCBlbmNyeXB0aW9uS2V5ID0gcHJpdktleS5zbGljZSgwLCAxNik7XG4gIGNvbnN0IGl2ID0gZWNVdGlscy5yYW5kb21CeXRlcygxNik7XG4gIGNvbnN0IG1hY0tleSA9IHNoYTI1Nihwcml2S2V5LnNsaWNlKDE2KSk7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHBsYWludGV4dCk7XG4gIGNvbnN0IGNyeXB0b0tleSA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgZW5jcnlwdGlvbktleSxcbiAgICAnQUVTLUNUUicsXG4gICAgdHJ1ZSxcbiAgICBbJ2VuY3J5cHQnXVxuICApO1xuICBjb25zdCBjaXBoZXJCeXRlcyA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5lbmNyeXB0KFxuICAgIHtcbiAgICAgIG5hbWU6ICdBRVMtQ1RSJyxcbiAgICAgIGNvdW50ZXI6IGl2LFxuICAgICAgbGVuZ3RoOiAxMjgsXG4gICAgfSxcbiAgICBjcnlwdG9LZXksXG4gICAgYnl0ZXNcbiAgKTtcbiAgY29uc3QgaG1hYyA9IGF3YWl0IGVjVXRpbHMuaG1hY1NoYTI1NihcbiAgICBtYWNLZXksXG4gICAgbmV3IFVpbnQ4QXJyYXkoWy4uLml2LCAuLi5uZXcgVWludDhBcnJheShjaXBoZXJCeXRlcyldKVxuICApO1xuXG4gIHJldHVybiBlY1V0aWxzLmJ5dGVzVG9IZXgoXG4gICAgbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgLi4uZXBoZW1QdWJsaWNLZXksXG4gICAgICAuLi5pdixcbiAgICAgIC4uLm5ldyBVaW50OEFycmF5KGNpcGhlckJ5dGVzKSxcbiAgICAgIC4uLmhtYWMsXG4gICAgXSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBiczU4UHVibGljS2V5VG9Db21wcmVzc2VkQnl0ZXMgPSAoc3RyOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFzdHIpIHtcbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMzMpO1xuICB9XG4gIGNvbnN0IHB1YktleVVuY29tcHJlc3NlZCA9IGJzNThQdWJsaWNLZXlUb0J5dGVzKHN0cik7XG4gIHJldHVybiBQb2ludC5mcm9tSGV4KGVjVXRpbHMuYnl0ZXNUb0hleChwdWJLZXlVbmNvbXByZXNzZWQpKS50b1Jhd0J5dGVzKHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJzNThQdWJsaWNLZXlUb0J5dGVzID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJ5dGVzID0gYnM1OC5kZWNvZGUoc3RyKTtcbiAgY29uc3QgcGF5bG9hZCA9IGJ5dGVzLnNsaWNlKDAsIC00KTtcbiAgY29uc3QgY2hlY2tzdW1BID0gYnl0ZXMuc2xpY2UoLTQpO1xuICBjb25zdCBjaGVja3N1bUIgPSBzaGEyNTZYMihwYXlsb2FkKTtcblxuICBpZiAoXG4gICAgKGNoZWNrc3VtQVswXSBeIGNoZWNrc3VtQlswXSkgfFxuICAgIChjaGVja3N1bUFbMV0gXiBjaGVja3N1bUJbMV0pIHxcbiAgICAoY2hlY2tzdW1BWzJdIF4gY2hlY2tzdW1CWzJdKSB8XG4gICAgKGNoZWNrc3VtQVszXSBeIGNoZWNrc3VtQlszXSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNoZWNrc3VtJyk7XG4gIH1cblxuICByZXR1cm4gUG9pbnQuZnJvbUhleChlY1V0aWxzLmJ5dGVzVG9IZXgocGF5bG9hZC5zbGljZSgzKSkpLnRvUmF3Qnl0ZXMoZmFsc2UpO1xufTtcblxuY29uc3QgcmVnZXhNYWlubmV0ID0gL15CQ1sxLTlBLUhKLU5QLVphLWttLXpdezUzfSQvO1xuY29uc3QgcmVnZXhUZXN0bmV0ID0gL150QkNbMS05QS1ISi1OUC1aYS1rbS16XXs1MX0kLztcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRCUzU4UHVibGljS2V5ID0gKHB1YmxpY0tleTogc3RyaW5nLCBpc1Rlc3RuZXQgPSBmYWxzZSkgPT4ge1xuICBjb25zdCByZWdleFBhdHRlcm4gPSBpc1Rlc3RuZXQgPyByZWdleFRlc3RuZXQgOiByZWdleE1haW5uZXQ7XG4gIGlmICghcmVnZXhQYXR0ZXJuLnRlc3QocHVibGljS2V5KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGJzNThQdWJsaWNLZXlUb0J5dGVzKHB1YmxpY0tleSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbmNvbnN0IGlzVmFsaWRIbWFjID0gKGNhbmRpZGF0ZTogVWludDhBcnJheSwga25vd25Hb29kOiBVaW50OEFycmF5KSA9PiB7XG4gIGlmIChjYW5kaWRhdGUubGVuZ3RoICE9PSBrbm93bkdvb2QubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrbm93bkdvb2QubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoY2FuZGlkYXRlW2ldICE9PSBrbm93bkdvb2RbaV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWNyeXB0Q2hhdE1lc3NhZ2UgPSBhc3luYyAoXG4gIHJlY2lwaWVudFNlZWRIZXg6IHN0cmluZyxcbiAgcHVibGljRGVjcnlwdGlvbktleTogc3RyaW5nLFxuICBjaXBoZXJUZXh0SGV4OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBwcml2YXRlS2V5ID0gZWNVdGlscy5oZXhUb0J5dGVzKHJlY2lwaWVudFNlZWRIZXgpO1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCBiczU4UHVibGljS2V5VG9CeXRlcyhwdWJsaWNEZWNyeXB0aW9uS2V5KTtcbiAgY29uc3Qgc2hhcmVkUHJpdmF0ZUtleSA9IGF3YWl0IGdldFNoYXJlZFByaXZhdGVLZXkocHJpdmF0ZUtleSwgcHVibGljS2V5KTtcbiAgcmV0dXJuIGRlY3J5cHQoc2hhcmVkUHJpdmF0ZUtleSwgY2lwaGVyVGV4dEhleCk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVjcnlwdCA9IGFzeW5jIChcbiAgcHJpdmF0ZURlY3J5cHRpb25LZXk6IFVpbnQ4QXJyYXkgfCBzdHJpbmcsXG4gIGNpcGhlclRleHRIZXg6IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IGNpcGhlckJ5dGVzID0gZWNVdGlscy5oZXhUb0J5dGVzKGNpcGhlclRleHRIZXgpO1xuICBjb25zdCBtZXRhTGVuZ3RoID0gMTEzO1xuXG4gIGlmIChjaXBoZXJCeXRlcy5sZW5ndGggPCBtZXRhTGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNpcGhlciB0ZXh0LiBkYXRhIHRvbyBzbWFsbC4nKTtcbiAgfVxuXG4gIGlmICghKGNpcGhlckJ5dGVzWzBdID49IDIgJiYgY2lwaGVyQnl0ZXNbMF0gPD0gNCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY2lwaGVyIHRleHQuJyk7XG4gIH1cblxuICBjb25zdCBwcml2YXRlS2V5ID0gbm9ybWFsaXplU2VlZChwcml2YXRlRGVjcnlwdGlvbktleSk7XG4gIGNvbnN0IGVwaGVtUHVibGljS2V5ID0gY2lwaGVyQnl0ZXMuc2xpY2UoMCwgNjUpO1xuICBjb25zdCBjaXBoZXJUZXh0TGVuZ3RoID0gY2lwaGVyQnl0ZXMubGVuZ3RoIC0gbWV0YUxlbmd0aDtcbiAgY29uc3QgaXYgPSBjaXBoZXJCeXRlcy5zbGljZSg2NSwgNjUgKyAxNik7XG4gIGNvbnN0IGNpcGhlckFuZEl2ID0gY2lwaGVyQnl0ZXMuc2xpY2UoNjUsIDY1ICsgMTYgKyBjaXBoZXJUZXh0TGVuZ3RoKTtcbiAgY29uc3QgY2lwaGVyVGV4dCA9IGNpcGhlckFuZEl2LnNsaWNlKDE2KTtcbiAgY29uc3QgbXNnTWFjID0gY2lwaGVyQnl0ZXMuc2xpY2UoNjUgKyAxNiArIGNpcGhlclRleHRMZW5ndGgpO1xuICBjb25zdCBzaGFyZWRTZWNyZXRLZXkgPSBhd2FpdCBnZXRTaGFyZWRQcml2YXRlS2V5KHByaXZhdGVLZXksIGVwaGVtUHVibGljS2V5KTtcbiAgY29uc3QgZW5jcnlwdGlvbktleSA9IHNoYXJlZFNlY3JldEtleS5zbGljZSgwLCAxNik7XG4gIGNvbnN0IG1hY0tleSA9IHNoYTI1NihzaGFyZWRTZWNyZXRLZXkuc2xpY2UoMTYpKTtcbiAgY29uc3QgaG1hY0tub3duR29vZCA9IGF3YWl0IGVjVXRpbHMuaG1hY1NoYTI1NihtYWNLZXksIGNpcGhlckFuZEl2KTtcblxuICBpZiAoIWlzVmFsaWRIbWFjKG1zZ01hYywgaG1hY0tub3duR29vZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2luY29ycmVjdCBNQUMnKTtcbiAgfVxuXG4gIGNvbnN0IGNyeXB0b0tleSA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgZW5jcnlwdGlvbktleSxcbiAgICAnQUVTLUNUUicsXG4gICAgdHJ1ZSxcbiAgICBbJ2RlY3J5cHQnXVxuICApO1xuXG4gIGNvbnN0IGRlY3J5cHRlZEJ1ZmZlciA9IGF3YWl0IGdsb2JhbFRoaXMuY3J5cHRvLnN1YnRsZS5kZWNyeXB0KFxuICAgIHsgbmFtZTogJ0FFUy1DVFInLCBjb3VudGVyOiBpdiwgbGVuZ3RoOiAxMjggfSxcbiAgICBjcnlwdG9LZXksXG4gICAgY2lwaGVyVGV4dFxuICApO1xuXG4gIHJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZGVjcnlwdGVkQnVmZmVyKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTaGFyZWRQcml2YXRlS2V5ID0gKFxuICBwcml2S2V5OiBVaW50OEFycmF5LFxuICBwdWJLZXk6IFVpbnQ4QXJyYXlcbikgPT4ge1xuICBjb25zdCBzaGFyZWRTZWNyZXQgPSBnZXRTaGFyZWRTZWNyZXQocHJpdktleSwgcHViS2V5KTtcblxuICByZXR1cm4ga2RmKHNoYXJlZFNlY3JldCwgMzIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZVB1YmxpY0tleSA9IGFzeW5jIChwdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGRlY29kZWQgPSBhd2FpdCBiczU4UHVibGljS2V5VG9CeXRlcyhwdWJsaWNLZXlCYXNlNThDaGVjayk7XG4gIGNvbnN0IHdpdGhQcmVmaXhSZW1vdmVkID0gZGVjb2RlZC5zbGljZSgzKTtcbiAgY29uc3Qgc2VuZGVyUHViS2V5SGV4ID0gZWNVdGlscy5ieXRlc1RvSGV4KHdpdGhQcmVmaXhSZW1vdmVkKTtcblxuICByZXR1cm4gUG9pbnQuZnJvbUhleChzZW5kZXJQdWJLZXlIZXgpLnRvUmF3Qnl0ZXMoZmFsc2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZFNlY3JldCA9IChwcml2S2V5OiBVaW50OEFycmF5LCBwdWJLZXk6IFVpbnQ4QXJyYXkpID0+IHtcbiAgLy8gcGFzc2luZyB0cnVlIHRvIGNvbXByZXNzIHRoZSBwdWJsaWMga2V5LCBhbmQgdGhlbiBzbGljaW5nIG9mZiB0aGUgZmlyc3QgYnl0ZVxuICAvLyBtYXRjaGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBkZXJpdmUgaW4gdGhlIGVsbGlwdGljIHBhY2thZ2UuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsbWlsbHIvbm9ibGUtc2VjcDI1NmsxL2lzc3Vlcy8yOCNpc3N1ZWNvbW1lbnQtOTQ2NTM4MDM3XG4gIHJldHVybiBub2JsZUdldFNoYXJlZFNlY3JldChwcml2S2V5LCBwdWJLZXksIHRydWUpLnNsaWNlKDEpO1xufTtcblxuLy8gdGFrZW4gZnJvbSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gaW4gdGhlIGRlc28gY2hhdCBhcHA6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZGVzby1wcm90b2NvbC9hY2Nlc3MtZ3JvdXAtbWVzc2FnaW5nLWFwcC9ibG9iL2NkNWMyMzdmNWU1NzI5MTk2YWFjMGRhMTYxZDA4NTFiZGU3ODA5MmMvc3JjL3NlcnZpY2VzL2NyeXB0by11dGlscy5zZXJ2aWNlLnRzeCNMOTFcbmV4cG9ydCBjb25zdCBrZGYgPSAoc2VjcmV0OiBVaW50OEFycmF5LCBvdXRwdXRMZW5ndGg6IG51bWJlcikgPT4ge1xuICBsZXQgY3RyID0gMTtcbiAgbGV0IHdyaXR0ZW4gPSAwO1xuICBsZXQgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkoKTtcblxuICB3aGlsZSAod3JpdHRlbiA8IG91dHB1dExlbmd0aCkge1xuICAgIGNvbnN0IGhhc2ggPSBzaGEyNTYoXG4gICAgICBuZXcgVWludDhBcnJheShbXG4gICAgICAgIC4uLm5ldyBVaW50OEFycmF5KFtjdHIgPj4gMjQsIGN0ciA+PiAxNiwgY3RyID4+IDgsIGN0cl0pLFxuICAgICAgICAuLi5zZWNyZXQsXG4gICAgICBdKVxuICAgICk7XG4gICAgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkoWy4uLnJlc3VsdCwgLi4uaGFzaF0pO1xuICAgIHdyaXR0ZW4gKz0gMzI7XG4gICAgY3RyICs9IDE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVGhpcyBpcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGRlclRvSm9zZSBmdW5jdGlvbiBmcm9tXG4vLyBodHRwczovL2dpdGh1Yi5jb20vQnJpZ2h0c3BhY2Uvbm9kZS1lY2RzYS1zaWctZm9ybWF0dGVyL2Jsb2IvY2EyNWEyZmQ1YWU5ZGQ4NTAzNjA4MTYzMjkzNmU4MDJhNDdhMTI4OS9zcmMvZWNkc2Etc2lnLWZvcm1hdHRlci5qcyNMMzJcbi8vIFRoZSBvcmlnaW5hbCBwYWNrYWdlIGlzIG5vdCBicm93c2VyIGZyaWVuZGx5IGFuZCByZXF1aXJlcyBub2RlIHBvbHlmaWxscy4gV2Vcbi8vIGFsc28gZG9uJ3QgbmVlZCB0byBiZSBxdWl0ZSBhcyBkZWZlbnNpdmUgYXMgdGhlIG9yaWdpbmFsIHBhY2thZ2Ugc2luY2Ugd2Vcbi8vIGhhdmUgZnVsbCBjb250cm9sIG9mIHRoZSBpbnB1dC5cbmZ1bmN0aW9uIGRlclRvSm9zZUVuY29kaW5nKHNpZ25hdHVyZTogVWludDhBcnJheSkge1xuICBjb25zdCBwYXJhbUJ5dGVzID0gMzI7XG5cbiAgbGV0IG9mZnNldCA9IDM7XG4gIGNvbnN0IHJMZW5ndGggPSBzaWduYXR1cmVbb2Zmc2V0XTtcbiAgb2Zmc2V0ICs9IDE7XG4gIGNvbnN0IHJPZmZzZXQgPSBvZmZzZXQ7XG4gIG9mZnNldCArPSByTGVuZ3RoICsgMTtcbiAgY29uc3Qgc0xlbmd0aCA9IHNpZ25hdHVyZVtvZmZzZXRdO1xuICBvZmZzZXQgKz0gMTtcbiAgY29uc3Qgc09mZnNldCA9IG9mZnNldDtcbiAgb2Zmc2V0ICs9IHNMZW5ndGg7XG5cbiAgY29uc3QgclBhZGRpbmcgPSBwYXJhbUJ5dGVzIC0gckxlbmd0aDtcbiAgY29uc3Qgc1BhZGRpbmcgPSBwYXJhbUJ5dGVzIC0gc0xlbmd0aDtcblxuICBjb25zdCBvdXRQdXQgPSBuZXcgVWludDhBcnJheShyUGFkZGluZyArIHJMZW5ndGggKyBzUGFkZGluZyArIHNMZW5ndGgpO1xuXG4gIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgclBhZGRpbmc7ICsrb2Zmc2V0KSB7XG4gICAgb3V0UHV0W29mZnNldF0gPSAwO1xuICB9XG5cbiAgb3V0UHV0LnNldChcbiAgICBzaWduYXR1cmUuc2xpY2Uock9mZnNldCArIE1hdGgubWF4KC1yUGFkZGluZywgMCksIHJPZmZzZXQgKyByTGVuZ3RoKSxcbiAgICBvZmZzZXRcbiAgKTtcblxuICBvZmZzZXQgPSBwYXJhbUJ5dGVzO1xuXG4gIGZvciAoY29uc3QgbyA9IG9mZnNldDsgb2Zmc2V0IDwgbyArIHNQYWRkaW5nOyArK29mZnNldCkge1xuICAgIG91dFB1dFtvZmZzZXRdID0gMDtcbiAgfVxuXG4gIG91dFB1dC5zZXQoXG4gICAgc2lnbmF0dXJlLnNsaWNlKHNPZmZzZXQgKyBNYXRoLm1heCgtc1BhZGRpbmcsIDApLCBzT2Zmc2V0ICsgc0xlbmd0aCksXG4gICAgb2Zmc2V0XG4gICk7XG5cbiAgY29uc3Qgb3V0cHV0Q2hhcnMgPSBvdXRQdXQucmVkdWNlKFxuICAgIChkYXRhLCBieXRlKSA9PiBkYXRhICsgU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKSxcbiAgICAnJ1xuICApO1xuXG4gIHJldHVybiB1cmxTYWZlQmFzZTY0KG91dHB1dENoYXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZUFjY2Vzc0dyb3VwS2V5UGFpcihcbiAgcHJpdmF0ZUtleUhleDogc3RyaW5nLFxuICBncm91cEtleU5hbWU6IHN0cmluZ1xuKTogS2V5UGFpciB7XG4gIGNvbnN0IHNlY3JldEhhc2ggPSBzaGEyNTZYMihwcml2YXRlS2V5SGV4KTtcbiAgY29uc3Qga2V5TmFtZUhhc2ggPSBzaGEyNTZYMihuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZ3JvdXBLZXlOYW1lKSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBzaGEyNTZYMihuZXcgVWludDhBcnJheShbLi4uc2VjcmV0SGFzaCwgLi4ua2V5TmFtZUhhc2hdKSk7XG5cbiAgcmV0dXJuIGtleWdlbihwcml2YXRlS2V5KTtcbn1cbiJdfQ==

@@ -8,4 +8,4 @@ import { utils as ecUtils } from '@noble/secp256k1';

const { BlockHeight } = await getAppState();
// days * (24 hours / day) * (60 minutes / hour) * (60 seconds / minute) * (1 block / 1 second) = blocks
const expirationBlockHeight = BlockHeight + numDaysBeforeExpiration * 24 * 60 * 60;
// days * (24 hours / day) * (60 minutes / hour) * (1 block / 5 minutes) = blocks
const expirationBlockHeight = BlockHeight + (numDaysBeforeExpiration * 24 * 60) / 5;
const ownerPublicKeyBase58 = publicKeyToBase58Check(ownerKeys.public, {

@@ -79,2 +79,2 @@ network,

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlZC1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvZGVyaXZlZC1rZXktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssSUFBSSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixRQUFRLEVBQ1IsSUFBSSxFQUNKLG9CQUFvQixHQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBRzNCLE1BQU0sQ0FBQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFNBQWtCLEVBQ2xCLFdBQW9CLEVBQ3BCLDJCQUE2RCxFQUM3RCx1QkFBK0IsRUFDL0IsT0FBZ0IsRUFDaEIsRUFBRSx5QkFBeUIsRUFBRSxHQUFHO0lBQzlCLHlCQUF5QixFQUFFLGFBQWE7Q0FDekM7SUFFRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxXQUFXLEVBQUUsQ0FBQztJQUU1Qyx3R0FBd0c7SUFDeEcsTUFBTSxxQkFBcUIsR0FDekIsV0FBVyxHQUFHLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUNwRSxPQUFPO0tBQ1IsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1FBQ3hFLE9BQU87S0FDUixDQUFDLENBQUM7SUFDSCxJQUFJLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFO1FBQ3BELDJCQUEyQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlELElB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cUIsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDO1FBQ2hFLDJCQUEyQixFQUFFLDJCQUEyQjtRQUN4RCxRQUFRLEVBQUUsS0FBSztRQUNmLGNBQWMsRUFBRSxvQkFBb0I7S0FDckMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1dGlscyBhcyBlY1V0aWxzIH0gZnJvbSAnQG5vYmxlL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZSB9IGZyb20gJy4uL2JhY2tlbmQtdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgYXBpLCBnZXRBcHBTdGF0ZSB9IGZyb20gJy4uL2RhdGEvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgZGVyaXZlQWNjZXNzR3JvdXBLZXlQYWlyLFxuICBnZXRTaWduZWRKV1QsXG4gIHB1YmxpY0tleVRvQmFzZTU4Q2hlY2ssXG4gIHNoYTI1NlgyLFxuICBzaWduLFxuICB1aW50NjRUb0J1ZkJpZ0VuZGlhbixcbn0gZnJvbSAnLi9jcnlwdG8tdXRpbHMuanMnO1xuaW1wb3J0IHsgS2V5UGFpciwgTmV0d29yayB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVEZXJpdmVkS2V5UGF5bG9hZChcbiAgb3duZXJLZXlzOiBLZXlQYWlyLFxuICBkZXJpdmVkS2V5czogS2V5UGFpcixcbiAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZSxcbiAgbnVtRGF5c0JlZm9yZUV4cGlyYXRpb246IG51bWJlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyBkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lIH0gPSB7XG4gICAgZGVmYXVsdE1lc3NhZ2luZ0dyb3VwTmFtZTogJ2RlZmF1bHQta2V5JyxcbiAgfVxuKSB7XG4gIGNvbnN0IHsgQmxvY2tIZWlnaHQgfSA9IGF3YWl0IGdldEFwcFN0YXRlKCk7XG5cbiAgLy8gZGF5cyAqICgyNCBob3VycyAvIGRheSkgKiAoNjAgbWludXRlcyAvIGhvdXIpICogKDYwIHNlY29uZHMgLyBtaW51dGUpICogKDEgYmxvY2sgLyAxIHNlY29uZCkgPSBibG9ja3NcbiAgY29uc3QgZXhwaXJhdGlvbkJsb2NrSGVpZ2h0ID1cbiAgICBCbG9ja0hlaWdodCArIG51bURheXNCZWZvcmVFeHBpcmF0aW9uICogMjQgKiA2MCAqIDYwO1xuICBjb25zdCBvd25lclB1YmxpY0tleUJhc2U1OCA9IHB1YmxpY0tleVRvQmFzZTU4Q2hlY2sob3duZXJLZXlzLnB1YmxpYywge1xuICAgIG5ldHdvcmssXG4gIH0pO1xuICBjb25zdCBkZXJpdmVkUHVibGljS2V5QmFzZTU4ID0gcHVibGljS2V5VG9CYXNlNThDaGVjayhkZXJpdmVkS2V5cy5wdWJsaWMsIHtcbiAgICBuZXR3b3JrLFxuICB9KTtcbiAgaWYgKHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdE9iaj8uQWNjZXNzR3JvdXBMaW1pdE1hcCkge1xuICAgIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdE9iai5BY2Nlc3NHcm91cExpbWl0TWFwLmZvckVhY2goKGFnbCkgPT4ge1xuICAgICAgaWYgKCFhZ2wuQWNjZXNzR3JvdXBPd25lclB1YmxpY0tleUJhc2U1OENoZWNrKSB7XG4gICAgICAgIGFnbC5BY2Nlc3NHcm91cE93bmVyUHVibGljS2V5QmFzZTU4Q2hlY2sgPSBvd25lclB1YmxpY0tleUJhc2U1ODtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBpZiAodHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqPy5BY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwKSB7XG4gICAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqLkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXAuZm9yRWFjaCgoYWdtbCkgPT4ge1xuICAgICAgaWYgKCFhZ21sLkFjY2Vzc0dyb3VwT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjaykge1xuICAgICAgICBhZ21sLkFjY2Vzc0dyb3VwT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjayA9IG93bmVyUHVibGljS2V5QmFzZTU4O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHsgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4IH0gPSBhd2FpdCBhcGkucG9zdChcbiAgICAnL2FwaS92MC9nZXQtYWNjZXNzLWJ5dGVzJyxcbiAgICB7XG4gICAgICBEZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IGRlcml2ZWRQdWJsaWNLZXlCYXNlNTgsXG4gICAgICBFeHBpcmF0aW9uQmxvY2s6IGV4cGlyYXRpb25CbG9ja0hlaWdodCxcbiAgICAgIFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdDogdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0Qnl0ZXMgPSBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXhcbiAgICA/IGVjVXRpbHMuaGV4VG9CeXRlcyhUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXgpXG4gICAgOiBbXTtcbiAgY29uc3QgYWNjZXNzQnl0ZXMgPSBuZXcgVWludDhBcnJheShbXG4gICAgLi4uZGVyaXZlZEtleXMucHVibGljLFxuICAgIC4uLnVpbnQ2NFRvQnVmQmlnRW5kaWFuKGV4cGlyYXRpb25CbG9ja0hlaWdodCksXG4gICAgLi4udHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0Qnl0ZXMsXG4gIF0pO1xuICBjb25zdCBhY2Nlc3NIYXNoSGV4ID0gZWNVdGlscy5ieXRlc1RvSGV4KHNoYTI1NlgyKGFjY2Vzc0J5dGVzKSk7XG4gIGNvbnN0IFthY2Nlc3NTaWduYXR1cmVdID0gYXdhaXQgc2lnbihhY2Nlc3NIYXNoSGV4LCBvd25lcktleXMucHJpdmF0ZSk7XG4gIGNvbnN0IG1lc3NhZ2luZ0tleSA9IGRlcml2ZUFjY2Vzc0dyb3VwS2V5UGFpcihcbiAgICBvd25lcktleXMuc2VlZEhleCxcbiAgICBkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lXG4gICk7XG4gIGNvbnN0IG1lc3NhZ2luZ1B1YmxpY0tleUJhc2U1OENoZWNrID0gcHVibGljS2V5VG9CYXNlNThDaGVjayhcbiAgICBtZXNzYWdpbmdLZXkucHVibGljLFxuICAgIHsgbmV0d29yayB9XG4gICk7XG4gIGNvbnN0IG1lc3NhZ2luZ0tleUhhc2hIZXggPSBlY1V0aWxzLmJ5dGVzVG9IZXgoXG4gICAgc2hhMjU2WDIoXG4gICAgICBuZXcgVWludDhBcnJheShbXG4gICAgICAgIC4uLm1lc3NhZ2luZ0tleS5wdWJsaWMsXG4gICAgICAgIC4uLm5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lKSxcbiAgICAgIF0pXG4gICAgKVxuICApO1xuICBjb25zdCBbbWVzc2FnaW5nS2V5U2lnbmF0dXJlXSA9IGF3YWl0IHNpZ24oXG4gICAgbWVzc2FnaW5nS2V5SGFzaEhleCxcbiAgICBvd25lcktleXMucHJpdmF0ZVxuICApO1xuXG4gIGNvbnN0IFtqd3QsIGRlcml2ZWRKd3RdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGdldFNpZ25lZEpXVChvd25lcktleXMuc2VlZEhleCwgJ0VTMjU2Jywge30pLFxuICAgIGdldFNpZ25lZEpXVChvd25lcktleXMuc2VlZEhleCwgJ0VTMjU2Jywge1xuICAgICAgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrOiBkZXJpdmVkUHVibGljS2V5QmFzZTU4LFxuICAgIH0pLFxuICBdKTtcblxuICByZXR1cm4ge1xuICAgIGRlcml2ZWRTZWVkSGV4OiBkZXJpdmVkS2V5cy5zZWVkSGV4LFxuICAgIGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjazogZGVyaXZlZFB1YmxpY0tleUJhc2U1OCxcbiAgICBwdWJsaWNLZXlCYXNlNThDaGVjazogb3duZXJQdWJsaWNLZXlCYXNlNTgsXG4gICAgYnRjRGVwb3NpdEFkZHJlc3M6ICdOb3QgaW1wbGVtZW50ZWQgeWV0JyxcbiAgICBldGhEZXBvc2l0QWRkcmVzczogJ05vdCBpbXBsZW1lbnRlZCB5ZXQnLFxuICAgIGV4cGlyYXRpb25CbG9jazogZXhwaXJhdGlvbkJsb2NrSGVpZ2h0LFxuICAgIG5ldHdvcmssXG4gICAgYWNjZXNzU2lnbmF0dXJlOiBlY1V0aWxzLmJ5dGVzVG9IZXgoYWNjZXNzU2lnbmF0dXJlKSxcbiAgICBqd3QsXG4gICAgZGVyaXZlZEp3dCxcbiAgICBtZXNzYWdpbmdQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBtZXNzYWdpbmdQcml2YXRlS2V5OiBtZXNzYWdpbmdLZXkuc2VlZEhleCxcbiAgICBtZXNzYWdpbmdLZXlOYW1lOiBkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lLFxuICAgIG1lc3NhZ2luZ0tleVNpZ25hdHVyZTogZWNVdGlscy5ieXRlc1RvSGV4KG1lc3NhZ2luZ0tleVNpZ25hdHVyZSksXG4gICAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4OiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXgsXG4gICAgc2lnbmVkVXA6IGZhbHNlLFxuICAgIHB1YmxpY0tleUFkZGVkOiBvd25lclB1YmxpY0tleUJhc2U1OCxcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlZC1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvZGVyaXZlZC1rZXktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssSUFBSSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixRQUFRLEVBQ1IsSUFBSSxFQUNKLG9CQUFvQixHQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBRzNCLE1BQU0sQ0FBQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFNBQWtCLEVBQ2xCLFdBQW9CLEVBQ3BCLDJCQUE2RCxFQUM3RCx1QkFBK0IsRUFDL0IsT0FBZ0IsRUFDaEIsRUFBRSx5QkFBeUIsRUFBRSxHQUFHO0lBQzlCLHlCQUF5QixFQUFFLGFBQWE7Q0FDekM7SUFFRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxXQUFXLEVBQUUsQ0FBQztJQUU1QyxpRkFBaUY7SUFDakYsTUFBTSxxQkFBcUIsR0FDekIsV0FBVyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDcEUsT0FBTztLQUNSLENBQUMsQ0FBQztJQUNILE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUN4RSxPQUFPO0tBQ1IsQ0FBQyxDQUFDO0lBQ0gsSUFBSSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRTtRQUNwRCwyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFB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UUFDM0MscUJBQXFCLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztRQUNoRSwyQkFBMkIsRUFBRSwyQkFBMkI7UUFDeEQsUUFBUSxFQUFFLEtBQUs7UUFDZixjQUFjLEVBQUUsb0JBQW9CO0tBQ3JDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXRpbHMgYXMgZWNVdGlscyB9IGZyb20gJ0Bub2JsZS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UgfSBmcm9tICcuLi9iYWNrZW5kLXR5cGVzL2luZGV4LmpzJztcbmltcG9ydCB7IGFwaSwgZ2V0QXBwU3RhdGUgfSBmcm9tICcuLi9kYXRhL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGRlcml2ZUFjY2Vzc0dyb3VwS2V5UGFpcixcbiAgZ2V0U2lnbmVkSldULFxuICBwdWJsaWNLZXlUb0Jhc2U1OENoZWNrLFxuICBzaGEyNTZYMixcbiAgc2lnbixcbiAgdWludDY0VG9CdWZCaWdFbmRpYW4sXG59IGZyb20gJy4vY3J5cHRvLXV0aWxzLmpzJztcbmltcG9ydCB7IEtleVBhaXIsIE5ldHdvcmsgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRGVyaXZlZEtleVBheWxvYWQoXG4gIG93bmVyS2V5czogS2V5UGFpcixcbiAgZGVyaXZlZEtleXM6IEtleVBhaXIsXG4gIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdE9iajogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UsXG4gIG51bURheXNCZWZvcmVFeHBpcmF0aW9uOiBudW1iZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgZGVmYXVsdE1lc3NhZ2luZ0dyb3VwTmFtZSB9ID0ge1xuICAgIGRlZmF1bHRNZXNzYWdpbmdHcm91cE5hbWU6ICdkZWZhdWx0LWtleScsXG4gIH1cbikge1xuICBjb25zdCB7IEJsb2NrSGVpZ2h0IH0gPSBhd2FpdCBnZXRBcHBTdGF0ZSgpO1xuXG4gIC8vIGRheXMgKiAoMjQgaG91cnMgLyBkYXkpICogKDYwIG1pbnV0ZXMgLyBob3VyKSAqICgxIGJsb2NrIC8gNSBtaW51dGVzKSA9IGJsb2Nrc1xuICBjb25zdCBleHBpcmF0aW9uQmxvY2tIZWlnaHQgPVxuICAgIEJsb2NrSGVpZ2h0ICsgKG51bURheXNCZWZvcmVFeHBpcmF0aW9uICogMjQgKiA2MCkgLyA1O1xuICBjb25zdCBvd25lclB1YmxpY0tleUJhc2U1OCA9IHB1YmxpY0tleVRvQmFzZTU4Q2hlY2sob3duZXJLZXlzLnB1YmxpYywge1xuICAgIG5ldHdvcmssXG4gIH0pO1xuICBjb25zdCBkZXJpdmVkUHVibGljS2V5QmFzZTU4ID0gcHVibGljS2V5VG9CYXNlNThDaGVjayhkZXJpdmVkS2V5cy5wdWJsaWMsIHtcbiAgICBuZXR3b3JrLFxuICB9KTtcbiAgaWYgKHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdE9iaj8uQWNjZXNzR3JvdXBMaW1pdE1hcCkge1xuICAgIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdE9iai5BY2Nlc3NHcm91cExpbWl0TWFwLmZvckVhY2goKGFnbCkgPT4ge1xuICAgICAgaWYgKCFhZ2wuQWNjZXNzR3JvdXBPd25lclB1YmxpY0tleUJhc2U1OENoZWNrKSB7XG4gICAgICAgIGFnbC5BY2Nlc3NHcm91cE93bmVyUHVibGljS2V5QmFzZTU4Q2hlY2sgPSBvd25lclB1YmxpY0tleUJhc2U1ODtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBpZiAodHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqPy5BY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwKSB7XG4gICAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqLkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXAuZm9yRWFjaCgoYWdtbCkgPT4ge1xuICAgICAgaWYgKCFhZ21sLkFjY2Vzc0dyb3VwT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjaykge1xuICAgICAgICBhZ21sLkFjY2Vzc0dyb3VwT3duZXJQdWJsaWNLZXlCYXNlNThDaGVjayA9IG93bmVyUHVibGljS2V5QmFzZTU4O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHsgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4IH0gPSBhd2FpdCBhcGkucG9zdChcbiAgICAnL2FwaS92MC9nZXQtYWNjZXNzLWJ5dGVzJyxcbiAgICB7XG4gICAgICBEZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IGRlcml2ZWRQdWJsaWNLZXlCYXNlNTgsXG4gICAgICBFeHBpcmF0aW9uQmxvY2s6IGV4cGlyYXRpb25CbG9ja0hlaWdodCxcbiAgICAgIFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdDogdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T2JqLFxuICAgIH1cbiAgKTtcbiAgY29uc3QgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0Qnl0ZXMgPSBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXhcbiAgICA/IGVjVXRpbHMuaGV4VG9CeXRlcyhUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXgpXG4gICAgOiBbXTtcbiAgY29uc3QgYWNjZXNzQnl0ZXMgPSBuZXcgVWludDhBcnJheShbXG4gICAgLi4uZGVyaXZlZEtleXMucHVibGljLFxuICAgIC4uLnVpbnQ2NFRvQnVmQmlnRW5kaWFuKGV4cGlyYXRpb25CbG9ja0hlaWdodCksXG4gICAgLi4udHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0Qnl0ZXMsXG4gIF0pO1xuICBjb25zdCBhY2Nlc3NIYXNoSGV4ID0gZWNVdGlscy5ieXRlc1RvSGV4KHNoYTI1NlgyKGFjY2Vzc0J5dGVzKSk7XG4gIGNvbnN0IFthY2Nlc3NTaWduYXR1cmVdID0gYXdhaXQgc2lnbihhY2Nlc3NIYXNoSGV4LCBvd25lcktleXMucHJpdmF0ZSk7XG4gIGNvbnN0IG1lc3NhZ2luZ0tleSA9IGRlcml2ZUFjY2Vzc0dyb3VwS2V5UGFpcihcbiAgICBvd25lcktleXMuc2VlZEhleCxcbiAgICBkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lXG4gICk7XG4gIGNvbnN0IG1lc3NhZ2luZ1B1YmxpY0tleUJhc2U1OENoZWNrID0gcHVibGljS2V5VG9CYXNlNThDaGVjayhcbiAgICBtZXNzYWdpbmdLZXkucHVibGljLFxuICAgIHsgbmV0d29yayB9XG4gICk7XG4gIGNvbnN0IG1lc3NhZ2luZ0tleUhhc2hIZXggPSBlY1V0aWxzLmJ5dGVzVG9IZXgoXG4gICAgc2hhMjU2WDIoXG4gICAgICBuZXcgVWludDhBcnJheShbXG4gICAgICAgIC4uLm1lc3NhZ2luZ0tleS5wdWJsaWMsXG4gICAgICAgIC4uLm5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lKSxcbiAgICAgIF0pXG4gICAgKVxuICApO1xuICBjb25zdCBbbWVzc2FnaW5nS2V5U2lnbmF0dXJlXSA9IGF3YWl0IHNpZ24oXG4gICAgbWVzc2FnaW5nS2V5SGFzaEhleCxcbiAgICBvd25lcktleXMucHJpdmF0ZVxuICApO1xuXG4gIGNvbnN0IFtqd3QsIGRlcml2ZWRKd3RdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGdldFNpZ25lZEpXVChvd25lcktleXMuc2VlZEhleCwgJ0VTMjU2Jywge30pLFxuICAgIGdldFNpZ25lZEpXVChvd25lcktleXMuc2VlZEhleCwgJ0VTMjU2Jywge1xuICAgICAgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrOiBkZXJpdmVkUHVibGljS2V5QmFzZTU4LFxuICAgIH0pLFxuICBdKTtcblxuICByZXR1cm4ge1xuICAgIGRlcml2ZWRTZWVkSGV4OiBkZXJpdmVkS2V5cy5zZWVkSGV4LFxuICAgIGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjazogZGVyaXZlZFB1YmxpY0tleUJhc2U1OCxcbiAgICBwdWJsaWNLZXlCYXNlNThDaGVjazogb3duZXJQdWJsaWNLZXlCYXNlNTgsXG4gICAgYnRjRGVwb3NpdEFkZHJlc3M6ICdOb3QgaW1wbGVtZW50ZWQgeWV0JyxcbiAgICBldGhEZXBvc2l0QWRkcmVzczogJ05vdCBpbXBsZW1lbnRlZCB5ZXQnLFxuICAgIGV4cGlyYXRpb25CbG9jazogZXhwaXJhdGlvbkJsb2NrSGVpZ2h0LFxuICAgIG5ldHdvcmssXG4gICAgYWNjZXNzU2lnbmF0dXJlOiBlY1V0aWxzLmJ5dGVzVG9IZXgoYWNjZXNzU2lnbmF0dXJlKSxcbiAgICBqd3QsXG4gICAgZGVyaXZlZEp3dCxcbiAgICBtZXNzYWdpbmdQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBtZXNzYWdpbmdQcml2YXRlS2V5OiBtZXNzYWdpbmdLZXkuc2VlZEhleCxcbiAgICBtZXNzYWdpbmdLZXlOYW1lOiBkZWZhdWx0TWVzc2FnaW5nR3JvdXBOYW1lLFxuICAgIG1lc3NhZ2luZ0tleVNpZ25hdHVyZTogZWNVdGlscy5ieXRlc1RvSGV4KG1lc3NhZ2luZ0tleVNpZ25hdHVyZSksXG4gICAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4OiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRIZXgsXG4gICAgc2lnbmVkVXA6IGZhbHNlLFxuICAgIHB1YmxpY0tleUFkZGVkOiBvd25lclB1YmxpY0tleUJhc2U1OCxcbiAgfTtcbn1cbiJdfQ==

@@ -69,49 +69,2 @@ export function compareTransactionSpendingLimits(expectedPermissions, actualPermissions) {

break;
// TODO: support for making sure a derived key has these limits...
// @jacksondean - this is a little more annoying since
// stake and unstake limits don't have an op count, but rather a deso limit.
case 'StakeLimitMap':
if (actualPermissions?.StakeLimitMap?.find((map) => {
return (map.ValidatorPublicKeyBase58Check === '' &&
expectedPermissions?.StakeLimitMap?.[Number(path[1])]
?.StakeLimit &&
parseInt(map.StakeLimit, 16) >=
parseInt(expectedPermissions?.StakeLimitMap?.[Number(path[1])]
?.StakeLimit, 16));
})) {
return;
}
break;
case 'UnstakeLimitMap':
if (actualPermissions?.UnstakeLimitMap?.find((map) => {
return (map.ValidatorPublicKeyBase58Check === '' &&
expectedPermissions?.UnstakeLimitMap?.[Number(path[1])]
?.UnstakeLimit &&
parseInt(map.UnstakeLimit, 16) >=
parseInt(expectedPermissions?.UnstakeLimitMap?.[Number(path[1])]
?.UnstakeLimit, 16));
})) {
return;
}
break;
case 'UnlockStakeLimitMap':
if (actualPermissions?.UnlockStakeLimitMap?.find((map) => {
return (map.ValidatorPublicKeyBase58Check === '' &&
map.OpCount >=
normalizeCount(expectedPermissions?.UnlockStakeLimitMap?.[Number(path[1])]
?.OpCount));
})) {
return;
}
break;
case 'LockupLimitMap':
if (actualPermissions?.LockupLimitMap?.find((map) => {
return (map.ProfilePublicKeyBase58Check === '' &&
map.OpCount >=
normalizeCount(expectedPermissions?.LockupLimitMap?.[Number(path[1])]
?.OpCount));
})) {
return;
}
break;
}

@@ -141,11 +94,2 @@ const actualVal = getDeepValue(actualPermissions, path);

}, []);
if (result.StakeLimitMap) {
result.StakeLimitMap = Object.values(result.StakeLimitMap);
}
if (result.UnstakeLimitMap) {
result.UnstakeLimitMap = Object.values(result.UnstakeLimitMap);
}
if (result.UnlockStakeLimitMap) {
result.UnlockStakeLimitMap = Object.values(result.UnlockStakeLimitMap);
}
if (result.AccessGroupLimitMap) {

@@ -171,3 +115,2 @@ result.AccessGroupLimitMap = Object.values(result.AccessGroupLimitMap);

}
// TODO: support for new PoS Spending limits maps.
result.TransactionCountLimitMap = result.TransactionCountLimitMap ?? {};

@@ -231,2 +174,2 @@ if (typeof result.TransactionCountLimitMap['AUTHORIZE_DERIVED_KEY'] ===

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvcGVybWlzc2lvbnMtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxtQkFBNEQsRUFDNUQsaUJBQW1EO0lBRW5ELElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBRTdCLG9FQUFvRTtJQUNwRSxJQUFJLGlCQUFpQixFQUFFLFdBQVcsRUFBRTtRQUNsQyxPQUFPLGlCQUFpQixDQUFDO0tBQzFCO0lBRUQsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2pELDBFQUEwRTtRQUMxRSxzRUFBc0U7UUFDdEUscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLEtBQUsscUJBQXFCO2dCQUN4QixJQUNFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNuRCxPQUFPLENBQ0wsR0FBRyxDQUFDLFNBQVMsS0FBSyxLQUFLO3dCQUN2QixHQUFHLENBQUMsa0JBQWtCLEtBQUssRUFBRTt3QkFDN0IsR0FBRyxDQUFDLGFBQWEsS0FBSyxLQUFLO3dCQUMzQixHQUFHLENBQUMsT0FBTzs0QkFDVCxjQUFjLENBQ1osbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ3pELEVBQUUsT0FBTyxDQUNaLENBQ0osQ0FBQztnQkFDSixDQUFDLENBQUMsRUFDRjtvQkFDQSxPQUFPO2lCQUNSO2dCQUNELE1BQU07WUFDUixLQUFLLDJCQUEyQjtnQkFDOUIsSUFDRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVB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LEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7S0FDdEI7U0FBTTtRQUNMLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNsRDtBQUNILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUE0QjtJQUNsRCx3RUFBd0U7SUFDeEUsNkVBQTZFO0lBQzdFLDhFQUE4RTtJQUM5RSw2RUFBNkU7SUFDN0UseURBQXlEO0lBQ3pELE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlIH0gZnJvbSAnLi4vYmFja2VuZC10eXBlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRzKFxuICBleHBlY3RlZFBlcm1pc3Npb25zOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnMsXG4gIGFjdHVhbFBlcm1pc3Npb25zOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZVxuKTogYm9vbGVhbiB7XG4gIGxldCBoYXNBbGxQZXJtaXNzaW9ucyA9IHRydWU7XG5cbiAgLy8gaWYgdGhlIGtleSBpcyB1bmxpbWl0ZWQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGFueXRoaW5nIGVsc2VcbiAgaWYgKGFjdHVhbFBlcm1pc3Npb25zPy5Jc1VubGltaXRlZCkge1xuICAgIHJldHVybiBoYXNBbGxQZXJtaXNzaW9ucztcbiAgfVxuXG4gIHdhbGtPYmooZXhwZWN0ZWRQZXJtaXNzaW9ucywgKGV4cGVjdGVkVmFsLCBwYXRoKSA9PiB7XG4gICAgLy8gSWYgdGhlIGFjdHVhbCBwZXJtaXNzaW9ucyBhcmUgY29uZmlndXJlZCB3aXRoIGFueSBvZiB0aGUgc3BlY2lhbCBcImFsbG93XG4gICAgLy8gYW55dGhpbmdcIiBtYXBwaW5ncyB0aGVuIHdlIHJld3JpdGUgdGhlIGxvb2t1cCBwYXRoIGZvciBhbnkgZXhwbGljaXRcbiAgICAvLyBtYXBwaW5nIHRvIG1hdGNoIG9uIHRoZSBcImFsbG93IGFueVwiIG1hcHBpbmcuIEluIHNvbWUgY2FzZXMsIHNpbXBseVxuICAgIC8vIGNvbXBhcmUgdGhlIE9wQ291bnRzIGFuZCByZXR1cm4gZWFybHkgaWYgdGhlaXIgY2FuIGJlIG9ubHkgMSBtYXBwaW5nLlxuICAgIHN3aXRjaCAocGF0aD8uWzBdKSB7XG4gICAgICBjYXNlICdBY2Nlc3NHcm91cExpbWl0TWFwJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFjdHVhbFBlcm1pc3Npb25zPy5BY2Nlc3NHcm91cExpbWl0TWFwPy5maW5kKChtYXApID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIG1hcC5TY29wZVR5cGUgPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5BY2Nlc3NHcm91cEtleU5hbWUgPT09ICcnICYmXG4gICAgICAgICAgICAgIG1hcC5PcGVyYXRpb25UeXBlID09PSAnQW55JyAmJlxuICAgICAgICAgICAgICBtYXAuT3BDb3VudCA+PVxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUNvdW50KFxuICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRQZXJtaXNzaW9ucz8uQWNjZXNzR3JvdXBMaW1pdE1hcD8uW051bWJlcihwYXRoWzFdKV1cbiAgICAgICAgICAgICAgICAgICAgPy5PcENvdW50XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFjdHVhbFBlcm1pc3Npb25zPy5BY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwPy5maW5kKChtYXApID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIG1hcC5TY29wZVR5cGUgPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5BY2Nlc3NHcm91cEtleU5hbWUgPT09ICcnICYmXG4gICAgICAgICAgICAgIG1hcC5PcGVyYXRpb25UeXBlID09PSAnQW55JyAmJlxuICAgICAgICAgICAgICBtYXAuT3BDb3VudCA+PVxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUNvdW50KFxuICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRQZXJtaXNzaW9ucz8uQWNjZXNzR3JvdXBNZW1iZXJMaW1pdE1hcD8uW1xuICAgICAgICAgICAgICAgICAgICBOdW1iZXIocGF0aFsxXSlcbiAgICAgICAgICAgICAgICAgIF0/Lk9wQ291bnRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fzc29jaWF0aW9uTGltaXRNYXAnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgYWN0dWFsUGVybWlzc2lvbnM/LkFzc29jaWF0aW9uTGltaXRNYXA/LmZpbmQoKG1hcCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbWFwLkFzc29jaWF0aW9uQ2xhc3MgPT09XG4gICAgICAgICAgICAgICAgZXhwZWN0ZWRQZXJtaXNzaW9ucz8uQXNzb2NpYXRpb25MaW1pdE1hcD8uW051bWJlcihwYXRoWzFdKV1cbiAgICAgICAgICAgICAgICAgID8uQXNzb2NpYXRpb25DbGFzcyAmJlxuICAgICAgICAgICAgICBtYXAuQXBwU2NvcGVUeXBlID09PSAnQW55JyAmJlxuICAgICAgICAgICAgICBtYXAuQXNzb2NpYXRpb25UeXBlID09PSAnJyAmJlxuICAgICAgICAgICAgICBtYXAuQXNzb2NpYXRpb25PcGVyYXRpb24gPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5PcENvdW50ID49XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplQ291bnQoXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZFBlcm1pc3Npb25zPy5Bc3NvY2lhdGlvbkxpbWl0TWFwPy5bTnVtYmVyKHBhdGhbMV0pXVxuICAgICAgICAgICAgICAgICAgICA/Lk9wQ291bnRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NyZWF0b3JDb2luT3BlcmF0aW9uTGltaXRNYXAnOlxuICAgICAgICBpZiAoYWN0dWFsUGVybWlzc2lvbnM/LkNyZWF0b3JDb2luT3BlcmF0aW9uTGltaXRNYXA/LlsnJ10pIHtcbiAgICAgICAgICBwYXRoID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3R1YWxQZXJtaXNzaW9ucz8uQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcFsnJ10/LmFueSA9PT1cbiAgICAgICAgICAgICdudW1iZXInXG4gICAgICAgICAgICAgID8gWydDcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwJywgJycsICdhbnknXVxuICAgICAgICAgICAgICA6IFsnQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcCcsICcnLCBwYXRoW3BhdGgubGVuZ3RoIC0gMV1dO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTkZUT3BlcmF0aW9uTGltaXRNYXAnOlxuICAgICAgICBpZiAoYWN0dWFsUGVybWlzc2lvbnM/Lk5GVE9wZXJhdGlvbkxpbWl0TWFwPy5bJyddPy5bMF0pIHtcbiAgICAgICAgICBwYXRoID1cbiAgICAgICAgICAgIHR5cGVvZiBhY3R1YWxQZXJtaXNzaW9ucz8uTkZUT3BlcmF0aW9uTGltaXRNYXA/LlsnJ10/LlswXT8uYW55ID09PVxuICAgICAgICAgICAgJ251bWJlcidcbiAgICAgICAgICAgICAgPyBbJ05GVE9wZXJhdGlvbkxpbWl0TWFwJywgJycsICcwJywgJ2FueSddXG4gICAgICAgICAgICAgIDogWydORlRPcGVyYXRpb25MaW1pdE1hcCcsICcnLCAnMCcsIHBhdGhbcGF0aC5sZW5ndGggLSAxXV07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBUT0RPOiBzdXBwb3J0IGZvciBtYWtpbmcgc3VyZSBhIGRlcml2ZWQga2V5IGhhcyB0aGVzZSBsaW1pdHMuLi5cbiAgICAgIC8vIEBqYWNrc29uZGVhbiAtIHRoaXMgaXMgYSBsaXR0bGUgbW9yZSBhbm5veWluZyBzaW5jZVxuICAgICAgLy8gc3Rha2UgYW5kIHVuc3Rha2UgbGltaXRzIGRvbid0IGhhdmUgYW4gb3AgY291bnQsIGJ1dCByYXRoZXIgYSBkZXNvIGxpbWl0LlxuICAgICAgY2FzZSAnU3Rha2VMaW1pdE1hcCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhY3R1YWxQZXJtaXNzaW9ucz8uU3Rha2VMaW1pdE1hcD8uZmluZCgobWFwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtYXAuVmFsaWRhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2sgPT09ICcnICYmXG4gICAgICAgICAgICAgIGV4cGVjdGVkUGVybWlzc2lvbnM/LlN0YWtlTGltaXRNYXA/LltOdW1iZXIocGF0aFsxXSldXG4gICAgICAgICAgICAgICAgPy5TdGFrZUxpbWl0ICYmXG4gICAgICAgICAgICAgIHBhcnNlSW50KG1hcC5TdGFrZUxpbWl0LCAxNikgPj1cbiAgICAgICAgICAgICAgICBwYXJzZUludChcbiAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUGVybWlzc2lvbnM/LlN0YWtlTGltaXRNYXA/LltOdW1iZXIocGF0aFsxXSldXG4gICAgICAgICAgICAgICAgICAgID8uU3Rha2VMaW1pdCxcbiAgICAgICAgICAgICAgICAgIDE2XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdVbnN0YWtlTGltaXRNYXAnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgYWN0dWFsUGVybWlzc2lvbnM/LlVuc3Rha2VMaW1pdE1hcD8uZmluZCgobWFwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtYXAuVmFsaWRhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2sgPT09ICcnICYmXG4gICAgICAgICAgICAgIGV4cGVjdGVkUGVybWlzc2lvbnM/LlVuc3Rha2VMaW1pdE1hcD8uW051bWJlcihwYXRoWzFdKV1cbiAgICAgICAgICAgICAgICA/LlVuc3Rha2VMaW1pdCAmJlxuICAgICAgICAgICAgICBwYXJzZUludChtYXAuVW5zdGFrZUxpbWl0LCAxNikgPj1cbiAgICAgICAgICAgICAgICBwYXJzZUludChcbiAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUGVybWlzc2lvbnM/LlVuc3Rha2VMaW1pdE1hcD8uW051bWJlcihwYXRoWzFdKV1cbiAgICAgICAgICAgICAgICAgICAgPy5VbnN0YWtlTGltaXQsXG4gICAgICAgICAgICAgICAgICAxNlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVW5sb2NrU3Rha2VMaW1pdE1hcCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhY3R1YWxQZXJtaXNzaW9ucz8uVW5sb2NrU3Rha2VMaW1pdE1hcD8uZmluZCgobWFwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtYXAuVmFsaWRhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2sgPT09ICcnICYmXG4gICAgICAgICAgICAgIG1hcC5PcENvdW50ID49XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplQ291bnQoXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZFBlcm1pc3Npb25zPy5VbmxvY2tTdGFrZUxpbWl0TWFwPy5bTnVtYmVyKHBhdGhbMV0pXVxuICAgICAgICAgICAgICAgICAgICA/Lk9wQ291bnRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xvY2t1cExpbWl0TWFwJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFjdHVhbFBlcm1pc3Npb25zPy5Mb2NrdXBMaW1pdE1hcD8uZmluZCgobWFwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtYXAuUHJvZmlsZVB1YmxpY0tleUJhc2U1OENoZWNrID09PSAnJyAmJlxuICAgICAgICAgICAgICBtYXAuT3BDb3VudCA+PVxuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUNvdW50KFxuICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRQZXJtaXNzaW9ucz8uTG9ja3VwTGltaXRNYXA/LltOdW1iZXIocGF0aFsxXSldXG4gICAgICAgICAgICAgICAgICAgID8uT3BDb3VudFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFZhbCA9IGdldERlZXBWYWx1ZShhY3R1YWxQZXJtaXNzaW9ucywgcGF0aCk7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgYWN0dWFsVmFsID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgKHR5cGVvZiBhY3R1YWxWYWwgPT09ICdudW1iZXInICYmXG4gICAgICAgIGFjdHVhbFZhbCA8IG5vcm1hbGl6ZUNvdW50KGV4cGVjdGVkVmFsKSkgfHxcbiAgICAgICh0eXBlb2YgYWN0dWFsVmFsID09PSAnc3RyaW5nJyAmJiBhY3R1YWxWYWwgIT09IGV4cGVjdGVkVmFsKVxuICAgICkge1xuICAgICAgaGFzQWxsUGVybWlzc2lvbnMgPSBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBoYXNBbGxQZXJtaXNzaW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UoXG4gIHNwZW5kaW5nTGltaXRPcHRpb25zOiBQYXJ0aWFsPFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlT3B0aW9ucz5cbik6IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlIHtcbiAgaWYgKHNwZW5kaW5nTGltaXRPcHRpb25zLklzVW5saW1pdGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIElzVW5saW1pdGVkOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBpZiAoc3BlbmRpbmdMaW1pdE9wdGlvbnMuR2xvYmFsREVTT0xpbWl0Py50b1N0cmluZygpID09PSAnVU5MSU1JVEVEJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdHbG9iYWxERVNPTGltaXQgY2Fubm90IGJlIHVubGltaXRlZC4gWW91IG11c3Qgc3BlY2lmeSBhIHNwZWNpZmljIGxpbWl0LCBvciBzZXQgdGhlIElzVW5saW1pdGVkIGZsYWcgdG8gdHJ1ZS4nXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UgPSB7fTtcblxuICB3YWxrT2JqKFxuICAgIHNwZW5kaW5nTGltaXRPcHRpb25zLFxuICAgICh2YWwsIHBhdGgpID0+IHtcbiAgICAgIHNldERlZXBWYWx1ZShyZXN1bHQsIHBhdGgsIHZhbCA9PT0gJ1VOTElNSVRFRCcgPyAxZTkgOiB2YWwpO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICBpZiAocmVzdWx0LlN0YWtlTGltaXRNYXApIHtcbiAgICByZXN1bHQuU3Rha2VMaW1pdE1hcCA9IE9iamVjdC52YWx1ZXMocmVzdWx0LlN0YWtlTGltaXRNYXApO1xuICB9XG5cbiAgaWYgKHJlc3VsdC5VbnN0YWtlTGltaXRNYXApIHtcbiAgICByZXN1bHQuVW5zdGFrZUxpbWl0TWFwID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQuVW5zdGFrZUxpbWl0TWFwKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQuVW5sb2NrU3Rha2VMaW1pdE1hcCkge1xuICAgIHJlc3VsdC5VbmxvY2tTdGFrZUxpbWl0TWFwID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQuVW5sb2NrU3Rha2VMaW1pdE1hcCk7XG4gIH1cblxuICBpZiAocmVzdWx0LkFjY2Vzc0dyb3VwTGltaXRNYXApIHtcbiAgICByZXN1bHQuQWNjZXNzR3JvdXBMaW1pdE1hcCA9IE9iamVjdC52YWx1ZXMocmVzdWx0LkFjY2Vzc0dyb3VwTGltaXRNYXApO1xuICB9XG5cbiAgaWYgKHJlc3VsdC5BY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwKSB7XG4gICAgcmVzdWx0LkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXAgPSBPYmplY3QudmFsdWVzKFxuICAgICAgcmVzdWx0LkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXBcbiAgICApO1xuICB9XG4gIGlmIChyZXN1bHQuQXNzb2NpYXRpb25MaW1pdE1hcCkge1xuICAgIHJlc3VsdC5Bc3NvY2lhdGlvbkxpbWl0TWFwID0gT2JqZWN0LnZhbHVlcyhyZXN1bHQuQXNzb2NpYXRpb25MaW1pdE1hcCk7XG4gICAgLy8gVmFsaWRhdGUgZWFjaCBhc3NvY2lhdGlvbiBsaW1pdCBvYmplY3RcbiAgICByZXN1bHQuQXNzb2NpYXRpb25MaW1pdE1hcC5mb3JFYWNoKChhc3NvY2lhdGlvbkxpbWl0SXRlbSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBhc3NvY2lhdGlvbkxpbWl0SXRlbS5BcHBQdWJsaWNLZXlCYXNlNThDaGVjayAmJlxuICAgICAgICBhc3NvY2lhdGlvbkxpbWl0SXRlbS5BcHBTY29wZVR5cGUgPT09ICdBbnknXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBcHBQdWJsaWNLZXlCYXNlNThDaGVjayBtdXN0IGJlIHNldCB0byB1bmRlZmluZWQgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIEFwcFNjb3BlVHlwZSBpcyBBbnkuIFlvdSBwcm92aWRlZCAke2Fzc29jaWF0aW9uTGltaXRJdGVtLkFwcFB1YmxpY0tleUJhc2U1OENoZWNrfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgIS9eKD86QkMxfHRCQykuKy8udGVzdChhc3NvY2lhdGlvbkxpbWl0SXRlbS5BcHBQdWJsaWNLZXlCYXNlNThDaGVjaykgJiZcbiAgICAgICAgYXNzb2NpYXRpb25MaW1pdEl0ZW0uQXBwU2NvcGVUeXBlID09PSAnU2NvcGVkJ1xuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXBwUHVibGljS2V5QmFzZTU4Q2hlY2sgbXVzdCBiZSBzZXQgdG8gYSB2YWxpZCBwdWJsaWMga2V5IGlmIEFwcFNjb3BlVHlwZSBpcyBTY29wZWQuIFlvdSBwcm92aWRlZDogJHthc3NvY2lhdGlvbkxpbWl0SXRlbS5BcHBQdWJsaWNLZXlCYXNlNThDaGVja31gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLy8gVE9ETzogc3VwcG9ydCBmb3IgbmV3IFBvUyBTcGVuZGluZyBsaW1pdHMgbWFwcy5cblxuICByZXN1bHQuVHJhbnNhY3Rpb25Db3VudExpbWl0TWFwID0gcmVzdWx0LlRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcCA/PyB7fTtcblxuICBpZiAoXG4gICAgdHlwZW9mIHJlc3VsdC5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXBbJ0FVVEhPUklaRV9ERVJJVkVEX0tFWSddID09PVxuICAgICd1bmRlZmluZWQnXG4gICkge1xuICAgIHJlc3VsdC5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXAgPSB7XG4gICAgICAuLi5yZXN1bHQuVHJhbnNhY3Rpb25Db3VudExpbWl0TWFwLFxuICAgICAgQVVUSE9SSVpFX0RFUklWRURfS0VZOiAxLFxuICAgIH07XG4gIH0gZWxzZSBpZiAocmVzdWx0LlRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcFsnQVVUSE9SSVpFX0RFUklWRURfS0VZJ10gPCAwKSB7XG4gICAgZGVsZXRlIHJlc3VsdC5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXBbJ0FVVEhPUklaRV9ERVJJVkVEX0tFWSddO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gd2Fsa09iaihcbiAgbm9kZTogYW55LFxuICBjYWxsYmFjazogKHZhbDogYW55LCBwYXRoOiBzdHJpbmdbXSkgPT4gdm9pZCxcbiAgcGF0aDogc3RyaW5nW10gPSBbXVxuKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ29iamVjdCcgJiYgbm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhub2RlKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHdhbGtPYmoobm9kZVtrZXlzW2ldXSwgY2FsbGJhY2ssIHBhdGguY29uY2F0KGtleXNbaV0pKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY2FsbGJhY2sobm9kZSwgcGF0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVlcFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IGN1cnJLZXkgPSBwYXRoWzBdO1xuXG4gIGlmIChcbiAgICBvYmogPT09IG51bGwgfHxcbiAgICB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fFxuICAgIHR5cGVvZiBvYmpbY3VycktleV0gPT09ICd1bmRlZmluZWQnXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwYXRoLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBvYmpbY3VycktleV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGdldERlZXBWYWx1ZShvYmpbY3VycktleV0sIHBhdGguc2xpY2UoMSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNldERlZXBWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nW10sIHZhbHVlOiBhbnkpIHtcbiAgY29uc3QgY3VycktleSA9IHBhdGhbMF07XG4gIGlmICh0eXBlb2Ygb2JqW2N1cnJLZXldID09PSAndW5kZWZpbmVkJykge1xuICAgIG9ialtjdXJyS2V5XSA9IHt9O1xuICB9XG5cbiAgaWYgKHBhdGgubGVuZ3RoID09PSAxKSB7XG4gICAgb2JqW2N1cnJLZXldID0gdmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgc2V0RGVlcFZhbHVlKG9ialtjdXJyS2V5XSwgcGF0aC5zbGljZSgxKSwgdmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvdW50KGNvdW50PzogbnVtYmVyIHwgJ1VOTElNSVRFRCcpIHtcbiAgLy8gTk9URTogSWYgY2hlY2tpbmcgZm9yIHVubGltaXRlZCwgd2UganVzdCBjaGVjayBpZiBpdCdzIGdyZWF0ZXIgdGhhbiAxXG4gIC8vIGJlY2F1c2UgdGhlcmUgaXMgbm8gZ29vZCB3YXkgdG8ga25vdyBpZiB0aGUgb3JpZ2luYWwgdmFsdWUgd2FzICdVTkxJTUlURUQnXG4gIC8vIG9yIHNvbWUgb3RoZXIgbnVtZXJpYy4gIEFzIGxvbmcgYXMgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZSBqdXN0IGxldFxuICAvLyBpdCBwYXNzIGFzICdVTkxJTUlURUQuJyBJbiB0aGUgZW5kIHRoaXMgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB3ZSBmYWlsIHRoZVxuICAvLyBjaGVjayBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0cmFuc2FjdGlvbnMgbGVmdCB0byBzcGVuZC5cbiAgcmV0dXJuIGNvdW50ID09PSAnVU5MSU1JVEVEJyB8fCBjb3VudCA9PT0gMWU5ID8gMSA6IGNvdW50ID8/IDA7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvcGVybWlzc2lvbnMtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxtQkFBNEQsRUFDNUQsaUJBQW1EO0lBRW5ELElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBRTdCLG9FQUFvRTtJQUNwRSxJQUFJLGlCQUFpQixFQUFFLFdBQVcsRUFBRTtRQUNsQyxPQUFPLGlCQUFpQixDQUFDO0tBQzFCO0lBRUQsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2pELDBFQUEwRTtRQUMxRSxzRUFBc0U7UUFDdEUscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLEtBQUsscUJBQXFCO2dCQUN4QixJQUNFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNuRCxPQUFPLENBQ0wsR0FBRyxDQUFDLFNBQVMsS0FBSyxLQUFLO3dCQUN2QixHQUFHLENBQUMsa0JBQWtCLEtBQUssRUFBRTt3QkFDN0IsR0FBRyxDQUFDLGFBQWEsS0FBSyxLQUFLO3dCQUMzQixHQUFHLENBQUMsT0FBTzs0QkFDVCxjQUFjLENBQ1osbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ3pELEVBQUUsT0FBTyxDQUNaLENBQ0osQ0FBQztnQkFDSixDQUFDLENBQUMsRUFDRjtvQkFDQSxPQUFPO2lCQUNSO2dCQUNELE1BQU07WUFDUixLQUFLLDJCQUEyQjtnQkFDOUIsSUFDRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVB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QUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2xEO0FBQ0gsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQTRCO0lBQ2xELHdFQUF3RTtJQUN4RSw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSx5REFBeUQ7SUFDekQsT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UgfSBmcm9tICcuLi9iYWNrZW5kLXR5cGVzL2luZGV4LmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdHMoXG4gIGV4cGVjdGVkUGVybWlzc2lvbnM6IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlT3B0aW9ucyxcbiAgYWN0dWFsUGVybWlzc2lvbnM6IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlXG4pOiBib29sZWFuIHtcbiAgbGV0IGhhc0FsbFBlcm1pc3Npb25zID0gdHJ1ZTtcblxuICAvLyBpZiB0aGUga2V5IGlzIHVubGltaXRlZCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgYW55dGhpbmcgZWxzZVxuICBpZiAoYWN0dWFsUGVybWlzc2lvbnM/LklzVW5saW1pdGVkKSB7XG4gICAgcmV0dXJuIGhhc0FsbFBlcm1pc3Npb25zO1xuICB9XG5cbiAgd2Fsa09iaihleHBlY3RlZFBlcm1pc3Npb25zLCAoZXhwZWN0ZWRWYWwsIHBhdGgpID0+IHtcbiAgICAvLyBJZiB0aGUgYWN0dWFsIHBlcm1pc3Npb25zIGFyZSBjb25maWd1cmVkIHdpdGggYW55IG9mIHRoZSBzcGVjaWFsIFwiYWxsb3dcbiAgICAvLyBhbnl0aGluZ1wiIG1hcHBpbmdzIHRoZW4gd2UgcmV3cml0ZSB0aGUgbG9va3VwIHBhdGggZm9yIGFueSBleHBsaWNpdFxuICAgIC8vIG1hcHBpbmcgdG8gbWF0Y2ggb24gdGhlIFwiYWxsb3cgYW55XCIgbWFwcGluZy4gSW4gc29tZSBjYXNlcywgc2ltcGx5XG4gICAgLy8gY29tcGFyZSB0aGUgT3BDb3VudHMgYW5kIHJldHVybiBlYXJseSBpZiB0aGVpciBjYW4gYmUgb25seSAxIG1hcHBpbmcuXG4gICAgc3dpdGNoIChwYXRoPy5bMF0pIHtcbiAgICAgIGNhc2UgJ0FjY2Vzc0dyb3VwTGltaXRNYXAnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgYWN0dWFsUGVybWlzc2lvbnM/LkFjY2Vzc0dyb3VwTGltaXRNYXA/LmZpbmQoKG1hcCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbWFwLlNjb3BlVHlwZSA9PT0gJ0FueScgJiZcbiAgICAgICAgICAgICAgbWFwLkFjY2Vzc0dyb3VwS2V5TmFtZSA9PT0gJycgJiZcbiAgICAgICAgICAgICAgbWFwLk9wZXJhdGlvblR5cGUgPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5PcENvdW50ID49XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplQ291bnQoXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZFBlcm1pc3Npb25zPy5BY2Nlc3NHcm91cExpbWl0TWFwPy5bTnVtYmVyKHBhdGhbMV0pXVxuICAgICAgICAgICAgICAgICAgICA/Lk9wQ291bnRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0FjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXAnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgYWN0dWFsUGVybWlzc2lvbnM/LkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXA/LmZpbmQoKG1hcCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbWFwLlNjb3BlVHlwZSA9PT0gJ0FueScgJiZcbiAgICAgICAgICAgICAgbWFwLkFjY2Vzc0dyb3VwS2V5TmFtZSA9PT0gJycgJiZcbiAgICAgICAgICAgICAgbWFwLk9wZXJhdGlvblR5cGUgPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5PcENvdW50ID49XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplQ291bnQoXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZFBlcm1pc3Npb25zPy5BY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwPy5bXG4gICAgICAgICAgICAgICAgICAgIE51bWJlcihwYXRoWzFdKVxuICAgICAgICAgICAgICAgICAgXT8uT3BDb3VudFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXNzb2NpYXRpb25MaW1pdE1hcCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhY3R1YWxQZXJtaXNzaW9ucz8uQXNzb2NpYXRpb25MaW1pdE1hcD8uZmluZCgobWFwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtYXAuQXNzb2NpYXRpb25DbGFzcyA9PT1cbiAgICAgICAgICAgICAgICBleHBlY3RlZFBlcm1pc3Npb25zPy5Bc3NvY2lhdGlvbkxpbWl0TWFwPy5bTnVtYmVyKHBhdGhbMV0pXVxuICAgICAgICAgICAgICAgICAgPy5Bc3NvY2lhdGlvbkNsYXNzICYmXG4gICAgICAgICAgICAgIG1hcC5BcHBTY29wZVR5cGUgPT09ICdBbnknICYmXG4gICAgICAgICAgICAgIG1hcC5Bc3NvY2lhdGlvblR5cGUgPT09ICcnICYmXG4gICAgICAgICAgICAgIG1hcC5Bc3NvY2lhdGlvbk9wZXJhdGlvbiA9PT0gJ0FueScgJiZcbiAgICAgICAgICAgICAgbWFwLk9wQ291bnQgPj1cbiAgICAgICAgICAgICAgICBub3JtYWxpemVDb3VudChcbiAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUGVybWlzc2lvbnM/LkFzc29jaWF0aW9uTGltaXRNYXA/LltOdW1iZXIocGF0aFsxXSldXG4gICAgICAgICAgICAgICAgICAgID8uT3BDb3VudFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcCc6XG4gICAgICAgIGlmIChhY3R1YWxQZXJtaXNzaW9ucz8uQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcD8uWycnXSkge1xuICAgICAgICAgIHBhdGggPVxuICAgICAgICAgICAgdHlwZW9mIGFjdHVhbFBlcm1pc3Npb25zPy5DcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwWycnXT8uYW55ID09PVxuICAgICAgICAgICAgJ251bWJlcidcbiAgICAgICAgICAgICAgPyBbJ0NyZWF0b3JDb2luT3BlcmF0aW9uTGltaXRNYXAnLCAnJywgJ2FueSddXG4gICAgICAgICAgICAgIDogWydDcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwJywgJycsIHBhdGhbcGF0aC5sZW5ndGggLSAxXV07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdORlRPcGVyYXRpb25MaW1pdE1hcCc6XG4gICAgICAgIGlmIChhY3R1YWxQZXJtaXNzaW9ucz8uTkZUT3BlcmF0aW9uTGltaXRNYXA/LlsnJ10/LlswXSkge1xuICAgICAgICAgIHBhdGggPVxuICAgICAgICAgICAgdHlwZW9mIGFjdHVhbFBlcm1pc3Npb25zPy5ORlRPcGVyYXRpb25MaW1pdE1hcD8uWycnXT8uWzBdPy5hbnkgPT09XG4gICAgICAgICAgICAnbnVtYmVyJ1xuICAgICAgICAgICAgICA/IFsnTkZUT3BlcmF0aW9uTGltaXRNYXAnLCAnJywgJzAnLCAnYW55J11cbiAgICAgICAgICAgICAgOiBbJ05GVE9wZXJhdGlvbkxpbWl0TWFwJywgJycsICcwJywgcGF0aFtwYXRoLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBhY3R1YWxWYWwgPSBnZXREZWVwVmFsdWUoYWN0dWFsUGVybWlzc2lvbnMsIHBhdGgpO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGFjdHVhbFZhbCA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgICh0eXBlb2YgYWN0dWFsVmFsID09PSAnbnVtYmVyJyAmJlxuICAgICAgICBhY3R1YWxWYWwgPCBub3JtYWxpemVDb3VudChleHBlY3RlZFZhbCkpIHx8XG4gICAgICAodHlwZW9mIGFjdHVhbFZhbCA9PT0gJ3N0cmluZycgJiYgYWN0dWFsVmFsICE9PSBleHBlY3RlZFZhbClcbiAgICApIHtcbiAgICAgIGhhc0FsbFBlcm1pc3Npb25zID0gZmFsc2U7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaGFzQWxsUGVybWlzc2lvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlKFxuICBzcGVuZGluZ0xpbWl0T3B0aW9uczogUGFydGlhbDxUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnM+XG4pOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZSB7XG4gIGlmIChzcGVuZGluZ0xpbWl0T3B0aW9ucy5Jc1VubGltaXRlZCkge1xuICAgIHJldHVybiB7XG4gICAgICBJc1VubGltaXRlZDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHNwZW5kaW5nTGltaXRPcHRpb25zLkdsb2JhbERFU09MaW1pdD8udG9TdHJpbmcoKSA9PT0gJ1VOTElNSVRFRCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnR2xvYmFsREVTT0xpbWl0IGNhbm5vdCBiZSB1bmxpbWl0ZWQuIFlvdSBtdXN0IHNwZWNpZnkgYSBzcGVjaWZpYyBsaW1pdCwgb3Igc2V0IHRoZSBJc1VubGltaXRlZCBmbGFnIHRvIHRydWUuJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlID0ge307XG5cbiAgd2Fsa09iaihcbiAgICBzcGVuZGluZ0xpbWl0T3B0aW9ucyxcbiAgICAodmFsLCBwYXRoKSA9PiB7XG4gICAgICBzZXREZWVwVmFsdWUocmVzdWx0LCBwYXRoLCB2YWwgPT09ICdVTkxJTUlURUQnID8gMWU5IDogdmFsKTtcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgaWYgKHJlc3VsdC5BY2Nlc3NHcm91cExpbWl0TWFwKSB7XG4gICAgcmVzdWx0LkFjY2Vzc0dyb3VwTGltaXRNYXAgPSBPYmplY3QudmFsdWVzKHJlc3VsdC5BY2Nlc3NHcm91cExpbWl0TWFwKTtcbiAgfVxuICBpZiAocmVzdWx0LkFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXApIHtcbiAgICByZXN1bHQuQWNjZXNzR3JvdXBNZW1iZXJMaW1pdE1hcCA9IE9iamVjdC52YWx1ZXMoXG4gICAgICByZXN1bHQuQWNjZXNzR3JvdXBNZW1iZXJMaW1pdE1hcFxuICAgICk7XG4gIH1cbiAgaWYgKHJlc3VsdC5Bc3NvY2lhdGlvbkxpbWl0TWFwKSB7XG4gICAgcmVzdWx0LkFzc29jaWF0aW9uTGltaXRNYXAgPSBPYmplY3QudmFsdWVzKHJlc3VsdC5Bc3NvY2lhdGlvbkxpbWl0TWFwKTtcbiAgICAvLyBWYWxpZGF0ZSBlYWNoIGFzc29jaWF0aW9uIGxpbWl0IG9iamVjdFxuICAgIHJlc3VsdC5Bc3NvY2lhdGlvbkxpbWl0TWFwLmZvckVhY2goKGFzc29jaWF0aW9uTGltaXRJdGVtKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGFzc29jaWF0aW9uTGltaXRJdGVtLkFwcFB1YmxpY0tleUJhc2U1OENoZWNrICYmXG4gICAgICAgIGFzc29jaWF0aW9uTGltaXRJdGVtLkFwcFNjb3BlVHlwZSA9PT0gJ0FueSdcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEFwcFB1YmxpY0tleUJhc2U1OENoZWNrIG11c3QgYmUgc2V0IHRvIHVuZGVmaW5lZCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgQXBwU2NvcGVUeXBlIGlzIEFueS4gWW91IHByb3ZpZGVkICR7YXNzb2NpYXRpb25MaW1pdEl0ZW0uQXBwUHVibGljS2V5QmFzZTU4Q2hlY2t9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAhL14oPzpCQzF8dEJDKS4rLy50ZXN0KGFzc29jaWF0aW9uTGltaXRJdGVtLkFwcFB1YmxpY0tleUJhc2U1OENoZWNrKSAmJlxuICAgICAgICBhc3NvY2lhdGlvbkxpbWl0SXRlbS5BcHBTY29wZVR5cGUgPT09ICdTY29wZWQnXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBcHBQdWJsaWNLZXlCYXNlNThDaGVjayBtdXN0IGJlIHNldCB0byBhIHZhbGlkIHB1YmxpYyBrZXkgaWYgQXBwU2NvcGVUeXBlIGlzIFNjb3BlZC4gWW91IHByb3ZpZGVkOiAke2Fzc29jaWF0aW9uTGltaXRJdGVtLkFwcFB1YmxpY0tleUJhc2U1OENoZWNrfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc3VsdC5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXAgPSByZXN1bHQuVHJhbnNhY3Rpb25Db3VudExpbWl0TWFwID8/IHt9O1xuXG4gIGlmIChcbiAgICB0eXBlb2YgcmVzdWx0LlRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcFsnQVVUSE9SSVpFX0RFUklWRURfS0VZJ10gPT09XG4gICAgJ3VuZGVmaW5lZCdcbiAgKSB7XG4gICAgcmVzdWx0LlRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcCA9IHtcbiAgICAgIC4uLnJlc3VsdC5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXAsXG4gICAgICBBVVRIT1JJWkVfREVSSVZFRF9LRVk6IDEsXG4gICAgfTtcbiAgfSBlbHNlIGlmIChyZXN1bHQuVHJhbnNhY3Rpb25Db3VudExpbWl0TWFwWydBVVRIT1JJWkVfREVSSVZFRF9LRVknXSA8IDApIHtcbiAgICBkZWxldGUgcmVzdWx0LlRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcFsnQVVUSE9SSVpFX0RFUklWRURfS0VZJ107XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB3YWxrT2JqKFxuICBub2RlOiBhbnksXG4gIGNhbGxiYWNrOiAodmFsOiBhbnksIHBhdGg6IHN0cmluZ1tdKSA9PiB2b2lkLFxuICBwYXRoOiBzdHJpbmdbXSA9IFtdXG4pIHtcbiAgaWYgKHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgd2Fsa09iaihub2RlW2tleXNbaV1dLCBjYWxsYmFjaywgcGF0aC5jb25jYXQoa2V5c1tpXSkpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjayhub2RlLCBwYXRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWVwVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgY3VycktleSA9IHBhdGhbMF07XG5cbiAgaWYgKFxuICAgIG9iaiA9PT0gbnVsbCB8fFxuICAgIHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8XG4gICAgdHlwZW9mIG9ialtjdXJyS2V5XSA9PT0gJ3VuZGVmaW5lZCdcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHBhdGgubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIG9ialtjdXJyS2V5XTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZ2V0RGVlcFZhbHVlKG9ialtjdXJyS2V5XSwgcGF0aC5zbGljZSgxKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0RGVlcFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmdbXSwgdmFsdWU6IGFueSkge1xuICBjb25zdCBjdXJyS2V5ID0gcGF0aFswXTtcbiAgaWYgKHR5cGVvZiBvYmpbY3VycktleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgb2JqW2N1cnJLZXldID0ge307XG4gIH1cblxuICBpZiAocGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICBvYmpbY3VycktleV0gPSB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICBzZXREZWVwVmFsdWUob2JqW2N1cnJLZXldLCBwYXRoLnNsaWNlKDEpLCB2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplQ291bnQoY291bnQ/OiBudW1iZXIgfCAnVU5MSU1JVEVEJykge1xuICAvLyBOT1RFOiBJZiBjaGVja2luZyBmb3IgdW5saW1pdGVkLCB3ZSBqdXN0IGNoZWNrIGlmIGl0J3MgZ3JlYXRlciB0aGFuIDFcbiAgLy8gYmVjYXVzZSB0aGVyZSBpcyBubyBnb29kIHdheSB0byBrbm93IGlmIHRoZSBvcmlnaW5hbCB2YWx1ZSB3YXMgJ1VOTElNSVRFRCdcbiAgLy8gb3Igc29tZSBvdGhlciBudW1lcmljLiAgQXMgbG9uZyBhcyB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIDEsIHdlIGp1c3QgbGV0XG4gIC8vIGl0IHBhc3MgYXMgJ1VOTElNSVRFRC4nIEluIHRoZSBlbmQgdGhpcyBzaG91bGRuJ3QgbWF0dGVyIHNpbmNlIHdlIGZhaWwgdGhlXG4gIC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRyYW5zYWN0aW9ucyBsZWZ0IHRvIHNwZW5kLlxuICByZXR1cm4gY291bnQgPT09ICdVTkxJTUlURUQnIHx8IGNvdW50ID09PSAxZTkgPyAxIDogY291bnQgPz8gMDtcbn1cbiJdfQ==

@@ -260,50 +260,2 @@ import { MsgDeSoTxn } from '../backend-types/index.js';

}
export declare class TransactionMetadataRegisterAsValidator extends BinaryRecord {
domains: Uint8Array[];
disableDelegatedStake: boolean;
delegatedStakeCommissionBasisPoints: number;
votingPublicKey: Uint8Array;
votingAuthorization: Uint8Array;
}
export declare class TransactionMetadataUnregisterAsValidator extends BinaryRecord {
}
export declare class TransactionMetadataStake extends BinaryRecord {
validatorPublicKey: Uint8Array;
rewardMethod: number;
stakeAmountNanos: Uint8Array;
}
export declare class TransactionMetadataUnstake extends BinaryRecord {
validatorPublicKey: Uint8Array;
unstakeAmountNanos: Uint8Array;
}
export declare class TransactionMetadataUnlockStake extends BinaryRecord {
validatorPublicKey: Uint8Array;
startEpochNumber: number;
endEpochNumber: number;
}
export declare class TransactionMetadataUnjailValidator extends BinaryRecord {
}
export declare class TransactionMetadataCoinLockup extends BinaryRecord {
profilePublicKey: Uint8Array;
recipientPublicKey: Uint8Array;
unlockTimestampNanoSecs: number;
vestingEndTimestampNanoSecs: number;
lockupAmountBaseUnits: Uint8Array;
}
export declare class TransactionMetadataUpdateCoinLockupParams extends BinaryRecord {
lockupYieldDurationNanoSecs: number;
lockupYieldAPYBasisPoints: number;
removeYieldCurvePoint: boolean;
newLockupTransferRestrictions: boolean;
lockupTransferRestrictionStatus: number;
}
export declare class TransactionMetadataCoinLockupTransfer extends BinaryRecord {
recipientPublicKey: Uint8Array;
profilePublicKey: Uint8Array;
unlockTimestampNanoSecs: number;
lockedCoinsToTransferBaseUnits: Uint8Array;
}
export declare class TransactionMetadataCoinUnlock extends BinaryRecord {
profilePublicKey: Uint8Array;
}
export declare const TransactionTypeMetadataMap: {

@@ -342,8 +294,2 @@ 1: typeof TransactionMetadataBlockReward;

33: typeof TransactionMetadataNewMessage;
34: typeof TransactionMetadataRegisterAsValidator;
35: typeof TransactionMetadataUnregisterAsValidator;
36: typeof TransactionMetadataStake;
37: typeof TransactionMetadataUnstake;
38: typeof TransactionMetadataUnlockStake;
39: typeof TransactionMetadataUnjailValidator;
};

@@ -350,0 +296,0 @@ export declare const TransactionTypeToStringMap: {

@@ -23,3 +23,2 @@ import 'reflect-metadata';

export declare const Uvarint64: Transcoder<number>;
export declare const Varint64: Transcoder<number>;
export declare const Boolean: Transcoder<boolean>;

@@ -29,6 +28,4 @@ export declare const Uint8: Transcoder<number>;

export declare const VarBuffer: Transcoder<Uint8Array>;
export declare const VarBufferArray: Transcoder<Uint8Array[]>;
export declare const TransactionNonceTranscoder: Transcoder<TransactionNonce | null>;
export declare function Optional<T>(transcoder: Transcoder<T>): Transcoder<T | null>;
export declare function BoolOptional<T>(transcoder: Transcoder<T>): Transcoder<T | null>;
export declare const ChunkBuffer: (width: number) => Transcoder<Uint8Array[]>;

@@ -35,0 +32,0 @@ export declare const ArrayOf: <T extends Serializable, C extends Deserializable<T> & (new () => T)>(klass: C) => Transcoder<T[]>;

import 'reflect-metadata';
import { bufToUvarint64, bufToVarint64, concatUint8Arrays, uvarint64ToBuf, varint64ToBuf, } from './crypto-utils.js';
import { bufToUvarint64, concatUint8Arrays, uvarint64ToBuf, } from './crypto-utils.js';
import { TransactionNonce } from './transaction-transcoders.js';

@@ -39,6 +39,2 @@ export class BinaryRecord {

};
export const Varint64 = {
read: (bytes) => bufToVarint64(bytes),
write: (int) => varint64ToBuf(int),
};
export const Boolean = {

@@ -67,24 +63,2 @@ read: (bytes) => [bytes.at(0) != 0, bytes.slice(1)],

};
export const VarBufferArray = {
read: (bytes) => {
const countAndBuffer = bufToUvarint64(bytes);
const count = countAndBuffer[0];
let buffer = countAndBuffer[1];
const result = [];
for (let i = 0; i < count; i++) {
let size;
[size, buffer] = bufToUvarint64(buffer);
result.push(buffer.slice(0, size));
buffer = buffer.slice(size);
}
return [result, buffer];
},
write: (buffers) => {
const count = uvarint64ToBuf(buffers.length);
return concatUint8Arrays([
count,
...buffers.map((buffer) => concatUint8Arrays([uvarint64ToBuf(buffer.length), buffer])),
]);
},
};
export const TransactionNonceTranscoder = {

@@ -107,19 +81,2 @@ read: (bytes) => {

}
export function BoolOptional(transcoder) {
return {
read: (bytes) => {
const existence = bytes.at(0) != 0;
if (!existence) {
return [null, bytes.slice(1)];
}
return transcoder.read(bytes.slice(1));
},
write: (value) => {
if (value === null) {
return Uint8Array.from([0]);
}
return concatUint8Arrays([Uint8Array.from([1]), transcoder.write(value)]);
},
};
}
export const ChunkBuffer = (width) => ({

@@ -194,2 +151,2 @@ read: (bytes) => {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNjb2RlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvdHJhbnNjb2RlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGFBQWEsR0FDZCxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBaUI7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxXQUFXLEdBQ2YsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5ELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQzNDLElBQUksS0FBSyxDQUFDO1lBQ1YsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELE1BQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxXQUFXLEdBQ2YsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FB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YUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQixPQUFPO2dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ25CLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxQyxPQUFPLGlCQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7XG4gIGJ1ZlRvVXZhcmludDY0LFxuICBidWZUb1ZhcmludDY0LFxuICBjb25jYXRVaW50OEFycmF5cyxcbiAgdXZhcmludDY0VG9CdWYsXG4gIHZhcmludDY0VG9CdWYsXG59IGZyb20gJy4vY3J5cHRvLXV0aWxzLmpzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTm9uY2UgfSBmcm9tICcuL3RyYW5zYWN0aW9uLXRyYW5zY29kZXJzLmpzJztcbmV4cG9ydCBjbGFzcyBCaW5hcnlSZWNvcmQge1xuICBzdGF0aWMgZnJvbUJ5dGVzKGJ5dGVzOiBVaW50OEFycmF5KTogW0JpbmFyeVJlY29yZCwgVWludDhBcnJheV0ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyB0aGlzKCk7XG4gICAgbGV0IGJ1ZmZlciA9IGJ5dGVzO1xuXG4gICAgY29uc3QgdHJhbnNjb2RlcnM6IFRyYW5zY29kZXJNZXRhZGF0YVtdID1cbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ3RyYW5zY29kZXJzJywgcmVzdWx0KSB8fCBbXTtcblxuICAgIHRyYW5zY29kZXJzLmZvckVhY2goKHsgbmFtZSwgdHJhbnNjb2RlciB9KSA9PiB7XG4gICAgICBsZXQgdmFsdWU7XG4gICAgICBbdmFsdWUsIGJ1ZmZlcl0gPSB0cmFuc2NvZGVyLnJlYWQuY2FsbChyZXN1bHQsIGJ1ZmZlcik7XG4gICAgICAocmVzdWx0IGFzIGFueSlbbmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBbcmVzdWx0LCBidWZmZXJdO1xuICB9XG5cbiAgdG9CeXRlcygpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCB0cmFuc2NvZGVyczogVHJhbnNjb2Rlck1ldGFkYXRhW10gPVxuICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YSgndHJhbnNjb2RlcnMnLCB0aGlzKSB8fCBbXTtcblxuICAgIGxldCBidWZmZXIgPSBuZXcgVWludDhBcnJheSgwKTtcbiAgICB0cmFuc2NvZGVycy5mb3JFYWNoKCh7IG5hbWUsIHRyYW5zY29kZXIgfSkgPT4ge1xuICAgICAgYnVmZmVyID0gY29uY2F0VWludDhBcnJheXMoW1xuICAgICAgICBidWZmZXIsXG4gICAgICAgIHRyYW5zY29kZXIud3JpdGUuY2FsbCh0aGlzLCAodGhpcyBhcyBhbnkpW25hbWVdKSxcbiAgICAgIF0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zY29kZXJNZXRhZGF0YTxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHJhbnNjb2RlcjogVHJhbnNjb2RlcjxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRyYW5zY29kZTxUPih0cmFuc2NvZGVyOiBUcmFuc2NvZGVyPFQ+KSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIG5hbWU6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IHRyYW5zY29kZXJzID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgndHJhbnNjb2RlcnMnLCB0YXJnZXQpIHx8IFtdO1xuICAgIHRyYW5zY29kZXJzLnB1c2goeyBuYW1lLCB0cmFuc2NvZGVyIH0pO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoJ3RyYW5zY29kZXJzJywgdHJhbnNjb2RlcnMsIHRhcmdldCk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNjb2RlcjxUPiB7XG4gIHJlYWQ6IChieXRlczogVWludDhBcnJheSkgPT4gW1QsIFVpbnQ4QXJyYXldO1xuICB3cml0ZTogKG9iamVjdDogVCkgPT4gVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemFibGUge1xuICB0b0J5dGVzOiAoKSA9PiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2VyaWFsaXphYmxlPFQ+IHtcbiAgZnJvbUJ5dGVzOiAoYnl0ZXM6IFVpbnQ4QXJyYXkpID0+IFtULCBVaW50OEFycmF5XTtcbn1cblxuZXhwb3J0IGNvbnN0IFV2YXJpbnQ2NDogVHJhbnNjb2RlcjxudW1iZXI+ID0ge1xuICByZWFkOiAoYnl0ZXMpID0+IGJ1ZlRvVXZhcmludDY0KGJ5dGVzKSxcbiAgd3JpdGU6ICh1aW50KSA9PiB1dmFyaW50NjRUb0J1Zih1aW50KSxcbn07XG5cbmV4cG9ydCBjb25zdCBWYXJpbnQ2NDogVHJhbnNjb2RlcjxudW1iZXI+ID0ge1xuICByZWFkOiAoYnl0ZXMpID0+IGJ1ZlRvVmFyaW50NjQoYnl0ZXMpLFxuICB3cml0ZTogKGludCkgPT4gdmFyaW50NjRUb0J1ZihpbnQpLFxufTtcblxuZXhwb3J0IGNvbnN0IEJvb2xlYW46IFRyYW5zY29kZXI8Ym9vbGVhbj4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4gW2J5dGVzLmF0KDApICE9IDAsIGJ5dGVzLnNsaWNlKDEpXSxcbiAgd3JpdGU6IChib29sKSA9PiB7XG4gICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbYm9vbCA/IDEgOiAwXSk7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVWludDg6IFRyYW5zY29kZXI8bnVtYmVyPiA9IHtcbiAgcmVhZDogKGJ5dGVzKSA9PiBbYnl0ZXMuYXQoMCkgYXMgbnVtYmVyLCBieXRlcy5zbGljZSgxKV0sXG4gIHdyaXRlOiAodWludCkgPT4ge1xuICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW3VpbnRdKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBGaXhlZEJ1ZmZlciA9IChzaXplOiBudW1iZXIpOiBUcmFuc2NvZGVyPFVpbnQ4QXJyYXk+ID0+ICh7XG4gIHJlYWQ6IChieXRlcykgPT4gW2J5dGVzLnNsaWNlKDAsIHNpemUpLCBieXRlcy5zbGljZShzaXplKV0sXG4gIHdyaXRlOiAoYnl0ZXMpID0+IGJ5dGVzLFxufSk7XG5cbmV4cG9ydCBjb25zdCBWYXJCdWZmZXI6IFRyYW5zY29kZXI8VWludDhBcnJheT4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4ge1xuICAgIGNvbnN0IFtzaXplLCBidWZmZXJdID0gYnVmVG9VdmFyaW50NjQoYnl0ZXMpO1xuICAgIHJldHVybiBbYnVmZmVyLnNsaWNlKDAsIHNpemUpLCBidWZmZXIuc2xpY2Uoc2l6ZSldO1xuICB9LFxuICB3cml0ZTogKGJ5dGVzKSA9PiBjb25jYXRVaW50OEFycmF5cyhbdXZhcmludDY0VG9CdWYoYnl0ZXMubGVuZ3RoKSwgYnl0ZXNdKSxcbn07XG5cbmV4cG9ydCBjb25zdCBWYXJCdWZmZXJBcnJheTogVHJhbnNjb2RlcjxVaW50OEFycmF5W10+ID0ge1xuICByZWFkOiAoYnl0ZXMpID0+IHtcbiAgICBjb25zdCBjb3VudEFuZEJ1ZmZlciA9IGJ1ZlRvVXZhcmludDY0KGJ5dGVzKTtcbiAgICBjb25zdCBjb3VudCA9IGNvdW50QW5kQnVmZmVyWzBdO1xuICAgIGxldCBidWZmZXIgPSBjb3VudEFuZEJ1ZmZlclsxXTtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgIGxldCBzaXplO1xuICAgICAgW3NpemUsIGJ1ZmZlcl0gPSBidWZUb1V2YXJpbnQ2NChidWZmZXIpO1xuICAgICAgcmVzdWx0LnB1c2goYnVmZmVyLnNsaWNlKDAsIHNpemUpKTtcbiAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZShzaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3Jlc3VsdCwgYnVmZmVyXTtcbiAgfSxcbiAgd3JpdGU6IChidWZmZXJzKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB1dmFyaW50NjRUb0J1ZihidWZmZXJzLmxlbmd0aCk7XG4gICAgcmV0dXJuIGNvbmNhdFVpbnQ4QXJyYXlzKFtcbiAgICAgIGNvdW50LFxuICAgICAgLi4uYnVmZmVycy5tYXAoKGJ1ZmZlcikgPT5cbiAgICAgICAgY29uY2F0VWludDhBcnJheXMoW3V2YXJpbnQ2NFRvQnVmKGJ1ZmZlci5sZW5ndGgpLCBidWZmZXJdKVxuICAgICAgKSxcbiAgICBdKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbk5vbmNlVHJhbnNjb2RlcjogVHJhbnNjb2RlcjxUcmFuc2FjdGlvbk5vbmNlIHwgbnVsbD4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4ge1xuICAgIHJldHVybiBUcmFuc2FjdGlvbk5vbmNlLmZyb21CeXRlcyhieXRlcykgYXMgW1RyYW5zYWN0aW9uTm9uY2UsIFVpbnQ4QXJyYXldO1xuICB9LFxuICB3cml0ZTogKG5vbmNlKSA9PiB7XG4gICAgaWYgKG5vbmNlKSB7XG4gICAgICByZXR1cm4gY29uY2F0VWludDhBcnJheXMoW25vbmNlLnRvQnl0ZXMoKV0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gT3B0aW9uYWw8VD4odHJhbnNjb2RlcjogVHJhbnNjb2RlcjxUPik6IFRyYW5zY29kZXI8VCB8IG51bGw+IHtcbiAgcmV0dXJuIHtcbiAgICByZWFkOiAoYnl0ZXM6IFVpbnQ4QXJyYXkpID0+XG4gICAgICAhYnl0ZXMubGVuZ3RoID8gW251bGwsIGJ5dGVzXSA6IHRyYW5zY29kZXIucmVhZChieXRlcyksXG4gICAgd3JpdGU6ICh2YWx1ZTogVCB8IG51bGwpID0+XG4gICAgICB2YWx1ZSA9PT0gbnVsbCA/IG5ldyBVaW50OEFycmF5KDApIDogdHJhbnNjb2Rlci53cml0ZSh2YWx1ZSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCb29sT3B0aW9uYWw8VD4oXG4gIHRyYW5zY29kZXI6IFRyYW5zY29kZXI8VD5cbik6IFRyYW5zY29kZXI8VCB8IG51bGw+IHtcbiAgcmV0dXJuIHtcbiAgICByZWFkOiAoYnl0ZXM6IFVpbnQ4QXJyYXkpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0ZW5jZSA9IGJ5dGVzLmF0KDApICE9IDA7XG4gICAgICBpZiAoIWV4aXN0ZW5jZSkge1xuICAgICAgICByZXR1cm4gW251bGwsIGJ5dGVzLnNsaWNlKDEpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cmFuc2NvZGVyLnJlYWQoYnl0ZXMuc2xpY2UoMSkpO1xuICAgIH0sXG4gICAgd3JpdGU6ICh2YWx1ZTogVCB8IG51bGwpID0+IHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKFswXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29uY2F0VWludDhBcnJheXMoW1VpbnQ4QXJyYXkuZnJvbShbMV0pLCB0cmFuc2NvZGVyLndyaXRlKHZhbHVlKV0pO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBDaHVua0J1ZmZlciA9ICh3aWR0aDogbnVtYmVyKTogVHJhbnNjb2RlcjxVaW50OEFycmF5W10+ID0+ICh7XG4gIHJlYWQ6IChieXRlcykgPT4ge1xuICAgIGNvbnN0IGNvdW50QW5kQnVmZmVyID0gYnVmVG9VdmFyaW50NjQoYnl0ZXMpO1xuICAgIGNvbnN0IGNvdW50ID0gY291bnRBbmRCdWZmZXJbMF07XG4gICAgbGV0IGJ1ZmZlciA9IGNvdW50QW5kQnVmZmVyWzFdO1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgcmVzdWx0LnB1c2goYnVmZmVyLnNsaWNlKDAsIDMzKSk7XG4gICAgICBidWZmZXIgPSBidWZmZXIuc2xpY2UoMzMpO1xuICAgIH1cblxuICAgIHJldHVybiBbcmVzdWx0LCBidWZmZXJdO1xuICB9LFxuICB3cml0ZTogKGNodW5rcykgPT5cbiAgICBjb25jYXRVaW50OEFycmF5cyhbdXZhcmludDY0VG9CdWYoY2h1bmtzLmxlbmd0aCksIC4uLmNodW5rc10pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBcnJheU9mID0gPFxuICBUIGV4dGVuZHMgU2VyaWFsaXphYmxlLFxuICBDIGV4dGVuZHMgRGVzZXJpYWxpemFibGU8VD4gJiB7IG5ldyAoKTogVCB9XG4+KFxuICBrbGFzczogQ1xuKTogVHJhbnNjb2RlcjxUW10+ID0+ICh7XG4gIHJlYWQ6IChieXRlcykgPT4ge1xuICAgIGNvbnN0IGNvdW50QW5kQnVmZmVyID0gYnVmVG9VdmFyaW50NjQoYnl0ZXMpO1xuICAgIGNvbnN0IGNvdW50ID0gY291bnRBbmRCdWZmZXJbMF07XG4gICAgbGV0IGJ1ZmZlciA9IGNvdW50QW5kQnVmZmVyWzFdO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICBsZXQgb2JqO1xuICAgICAgW29iaiwgYnVmZmVyXSA9IGtsYXNzLmZyb21CeXRlcyhidWZmZXIpO1xuICAgICAgcmVzdWx0LnB1c2gob2JqKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3Jlc3VsdCwgYnVmZmVyXTtcbiAgfSxcbiAgd3JpdGU6IChvYmplY3RzKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB1dmFyaW50NjRUb0J1ZihvYmplY3RzLmxlbmd0aCk7XG4gICAgcmV0dXJuIGNvbmNhdFVpbnQ4QXJyYXlzKFtcbiAgICAgIGNvdW50LFxuICAgICAgLi4ub2JqZWN0cy5tYXAoKG9iamVjdCkgPT4gb2JqZWN0LnRvQnl0ZXMoKSksXG4gICAgXSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IFJlY29yZCA9IDxcbiAgVCBleHRlbmRzIFNlcmlhbGl6YWJsZSxcbiAgQyBleHRlbmRzIERlc2VyaWFsaXphYmxlPFQ+ICYgeyBuZXcgKCk6IFQgfVxuPihcbiAga2xhc3M6IENcbik6IFRyYW5zY29kZXI8VD4gPT4gKHtcbiAgcmVhZDogKGJ5dGVzKSA9PiBrbGFzcy5mcm9tQnl0ZXMoYnl0ZXMpLFxuICB3cml0ZTogKG9iamVjdCkgPT4gb2JqZWN0LnRvQnl0ZXMoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaW5zdGFuY2VUb1R5cGUgPSA8XG4gIFQgZXh0ZW5kcyBTZXJpYWxpemFibGUsXG4gIEMgZXh0ZW5kcyBEZXNlcmlhbGl6YWJsZTxUPiAmIHsgbmV3ICgpOiBUIH1cbj4oXG4gIG9iamVjdDogVCxcbiAga2xhc3NNYXA6IHsgW2luZGV4OiBzdHJpbmddOiBDIH1cbik6IG51bWJlciA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGtsYXNzTWFwKSkge1xuICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiB2YWx1ZSkgcmV0dXJuIHBhcnNlSW50KGtleSk7XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IEVudW0gPSA8XG4gIFQgZXh0ZW5kcyBTZXJpYWxpemFibGUsXG4gIEMgZXh0ZW5kcyBEZXNlcmlhbGl6YWJsZTxUPiAmIHsgbmV3ICgpOiBUIH1cbj4oa2xhc3NNYXA6IHtcbiAgW2luZGV4OiBzdHJpbmddOiBDO1xufSk6IFRyYW5zY29kZXI8VD4gPT4ge1xuICByZXR1cm4ge1xuICAgIHJlYWQ6IChieXRlcykgPT4ge1xuICAgICAgbGV0IGJ1ZmZlciA9IGJ5dGVzO1xuICAgICAgY29uc3QgdHlwZUFuZEJ1ZmZlciA9IGJ1ZlRvVXZhcmludDY0KGJ1ZmZlcik7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZUFuZEJ1ZmZlclswXTtcbiAgICAgIGJ1ZmZlciA9IHR5cGVBbmRCdWZmZXJbMV07XG5cbiAgICAgIGNvbnN0IHNpemVBbmRCdWZmZXIgPSBidWZUb1V2YXJpbnQ2NChidWZmZXIpO1xuICAgICAgY29uc3Qgc2l6ZSA9IHNpemVBbmRCdWZmZXJbMF07XG4gICAgICBidWZmZXIgPSBzaXplQW5kQnVmZmVyWzFdO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICBrbGFzc01hcFt0eXBlXS5mcm9tQnl0ZXMoYnVmZmVyLnNsaWNlKDAsIHNpemUpKVswXSxcbiAgICAgICAgYnVmZmVyLnNsaWNlKHNpemUpLFxuICAgICAgXTtcbiAgICB9LFxuICAgIHdyaXRlOiAob2JqZWN0KSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gdXZhcmludDY0VG9CdWYoaW5zdGFuY2VUb1R5cGUob2JqZWN0LCBrbGFzc01hcCkpO1xuICAgICAgY29uc3QgYnl0ZXMgPSBvYmplY3QudG9CeXRlcygpO1xuICAgICAgY29uc3Qgc2l6ZSA9IHV2YXJpbnQ2NFRvQnVmKGJ5dGVzLmxlbmd0aCk7XG5cbiAgICAgIHJldHVybiBjb25jYXRVaW50OEFycmF5cyhbdHlwZSwgc2l6ZSwgYnl0ZXNdKTtcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNjb2RlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvdHJhbnNjb2RlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixjQUFjLEdBQ2YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWlCO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE1BQU0sV0FBVyxHQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUMzQyxJQUFJLEtBQUssQ0FBQztZQUNWLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxNQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sV0FBVyxHQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixXQUFXLENB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QyxLQUFLLEVBQUUsRUFBRTtZQUNkLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNuQixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE9BQU87Z0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDbkIsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTFDLE9BQU8saUJBQWlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtcbiAgYnVmVG9VdmFyaW50NjQsXG4gIGNvbmNhdFVpbnQ4QXJyYXlzLFxuICB1dmFyaW50NjRUb0J1Zixcbn0gZnJvbSAnLi9jcnlwdG8tdXRpbHMuanMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Ob25jZSB9IGZyb20gJy4vdHJhbnNhY3Rpb24tdHJhbnNjb2RlcnMuanMnO1xuZXhwb3J0IGNsYXNzIEJpbmFyeVJlY29yZCB7XG4gIHN0YXRpYyBmcm9tQnl0ZXMoYnl0ZXM6IFVpbnQ4QXJyYXkpOiBbQmluYXJ5UmVjb3JkLCBVaW50OEFycmF5XSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IHRoaXMoKTtcbiAgICBsZXQgYnVmZmVyID0gYnl0ZXM7XG5cbiAgICBjb25zdCB0cmFuc2NvZGVyczogVHJhbnNjb2Rlck1ldGFkYXRhW10gPVxuICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YSgndHJhbnNjb2RlcnMnLCByZXN1bHQpIHx8IFtdO1xuXG4gICAgdHJhbnNjb2RlcnMuZm9yRWFjaCgoeyBuYW1lLCB0cmFuc2NvZGVyIH0pID0+IHtcbiAgICAgIGxldCB2YWx1ZTtcbiAgICAgIFt2YWx1ZSwgYnVmZmVyXSA9IHRyYW5zY29kZXIucmVhZC5jYWxsKHJlc3VsdCwgYnVmZmVyKTtcbiAgICAgIChyZXN1bHQgYXMgYW55KVtuYW1lXSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIFtyZXN1bHQsIGJ1ZmZlcl07XG4gIH1cblxuICB0b0J5dGVzKCk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IHRyYW5zY29kZXJzOiBUcmFuc2NvZGVyTWV0YWRhdGFbXSA9XG4gICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKCd0cmFuc2NvZGVycycsIHRoaXMpIHx8IFtdO1xuXG4gICAgbGV0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDApO1xuICAgIHRyYW5zY29kZXJzLmZvckVhY2goKHsgbmFtZSwgdHJhbnNjb2RlciB9KSA9PiB7XG4gICAgICBidWZmZXIgPSBjb25jYXRVaW50OEFycmF5cyhbXG4gICAgICAgIGJ1ZmZlcixcbiAgICAgICAgdHJhbnNjb2Rlci53cml0ZS5jYWxsKHRoaXMsICh0aGlzIGFzIGFueSlbbmFtZV0pLFxuICAgICAgXSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNjb2Rlck1ldGFkYXRhPFQgPSBhbnk+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0cmFuc2NvZGVyOiBUcmFuc2NvZGVyPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNjb2RlPFQ+KHRyYW5zY29kZXI6IFRyYW5zY29kZXI8VD4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgdHJhbnNjb2RlcnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCd0cmFuc2NvZGVycycsIHRhcmdldCkgfHwgW107XG4gICAgdHJhbnNjb2RlcnMucHVzaCh7IG5hbWUsIHRyYW5zY29kZXIgfSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSgndHJhbnNjb2RlcnMnLCB0cmFuc2NvZGVycywgdGFyZ2V0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2NvZGVyPFQ+IHtcbiAgcmVhZDogKGJ5dGVzOiBVaW50OEFycmF5KSA9PiBbVCwgVWludDhBcnJheV07XG4gIHdyaXRlOiAob2JqZWN0OiBUKSA9PiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6YWJsZSB7XG4gIHRvQnl0ZXM6ICgpID0+IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzZXJpYWxpemFibGU8VD4ge1xuICBmcm9tQnl0ZXM6IChieXRlczogVWludDhBcnJheSkgPT4gW1QsIFVpbnQ4QXJyYXldO1xufVxuXG5leHBvcnQgY29uc3QgVXZhcmludDY0OiBUcmFuc2NvZGVyPG51bWJlcj4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4gYnVmVG9VdmFyaW50NjQoYnl0ZXMpLFxuICB3cml0ZTogKHVpbnQpID0+IHV2YXJpbnQ2NFRvQnVmKHVpbnQpLFxufTtcblxuZXhwb3J0IGNvbnN0IEJvb2xlYW46IFRyYW5zY29kZXI8Ym9vbGVhbj4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4gW2J5dGVzLmF0KDApICE9IDAsIGJ5dGVzLnNsaWNlKDEpXSxcbiAgd3JpdGU6IChib29sKSA9PiB7XG4gICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbYm9vbCA/IDEgOiAwXSk7XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVWludDg6IFRyYW5zY29kZXI8bnVtYmVyPiA9IHtcbiAgcmVhZDogKGJ5dGVzKSA9PiBbYnl0ZXMuYXQoMCkgYXMgbnVtYmVyLCBieXRlcy5zbGljZSgxKV0sXG4gIHdyaXRlOiAodWludCkgPT4ge1xuICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW3VpbnRdKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBGaXhlZEJ1ZmZlciA9IChzaXplOiBudW1iZXIpOiBUcmFuc2NvZGVyPFVpbnQ4QXJyYXk+ID0+ICh7XG4gIHJlYWQ6IChieXRlcykgPT4gW2J5dGVzLnNsaWNlKDAsIHNpemUpLCBieXRlcy5zbGljZShzaXplKV0sXG4gIHdyaXRlOiAoYnl0ZXMpID0+IGJ5dGVzLFxufSk7XG5cbmV4cG9ydCBjb25zdCBWYXJCdWZmZXI6IFRyYW5zY29kZXI8VWludDhBcnJheT4gPSB7XG4gIHJlYWQ6IChieXRlcykgPT4ge1xuICAgIGNvbnN0IFtzaXplLCBidWZmZXJdID0gYnVmVG9VdmFyaW50NjQoYnl0ZXMpO1xuICAgIHJldHVybiBbYnVmZmVyLnNsaWNlKDAsIHNpemUpLCBidWZmZXIuc2xpY2Uoc2l6ZSldO1xuICB9LFxuICB3cml0ZTogKGJ5dGVzKSA9PiBjb25jYXRVaW50OEFycmF5cyhbdXZhcmludDY0VG9CdWYoYnl0ZXMubGVuZ3RoKSwgYnl0ZXNdKSxcbn07XG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25Ob25jZVRyYW5zY29kZXI6IFRyYW5zY29kZXI8VHJhbnNhY3Rpb25Ob25jZSB8IG51bGw+ID0ge1xuICByZWFkOiAoYnl0ZXMpID0+IHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25Ob25jZS5mcm9tQnl0ZXMoYnl0ZXMpIGFzIFtUcmFuc2FjdGlvbk5vbmNlLCBVaW50OEFycmF5XTtcbiAgfSxcbiAgd3JpdGU6IChub25jZSkgPT4ge1xuICAgIGlmIChub25jZSkge1xuICAgICAgcmV0dXJuIGNvbmNhdFVpbnQ4QXJyYXlzKFtub25jZS50b0J5dGVzKCldKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO1xuICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIE9wdGlvbmFsPFQ+KHRyYW5zY29kZXI6IFRyYW5zY29kZXI8VD4pOiBUcmFuc2NvZGVyPFQgfCBudWxsPiB7XG4gIHJldHVybiB7XG4gICAgcmVhZDogKGJ5dGVzOiBVaW50OEFycmF5KSA9PlxuICAgICAgIWJ5dGVzLmxlbmd0aCA/IFtudWxsLCBieXRlc10gOiB0cmFuc2NvZGVyLnJlYWQoYnl0ZXMpLFxuICAgIHdyaXRlOiAodmFsdWU6IFQgfCBudWxsKSA9PlxuICAgICAgdmFsdWUgPT09IG51bGwgPyBuZXcgVWludDhBcnJheSgwKSA6IHRyYW5zY29kZXIud3JpdGUodmFsdWUpLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQ2h1bmtCdWZmZXIgPSAod2lkdGg6IG51bWJlcik6IFRyYW5zY29kZXI8VWludDhBcnJheVtdPiA9PiAoe1xuICByZWFkOiAoYnl0ZXMpID0+IHtcbiAgICBjb25zdCBjb3VudEFuZEJ1ZmZlciA9IGJ1ZlRvVXZhcmludDY0KGJ5dGVzKTtcbiAgICBjb25zdCBjb3VudCA9IGNvdW50QW5kQnVmZmVyWzBdO1xuICAgIGxldCBidWZmZXIgPSBjb3VudEFuZEJ1ZmZlclsxXTtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgIHJlc3VsdC5wdXNoKGJ1ZmZlci5zbGljZSgwLCAzMykpO1xuICAgICAgYnVmZmVyID0gYnVmZmVyLnNsaWNlKDMzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3Jlc3VsdCwgYnVmZmVyXTtcbiAgfSxcbiAgd3JpdGU6IChjaHVua3MpID0+XG4gICAgY29uY2F0VWludDhBcnJheXMoW3V2YXJpbnQ2NFRvQnVmKGNodW5rcy5sZW5ndGgpLCAuLi5jaHVua3NdKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQXJyYXlPZiA9IDxcbiAgVCBleHRlbmRzIFNlcmlhbGl6YWJsZSxcbiAgQyBleHRlbmRzIERlc2VyaWFsaXphYmxlPFQ+ICYgeyBuZXcgKCk6IFQgfVxuPihcbiAga2xhc3M6IENcbik6IFRyYW5zY29kZXI8VFtdPiA9PiAoe1xuICByZWFkOiAoYnl0ZXMpID0+IHtcbiAgICBjb25zdCBjb3VudEFuZEJ1ZmZlciA9IGJ1ZlRvVXZhcmludDY0KGJ5dGVzKTtcbiAgICBjb25zdCBjb3VudCA9IGNvdW50QW5kQnVmZmVyWzBdO1xuICAgIGxldCBidWZmZXIgPSBjb3VudEFuZEJ1ZmZlclsxXTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgbGV0IG9iajtcbiAgICAgIFtvYmosIGJ1ZmZlcl0gPSBrbGFzcy5mcm9tQnl0ZXMoYnVmZmVyKTtcbiAgICAgIHJlc3VsdC5wdXNoKG9iaik7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtyZXN1bHQsIGJ1ZmZlcl07XG4gIH0sXG4gIHdyaXRlOiAob2JqZWN0cykgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gdXZhcmludDY0VG9CdWYob2JqZWN0cy5sZW5ndGgpO1xuICAgIHJldHVybiBjb25jYXRVaW50OEFycmF5cyhbXG4gICAgICBjb3VudCxcbiAgICAgIC4uLm9iamVjdHMubWFwKChvYmplY3QpID0+IG9iamVjdC50b0J5dGVzKCkpLFxuICAgIF0pO1xuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZWNvcmQgPSA8XG4gIFQgZXh0ZW5kcyBTZXJpYWxpemFibGUsXG4gIEMgZXh0ZW5kcyBEZXNlcmlhbGl6YWJsZTxUPiAmIHsgbmV3ICgpOiBUIH1cbj4oXG4gIGtsYXNzOiBDXG4pOiBUcmFuc2NvZGVyPFQ+ID0+ICh7XG4gIHJlYWQ6IChieXRlcykgPT4ga2xhc3MuZnJvbUJ5dGVzKGJ5dGVzKSxcbiAgd3JpdGU6IChvYmplY3QpID0+IG9iamVjdC50b0J5dGVzKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IGluc3RhbmNlVG9UeXBlID0gPFxuICBUIGV4dGVuZHMgU2VyaWFsaXphYmxlLFxuICBDIGV4dGVuZHMgRGVzZXJpYWxpemFibGU8VD4gJiB7IG5ldyAoKTogVCB9XG4+KFxuICBvYmplY3Q6IFQsXG4gIGtsYXNzTWFwOiB7IFtpbmRleDogc3RyaW5nXTogQyB9XG4pOiBudW1iZXIgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhrbGFzc01hcCkpIHtcbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgdmFsdWUpIHJldHVybiBwYXJzZUludChrZXkpO1xuICB9XG4gIHJldHVybiAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnVtID0gPFxuICBUIGV4dGVuZHMgU2VyaWFsaXphYmxlLFxuICBDIGV4dGVuZHMgRGVzZXJpYWxpemFibGU8VD4gJiB7IG5ldyAoKTogVCB9XG4+KGtsYXNzTWFwOiB7XG4gIFtpbmRleDogc3RyaW5nXTogQztcbn0pOiBUcmFuc2NvZGVyPFQ+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICByZWFkOiAoYnl0ZXMpID0+IHtcbiAgICAgIGxldCBidWZmZXIgPSBieXRlcztcbiAgICAgIGNvbnN0IHR5cGVBbmRCdWZmZXIgPSBidWZUb1V2YXJpbnQ2NChidWZmZXIpO1xuICAgICAgY29uc3QgdHlwZSA9IHR5cGVBbmRCdWZmZXJbMF07XG4gICAgICBidWZmZXIgPSB0eXBlQW5kQnVmZmVyWzFdO1xuXG4gICAgICBjb25zdCBzaXplQW5kQnVmZmVyID0gYnVmVG9VdmFyaW50NjQoYnVmZmVyKTtcbiAgICAgIGNvbnN0IHNpemUgPSBzaXplQW5kQnVmZmVyWzBdO1xuICAgICAgYnVmZmVyID0gc2l6ZUFuZEJ1ZmZlclsxXTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAga2xhc3NNYXBbdHlwZV0uZnJvbUJ5dGVzKGJ1ZmZlci5zbGljZSgwLCBzaXplKSlbMF0sXG4gICAgICAgIGJ1ZmZlci5zbGljZShzaXplKSxcbiAgICAgIF07XG4gICAgfSxcbiAgICB3cml0ZTogKG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IHV2YXJpbnQ2NFRvQnVmKGluc3RhbmNlVG9UeXBlKG9iamVjdCwga2xhc3NNYXApKTtcbiAgICAgIGNvbnN0IGJ5dGVzID0gb2JqZWN0LnRvQnl0ZXMoKTtcbiAgICAgIGNvbnN0IHNpemUgPSB1dmFyaW50NjRUb0J1ZihieXRlcy5sZW5ndGgpO1xuXG4gICAgICByZXR1cm4gY29uY2F0VWludDhBcnJheXMoW3R5cGUsIHNpemUsIGJ5dGVzXSk7XG4gICAgfSxcbiAgfTtcbn07XG4iXX0=

@@ -1,2 +0,2 @@

import { AccessGroupLimitMapItem, AccessGroupMemberLimitMapItem, AssociationLimitMapItem, LockupLimitMapItem, StakeLimitMapItem, TransactionSpendingLimitResponse, TransactionType, UnlockStakeLimitMapItem, UnstakeLimitMapItem } from '../backend-types/index.js';
import { AccessGroupLimitMapItem, AccessGroupMemberLimitMapItem, AssociationLimitMapItem, TransactionSpendingLimitResponse, TransactionType } from '../backend-types/index.js';
export type Network = 'mainnet' | 'testnet';

@@ -62,14 +62,2 @@ export interface IdentityResponse {

})[];
StakeLimitMap?: (Omit<StakeLimitMapItem, 'StakeLimit'> & {
StakeLimit: string | 'UNLIMITED';
})[];
UnstakeLimitMap?: (Omit<UnstakeLimitMapItem, 'UnstakeLimit'> & {
UnstakeLimit: string | 'UNLIMITED';
})[];
UnlockStakeLimitMap?: (Omit<UnlockStakeLimitMapItem, 'OpCount'> & {
OpCount: number | 'UNLIMITED';
})[];
LockupLimitMap?: (Omit<LockupLimitMapItem, 'OpCount'> & {
OpCount: number | 'UNLIMITED';
})[];
IsUnlimited?: boolean;

@@ -76,0 +64,0 @@ }

@@ -73,2 +73,2 @@ export var NOTIFICATION_EVENTS;

})(NOTIFICATION_EVENTS || (NOTIFICATION_EVENTS = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdVJBLE1BQU0sQ0FBTixJQUFZLG1CQW9GWDtBQXBGRCxXQUFZLG1CQUFtQjtJQUM3Qjs7T0FFRztJQUNILDhDQUF1QixDQUFBO0lBRXZCOzs7O09BSUc7SUFDSCxrRkFBMkQsQ0FBQTtJQUUzRDs7OztPQUlHO0lBQ0gsOEVBQXVELENBQUE7SUFFdkQ7O09BRUc7SUFDSCxnRkFBeUQsQ0FBQTtJQUV6RDs7T0FFRztJQUNILDhFQUF1RCxDQUFBO0lBRXZEOzs7T0FHRztJQUNILDBFQUFtRCxDQUFBO0lBRW5EOztPQUVHO0lBQ0gsa0RBQTJCLENBQUE7SUFFM0I7OztPQUdHO0lBQ0gsOENBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCxvREFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCxnREFBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILGtFQUEyQyxDQUFBO0lBRTNDOzs7T0FHRztJQUNILDhEQUF1QyxDQUFBO0lBRXZDOztPQUVHO0lBQ0gsOEVBQXVELENBQUE7SUFFdkQ7OztPQUdHO0lBQ0gsMEVBQW1ELENBQUE7SUFFbkQ7O09BRUc7SUFDSCxnRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBcEZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFvRjlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWNjZXNzR3JvdXBMaW1pdE1hcEl0ZW0sXG4gIEFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXBJdGVtLFxuICBBc3NvY2lhdGlvbkxpbWl0TWFwSXRlbSxcbiAgTG9ja3VwTGltaXRNYXBJdGVtLFxuICBTdGFrZUxpbWl0TWFwSXRlbSxcbiAgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgVW5sb2NrU3Rha2VMaW1pdE1hcEl0ZW0sXG4gIFVuc3Rha2VMaW1pdE1hcEl0ZW0sXG59IGZyb20gJy4uL2JhY2tlbmQtdHlwZXMvaW5kZXguanMnO1xuZXhwb3J0IHR5cGUgTmV0d29yayA9ICdtYWlubmV0JyB8ICd0ZXN0bmV0JztcblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eVJlc3BvbnNlIHtcbiAgc2VydmljZTogJ2lkZW50aXR5JztcbiAgbWV0aG9kOiAnZGVyaXZlJyB8ICdsb2dpbicgfCAnaW5pdGlhbGl6ZSc7XG4gIHBheWxvYWQ/OiBhbnk7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5RGVyaXZlUGF5bG9hZCB7XG4gIGRlcml2ZWRTZWVkSGV4Pzogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgcHVibGljS2V5QmFzZTU4Q2hlY2s6IHN0cmluZztcbiAgYnRjRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZXRoRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZXhwaXJhdGlvbkJsb2NrOiBudW1iZXI7XG4gIG5ldHdvcms6IE5ldHdvcms7XG4gIGFjY2Vzc1NpZ25hdHVyZTogc3RyaW5nO1xuICBqd3Q6IHN0cmluZztcbiAgZGVyaXZlZEp3dDogc3RyaW5nO1xuICBtZXNzYWdpbmdQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBtZXNzYWdpbmdQcml2YXRlS2V5OiBzdHJpbmc7XG4gIG1lc3NhZ2luZ0tleU5hbWU6IHN0cmluZztcbiAgbWVzc2FnaW5nS2V5U2lnbmF0dXJlOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdEhleDogc3RyaW5nO1xuICBzaWduZWRVcDogYm9vbGVhbjtcbiAgcHVibGljS2V5QWRkZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2VPcHRpb25zIHtcbiAgR2xvYmFsREVTT0xpbWl0PzogbnVtYmVyO1xuICBUcmFuc2FjdGlvbkNvdW50TGltaXRNYXA/OiBQYXJ0aWFsPFxuICAgIFJlY29yZDxUcmFuc2FjdGlvblR5cGUsIG51bWJlciB8ICdVTkxJTUlURUQnPlxuICA+O1xuICBDcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgJ1VOTElNSVRFRCcgfTtcbiAgfTtcbiAgREFPQ29pbk9wZXJhdGlvbkxpbWl0TWFwPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgJ1VOTElNSVRFRCcgfTtcbiAgfTtcbiAgTkZUT3BlcmF0aW9uTGltaXRNYXA/OiB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBudW1iZXJdOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8ICdVTkxJTUlURUQnIH0gfTtcbiAgfTtcbiAgREFPQ29pbkxpbWl0T3JkZXJMaW1pdE1hcD86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8ICdVTkxJTUlURUQnIH07XG4gIH07XG4gIEFzc29jaWF0aW9uTGltaXRNYXA/OiAoT21pdDxBc3NvY2lhdGlvbkxpbWl0TWFwSXRlbSwgJ09wQ291bnQnPiAmIHtcbiAgICBPcENvdW50OiBudW1iZXIgfCAnVU5MSU1JVEVEJztcbiAgfSlbXTtcbiAgQWNjZXNzR3JvdXBMaW1pdE1hcD86IChPbWl0PEFjY2Vzc0dyb3VwTGltaXRNYXBJdGVtLCAnT3BDb3VudCc+ICYge1xuICAgIE9wQ291bnQ6IG51bWJlciB8ICdVTkxJTUlURUQnO1xuICB9KVtdO1xuICBBY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwPzogKE9taXQ8XG4gICAgQWNjZXNzR3JvdXBNZW1iZXJMaW1pdE1hcEl0ZW0sXG4gICAgJ09wQ291bnQnXG4gID4gJiB7IE9wQ291bnQ6IG51bWJlciB8ICdVTkxJTUlURUQnIH0pW107XG4gIFN0YWtlTGltaXRNYXA/OiAoT21pdDxTdGFrZUxpbWl0TWFwSXRlbSwgJ1N0YWtlTGltaXQnPiAmIHtcbiAgICBTdGFrZUxpbWl0OiBzdHJpbmcgfCAnVU5MSU1JVEVEJzsgLy8gVE9ETzogaGFuZGxlIHVubGltaXRlZCBmb3IgREVTTyBsaW1pdC5cbiAgfSlbXTtcbiAgVW5zdGFrZUxpbWl0TWFwPzogKE9taXQ8VW5zdGFrZUxpbWl0TWFwSXRlbSwgJ1Vuc3Rha2VMaW1pdCc+ICYge1xuICAgIFVuc3Rha2VMaW1pdDogc3RyaW5nIHwgJ1VOTElNSVRFRCc7IC8vIFRPRE86IGhhbmRsZSB1bmxpbWl0ZWQgZm9yIERFU08gbGltaXQuXG4gIH0pW107XG4gIFVubG9ja1N0YWtlTGltaXRNYXA/OiAoT21pdDxVbmxvY2tTdGFrZUxpbWl0TWFwSXRlbSwgJ09wQ291bnQnPiAmIHtcbiAgICBPcENvdW50OiBudW1iZXIgfCAnVU5MSU1JVEVEJztcbiAgfSlbXTtcbiAgTG9ja3VwTGltaXRNYXA/OiAoT21pdDxMb2NrdXBMaW1pdE1hcEl0ZW0sICdPcENvdW50Jz4gJiB7XG4gICAgT3BDb3VudDogbnVtYmVyIHwgJ1VOTElNSVRFRCc7XG4gIH0pW107XG4gIElzVW5saW1pdGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgand0QWxnb3JpdGhtID0gJ0VTMjU2SycgfCAnRVMyNTYnO1xuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eUNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIGlkZW50aXR5IGRvbWFpbi4gRGVmYXVsdHMgdG8gaHR0cHM6Ly9pZGVudGl0eS5kZXNvLm9yZ1xuICAgKi9cbiAgaWRlbnRpdHlVUkk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IG5ldHdvcmsuIElmIG5vdCBwcm92aWRlZCwgd2Ugd2lsbCBhc3N1bWUgbWFpbm5ldC5cbiAgICovXG4gIG5ldHdvcms/OiBOZXR3b3JrO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzbyBub2RlIHVzZWQgZm9yIGFueSBhcGkgY2FsbHMgKGdldCBiYWxhbmNlLCBkZXJpdmVkIGtleSBhdXRob3JpemF0aW9uLCBldGMpXG4gICAqL1xuICBub2RlVVJJPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCByZWRpcmVjdCBVUkkuIElmIHByb3ZpZGVkLCB3ZSBkbyBhIGhhcmQgcmVkaXJlY3QgdG8gdGhlIGlkZW50aXR5XG4gICAqIGRvbWFpbiBhbmQgcGFzcyBkYXRhIHZpYSBxdWVyeSBwYXJhbXMgYmFjayB0byB0aGUgcHJvdmlkZWQgdXJpLlxuICAgKi9cbiAgcmVkaXJlY3RVUkk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHBlcm1pc3Npb25zIGFuZCBzcGVuZGluZyBsaW1pdHMgdGhhdCB3aWxsIGJlIHByZXNlbnRlZCB0byB0aGUgdXNlclxuICAgKiBkdXJpbmcgbG9naW4uIElmIG5vdCBwcm92aWRlZCwgd2Ugd2lsbCBhc3N1bWUgbm8gcGVybWlzc2lvbnMuXG4gICAqL1xuICBzcGVuZGluZ0xpbWl0T3B0aW9ucz86IFRyYW5zYWN0aW9uU3BlbmRpbmdMaW1pdFJlc3BvbnNlT3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGFwcCB1c2VkIHRvIGF1dGhvcml6ZSBkZXJpdmVkIGtleXMuIERlZmF1bHRzIHRvIHVua25vd24uXG4gICAqL1xuICBhcHBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaW5jZSBvdXIga2V5cyBhcmUgZ2VuZXJhdGVkIHVzaW5nIHRoZSBzZWNwMjU2azEgY3VydmUsIHRoZSBjb3JyZWN0XG4gICAqIEpXVCBhbGdvcml0aG0gaGVhZGVyICpzaG91bGQqIGJlIEVTMjU2Sy5cbiAgICogU2VlOiBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODgxMi5odG1sI25hbWUtam9zZS1hbGdvcml0aG1zLXJlZ2lzdHJhdGlvXG4gICAqXG4gICAqIEhPV0VWRVIsIHRoZSBiYWNrZW5kIGp3dCBsaWIgdXNlZCBieSBkZXNvIGZvdW5kYXRpb24gLVxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vZ29sYW5nLWp3dC9qd3QgLSAoYXMgd2VsbCBhcyBtYW55IG90aGVyIGp3dCBsaWJyYXJpZXMpXG4gICAqIGRvIG5vdCBzdXBwb3J0IEVTMjU2Sy4gU28gaW5zdGVhZCwgd2UgZGVmYXVsdCB0byB0aGUgbW9yZSB3aWRlbHkgc3VwcG9ydGVkIEVTMjU2IGFsZ28sXG4gICAqIHdoaWNoIGNhbiBzdGlsbCB3b3JrIGZvciB2ZXJpZnlpbmcgb3VyIHNpZ25hdHVyZXMuIEJ1dCBpZiBhIGNvbnN1bWVyIG9mIHRoaXMgbGliIGlzIHVzaW5nIGFcbiAgICogand0IGxpYiB0aGF0IHN1cHBvcnRzIEVTMjU2SyB0aGV5IGNhbiBzcGVjaWZ5IHRoYXQgaGVyZS5cbiAgICogU2VlIHRoaXMgZ2l0aHViIGlzc3VlXG4gICAqIGZvciBtb3JlIGNvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRoMC9ub2RlLWpzb253ZWJ0b2tlbi9pc3N1ZXMvODYyXG4gICAqIElmIEVTMjU2SyBpcyBldmVyIHN1cHBvcnRlZCBieSB0aGUgYmFja2VuZCBqd3QgbGliLCB3ZSBzaG91bGQgY2hhbmdlIHRoaXMuXG4gICAqL1xuICBqd3RBbGdvcml0aG0/OiBqd3RBbGdvcml0aG07XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHN0b3JhZ2UgcHJvdmlkZXIuIElmIG5vdCBwcm92aWRlZCwgd2Ugd2lsbCBhc3N1bWUgbG9jYWxTdG9yYWdlXG4gICAqIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHN0b3JhZ2VQcm92aWRlcj86IFN0b3JhZ2VQcm92aWRlcjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCBpcyBwcm92aWRlZCB0aGUgaWRlbnRpdHkgdXJsIHRoYXQgbmVlZHMgdG8gYmVcbiAgICogb3BlbmVkLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSBob3cgdGhlIGlkZW50aXR5IHVybCBpcyBvcGVuZWQuIEZvclxuICAgKiBleGFtcGxlLCBpZiB5b3UgYXJlIHVzaW5nIHJlYWN0IG5hdGl2ZSwgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoZSBMaW5raW5nXG4gICAqIEFQSSB0byBvcGVuIHRoZSB1cmwgaW4gYSBzeXN0ZW0gYnJvd3NlciB3aW5kb3cuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGlkZW50aXR5UHJlc2VudGVyOiBhc3luYyAodXJsKSA9PiB7XG4gICAqICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgV2ViQnJvd3Nlci5vcGVuQXV0aFNlc3Npb25Bc3luYyh1cmwpO1xuICAgKiAgIGlmIChyZXN1bHQudHlwZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAqICAgICBpZGVudGl0eS5oYW5kbGVSZWRpcmVjdFVSSShyZXN1bHQudXJsKTtcbiAgICogICB9XG4gICAqIH0sXG4gICAqIGBgYFxuICAgKi9cbiAgaWRlbnRpdHlQcmVzZW50ZXI/OiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGZsYWcgdGhhdCBhbGxvd3MgdXNlcnMgdG8gc2tpcCB0aGUgXCJnZXQgZGVzb1wiIHN0ZXAgZHVyaW5nXG4gICAqIGxvZ2luLiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHVzZXIgd2lsbCBiZSBhYmxlIHRvIGxvZ2luIHdpdGhvdXQgaGF2aW5nIHRvXG4gICAqIGdldCBkZXNvLiBEZWZhdWx0cyB0byBmYWxzZS4gIE5PVEU6IGlmIHlvdSBjaG9vc2UgdG8gc2V0IHRoaXMgdG8gdHJ1ZSwgeW91XG4gICAqIHNob3VsZCBtYWtlIHN1cmUgdGhhdCB0aGUgdXNlciBoYXMgYSB3YXkgdG8gZ2V0IGRlc28gYWZ0ZXIgbG9nZ2luZyBpbi5cbiAgICogT3RoZXJ3aXNlLCB0aGV5IHdpbGwgbm90IGJlIGFibGUgdG8gZG8gYW55dGhpbmcgd2l0aCB0aGVpciBhY2NvdW50LlxuICAgKi9cbiAgc2hvd1NraXA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVByb3ZpZGVyIHtcbiAgcG9zdDogKHVybDogc3RyaW5nLCBkYXRhOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgZ2V0OiAodXJsOiBzdHJpbmcpID0+IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaW5kb3dQcm92aWRlciB7XG4gIGxvY2F0aW9uOiB7IHNlYXJjaDogc3RyaW5nOyBwYXRobmFtZTogc3RyaW5nOyBocmVmOiBzdHJpbmcgfTtcbiAgaGlzdG9yeTogeyByZXBsYWNlU3RhdGU6IChzdGF0ZTogYW55LCB0aXRsZTogc3RyaW5nLCB1cmw6IHN0cmluZykgPT4gdm9pZCB9O1xuICBsb2NhbFN0b3JhZ2U6IHtcbiAgICBnZXRJdGVtOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyB8IG51bGw7XG4gICAgc2V0SXRlbTogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIHJlbW92ZUl0ZW06IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcbiAgb3BlbjogKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogc3RyaW5nXG4gICkgPT4gV2luZG93IHwgbnVsbDtcbiAgYWRkRXZlbnRMaXN0ZW5lcjogKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiAoZXZlbnQ6IGFueSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiAoZXZlbnQ6IGFueSkgPT4gdm9pZCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbk9wdGlvbnMge1xuICBnZXRGcmVlRGVzbz86IGJvb2xlYW47XG4gIGRlcml2ZWRLZXlMb2dpbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFByaW1hcnlEZXJpdmVkS2V5SW5mbyA9IElkZW50aXR5RGVyaXZlUGF5bG9hZCAmIHtcbiAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0czogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2U7XG4gIElzVmFsaWQ/OiBib29sZWFuO1xuICBkZXJpdmVkS2V5UmVnaXN0ZXJlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTdG9yZWRVc2VyID0ge1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpbWFyeURlcml2ZWRLZXk6IFByaW1hcnlEZXJpdmVkS2V5SW5mbztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlVc2VyIHtcbiAgYWNjZXNzTGV2ZWw6IG51bWJlcjtcbiAgYWNjZXNzTGV2ZWxIbWFjOiBzdHJpbmc7XG4gIGJ0Y0RlcG9zaXRBZGRyZXNzOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFNlZWRIZXg6IHN0cmluZztcbiAgZXRoRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZGVyaXZlZFB1YmxpY0tleUJhc2U1OENoZWNrPzogc3RyaW5nO1xuICBoYXNFeHRyYVRleHQ6IGJvb2xlYW47XG4gIG5ldHdvcms6IHN0cmluZztcbiAgdmVyc2lvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5TG9naW5QYXlsb2FkIHtcbiAgdXNlcnM6IFJlY29yZDxzdHJpbmcsIElkZW50aXR5VXNlcj47XG4gIHB1YmxpY0tleUFkZGVkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyU3VjY2VzczogYm9vbGVhbjtcbiAgc2lnbmVkVXA6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlTdGF0ZSB7XG4gIGN1cnJlbnRVc2VyOiBTdG9yZWRVc2VyIHwgbnVsbDtcbiAgYWx0ZXJuYXRlVXNlcnM6IFJlY29yZDxzdHJpbmcsIFN0b3JlZFVzZXI+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZlcnJlZCB7XG4gIHJlc29sdmU6IChhcmdzOiBhbnkpID0+IHZvaWQ7XG4gIHJlamVjdDogKGFyZ3M6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyIHtcbiAgc2VlZEhleDogc3RyaW5nO1xuICBwcml2YXRlOiBVaW50OEFycmF5O1xuICBwdWJsaWM6IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaWJlck5vdGlmaWNhdGlvbiB7XG4gIGV2ZW50OiBOT1RJRklDQVRJT05fRVZFTlRTO1xuICBjdXJyZW50VXNlcjogU3RvcmVkVXNlciB8IG51bGw7XG4gIGFsdGVybmF0ZVVzZXJzOiBSZWNvcmQ8c3RyaW5nLCBTdG9yZWRVc2VyPiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJzY2FuVHJhbnNhY3Rpb25zQnlBZGRyZXNzUmVzcG9uc2Uge1xuICBzdGF0dXM6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByZXN1bHQ6IEV0aGVyc2NhblRyYW5zYWN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRoZXJzY2FuVHJhbnNhY3Rpb24ge1xuICBibG9ja051bWJlcjogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgaGFzaDogc3RyaW5nO1xuICBub25jZTogc3RyaW5nO1xuICBibG9ja0hhc2g6IHN0cmluZztcbiAgdHJhbnNhY3Rpb25JbmRleDogc3RyaW5nO1xuICBmcm9tOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGdhczogc3RyaW5nO1xuICBnYXNQcmljZTogc3RyaW5nO1xuICBpc0Vycm9yOiBzdHJpbmc7XG4gIHR4cmVjZWlwdF9zdGF0dXM6IHN0cmluZztcbiAgaW5wdXQ6IHN0cmluZztcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIGN1bXVsYXRpdmVHYXNVc2VkOiBzdHJpbmc7XG4gIGdhc1VzZWQ6IHN0cmluZztcbiAgY29uZmlybWF0aW9uczogc3RyaW5nO1xuICBtZXRob2RJZDogc3RyaW5nO1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NHcm91cFByaXZhdGVJbmZvIHtcbiAgQWNjZXNzR3JvdXBQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBBY2Nlc3NHcm91cFByaXZhdGVLZXlIZXg6IHN0cmluZztcbiAgQWNjZXNzR3JvdXBLZXlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIE5PVElGSUNBVElPTl9FVkVOVFMge1xuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBjb25zdW1pbmcgYXBwIGluaXRpYWxseSBzdWJzY3JpYmVzIHRvIGlkZW50aXR5LlxuICAgKi9cbiAgU1VCU0NSSUJFID0gJ1NVQlNDUklCRScsXG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYW4gaW50ZXJtZWRpYXRlIGV2ZW50IGZpcmVkIEFGVEVSIHRoZSB1c2VyIGNvbXBsZXRlcyBhbiBpZGVudGl0eSBmbG93XG4gICAqIHRoYXQgcmVxdWlyZXMgYSBkZXJpdmVkIGtleSBhdXRob3JpemF0aW9uLiBUaGlzIGV2ZW50IGlzIGZpcmVkIEJFRk9SRSB0aGVcbiAgICogcmVxdWVzdCB0byBhdXRob3JpemUgdGhlIGRlcml2ZWQga2V5IGlzIG1hZGUuXG4gICAqL1xuICBBVVRIT1JJWkVfREVSSVZFRF9LRVlfU1RBUlQgPSAnQVVUSE9SSVpFX0RFUklWRURfS0VZX1NUQVJUJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgZXZlbnQgZmlyZWQgQUZURVIgdGhlIHVzZXIgY29tcGxldGVzIGFuIGlkZW50aXR5XG4gICAqIGZsb3cgdGhhdCByZXF1aXJlcyBhIGRlcml2ZWQga2V5IGF1dGhvcml6YXRpb24uIFRoaXMgZXZlbnQgaXMgZmlyZWQgQUZURVJcbiAgICogdGhlIHJlcXVlc3QgdG8gYXV0aG9yaXplIHRoZSBkZXJpdmVkIGtleSBpcyBtYWRlLlxuICAgKi9cbiAgQVVUSE9SSVpFX0RFUklWRURfS0VZX0VORCA9ICdBVVRIT1JJWkVfREVSSVZFRF9LRVlfRU5EJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCBpZiB0aGUgcmVxdWVzdCB0byBhdXRob3JpemUgYSBkZXJpdmVkIGtleSBmYWlscy5cbiAgICovXG4gIEFVVEhPUklaRV9ERVJJVkVEX0tFWV9GQUlMID0gJ0FVVEhPUklaRV9ERVJJVkVEX0tFWV9GQUlMJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG9wZW5zIHRoZSBwZXJtaXNzaW9ucyBhcHByb3ZhbCBwb3B1cC5cbiAgICovXG4gIFJFUVVFU1RfUEVSTUlTU0lPTlNfU1RBUlQgPSAnUkVRVUVTVF9QRVJNSVNTSU9OU19TVEFSVCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBjb21wbGV0ZXMgYXBwcm92aW5nIHBlcm1pc3Npb25zLCBhbmRcbiAgICogY29tZXMgQUZURVIgdGhlIGludGVybWVkaWF0ZSBBVVRIT1JJWkVfREVSSVZFRF9LRVkgZXZlbnRzLlxuICAgKi9cbiAgUkVRVUVTVF9QRVJNSVNTSU9OU19FTkQgPSAnUkVRVUVTVF9QRVJNSVNTSU9OU19FTkQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgb3BlbnMgdGhlIGxvZ2luIHBvcHVwLlxuICAgKi9cbiAgTE9HSU5fU1RBUlQgPSAnTE9HSU5fU1RBUlQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgY29tcGxldGVzIGxvZ2dpbmcgaW4sIGFuZFxuICAgKiBjb21lcyBBRlRFUiB0aGUgaW50ZXJtZWRpYXRlIEFVVEhPUklaRV9ERVJJVkVEX0tFWSBldmVudHMuXG4gICAqL1xuICBMT0dJTl9FTkQgPSAnTE9HSU5fRU5EJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG9wZW5zIHRoZSBsb2dvdXQgcG9wdXAuXG4gICAqL1xuICBMT0dPVVRfU1RBUlQgPSAnTE9HT1VUX1NUQVJUJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyBsb2dnaW5nIG91dCwgYW5kXG4gICAqIGNvbWVzIEFGVEVSIHRoZSBpbnRlcm1lZGlhdGUgQVVUSE9SSVpFX0RFUklWRURfS0VZIGV2ZW50cy5cbiAgICovXG4gIExPR09VVF9FTkQgPSAnTE9HT1VUX0VORCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBvcGVucyB0aGUgZ2V0IGRlc28gcG9wdXAuXG4gICAqL1xuICBHRVRfRlJFRV9ERVNPX1NUQVJUID0gJ0dFVF9GUkVFX0RFU09fU1RBUlQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgY29tcGxldGVzIHRoZSBnZXQgZGVzbyBmbG93LCBhbmQgY29tZXNcbiAgICogQUZURVIgdGhlIGludGVybWVkaWF0ZSBBVVRIT1JJWkVfREVSSVZFRF9LRVkgZXZlbnRzLlxuICAgKi9cbiAgR0VUX0ZSRUVfREVTT19FTkQgPSAnR0VUX0ZSRUVfREVTT19FTkQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgb3BlbnMgdGhlIHZlcmlmeSBwaG9uZSBudW1iZXIgcG9wdXAuXG4gICAqL1xuICBWRVJJRllfUEhPTkVfTlVNQkVSX1NUQVJUID0gJ1ZFUklGWV9QSE9ORV9OVU1CRVJfU1RBUlQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgY29tcGxldGVzIHRoZSB2ZXJpZnkgcGhvbmUgbnVtYmVyIGZsb3csXG4gICAqIGFuZCBjb21lcyBBRlRFUiB0aGUgaW50ZXJtZWRpYXRlIEFVVEhPUklaRV9ERVJJVkVEX0tFWSBldmVudHMuXG4gICAqL1xuICBWRVJJRllfUEhPTkVfTlVNQkVSX0VORCA9ICdWRVJJRllfUEhPTkVfTlVNQkVSX0VORCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgY29uc3VtaW5nIGFwcCBzd2l0Y2hlcyB0aGUgYWN0aXZlIHVzZXIuXG4gICAqL1xuICBDSEFOR0VfQUNUSVZFX1VTRVIgPSAnQ0hBTkdFX0FDVElWRV9VU0VSJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3luY1N0b3JhZ2Uge1xuICBnZXRJdGVtOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gIHNldEl0ZW06IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVtb3ZlSXRlbTogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBjbGVhcjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IHR5cGUgU3RvcmFnZVByb3ZpZGVyID0gU3RvcmFnZSB8IEFzeW5jU3RvcmFnZTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWRlbnRpdHkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdVFBLE1BQU0sQ0FBTixJQUFZLG1CQW9GWDtBQXBGRCxXQUFZLG1CQUFtQjtJQUM3Qjs7T0FFRztJQUNILDhDQUF1QixDQUFBO0lBRXZCOzs7O09BSUc7SUFDSCxrRkFBMkQsQ0FBQTtJQUUzRDs7OztPQUlHO0lBQ0gsOEVBQXVELENBQUE7SUFFdkQ7O09BRUc7SUFDSCxnRkFBeUQsQ0FBQTtJQUV6RDs7T0FFRztJQUNILDhFQUF1RCxDQUFBO0lBRXZEOzs7T0FHRztJQUNILDBFQUFtRCxDQUFBO0lBRW5EOztPQUVHO0lBQ0gsa0RBQTJCLENBQUE7SUFFM0I7OztPQUdHO0lBQ0gsOENBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCxvREFBNkIsQ0FBQTtJQUU3Qjs7O09BR0c7SUFDSCxnREFBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILGtFQUEyQyxDQUFBO0lBRTNDOzs7T0FHRztJQUNILDhEQUF1QyxDQUFBO0lBRXZDOztPQUVHO0lBQ0gsOEVBQXVELENBQUE7SUFFdkQ7OztPQUdHO0lBQ0gsMEVBQW1ELENBQUE7SUFFbkQ7O09BRUc7SUFDSCxnRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBcEZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFvRjlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWNjZXNzR3JvdXBMaW1pdE1hcEl0ZW0sXG4gIEFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXBJdGVtLFxuICBBc3NvY2lhdGlvbkxpbWl0TWFwSXRlbSxcbiAgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2UsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi4vYmFja2VuZC10eXBlcy9pbmRleC5qcyc7XG5leHBvcnQgdHlwZSBOZXR3b3JrID0gJ21haW5uZXQnIHwgJ3Rlc3RuZXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5UmVzcG9uc2Uge1xuICBzZXJ2aWNlOiAnaWRlbnRpdHknO1xuICBtZXRob2Q6ICdkZXJpdmUnIHwgJ2xvZ2luJyB8ICdpbml0aWFsaXplJztcbiAgcGF5bG9hZD86IGFueTtcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlEZXJpdmVQYXlsb2FkIHtcbiAgZGVyaXZlZFNlZWRIZXg/OiBzdHJpbmc7XG4gIGRlcml2ZWRQdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBwdWJsaWNLZXlCYXNlNThDaGVjazogc3RyaW5nO1xuICBidGNEZXBvc2l0QWRkcmVzczogc3RyaW5nO1xuICBldGhEZXBvc2l0QWRkcmVzczogc3RyaW5nO1xuICBleHBpcmF0aW9uQmxvY2s6IG51bWJlcjtcbiAgbmV0d29yazogTmV0d29yaztcbiAgYWNjZXNzU2lnbmF0dXJlOiBzdHJpbmc7XG4gIGp3dDogc3RyaW5nO1xuICBkZXJpdmVkSnd0OiBzdHJpbmc7XG4gIG1lc3NhZ2luZ1B1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIG1lc3NhZ2luZ1ByaXZhdGVLZXk6IHN0cmluZztcbiAgbWVzc2FnaW5nS2V5TmFtZTogc3RyaW5nO1xuICBtZXNzYWdpbmdLZXlTaWduYXR1cmU6IHN0cmluZztcbiAgdHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0SGV4OiBzdHJpbmc7XG4gIHNpZ25lZFVwOiBib29sZWFuO1xuICBwdWJsaWNLZXlBZGRlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnMge1xuICBHbG9iYWxERVNPTGltaXQ/OiBudW1iZXI7XG4gIFRyYW5zYWN0aW9uQ291bnRMaW1pdE1hcD86IFBhcnRpYWw8XG4gICAgUmVjb3JkPFRyYW5zYWN0aW9uVHlwZSwgbnVtYmVyIHwgJ1VOTElNSVRFRCc+XG4gID47XG4gIENyZWF0b3JDb2luT3BlcmF0aW9uTGltaXRNYXA/OiB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCAnVU5MSU1JVEVEJyB9O1xuICB9O1xuICBEQU9Db2luT3BlcmF0aW9uTGltaXRNYXA/OiB7XG4gICAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCAnVU5MSU1JVEVEJyB9O1xuICB9O1xuICBORlRPcGVyYXRpb25MaW1pdE1hcD86IHtcbiAgICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IG51bWJlcl06IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgJ1VOTElNSVRFRCcgfSB9O1xuICB9O1xuICBEQU9Db2luTGltaXRPcmRlckxpbWl0TWFwPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgJ1VOTElNSVRFRCcgfTtcbiAgfTtcbiAgQXNzb2NpYXRpb25MaW1pdE1hcD86IChPbWl0PEFzc29jaWF0aW9uTGltaXRNYXBJdGVtLCAnT3BDb3VudCc+ICYge1xuICAgIE9wQ291bnQ6IG51bWJlciB8ICdVTkxJTUlURUQnO1xuICB9KVtdO1xuICBBY2Nlc3NHcm91cExpbWl0TWFwPzogKE9taXQ8QWNjZXNzR3JvdXBMaW1pdE1hcEl0ZW0sICdPcENvdW50Jz4gJiB7XG4gICAgT3BDb3VudDogbnVtYmVyIHwgJ1VOTElNSVRFRCc7XG4gIH0pW107XG4gIEFjY2Vzc0dyb3VwTWVtYmVyTGltaXRNYXA/OiAoT21pdDxcbiAgICBBY2Nlc3NHcm91cE1lbWJlckxpbWl0TWFwSXRlbSxcbiAgICAnT3BDb3VudCdcbiAgPiAmIHsgT3BDb3VudDogbnVtYmVyIHwgJ1VOTElNSVRFRCcgfSlbXTtcbiAgSXNVbmxpbWl0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBqd3RBbGdvcml0aG0gPSAnRVMyNTZLJyB8ICdFUzI1Nic7XG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpdHkgZG9tYWluLiBEZWZhdWx0cyB0byBodHRwczovL2lkZW50aXR5LmRlc28ub3JnXG4gICAqL1xuICBpZGVudGl0eVVSST86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgbmV0d29yay4gSWYgbm90IHByb3ZpZGVkLCB3ZSB3aWxsIGFzc3VtZSBtYWlubmV0LlxuICAgKi9cbiAgbmV0d29yaz86IE5ldHdvcms7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNvIG5vZGUgdXNlZCBmb3IgYW55IGFwaSBjYWxscyAoZ2V0IGJhbGFuY2UsIGRlcml2ZWQga2V5IGF1dGhvcml6YXRpb24sIGV0YylcbiAgICovXG4gIG5vZGVVUkk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHJlZGlyZWN0IFVSSS4gSWYgcHJvdmlkZWQsIHdlIGRvIGEgaGFyZCByZWRpcmVjdCB0byB0aGUgaWRlbnRpdHlcbiAgICogZG9tYWluIGFuZCBwYXNzIGRhdGEgdmlhIHF1ZXJ5IHBhcmFtcyBiYWNrIHRvIHRoZSBwcm92aWRlZCB1cmkuXG4gICAqL1xuICByZWRpcmVjdFVSST86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgcGVybWlzc2lvbnMgYW5kIHNwZW5kaW5nIGxpbWl0cyB0aGF0IHdpbGwgYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyXG4gICAqIGR1cmluZyBsb2dpbi4gSWYgbm90IHByb3ZpZGVkLCB3ZSB3aWxsIGFzc3VtZSBubyBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHNwZW5kaW5nTGltaXRPcHRpb25zPzogVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2VPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXBwIHVzZWQgdG8gYXV0aG9yaXplIGRlcml2ZWQga2V5cy4gRGVmYXVsdHMgdG8gdW5rbm93bi5cbiAgICovXG4gIGFwcE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNpbmNlIG91ciBrZXlzIGFyZSBnZW5lcmF0ZWQgdXNpbmcgdGhlIHNlY3AyNTZrMSBjdXJ2ZSwgdGhlIGNvcnJlY3RcbiAgICogSldUIGFsZ29yaXRobSBoZWFkZXIgKnNob3VsZCogYmUgRVMyNTZLLlxuICAgKiBTZWU6IGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM4ODEyLmh0bWwjbmFtZS1qb3NlLWFsZ29yaXRobXMtcmVnaXN0cmF0aW9cbiAgICpcbiAgICogSE9XRVZFUiwgdGhlIGJhY2tlbmQgand0IGxpYiB1c2VkIGJ5IGRlc28gZm91bmRhdGlvbiAtXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9nb2xhbmctand0L2p3dCAtIChhcyB3ZWxsIGFzIG1hbnkgb3RoZXIgand0IGxpYnJhcmllcylcbiAgICogZG8gbm90IHN1cHBvcnQgRVMyNTZLLiBTbyBpbnN0ZWFkLCB3ZSBkZWZhdWx0IHRvIHRoZSBtb3JlIHdpZGVseSBzdXBwb3J0ZWQgRVMyNTYgYWxnbyxcbiAgICogd2hpY2ggY2FuIHN0aWxsIHdvcmsgZm9yIHZlcmlmeWluZyBvdXIgc2lnbmF0dXJlcy4gQnV0IGlmIGEgY29uc3VtZXIgb2YgdGhpcyBsaWIgaXMgdXNpbmcgYVxuICAgKiBqd3QgbGliIHRoYXQgc3VwcG9ydHMgRVMyNTZLIHRoZXkgY2FuIHNwZWNpZnkgdGhhdCBoZXJlLlxuICAgKiBTZWUgdGhpcyBnaXRodWIgaXNzdWVcbiAgICogZm9yIG1vcmUgY29udGV4dDogaHR0cHM6Ly9naXRodWIuY29tL2F1dGgwL25vZGUtanNvbndlYnRva2VuL2lzc3Vlcy84NjJcbiAgICogSWYgRVMyNTZLIGlzIGV2ZXIgc3VwcG9ydGVkIGJ5IHRoZSBiYWNrZW5kIGp3dCBsaWIsIHdlIHNob3VsZCBjaGFuZ2UgdGhpcy5cbiAgICovXG4gIGp3dEFsZ29yaXRobT86IGp3dEFsZ29yaXRobTtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgc3RvcmFnZSBwcm92aWRlci4gSWYgbm90IHByb3ZpZGVkLCB3ZSB3aWxsIGFzc3VtZSBsb2NhbFN0b3JhZ2VcbiAgICogaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgc3RvcmFnZVByb3ZpZGVyPzogU3RvcmFnZVByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBmdW5jdGlvbiB0aGF0IGlzIHByb3ZpZGVkIHRoZSBpZGVudGl0eSB1cmwgdGhhdCBuZWVkcyB0byBiZVxuICAgKiBvcGVuZWQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIGhvdyB0aGUgaWRlbnRpdHkgdXJsIGlzIG9wZW5lZC4gRm9yXG4gICAqIGV4YW1wbGUsIGlmIHlvdSBhcmUgdXNpbmcgcmVhY3QgbmF0aXZlLCB5b3UgbWlnaHQgd2FudCB0byB1c2UgdGhlIExpbmtpbmdcbiAgICogQVBJIHRvIG9wZW4gdGhlIHVybCBpbiBhIHN5c3RlbSBicm93c2VyIHdpbmRvdy5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogaWRlbnRpdHlQcmVzZW50ZXI6IGFzeW5jICh1cmwpID0+IHtcbiAgICogICBjb25zdCByZXN1bHQgPSBhd2FpdCBXZWJCcm93c2VyLm9wZW5BdXRoU2Vzc2lvbkFzeW5jKHVybCk7XG4gICAqICAgaWYgKHJlc3VsdC50eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICogICAgIGlkZW50aXR5LmhhbmRsZVJlZGlyZWN0VVJJKHJlc3VsdC51cmwpO1xuICAgKiAgIH1cbiAgICogfSxcbiAgICogYGBgXG4gICAqL1xuICBpZGVudGl0eVByZXNlbnRlcj86ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZmxhZyB0aGF0IGFsbG93cyB1c2VycyB0byBza2lwIHRoZSBcImdldCBkZXNvXCIgc3RlcCBkdXJpbmdcbiAgICogbG9naW4uIElmIHNldCB0byB0cnVlLCB0aGUgdXNlciB3aWxsIGJlIGFibGUgdG8gbG9naW4gd2l0aG91dCBoYXZpbmcgdG9cbiAgICogZ2V0IGRlc28uIERlZmF1bHRzIHRvIGZhbHNlLiAgTk9URTogaWYgeW91IGNob29zZSB0byBzZXQgdGhpcyB0byB0cnVlLCB5b3VcbiAgICogc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHRoZSB1c2VyIGhhcyBhIHdheSB0byBnZXQgZGVzbyBhZnRlciBsb2dnaW5nIGluLlxuICAgKiBPdGhlcndpc2UsIHRoZXkgd2lsbCBub3QgYmUgYWJsZSB0byBkbyBhbnl0aGluZyB3aXRoIHRoZWlyIGFjY291bnQuXG4gICAqL1xuICBzaG93U2tpcD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJUHJvdmlkZXIge1xuICBwb3N0OiAodXJsOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gUHJvbWlzZTxhbnk+O1xuICBnZXQ6ICh1cmw6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpbmRvd1Byb3ZpZGVyIHtcbiAgbG9jYXRpb246IHsgc2VhcmNoOiBzdHJpbmc7IHBhdGhuYW1lOiBzdHJpbmc7IGhyZWY6IHN0cmluZyB9O1xuICBoaXN0b3J5OiB7IHJlcGxhY2VTdGF0ZTogKHN0YXRlOiBhbnksIHRpdGxlOiBzdHJpbmcsIHVybDogc3RyaW5nKSA9PiB2b2lkIH07XG4gIGxvY2FsU3RvcmFnZToge1xuICAgIGdldEl0ZW06IChrZXk6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbDtcbiAgICBzZXRJdGVtOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgcmVtb3ZlSXRlbTogKGtleTogc3RyaW5nKSA9PiB2b2lkO1xuICB9O1xuICBvcGVuOiAoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBzdHJpbmdcbiAgKSA9PiBXaW5kb3cgfCBudWxsO1xuICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xuICByZW1vdmVFdmVudExpc3RlbmVyOiAoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIGdldEZyZWVEZXNvPzogYm9vbGVhbjtcbiAgZGVyaXZlZEtleUxvZ2luPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUHJpbWFyeURlcml2ZWRLZXlJbmZvID0gSWRlbnRpdHlEZXJpdmVQYXlsb2FkICYge1xuICB0cmFuc2FjdGlvblNwZW5kaW5nTGltaXRzOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZTtcbiAgSXNWYWxpZD86IGJvb2xlYW47XG4gIGRlcml2ZWRLZXlSZWdpc3RlcmVkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFN0b3JlZFVzZXIgPSB7XG4gIHB1YmxpY0tleTogc3RyaW5nO1xuICBwcmltYXJ5RGVyaXZlZEtleTogUHJpbWFyeURlcml2ZWRLZXlJbmZvO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eVVzZXIge1xuICBhY2Nlc3NMZXZlbDogbnVtYmVyO1xuICBhY2Nlc3NMZXZlbEhtYWM6IHN0cmluZztcbiAgYnRjRGVwb3NpdEFkZHJlc3M6IHN0cmluZztcbiAgZW5jcnlwdGVkU2VlZEhleDogc3RyaW5nO1xuICBldGhEZXBvc2l0QWRkcmVzczogc3RyaW5nO1xuICBkZXJpdmVkUHVibGljS2V5QmFzZTU4Q2hlY2s/OiBzdHJpbmc7XG4gIGhhc0V4dHJhVGV4dDogYm9vbGVhbjtcbiAgbmV0d29yazogc3RyaW5nO1xuICB2ZXJzaW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpdHlMb2dpblBheWxvYWQge1xuICB1c2VyczogUmVjb3JkPHN0cmluZywgSWRlbnRpdHlVc2VyPjtcbiAgcHVibGljS2V5QWRkZWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXJTdWNjZXNzOiBib29sZWFuO1xuICBzaWduZWRVcDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0eVN0YXRlIHtcbiAgY3VycmVudFVzZXI6IFN0b3JlZFVzZXIgfCBudWxsO1xuICBhbHRlcm5hdGVVc2VyczogUmVjb3JkPHN0cmluZywgU3RvcmVkVXNlcj4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmVycmVkIHtcbiAgcmVzb2x2ZTogKGFyZ3M6IGFueSkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoYXJnczogYW55KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXIge1xuICBzZWVkSGV4OiBzdHJpbmc7XG4gIHByaXZhdGU6IFVpbnQ4QXJyYXk7XG4gIHB1YmxpYzogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpYmVyTm90aWZpY2F0aW9uIHtcbiAgZXZlbnQ6IE5PVElGSUNBVElPTl9FVkVOVFM7XG4gIGN1cnJlbnRVc2VyOiBTdG9yZWRVc2VyIHwgbnVsbDtcbiAgYWx0ZXJuYXRlVXNlcnM6IFJlY29yZDxzdHJpbmcsIFN0b3JlZFVzZXI+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGhlcnNjYW5UcmFuc2FjdGlvbnNCeUFkZHJlc3NSZXNwb25zZSB7XG4gIHN0YXR1czogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3VsdDogRXRoZXJzY2FuVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGhlcnNjYW5UcmFuc2FjdGlvbiB7XG4gIGJsb2NrTnVtYmVyOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBoYXNoOiBzdHJpbmc7XG4gIG5vbmNlOiBzdHJpbmc7XG4gIGJsb2NrSGFzaDogc3RyaW5nO1xuICB0cmFuc2FjdGlvbkluZGV4OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZ2FzOiBzdHJpbmc7XG4gIGdhc1ByaWNlOiBzdHJpbmc7XG4gIGlzRXJyb3I6IHN0cmluZztcbiAgdHhyZWNlaXB0X3N0YXR1czogc3RyaW5nO1xuICBpbnB1dDogc3RyaW5nO1xuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgY3VtdWxhdGl2ZUdhc1VzZWQ6IHN0cmluZztcbiAgZ2FzVXNlZDogc3RyaW5nO1xuICBjb25maXJtYXRpb25zOiBzdHJpbmc7XG4gIG1ldGhvZElkOiBzdHJpbmc7XG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc0dyb3VwUHJpdmF0ZUluZm8ge1xuICBBY2Nlc3NHcm91cFB1YmxpY0tleUJhc2U1OENoZWNrOiBzdHJpbmc7XG4gIEFjY2Vzc0dyb3VwUHJpdmF0ZUtleUhleDogc3RyaW5nO1xuICBBY2Nlc3NHcm91cEtleU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gTk9USUZJQ0FUSU9OX0VWRU5UUyB7XG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIGNvbnN1bWluZyBhcHAgaW5pdGlhbGx5IHN1YnNjcmliZXMgdG8gaWRlbnRpdHkuXG4gICAqL1xuICBTVUJTQ1JJQkUgPSAnU1VCU0NSSUJFJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgZXZlbnQgZmlyZWQgQUZURVIgdGhlIHVzZXIgY29tcGxldGVzIGFuIGlkZW50aXR5IGZsb3dcbiAgICogdGhhdCByZXF1aXJlcyBhIGRlcml2ZWQga2V5IGF1dGhvcml6YXRpb24uIFRoaXMgZXZlbnQgaXMgZmlyZWQgQkVGT1JFIHRoZVxuICAgKiByZXF1ZXN0IHRvIGF1dGhvcml6ZSB0aGUgZGVyaXZlZCBrZXkgaXMgbWFkZS5cbiAgICovXG4gIEFVVEhPUklaRV9ERVJJVkVEX0tFWV9TVEFSVCA9ICdBVVRIT1JJWkVfREVSSVZFRF9LRVlfU1RBUlQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGFuIGludGVybWVkaWF0ZSBldmVudCBmaXJlZCBBRlRFUiB0aGUgdXNlciBjb21wbGV0ZXMgYW4gaWRlbnRpdHlcbiAgICogZmxvdyB0aGF0IHJlcXVpcmVzIGEgZGVyaXZlZCBrZXkgYXV0aG9yaXphdGlvbi4gVGhpcyBldmVudCBpcyBmaXJlZCBBRlRFUlxuICAgKiB0aGUgcmVxdWVzdCB0byBhdXRob3JpemUgdGhlIGRlcml2ZWQga2V5IGlzIG1hZGUuXG4gICAqL1xuICBBVVRIT1JJWkVfREVSSVZFRF9LRVlfRU5EID0gJ0FVVEhPUklaRV9ERVJJVkVEX0tFWV9FTkQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIGlmIHRoZSByZXF1ZXN0IHRvIGF1dGhvcml6ZSBhIGRlcml2ZWQga2V5IGZhaWxzLlxuICAgKi9cbiAgQVVUSE9SSVpFX0RFUklWRURfS0VZX0ZBSUwgPSAnQVVUSE9SSVpFX0RFUklWRURfS0VZX0ZBSUwnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgb3BlbnMgdGhlIHBlcm1pc3Npb25zIGFwcHJvdmFsIHBvcHVwLlxuICAgKi9cbiAgUkVRVUVTVF9QRVJNSVNTSU9OU19TVEFSVCA9ICdSRVFVRVNUX1BFUk1JU1NJT05TX1NUQVJUJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGNvbXBsZXRlcyBhcHByb3ZpbmcgcGVybWlzc2lvbnMsIGFuZFxuICAgKiBjb21lcyBBRlRFUiB0aGUgaW50ZXJtZWRpYXRlIEFVVEhPUklaRV9ERVJJVkVEX0tFWSBldmVudHMuXG4gICAqL1xuICBSRVFVRVNUX1BFUk1JU1NJT05TX0VORCA9ICdSRVFVRVNUX1BFUk1JU1NJT05TX0VORCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBvcGVucyB0aGUgbG9naW4gcG9wdXAuXG4gICAqL1xuICBMT0dJTl9TVEFSVCA9ICdMT0dJTl9TVEFSVCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBjb21wbGV0ZXMgbG9nZ2luZyBpbiwgYW5kXG4gICAqIGNvbWVzIEFGVEVSIHRoZSBpbnRlcm1lZGlhdGUgQVVUSE9SSVpFX0RFUklWRURfS0VZIGV2ZW50cy5cbiAgICovXG4gIExPR0lOX0VORCA9ICdMT0dJTl9FTkQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgb3BlbnMgdGhlIGxvZ291dCBwb3B1cC5cbiAgICovXG4gIExPR09VVF9TVEFSVCA9ICdMT0dPVVRfU1RBUlQnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgY29tcGxldGVzIGxvZ2dpbmcgb3V0LCBhbmRcbiAgICogY29tZXMgQUZURVIgdGhlIGludGVybWVkaWF0ZSBBVVRIT1JJWkVfREVSSVZFRF9LRVkgZXZlbnRzLlxuICAgKi9cbiAgTE9HT1VUX0VORCA9ICdMT0dPVVRfRU5EJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG9wZW5zIHRoZSBnZXQgZGVzbyBwb3B1cC5cbiAgICovXG4gIEdFVF9GUkVFX0RFU09fU1RBUlQgPSAnR0VUX0ZSRUVfREVTT19TVEFSVCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBjb21wbGV0ZXMgdGhlIGdldCBkZXNvIGZsb3csIGFuZCBjb21lc1xuICAgKiBBRlRFUiB0aGUgaW50ZXJtZWRpYXRlIEFVVEhPUklaRV9ERVJJVkVEX0tFWSBldmVudHMuXG4gICAqL1xuICBHRVRfRlJFRV9ERVNPX0VORCA9ICdHRVRfRlJFRV9ERVNPX0VORCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBvcGVucyB0aGUgdmVyaWZ5IHBob25lIG51bWJlciBwb3B1cC5cbiAgICovXG4gIFZFUklGWV9QSE9ORV9OVU1CRVJfU1RBUlQgPSAnVkVSSUZZX1BIT05FX05VTUJFUl9TVEFSVCcsXG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBjb21wbGV0ZXMgdGhlIHZlcmlmeSBwaG9uZSBudW1iZXIgZmxvdyxcbiAgICogYW5kIGNvbWVzIEFGVEVSIHRoZSBpbnRlcm1lZGlhdGUgQVVUSE9SSVpFX0RFUklWRURfS0VZIGV2ZW50cy5cbiAgICovXG4gIFZFUklGWV9QSE9ORV9OVU1CRVJfRU5EID0gJ1ZFUklGWV9QSE9ORV9OVU1CRVJfRU5EJyxcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBjb25zdW1pbmcgYXBwIHN3aXRjaGVzIHRoZSBhY3RpdmUgdXNlci5cbiAgICovXG4gIENIQU5HRV9BQ1RJVkVfVVNFUiA9ICdDSEFOR0VfQUNUSVZFX1VTRVInLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jU3RvcmFnZSB7XG4gIGdldEl0ZW06IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbiAgc2V0SXRlbTogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZW1vdmVJdGVtOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGNsZWFyOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBTdG9yYWdlUHJvdmlkZXIgPSBTdG9yYWdlIHwgQXN5bmNTdG9yYWdlO1xuIl19

@@ -13,4 +13,1 @@ export * from './backend-types/index.js';

export * from './transactions/social.js';
export * from './transactions/validator.js';
export * from './transactions/stake.js';
export * from './transactions/lockup.js';

@@ -13,5 +13,2 @@ export * from './backend-types/index.js';

export * from './transactions/social.js';
export * from './transactions/validator.js';
export * from './transactions/stake.js';
export * from './transactions/lockup.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JhY2tlbmQtdHlwZXMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzby1wcm90b2NvbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lkZW50aXR5L2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vand0LXJlcXVlc3RzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL2FjY2Vzcy1ncm91cHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbnMvYXNzb2NpYXRpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL2Rlcml2ZWQta2V5cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9kZXNvLXRva2Vucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9maW5hbmNpYWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbnMvbmZ0cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9zb2NpYWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbnMvdmFsaWRhdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL3N0YWtlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL2xvY2t1cC5qcyc7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JhY2tlbmQtdHlwZXMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhL2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzby1wcm90b2NvbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lkZW50aXR5L2luZGV4LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vand0LXJlcXVlc3RzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL2FjY2Vzcy1ncm91cHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbnMvYXNzb2NpYXRpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25zL2Rlcml2ZWQta2V5cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9kZXNvLXRva2Vucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9maW5hbmNpYWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbnMvbmZ0cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9ucy9zb2NpYWwuanMnO1xuIl19

@@ -6,4 +6,10 @@ import { BuyOrSellCreatorCoinRequest, BuyOrSellCreatorCoinResponse, ConstructedTransactionResponse, SendDeSoRequest, SendDeSoResponse, TransferCreatorCoinRequest, TransferCreatorCoinResponse, TxRequestWithOptionalFeesAndExtraData } from '../backend-types/index.js';

* https://docs.deso.org/deso-backend/construct-transactions/financial-transactions-api#send-deso
*
* NOTE: In the case of a max send, the AmountNanos param will be a -1, which
* is not useful for calculating the GlobalDESOLimit. In this case, the caller
* should provide the optional spendingLimitAmountNanos to be used instead.
*/
export declare const sendDeso: (params: TxRequestWithOptionalFeesAndExtraData<SendDeSoRequest>, options?: TxRequestOptions) => Promise<ConstructedAndSubmittedTx<SendDeSoResponse | ConstructedTransactionResponse>>;
export declare const sendDeso: (params: TxRequestWithOptionalFeesAndExtraData<SendDeSoRequest>, options?: TxRequestOptions & {
spendingLimitAmountNanos?: number;
}) => Promise<ConstructedAndSubmittedTx<SendDeSoResponse | ConstructedTransactionResponse>>;
export declare const constructSendDeSoTransaction: (params: TxRequestWithOptionalFeesAndExtraData<SendDeSoRequest>) => Promise<ConstructedTransactionResponse>;

@@ -10,0 +16,0 @@ /**

@@ -6,2 +6,6 @@ import { TransactionMetadataBasicTransfer, TransactionMetadataCreatorCoin, TransactionMetadataCreatorCoinTransfer, TransactionOutput, bs58PublicKeyToCompressedBytes, identity, } from '../identity/index.js';

* https://docs.deso.org/deso-backend/construct-transactions/financial-transactions-api#send-deso
*
* NOTE: In the case of a max send, the AmountNanos param will be a -1, which
* is not useful for calculating the GlobalDESOLimit. In this case, the caller
* should provide the optional spendingLimitAmountNanos to be used instead.
*/

@@ -24,5 +28,8 @@ export const sendDeso = async (params, options) => {

});
const amountNanos = typeof options?.spendingLimitAmountNanos === 'number'
? options.spendingLimitAmountNanos
: params.AmountNanos;
if (options?.checkPermissions !== false) {
await guardTxPermission({
GlobalDESOLimit: params.AmountNanos +
GlobalDESOLimit: amountNanos +
txWithFee.feeNanos +

@@ -172,2 +179,2 @@ sumTransactionFees(params.TransactionFees),

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9ucy9maW5hbmNpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyw4QkFBOEIsRUFDOUIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQiw4QkFBOEIsRUFDOUIsUUFBUSxHQUNULE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUMzQixNQUE4RCxFQUM5RCxPQUEwQixFQUcxQixFQUFFO0lBQ0YsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQ2pDLE1BQU0sQ0FBQywwQkFBMEIsRUFDakMsSUFBSSxnQ0FBZ0MsRUFBRSxFQUN0QztRQUNFLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztZQUM1QixHQUFHLE1BQU07WUFDVCx1RUFBdUU7WUFDdkUsdUVBQXVFO1lBQ3ZFLGtFQUFrRTtZQUNsRSxzRUFBc0U7WUFDdEUscUVBQXFFO1lBQ3JFLHlDQUF5QztZQUN6Qyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsMEJBQTBCO1NBQ2hFLENBQUM7UUFDRixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDM0Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLG9CQUFvQjtRQUNqRCxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7S0FDeEMsQ0FDRixDQUFDO0lBRUYsSUFBSSxPQUFPLEVBQUUsZ0JBQWdCLEtBQUssS0FBSyxFQUFFO1FBQ3ZDLE1BQU0saUJBQWlCLENBQUM7WUFDdEIsZUFBZSxFQUNiLE1BQU0s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ckNvaW5SZXF1ZXN0LFxuICBCdXlPclNlbGxDcmVhdG9yQ29pblJlc3BvbnNlLFxuICBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIFNlbmREZVNvUmVxdWVzdCxcbiAgU2VuZERlU29SZXNwb25zZSxcbiAgVHJhbnNmZXJDcmVhdG9yQ29pblJlcXVlc3QsXG4gIFRyYW5zZmVyQ3JlYXRvckNvaW5SZXNwb25zZSxcbiAgVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YSxcbn0gZnJvbSAnLi4vYmFja2VuZC10eXBlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBQYXJ0aWFsV2l0aFJlcXVpcmVkRmllbGRzIH0gZnJvbSAnLi4vZGF0YS9pbmRleC5qcyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbk1ldGFkYXRhQmFzaWNUcmFuc2ZlcixcbiAgVHJhbnNhY3Rpb25NZXRhZGF0YUNyZWF0b3JDb2luLFxuICBUcmFuc2FjdGlvbk1ldGFkYXRhQ3JlYXRvckNvaW5UcmFuc2ZlcixcbiAgVHJhbnNhY3Rpb25PdXRwdXQsXG4gIGJzNThQdWJsaWNLZXlUb0NvbXByZXNzZWRCeXRlcyxcbiAgaWRlbnRpdHksXG59IGZyb20gJy4uL2lkZW50aXR5L2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGNvbnN0cnVjdEJhbGFuY2VNb2RlbFR4LFxuICBnZXRUeFdpdGhGZWVOYW5vcyxcbiAgaGFuZGxlU2lnbkFuZFN1Ym1pdCxcbiAgaXNNYXliZURlU29QdWJsaWNLZXksXG4gIHN1bVRyYW5zYWN0aW9uRmVlcyxcbn0gZnJvbSAnLi4vaW50ZXJuYWwuanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0ZWRBbmRTdWJtaXR0ZWRUeCwgVHhSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGd1YXJkVHhQZXJtaXNzaW9uIH0gZnJvbSAnLi91dGlscy5qcyc7XG5cbi8qKlxuICogaHR0cHM6Ly9kb2NzLmRlc28ub3JnL2Rlc28tYmFja2VuZC9jb25zdHJ1Y3QtdHJhbnNhY3Rpb25zL2ZpbmFuY2lhbC10cmFuc2FjdGlvbnMtYXBpI3NlbmQtZGVzb1xuICovXG5leHBvcnQgY29uc3Qgc2VuZERlc28gPSBhc3luYyAoXG4gIHBhcmFtczogVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YTxTZW5kRGVTb1JlcXVlc3Q+LFxuICBvcHRpb25zPzogVHhSZXF1ZXN0T3B0aW9uc1xuKTogUHJvbWlzZTxcbiAgQ29uc3RydWN0ZWRBbmRTdWJtaXR0ZWRUeDxTZW5kRGVTb1Jlc3BvbnNlIHwgQ29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPlxuPiA9PiB7XG4gIGNvbnN0IHR4V2l0aEZlZSA9IGdldFR4V2l0aEZlZU5hbm9zKFxuICAgIHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBuZXcgVHJhbnNhY3Rpb25NZXRhZGF0YUJhc2ljVHJhbnNmZXIoKSxcbiAgICB7XG4gICAgICBPdXRwdXRzOiBidWlsZFNlbmREZVNvT3V0cHV0cyh7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgLy8gTk9URTogdGhpcyBpcyBhIGJpdCBvZiBhbiBvZGQgaGFjaywgYnV0IGJjIHdlIGFyZSBvbmx5IHVzaW5nIHRoaXMgdG9cbiAgICAgICAgLy8gZXN0aW1hdGUgdGhlIGZlZSwgd2UgY2FuIG92ZXJ3cml0ZSB0aGUgcmVjaXBpZW50IHRvIGJlIHRoZSBzZW5kZXIgdG9cbiAgICAgICAgLy8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBhIHZhbGlkIHB1YmxpYyBrZXkgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvXG4gICAgICAgIC8vIGJ5dGVzLiBUaGUgcmVhc29uIHdlIGNhbm5vdCBtYWtlIGFuIGFwaSBjYWxsIHRvIGdldCB0aGUgdHJ1ZSBwdWJsaWNcbiAgICAgICAgLy8ga2V5IGlzIGJlY2F1c2UgaXQgY291bGQgY2F1c2UgdGhlIGRlcml2ZWQga2V5IHJlLWFwcHJvdmFsIHBvcHVwIHRvXG4gICAgICAgIC8vIGdldCBibG9ja2VkIGJ5IGJyb3dzZXIgcG9wdXAgYmxvY2tlcnMuXG4gICAgICAgIFJlY2lwaWVudFB1YmxpY0tleU9yVXNlcm5hbWU6IHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICAgIH0pLFxuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG5cbiAgaWYgKG9wdGlvbnM/LmNoZWNrUGVybWlzc2lvbnMgIT09IGZhbHNlKSB7XG4gICAgYXdhaXQgZ3VhcmRUeFBlcm1pc3Npb24oe1xuICAgICAgR2xvYmFsREVTT0xpbWl0OlxuICAgICAgICBwYXJhbXMuQW1vdW50TmFub3MgK1xuICAgICAgICB0eFdpdGhGZWUuZmVlTmFub3MgK1xuICAgICAgICBzdW1UcmFuc2FjdGlvbkZlZXMocGFyYW1zLlRyYW5zYWN0aW9uRmVlcyksXG4gICAgICBUcmFuc2FjdGlvbkNvdW50TGltaXRNYXA6IHtcbiAgICAgICAgQkFTSUNfVFJBTlNGRVI6XG4gICAgICAgICAgb3B0aW9ucz8udHhMaW1pdENvdW50ID8/XG4gICAgICAgICAgaWRlbnRpdHkudHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T3B0aW9ucy5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXBcbiAgICAgICAgICAgID8uQkFTSUNfVFJBTlNGRVIgPz9cbiAgICAgICAgICAxLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KCdhcGkvdjAvc2VuZC1kZXNvJywgcGFyYW1zLCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBjb25zdHJ1Y3Rpb25GdW5jdGlvbjogY29uc3RydWN0U2VuZERlU29UcmFuc2FjdGlvbixcbiAgfSk7XG59O1xuXG5jb25zdCBidWlsZFNlbmREZVNvT3V0cHV0cyA9IChcbiAgcGFyYW1zOiBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFNlbmREZVNvUmVxdWVzdD5cbikgPT4ge1xuICBjb25zdCB0cmFuc2FjdGlvbk91dHB1dCA9IG5ldyBUcmFuc2FjdGlvbk91dHB1dCgpO1xuICB0cmFuc2FjdGlvbk91dHB1dC5hbW91bnROYW5vcyA9IHBhcmFtcy5BbW91bnROYW5vcztcbiAgdHJhbnNhY3Rpb25PdXRwdXQucHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIC8vIEZJWE1FOiB0aGlzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlY2lwaWVudCBpcyBhIHVzZXJuYW1lLiBXZSBuZWVkXG4gICAgLy8gdG8gZWl0aGVyIGZldGNoIHRoZSBwdWJsaWMga2V5IGFuZCBvdmVyd3JpdGUgdGhlIHVzZXJuYW1lIHdpdGggaXQgb3JcbiAgICAvLyB0aHJvdyBhIG1vcmUgaGVscGZ1bCBlcnJvciB0byBjb25zdW1lcnMgZXhwbGFpbmluZyB0aGF0IHdlIHJlcXVpcmUgdGhlXG4gICAgLy8gcHVibGljIGtleSBpbnN0ZWFkIG9mIHRoZSB1c2VybmFtZS5cbiAgICBwYXJhbXMuUmVjaXBpZW50UHVibGljS2V5T3JVc2VybmFtZVxuICApO1xuICByZXR1cm4gW3RyYW5zYWN0aW9uT3V0cHV0XTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTZW5kRGVTb1RyYW5zYWN0aW9uID0gKFxuICBwYXJhbXM6IFR4UmVxdWVzdFdpdGhPcHRpb25hbEZlZXNBbmRFeHRyYURhdGE8U2VuZERlU29SZXF1ZXN0PlxuKTogUHJvbWlzZTxDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFpc01heWJlRGVTb1B1YmxpY0tleShwYXJhbXMuUmVjaXBpZW50UHVibGljS2V5T3JVc2VybmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnbXVzdCBwcm92aWRlIHB1YmxpYyBrZXksIG5vdCB1c2VyIG5hbWUgZm9yIGxvY2FsIGNvbnN0cnVjdGlvbidcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0cnVjdEJhbGFuY2VNb2RlbFR4KFxuICAgIHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBuZXcgVHJhbnNhY3Rpb25NZXRhZGF0YUJhc2ljVHJhbnNmZXIoKSxcbiAgICB7XG4gICAgICBPdXRwdXRzOiBidWlsZFNlbmREZVNvT3V0cHV0cyhwYXJhbXMpLFxuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICAgIE5vbmNlOiBwYXJhbXMuTm9uY2UsXG4gICAgfVxuICApO1xufTtcblxuLy8gVE9ETzogQlVZIGNyZWF0b3IgY29pbnMgaXMgaGFyZC4gTmVlZCB0byBtb3ZlIHNvbWVcbi8vIGJpZyBmbG9hdCBtYXRoIGludG8ganMuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5kZXNvLm9yZy9kZXNvLWJhY2tlbmQvY29uc3RydWN0LXRyYW5zYWN0aW9ucy9maW5hbmNpYWwtdHJhbnNhY3Rpb25zLWFwaSNidXktb3Itc2VsbC1jcmVhdG9yLWNvaW5cbiAqL1xuZXhwb3J0IHR5cGUgQnV5Q3JlYXRvckNvaW5SZXF1ZXN0UGFyYW1zID0gVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YTxcbiAgUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkczxcbiAgICBPbWl0PFxuICAgICAgQnV5T3JTZWxsQ3JlYXRvckNvaW5SZXF1ZXN0LFxuICAgICAgJ0NyZWF0b3JDb2luVG9TZWxsTmFub3MnIHwgJ09wZXJhdGlvblR5cGUnXG4gICAgPixcbiAgICB8ICdVcGRhdGVyUHVibGljS2V5QmFzZTU4Q2hlY2snXG4gICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgIHwgJ0RlU29Ub1NlbGxOYW5vcydcbiAgPlxuPjtcbmV4cG9ydCBjb25zdCBidXlDcmVhdG9yQ29pbiA9IGFzeW5jIChcbiAgcGFyYW1zOiBCdXlDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMsXG4gIG9wdGlvbnM/OiBUeFJlcXVlc3RPcHRpb25zXG4pOiBQcm9taXNlPFxuICBDb25zdHJ1Y3RlZEFuZFN1Ym1pdHRlZFR4PFxuICAgIEJ1eU9yU2VsbENyZWF0b3JDb2luUmVzcG9uc2UgfCBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2VcbiAgPlxuPiA9PiB7XG4gIGNvbnN0IHR4V2l0aEZlZSA9IGdldFR4V2l0aEZlZU5hbm9zKFxuICAgIHBhcmFtcy5VcGRhdGVyUHVibGljS2V5QmFzZTU4Q2hlY2ssXG4gICAgYnVpbGRCdXlDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG5cbiAgaWYgKG9wdGlvbnM/LmNoZWNrUGVybWlzc2lvbnMgIT09IGZhbHNlKSB7XG4gICAgYXdhaXQgZ3VhcmRUeFBlcm1pc3Npb24oe1xuICAgICAgR2xvYmFsREVTT0xpbWl0OlxuICAgICAgICBwYXJhbXMuRGVTb1RvU2VsbE5hbm9zICtcbiAgICAgICAgdHhXaXRoRmVlLmZlZU5hbm9zICtcbiAgICAgICAgc3VtVHJhbnNhY3Rpb25GZWVzKHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMpLFxuICAgICAgQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcDoge1xuICAgICAgICBbcGFyYW1zLkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVja106IHtcbiAgICAgICAgICBidXk6IG9wdGlvbnM/LnR4TGltaXRDb3VudCA/PyAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KFxuICAgICdhcGkvdjAvYnV5LW9yLXNlbGwtY3JlYXRvci1jb2luJyxcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBPcGVyYXRpb25UeXBlOiAnYnV5JyxcbiAgICB9LFxuICAgIG9wdGlvbnNcbiAgKTtcbn07XG5cbi8vIFRPRE86IFNFTEwgY3JlYXRvciBjb2lucyBpcyBoYXJkLiBOZWVkIHRvIG1vdmUgc29tZVxuLy8gYmlnIGZsb2F0IG1hdGggaW50byBqcy5cbi8qKlxuICogaHR0cHM6Ly9kb2NzLmRlc28ub3JnL2Rlc28tYmFja2VuZC9jb25zdHJ1Y3QtdHJhbnNhY3Rpb25zL2ZpbmFuY2lhbC10cmFuc2FjdGlvbnMtYXBpI2J1eS1vci1zZWxsLWNyZWF0b3ItY29pblxuICovXG5cbmV4cG9ydCB0eXBlIFNlbGxDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMgPVxuICBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFxuICAgIFBhcnRpYWxXaXRoUmVxdWlyZWRGaWVsZHM8XG4gICAgICBPbWl0PEJ1eU9yU2VsbENyZWF0b3JDb2luUmVxdWVzdCwgJ0Rlc29Ub1NlbGxOYW5vcycgfCAnT3BlcmF0aW9uVHlwZSc+LFxuICAgICAgfCAnVXBkYXRlclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvckNvaW5Ub1NlbGxOYW5vcydcbiAgICA+XG4gID47XG5cbmV4cG9ydCBjb25zdCBzZWxsQ3JlYXRvckNvaW4gPSBhc3luYyAoXG4gIHBhcmFtczogU2VsbENyZWF0b3JDb2luUmVxdWVzdFBhcmFtcyxcbiAgb3B0aW9ucz86IFR4UmVxdWVzdE9wdGlvbnNcbik6IFByb21pc2U8XG4gIENvbnN0cnVjdGVkQW5kU3VibWl0dGVkVHg8XG4gICAgQnV5T3JTZWxsQ3JlYXRvckNvaW5SZXNwb25zZSB8IENvbnN0cnVjdGVkVHJhbnNhY3Rpb25SZXNwb25zZVxuICA+XG4+ID0+IHtcbiAgY29uc3QgdHhXaXRoRmVlID0gZ2V0VHhXaXRoRmVlTmFub3MoXG4gICAgcGFyYW1zLlVwZGF0ZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBidWlsZFNlbGxDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG5cbiAgaWYgKG9wdGlvbnM/LmNoZWNrUGVybWlzc2lvbnMgIT09IGZhbHNlKSB7XG4gICAgYXdhaXQgZ3VhcmRUeFBlcm1pc3Npb24oe1xuICAgICAgR2xvYmFsREVTT0xpbWl0OlxuICAgICAgICB0eFdpdGhGZWUuZmVlTmFub3MgKyBzdW1UcmFuc2FjdGlvbkZlZXMocGFyYW1zLlRyYW5zYWN0aW9uRmVlcyksXG4gICAgICBDcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwOiB7XG4gICAgICAgIFtwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXToge1xuICAgICAgICAgIHNlbGw6IG9wdGlvbnM/LnR4TGltaXRDb3VudCA/PyAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KFxuICAgICdhcGkvdjAvYnV5LW9yLXNlbGwtY3JlYXRvci1jb2luJyxcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBPcGVyYXRpb25UeXBlOiAnc2VsbCcsXG4gICAgfSxcbiAgICBvcHRpb25zXG4gICk7XG59O1xuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5kZXNvLm9yZy9kZXNvLWJhY2tlbmQvY29uc3RydWN0LXRyYW5zYWN0aW9ucy9maW5hbmNpYWwtdHJhbnNhY3Rpb25zLWFwaSN0cmFuc2Zlci1jcmVhdG9yLWNvaW5cbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNmZXJDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMgPVxuICBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFxuICAgIFBhcnRpYWxXaXRoUmVxdWlyZWRGaWVsZHM8XG4gICAgICBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdCxcbiAgICAgIHwgJ1NlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnUmVjZWl2ZXJVc2VybmFtZU9yUHVibGljS2V5QmFzZTU4Q2hlY2snXG4gICAgICB8ICdDcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcydcbiAgICA+XG4gID47XG5leHBvcnQgY29uc3QgdHJhbnNmZXJDcmVhdG9yQ29pbiA9IGFzeW5jIChcbiAgcGFyYW1zOiBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdFBhcmFtcyxcbiAgb3B0aW9ucz86IFR4UmVxdWVzdE9wdGlvbnNcbik6IFByb21pc2U8Q29uc3RydWN0ZWRBbmRTdWJtaXR0ZWRUeDxUcmFuc2ZlckNyZWF0b3JDb2luUmVzcG9uc2U+PiA9PiB7XG4gIGNvbnN0IHR4V2l0aEZlZSA9IGdldFR4V2l0aEZlZU5hbm9zKFxuICAgIHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBidWlsZFRyYW5zZmVyQ3JlYXRvckNvaW5NZXRhZGF0YShwYXJhbXMpLFxuICAgIHtcbiAgICAgIEV4dHJhRGF0YTogcGFyYW1zLkV4dHJhRGF0YSxcbiAgICAgIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBwYXJhbXMuTWluRmVlUmF0ZU5hbm9zUGVyS0IsXG4gICAgICBUcmFuc2FjdGlvbkZlZXM6IHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMsXG4gICAgfVxuICApO1xuXG4gIGlmIChvcHRpb25zPy5jaGVja1Blcm1pc3Npb25zICE9PSBmYWxzZSkge1xuICAgIGF3YWl0IGd1YXJkVHhQZXJtaXNzaW9uKHtcbiAgICAgIEdsb2JhbERFU09MaW1pdDpcbiAgICAgICAgdHhXaXRoRmVlLmZlZU5hbm9zICsgc3VtVHJhbnNhY3Rpb25GZWVzKHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMpLFxuICAgICAgQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcDoge1xuICAgICAgICBbcGFyYW1zLkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVja106IHtcbiAgICAgICAgICB0cmFuc2Zlcjogb3B0aW9ucz8udHhMaW1pdENvdW50ID8/IDEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGhhbmRsZVNpZ25BbmRTdWJtaXQoJ2FwaS92MC90cmFuc2Zlci1jcmVhdG9yLWNvaW4nLCBwYXJhbXMsIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGNvbnN0cnVjdGlvbkZ1bmN0aW9uOiBjb25zdHJ1Y3RUcmFuc2ZlckNyZWF0b3JDb2luVHJhbnNhY3Rpb24sXG4gIH0pO1xufTtcblxuY29uc3QgYnVpbGRUcmFuc2ZlckNyZWF0b3JDb2luTWV0YWRhdGEgPSAoXG4gIHBhcmFtczogVHJhbnNmZXJDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXNcbikgPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IG5ldyBUcmFuc2FjdGlvbk1ldGFkYXRhQ3JlYXRvckNvaW5UcmFuc2ZlcigpO1xuICBtZXRhZGF0YS5jcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcyA9IHBhcmFtcy5DcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcztcbiAgbWV0YWRhdGEucHJvZmlsZVB1YmxpY0tleSA9IGJzNThQdWJsaWNLZXlUb0NvbXByZXNzZWRCeXRlcyhcbiAgICBwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXG4gICk7XG4gIG1ldGFkYXRhLnJlY2VpdmVyUHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIHBhcmFtcy5SZWNlaXZlclVzZXJuYW1lT3JQdWJsaWNLZXlCYXNlNThDaGVja1xuICApO1xuXG4gIHJldHVybiBtZXRhZGF0YTtcbn07XG5cbmNvbnN0IGNvbnN0cnVjdFRyYW5zZmVyQ3JlYXRvckNvaW5UcmFuc2FjdGlvbiA9IChcbiAgcGFyYW1zOiBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdFBhcmFtc1xuKTogUHJvbWlzZTxDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFpc01heWJlRGVTb1B1YmxpY0tleShwYXJhbXMuUmVjZWl2ZXJVc2VybmFtZU9yUHVibGljS2V5QmFzZTU4Q2hlY2spKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgJ211c3QgcHJvdmlkZSBwdWJsaWMga2V5LCBub3QgdXNlciBuYW1lIGZvciBsb2NhbCBjb25zdHJ1Y3Rpb24nXG4gICAgKTtcbiAgfVxuICByZXR1cm4gY29uc3RydWN0QmFsYW5jZU1vZGVsVHgoXG4gICAgcGFyYW1zLlNlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrLFxuICAgIGJ1aWxkVHJhbnNmZXJDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG59O1xuXG5jb25zdCBidWlsZEJ1eUNyZWF0b3JDb2luTWV0YWRhdGEgPSAocGFyYW1zOiBCdXlDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMpID0+IHtcbiAgLy8gTk9URTogVGhpcyBpcyBub3QgZXhhY3RseSBhY2N1cmF0ZSBhbmQgZ2l2ZXMgYW4gdXBwZXIgYm91bmQgZXN0aW1hdGUgZm9yXG4gIC8vIG1pbkNyZWF0b3JDb2luRXhwZWN0ZWROYW5vcy4gSXQgc2hvdWxkIG5vdCBidXQgdXNlZCBmb3IgYWN0dWFsIHR4XG4gIC8vIGNvbnN0cnVjdGlvbiwgYnV0IGl0IGlzIHVzZWZ1bCBmb3IgZXN0aW1hdGluZyB0eCBmZWVzLlxuICBjb25zdCBtZXRhZGF0YSA9IG5ldyBUcmFuc2FjdGlvbk1ldGFkYXRhQ3JlYXRvckNvaW4oKTtcbiAgbWV0YWRhdGEucHJvZmlsZVB1YmxpY0tleSA9IGJzNThQdWJsaWNLZXlUb0NvbXByZXNzZWRCeXRlcyhcbiAgICBwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXG4gICk7XG4gIG1ldGFkYXRhLm9wZXJhdGlvblR5cGUgPSAwO1xuICBtZXRhZGF0YS5kZXNvVG9TZWxsTmFub3MgPSBwYXJhbXMuRGVTb1RvU2VsbE5hbm9zO1xuICBtZXRhZGF0YS5taW5DcmVhdG9yQ29pbkV4cGVjdGVkTmFub3MgPVxuICAgIHBhcmFtcy5NaW5DcmVhdG9yQ29pbkV4cGVjdGVkTmFub3MgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufTtcblxuY29uc3QgYnVpbGRTZWxsQ3JlYXRvckNvaW5NZXRhZGF0YSA9IChwYXJhbXM6IFNlbGxDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMpID0+IHtcbiAgLy8gTk9URTogVGhpcyBpcyBub3QgZXhhY3RseSBhY2N1cmF0ZSBhbmQgZ2l2ZXMgYW4gdXBwZXIgYm91bmQgZXN0aW1hdGUgZm9yXG4gIC8vIG1pbkRlU29FeHBlY3RlZE5hbm9zLiBJdCBzaG91bGQgbm90IGJ1dCB1c2VkIGZvciBhY3R1YWwgdHggY29uc3RydWN0aW9uLFxuICAvLyBidXQgaXQgaXMgdXNlZnVsIGZvciBlc3RpbWF0aW5nIHR4IGZlZXMuXG4gIGNvbnN0IG1ldGFkYXRhID0gbmV3IFRyYW5zYWN0aW9uTWV0YWRhdGFDcmVhdG9yQ29pbigpO1xuICBtZXRhZGF0YS5wcm9maWxlUHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIHBhcmFtcy5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2tcbiAgKTtcbiAgbWV0YWRhdGEub3BlcmF0aW9uVHlwZSA9IDE7XG4gIG1ldGFkYXRhLmNyZWF0b3JDb2luVG9TZWxsTmFub3MgPSBwYXJhbXMuQ3JlYXRvckNvaW5Ub1NlbGxOYW5vcztcbiAgbWV0YWRhdGEubWluRGVTb0V4cGVjdGVkTmFub3MgPVxuICAgIHBhcmFtcy5NaW5EZVNvRXhwZWN0ZWROYW5vcyA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICByZXR1cm4gbWV0YWRhdGE7XG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9ucy9maW5hbmNpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyw4QkFBOEIsRUFDOUIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQiw4QkFBOEIsRUFDOUIsUUFBUSxHQUNULE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFDM0IsTUFBOEQsRUFDOUQsT0FBa0UsRUFHbEUsRUFBRTtJQUNGLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUNqQyxNQUFNLENBQUMsMEJBQTBCLEVBQ2pDLElBQUksZ0NBQWdDLEVBQUUsRUFDdEM7UUFDRSxPQUFPLEVBQUUsb0JBQW9CLENBQUM7WUFDNUIsR0FBRyxNQUFNO1lBQ1QsdUVBQXVFO1lBQ3ZFLHVFQUF1RTtZQUN2RSxrRUFBa0U7WUFDbEUsc0VBQXNFO1lBQ3RFLHFFQUFxRTtZQUNyRSx5Q0FBeUM7WUFDekMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLDBCQUEwQjtTQUNoRSxDQUFDO1FBQ0YsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1FBQzNCLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxvQkFBb0I7UUFDakQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQ0YsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUNmLE9BQU8sT0FBTyxFQUFFLHdCQUF3QixLQUFLLFFBQVE7UUFDbkQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3QkFB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QW9CLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBRXpELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJ1eU9yU2VsbENyZWF0b3JDb2luUmVxdWVzdCxcbiAgQnV5T3JTZWxsQ3JlYXRvckNvaW5SZXNwb25zZSxcbiAgQ29uc3RydWN0ZWRUcmFuc2FjdGlvblJlc3BvbnNlLFxuICBTZW5kRGVTb1JlcXVlc3QsXG4gIFNlbmREZVNvUmVzcG9uc2UsXG4gIFRyYW5zZmVyQ3JlYXRvckNvaW5SZXF1ZXN0LFxuICBUcmFuc2ZlckNyZWF0b3JDb2luUmVzcG9uc2UsXG4gIFR4UmVxdWVzdFdpdGhPcHRpb25hbEZlZXNBbmRFeHRyYURhdGEsXG59IGZyb20gJy4uL2JhY2tlbmQtdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkcyB9IGZyb20gJy4uL2RhdGEvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25NZXRhZGF0YUJhc2ljVHJhbnNmZXIsXG4gIFRyYW5zYWN0aW9uTWV0YWRhdGFDcmVhdG9yQ29pbixcbiAgVHJhbnNhY3Rpb25NZXRhZGF0YUNyZWF0b3JDb2luVHJhbnNmZXIsXG4gIFRyYW5zYWN0aW9uT3V0cHV0LFxuICBiczU4UHVibGljS2V5VG9Db21wcmVzc2VkQnl0ZXMsXG4gIGlkZW50aXR5LFxufSBmcm9tICcuLi9pZGVudGl0eS9pbmRleC5qcyc7XG5pbXBvcnQge1xuICBjb25zdHJ1Y3RCYWxhbmNlTW9kZWxUeCxcbiAgZ2V0VHhXaXRoRmVlTmFub3MsXG4gIGhhbmRsZVNpZ25BbmRTdWJtaXQsXG4gIGlzTWF5YmVEZVNvUHVibGljS2V5LFxuICBzdW1UcmFuc2FjdGlvbkZlZXMsXG59IGZyb20gJy4uL2ludGVybmFsLmpzJztcbmltcG9ydCB7IENvbnN0cnVjdGVkQW5kU3VibWl0dGVkVHgsIFR4UmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBndWFyZFR4UGVybWlzc2lvbiB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5kZXNvLm9yZy9kZXNvLWJhY2tlbmQvY29uc3RydWN0LXRyYW5zYWN0aW9ucy9maW5hbmNpYWwtdHJhbnNhY3Rpb25zLWFwaSNzZW5kLWRlc29cbiAqXG4gKiBOT1RFOiBJbiB0aGUgY2FzZSBvZiBhIG1heCBzZW5kLCB0aGUgQW1vdW50TmFub3MgcGFyYW0gd2lsbCBiZSBhIC0xLCB3aGljaFxuICogaXMgbm90IHVzZWZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIEdsb2JhbERFU09MaW1pdC4gSW4gdGhpcyBjYXNlLCB0aGUgY2FsbGVyXG4gKiBzaG91bGQgcHJvdmlkZSB0aGUgb3B0aW9uYWwgc3BlbmRpbmdMaW1pdEFtb3VudE5hbm9zIHRvIGJlIHVzZWQgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlbmREZXNvID0gYXN5bmMgKFxuICBwYXJhbXM6IFR4UmVxdWVzdFdpdGhPcHRpb25hbEZlZXNBbmRFeHRyYURhdGE8U2VuZERlU29SZXF1ZXN0PixcbiAgb3B0aW9ucz86IFR4UmVxdWVzdE9wdGlvbnMgJiB7IHNwZW5kaW5nTGltaXRBbW91bnROYW5vcz86IG51bWJlciB9XG4pOiBQcm9taXNlPFxuICBDb25zdHJ1Y3RlZEFuZFN1Ym1pdHRlZFR4PFNlbmREZVNvUmVzcG9uc2UgfCBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2U+XG4+ID0+IHtcbiAgY29uc3QgdHhXaXRoRmVlID0gZ2V0VHhXaXRoRmVlTmFub3MoXG4gICAgcGFyYW1zLlNlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrLFxuICAgIG5ldyBUcmFuc2FjdGlvbk1ldGFkYXRhQmFzaWNUcmFuc2ZlcigpLFxuICAgIHtcbiAgICAgIE91dHB1dHM6IGJ1aWxkU2VuZERlU29PdXRwdXRzKHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAvLyBOT1RFOiB0aGlzIGlzIGEgYml0IG9mIGFuIG9kZCBoYWNrLCBidXQgYmMgd2UgYXJlIG9ubHkgdXNpbmcgdGhpcyB0b1xuICAgICAgICAvLyBlc3RpbWF0ZSB0aGUgZmVlLCB3ZSBjYW4gb3ZlcndyaXRlIHRoZSByZWNpcGllbnQgdG8gYmUgdGhlIHNlbmRlciB0b1xuICAgICAgICAvLyBlbnN1cmUgdGhlIHZhbHVlIGlzIGEgdmFsaWQgcHVibGljIGtleSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG9cbiAgICAgICAgLy8gYnl0ZXMuIFRoZSByZWFzb24gd2UgY2Fubm90IG1ha2UgYW4gYXBpIGNhbGwgdG8gZ2V0IHRoZSB0cnVlIHB1YmxpY1xuICAgICAgICAvLyBrZXkgaXMgYmVjYXVzZSBpdCBjb3VsZCBjYXVzZSB0aGUgZGVyaXZlZCBrZXkgcmUtYXBwcm92YWwgcG9wdXAgdG9cbiAgICAgICAgLy8gZ2V0IGJsb2NrZWQgYnkgYnJvd3NlciBwb3B1cCBibG9ja2Vycy5cbiAgICAgICAgUmVjaXBpZW50UHVibGljS2V5T3JVc2VybmFtZTogcGFyYW1zLlNlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrLFxuICAgICAgfSksXG4gICAgICBFeHRyYURhdGE6IHBhcmFtcy5FeHRyYURhdGEsXG4gICAgICBNaW5GZWVSYXRlTmFub3NQZXJLQjogcGFyYW1zLk1pbkZlZVJhdGVOYW5vc1BlcktCLFxuICAgICAgVHJhbnNhY3Rpb25GZWVzOiBwYXJhbXMuVHJhbnNhY3Rpb25GZWVzLFxuICAgIH1cbiAgKTtcblxuICBjb25zdCBhbW91bnROYW5vcyA9XG4gICAgdHlwZW9mIG9wdGlvbnM/LnNwZW5kaW5nTGltaXRBbW91bnROYW5vcyA9PT0gJ251bWJlcidcbiAgICAgID8gb3B0aW9ucy5zcGVuZGluZ0xpbWl0QW1vdW50TmFub3NcbiAgICAgIDogcGFyYW1zLkFtb3VudE5hbm9zO1xuXG4gIGlmIChvcHRpb25zPy5jaGVja1Blcm1pc3Npb25zICE9PSBmYWxzZSkge1xuICAgIGF3YWl0IGd1YXJkVHhQZXJtaXNzaW9uKHtcbiAgICAgIEdsb2JhbERFU09MaW1pdDpcbiAgICAgICAgYW1vdW50TmFub3MgK1xuICAgICAgICB0eFdpdGhGZWUuZmVlTmFub3MgK1xuICAgICAgICBzdW1UcmFuc2FjdGlvbkZlZXMocGFyYW1zLlRyYW5zYWN0aW9uRmVlcyksXG4gICAgICBUcmFuc2FjdGlvbkNvdW50TGltaXRNYXA6IHtcbiAgICAgICAgQkFTSUNfVFJBTlNGRVI6XG4gICAgICAgICAgb3B0aW9ucz8udHhMaW1pdENvdW50ID8/XG4gICAgICAgICAgaWRlbnRpdHkudHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T3B0aW9ucy5UcmFuc2FjdGlvbkNvdW50TGltaXRNYXBcbiAgICAgICAgICAgID8uQkFTSUNfVFJBTlNGRVIgPz9cbiAgICAgICAgICAxLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KCdhcGkvdjAvc2VuZC1kZXNvJywgcGFyYW1zLCB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBjb25zdHJ1Y3Rpb25GdW5jdGlvbjogY29uc3RydWN0U2VuZERlU29UcmFuc2FjdGlvbixcbiAgfSk7XG59O1xuXG5jb25zdCBidWlsZFNlbmREZVNvT3V0cHV0cyA9IChcbiAgcGFyYW1zOiBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFNlbmREZVNvUmVxdWVzdD5cbikgPT4ge1xuICBjb25zdCB0cmFuc2FjdGlvbk91dHB1dCA9IG5ldyBUcmFuc2FjdGlvbk91dHB1dCgpO1xuICB0cmFuc2FjdGlvbk91dHB1dC5hbW91bnROYW5vcyA9IHBhcmFtcy5BbW91bnROYW5vcztcbiAgdHJhbnNhY3Rpb25PdXRwdXQucHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIC8vIEZJWE1FOiB0aGlzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlY2lwaWVudCBpcyBhIHVzZXJuYW1lLiBXZSBuZWVkXG4gICAgLy8gdG8gZWl0aGVyIGZldGNoIHRoZSBwdWJsaWMga2V5IGFuZCBvdmVyd3JpdGUgdGhlIHVzZXJuYW1lIHdpdGggaXQgb3JcbiAgICAvLyB0aHJvdyBhIG1vcmUgaGVscGZ1bCBlcnJvciB0byBjb25zdW1lcnMgZXhwbGFpbmluZyB0aGF0IHdlIHJlcXVpcmUgdGhlXG4gICAgLy8gcHVibGljIGtleSBpbnN0ZWFkIG9mIHRoZSB1c2VybmFtZS5cbiAgICBwYXJhbXMuUmVjaXBpZW50UHVibGljS2V5T3JVc2VybmFtZVxuICApO1xuICByZXR1cm4gW3RyYW5zYWN0aW9uT3V0cHV0XTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTZW5kRGVTb1RyYW5zYWN0aW9uID0gKFxuICBwYXJhbXM6IFR4UmVxdWVzdFdpdGhPcHRpb25hbEZlZXNBbmRFeHRyYURhdGE8U2VuZERlU29SZXF1ZXN0PlxuKTogUHJvbWlzZTxDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFpc01heWJlRGVTb1B1YmxpY0tleShwYXJhbXMuUmVjaXBpZW50UHVibGljS2V5T3JVc2VybmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnbXVzdCBwcm92aWRlIHB1YmxpYyBrZXksIG5vdCB1c2VyIG5hbWUgZm9yIGxvY2FsIGNvbnN0cnVjdGlvbidcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0cnVjdEJhbGFuY2VNb2RlbFR4KFxuICAgIHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBuZXcgVHJhbnNhY3Rpb25NZXRhZGF0YUJhc2ljVHJhbnNmZXIoKSxcbiAgICB7XG4gICAgICBPdXRwdXRzOiBidWlsZFNlbmREZVNvT3V0cHV0cyhwYXJhbXMpLFxuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICAgIE5vbmNlOiBwYXJhbXMuTm9uY2UsXG4gICAgfVxuICApO1xufTtcblxuLy8gVE9ETzogQlVZIGNyZWF0b3IgY29pbnMgaXMgaGFyZC4gTmVlZCB0byBtb3ZlIHNvbWVcbi8vIGJpZyBmbG9hdCBtYXRoIGludG8ganMuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5kZXNvLm9yZy9kZXNvLWJhY2tlbmQvY29uc3RydWN0LXRyYW5zYWN0aW9ucy9maW5hbmNpYWwtdHJhbnNhY3Rpb25zLWFwaSNidXktb3Itc2VsbC1jcmVhdG9yLWNvaW5cbiAqL1xuZXhwb3J0IHR5cGUgQnV5Q3JlYXRvckNvaW5SZXF1ZXN0UGFyYW1zID0gVHhSZXF1ZXN0V2l0aE9wdGlvbmFsRmVlc0FuZEV4dHJhRGF0YTxcbiAgUGFydGlhbFdpdGhSZXF1aXJlZEZpZWxkczxcbiAgICBPbWl0PFxuICAgICAgQnV5T3JTZWxsQ3JlYXRvckNvaW5SZXF1ZXN0LFxuICAgICAgJ0NyZWF0b3JDb2luVG9TZWxsTmFub3MnIHwgJ09wZXJhdGlvblR5cGUnXG4gICAgPixcbiAgICB8ICdVcGRhdGVyUHVibGljS2V5QmFzZTU4Q2hlY2snXG4gICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgIHwgJ0RlU29Ub1NlbGxOYW5vcydcbiAgPlxuPjtcbmV4cG9ydCBjb25zdCBidXlDcmVhdG9yQ29pbiA9IGFzeW5jIChcbiAgcGFyYW1zOiBCdXlDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMsXG4gIG9wdGlvbnM/OiBUeFJlcXVlc3RPcHRpb25zXG4pOiBQcm9taXNlPFxuICBDb25zdHJ1Y3RlZEFuZFN1Ym1pdHRlZFR4PFxuICAgIEJ1eU9yU2VsbENyZWF0b3JDb2luUmVzcG9uc2UgfCBDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2VcbiAgPlxuPiA9PiB7XG4gIGNvbnN0IHR4V2l0aEZlZSA9IGdldFR4V2l0aEZlZU5hbm9zKFxuICAgIHBhcmFtcy5VcGRhdGVyUHVibGljS2V5QmFzZTU4Q2hlY2ssXG4gICAgYnVpbGRCdXlDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG5cbiAgaWYgKG9wdGlvbnM/LmNoZWNrUGVybWlzc2lvbnMgIT09IGZhbHNlKSB7XG4gICAgYXdhaXQgZ3VhcmRUeFBlcm1pc3Npb24oe1xuICAgICAgR2xvYmFsREVTT0xpbWl0OlxuICAgICAgICBwYXJhbXMuRGVTb1RvU2VsbE5hbm9zICtcbiAgICAgICAgdHhXaXRoRmVlLmZlZU5hbm9zICtcbiAgICAgICAgc3VtVHJhbnNhY3Rpb25GZWVzKHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMpLFxuICAgICAgQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcDoge1xuICAgICAgICBbcGFyYW1zLkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVja106IHtcbiAgICAgICAgICBidXk6IG9wdGlvbnM/LnR4TGltaXRDb3VudCA/PyAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KFxuICAgICdhcGkvdjAvYnV5LW9yLXNlbGwtY3JlYXRvci1jb2luJyxcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBPcGVyYXRpb25UeXBlOiAnYnV5JyxcbiAgICB9LFxuICAgIG9wdGlvbnNcbiAgKTtcbn07XG5cbi8vIFRPRE86IFNFTEwgY3JlYXRvciBjb2lucyBpcyBoYXJkLiBOZWVkIHRvIG1vdmUgc29tZVxuLy8gYmlnIGZsb2F0IG1hdGggaW50byBqcy5cbi8qKlxuICogaHR0cHM6Ly9kb2NzLmRlc28ub3JnL2Rlc28tYmFja2VuZC9jb25zdHJ1Y3QtdHJhbnNhY3Rpb25zL2ZpbmFuY2lhbC10cmFuc2FjdGlvbnMtYXBpI2J1eS1vci1zZWxsLWNyZWF0b3ItY29pblxuICovXG5cbmV4cG9ydCB0eXBlIFNlbGxDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMgPVxuICBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFxuICAgIFBhcnRpYWxXaXRoUmVxdWlyZWRGaWVsZHM8XG4gICAgICBPbWl0PEJ1eU9yU2VsbENyZWF0b3JDb2luUmVxdWVzdCwgJ0Rlc29Ub1NlbGxOYW5vcycgfCAnT3BlcmF0aW9uVHlwZSc+LFxuICAgICAgfCAnVXBkYXRlclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvckNvaW5Ub1NlbGxOYW5vcydcbiAgICA+XG4gID47XG5cbmV4cG9ydCBjb25zdCBzZWxsQ3JlYXRvckNvaW4gPSBhc3luYyAoXG4gIHBhcmFtczogU2VsbENyZWF0b3JDb2luUmVxdWVzdFBhcmFtcyxcbiAgb3B0aW9ucz86IFR4UmVxdWVzdE9wdGlvbnNcbik6IFByb21pc2U8XG4gIENvbnN0cnVjdGVkQW5kU3VibWl0dGVkVHg8XG4gICAgQnV5T3JTZWxsQ3JlYXRvckNvaW5SZXNwb25zZSB8IENvbnN0cnVjdGVkVHJhbnNhY3Rpb25SZXNwb25zZVxuICA+XG4+ID0+IHtcbiAgY29uc3QgdHhXaXRoRmVlID0gZ2V0VHhXaXRoRmVlTmFub3MoXG4gICAgcGFyYW1zLlVwZGF0ZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBidWlsZFNlbGxDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG5cbiAgaWYgKG9wdGlvbnM/LmNoZWNrUGVybWlzc2lvbnMgIT09IGZhbHNlKSB7XG4gICAgYXdhaXQgZ3VhcmRUeFBlcm1pc3Npb24oe1xuICAgICAgR2xvYmFsREVTT0xpbWl0OlxuICAgICAgICB0eFdpdGhGZWUuZmVlTmFub3MgKyBzdW1UcmFuc2FjdGlvbkZlZXMocGFyYW1zLlRyYW5zYWN0aW9uRmVlcyksXG4gICAgICBDcmVhdG9yQ29pbk9wZXJhdGlvbkxpbWl0TWFwOiB7XG4gICAgICAgIFtwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXToge1xuICAgICAgICAgIHNlbGw6IG9wdGlvbnM/LnR4TGltaXRDb3VudCA/PyAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVTaWduQW5kU3VibWl0KFxuICAgICdhcGkvdjAvYnV5LW9yLXNlbGwtY3JlYXRvci1jb2luJyxcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBPcGVyYXRpb25UeXBlOiAnc2VsbCcsXG4gICAgfSxcbiAgICBvcHRpb25zXG4gICk7XG59O1xuXG4vKipcbiAqIGh0dHBzOi8vZG9jcy5kZXNvLm9yZy9kZXNvLWJhY2tlbmQvY29uc3RydWN0LXRyYW5zYWN0aW9ucy9maW5hbmNpYWwtdHJhbnNhY3Rpb25zLWFwaSN0cmFuc2Zlci1jcmVhdG9yLWNvaW5cbiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNmZXJDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMgPVxuICBUeFJlcXVlc3RXaXRoT3B0aW9uYWxGZWVzQW5kRXh0cmFEYXRhPFxuICAgIFBhcnRpYWxXaXRoUmVxdWlyZWRGaWVsZHM8XG4gICAgICBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdCxcbiAgICAgIHwgJ1NlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrJ1xuICAgICAgfCAnUmVjZWl2ZXJVc2VybmFtZU9yUHVibGljS2V5QmFzZTU4Q2hlY2snXG4gICAgICB8ICdDcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcydcbiAgICA+XG4gID47XG5leHBvcnQgY29uc3QgdHJhbnNmZXJDcmVhdG9yQ29pbiA9IGFzeW5jIChcbiAgcGFyYW1zOiBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdFBhcmFtcyxcbiAgb3B0aW9ucz86IFR4UmVxdWVzdE9wdGlvbnNcbik6IFByb21pc2U8Q29uc3RydWN0ZWRBbmRTdWJtaXR0ZWRUeDxUcmFuc2ZlckNyZWF0b3JDb2luUmVzcG9uc2U+PiA9PiB7XG4gIGNvbnN0IHR4V2l0aEZlZSA9IGdldFR4V2l0aEZlZU5hbm9zKFxuICAgIHBhcmFtcy5TZW5kZXJQdWJsaWNLZXlCYXNlNThDaGVjayxcbiAgICBidWlsZFRyYW5zZmVyQ3JlYXRvckNvaW5NZXRhZGF0YShwYXJhbXMpLFxuICAgIHtcbiAgICAgIEV4dHJhRGF0YTogcGFyYW1zLkV4dHJhRGF0YSxcbiAgICAgIE1pbkZlZVJhdGVOYW5vc1BlcktCOiBwYXJhbXMuTWluRmVlUmF0ZU5hbm9zUGVyS0IsXG4gICAgICBUcmFuc2FjdGlvbkZlZXM6IHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMsXG4gICAgfVxuICApO1xuXG4gIGlmIChvcHRpb25zPy5jaGVja1Blcm1pc3Npb25zICE9PSBmYWxzZSkge1xuICAgIGF3YWl0IGd1YXJkVHhQZXJtaXNzaW9uKHtcbiAgICAgIEdsb2JhbERFU09MaW1pdDpcbiAgICAgICAgdHhXaXRoRmVlLmZlZU5hbm9zICsgc3VtVHJhbnNhY3Rpb25GZWVzKHBhcmFtcy5UcmFuc2FjdGlvbkZlZXMpLFxuICAgICAgQ3JlYXRvckNvaW5PcGVyYXRpb25MaW1pdE1hcDoge1xuICAgICAgICBbcGFyYW1zLkNyZWF0b3JQdWJsaWNLZXlCYXNlNThDaGVja106IHtcbiAgICAgICAgICB0cmFuc2Zlcjogb3B0aW9ucz8udHhMaW1pdENvdW50ID8/IDEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGhhbmRsZVNpZ25BbmRTdWJtaXQoJ2FwaS92MC90cmFuc2Zlci1jcmVhdG9yLWNvaW4nLCBwYXJhbXMsIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGNvbnN0cnVjdGlvbkZ1bmN0aW9uOiBjb25zdHJ1Y3RUcmFuc2ZlckNyZWF0b3JDb2luVHJhbnNhY3Rpb24sXG4gIH0pO1xufTtcblxuY29uc3QgYnVpbGRUcmFuc2ZlckNyZWF0b3JDb2luTWV0YWRhdGEgPSAoXG4gIHBhcmFtczogVHJhbnNmZXJDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXNcbikgPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IG5ldyBUcmFuc2FjdGlvbk1ldGFkYXRhQ3JlYXRvckNvaW5UcmFuc2ZlcigpO1xuICBtZXRhZGF0YS5jcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcyA9IHBhcmFtcy5DcmVhdG9yQ29pblRvVHJhbnNmZXJOYW5vcztcbiAgbWV0YWRhdGEucHJvZmlsZVB1YmxpY0tleSA9IGJzNThQdWJsaWNLZXlUb0NvbXByZXNzZWRCeXRlcyhcbiAgICBwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXG4gICk7XG4gIG1ldGFkYXRhLnJlY2VpdmVyUHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIHBhcmFtcy5SZWNlaXZlclVzZXJuYW1lT3JQdWJsaWNLZXlCYXNlNThDaGVja1xuICApO1xuXG4gIHJldHVybiBtZXRhZGF0YTtcbn07XG5cbmNvbnN0IGNvbnN0cnVjdFRyYW5zZmVyQ3JlYXRvckNvaW5UcmFuc2FjdGlvbiA9IChcbiAgcGFyYW1zOiBUcmFuc2ZlckNyZWF0b3JDb2luUmVxdWVzdFBhcmFtc1xuKTogUHJvbWlzZTxDb25zdHJ1Y3RlZFRyYW5zYWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgaWYgKCFpc01heWJlRGVTb1B1YmxpY0tleShwYXJhbXMuUmVjZWl2ZXJVc2VybmFtZU9yUHVibGljS2V5QmFzZTU4Q2hlY2spKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgJ211c3QgcHJvdmlkZSBwdWJsaWMga2V5LCBub3QgdXNlciBuYW1lIGZvciBsb2NhbCBjb25zdHJ1Y3Rpb24nXG4gICAgKTtcbiAgfVxuICByZXR1cm4gY29uc3RydWN0QmFsYW5jZU1vZGVsVHgoXG4gICAgcGFyYW1zLlNlbmRlclB1YmxpY0tleUJhc2U1OENoZWNrLFxuICAgIGJ1aWxkVHJhbnNmZXJDcmVhdG9yQ29pbk1ldGFkYXRhKHBhcmFtcyksXG4gICAge1xuICAgICAgRXh0cmFEYXRhOiBwYXJhbXMuRXh0cmFEYXRhLFxuICAgICAgTWluRmVlUmF0ZU5hbm9zUGVyS0I6IHBhcmFtcy5NaW5GZWVSYXRlTmFub3NQZXJLQixcbiAgICAgIFRyYW5zYWN0aW9uRmVlczogcGFyYW1zLlRyYW5zYWN0aW9uRmVlcyxcbiAgICB9XG4gICk7XG59O1xuXG5jb25zdCBidWlsZEJ1eUNyZWF0b3JDb2luTWV0YWRhdGEgPSAocGFyYW1zOiBCdXlDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMpID0+IHtcbiAgLy8gTk9URTogVGhpcyBpcyBub3QgZXhhY3RseSBhY2N1cmF0ZSBhbmQgZ2l2ZXMgYW4gdXBwZXIgYm91bmQgZXN0aW1hdGUgZm9yXG4gIC8vIG1pbkNyZWF0b3JDb2luRXhwZWN0ZWROYW5vcy4gSXQgc2hvdWxkIG5vdCBidXQgdXNlZCBmb3IgYWN0dWFsIHR4XG4gIC8vIGNvbnN0cnVjdGlvbiwgYnV0IGl0IGlzIHVzZWZ1bCBmb3IgZXN0aW1hdGluZyB0eCBmZWVzLlxuICBjb25zdCBtZXRhZGF0YSA9IG5ldyBUcmFuc2FjdGlvbk1ldGFkYXRhQ3JlYXRvckNvaW4oKTtcbiAgbWV0YWRhdGEucHJvZmlsZVB1YmxpY0tleSA9IGJzNThQdWJsaWNLZXlUb0NvbXByZXNzZWRCeXRlcyhcbiAgICBwYXJhbXMuQ3JlYXRvclB1YmxpY0tleUJhc2U1OENoZWNrXG4gICk7XG4gIG1ldGFkYXRhLm9wZXJhdGlvblR5cGUgPSAwO1xuICBtZXRhZGF0YS5kZXNvVG9TZWxsTmFub3MgPSBwYXJhbXMuRGVTb1RvU2VsbE5hbm9zO1xuICBtZXRhZGF0YS5taW5DcmVhdG9yQ29pbkV4cGVjdGVkTmFub3MgPVxuICAgIHBhcmFtcy5NaW5DcmVhdG9yQ29pbkV4cGVjdGVkTmFub3MgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufTtcblxuY29uc3QgYnVpbGRTZWxsQ3JlYXRvckNvaW5NZXRhZGF0YSA9IChwYXJhbXM6IFNlbGxDcmVhdG9yQ29pblJlcXVlc3RQYXJhbXMpID0+IHtcbiAgLy8gTk9URTogVGhpcyBpcyBub3QgZXhhY3RseSBhY2N1cmF0ZSBhbmQgZ2l2ZXMgYW4gdXBwZXIgYm91bmQgZXN0aW1hdGUgZm9yXG4gIC8vIG1pbkRlU29FeHBlY3RlZE5hbm9zLiBJdCBzaG91bGQgbm90IGJ1dCB1c2VkIGZvciBhY3R1YWwgdHggY29uc3RydWN0aW9uLFxuICAvLyBidXQgaXQgaXMgdXNlZnVsIGZvciBlc3RpbWF0aW5nIHR4IGZlZXMuXG4gIGNvbnN0IG1ldGFkYXRhID0gbmV3IFRyYW5zYWN0aW9uTWV0YWRhdGFDcmVhdG9yQ29pbigpO1xuICBtZXRhZGF0YS5wcm9maWxlUHVibGljS2V5ID0gYnM1OFB1YmxpY0tleVRvQ29tcHJlc3NlZEJ5dGVzKFxuICAgIHBhcmFtcy5DcmVhdG9yUHVibGljS2V5QmFzZTU4Q2hlY2tcbiAgKTtcbiAgbWV0YWRhdGEub3BlcmF0aW9uVHlwZSA9IDE7XG4gIG1ldGFkYXRhLmNyZWF0b3JDb2luVG9TZWxsTmFub3MgPSBwYXJhbXMuQ3JlYXRvckNvaW5Ub1NlbGxOYW5vcztcbiAgbWV0YWRhdGEubWluRGVTb0V4cGVjdGVkTmFub3MgPVxuICAgIHBhcmFtcy5NaW5EZVNvRXhwZWN0ZWROYW5vcyA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICByZXR1cm4gbWV0YWRhdGE7XG59O1xuIl19
import { TransactionSpendingLimitResponseOptions } from '../identity/index.js';
export declare function guardTxPermission(spendingLimitOptions: TransactionSpendingLimitResponseOptions): Promise<import("../identity/types.js").IdentityDerivePayload | undefined>;
export declare function stripHexPrefix(hex: string): string;

@@ -20,9 +20,2 @@ import { identity, } from '../identity/index.js';

}
export function stripHexPrefix(hex) {
const unPadded = hex.startsWith('0x') ? hex.slice(2) : hex;
if (unPadded.length % 2 === 1) {
return `0${unPadded}`;
}
return unPadded;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxRQUFRLEdBQ1QsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxvQkFBNkQ7SUFFN0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sS0FBSyxHQUFHLENBQUMsY0FBdUIsRUFBRSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pDLEdBQUcsb0JBQW9CO2dCQUN2QixlQUFlLEVBQ2IsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztvQkFDL0QsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO2FBQzlDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsSUFBSSxPQUFPLGNBQWMsS0FBSyxTQUFTLEVBQUU7UUFDdkMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDOUI7U0FBTTtRQUNMLE9BQVEsY0FBbUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFXO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUUzRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM3QixPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7S0FDdkI7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2VPcHRpb25zLFxuICBpZGVudGl0eSxcbn0gZnJvbSAnLi4vaWRlbnRpdHkvaW5kZXguanMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3VhcmRUeFBlcm1pc3Npb24oXG4gIHNwZW5kaW5nTGltaXRPcHRpb25zOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnNcbikge1xuICBjb25zdCBoYXNQZXJtaXNzaW9ucyA9IGlkZW50aXR5Lmhhc1Blcm1pc3Npb25zKHNwZW5kaW5nTGltaXRPcHRpb25zKTtcbiAgY29uc3QgZ3VhcmQgPSAoaGFzUGVybWlzc2lvbnM6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoIWhhc1Blcm1pc3Npb25zKSB7XG4gICAgICByZXR1cm4gaWRlbnRpdHkucmVxdWVzdFBlcm1pc3Npb25zKHtcbiAgICAgICAgLi4uc3BlbmRpbmdMaW1pdE9wdGlvbnMsXG4gICAgICAgIEdsb2JhbERFU09MaW1pdDpcbiAgICAgICAgICAoaWRlbnRpdHkudHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T3B0aW9ucy5HbG9iYWxERVNPTGltaXQgPz8gMCkgK1xuICAgICAgICAgIChzcGVuZGluZ0xpbWl0T3B0aW9ucy5HbG9iYWxERVNPTGltaXQgPz8gMCksXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKHR5cGVvZiBoYXNQZXJtaXNzaW9ucyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGd1YXJkKGhhc1Blcm1pc3Npb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKGhhc1Blcm1pc3Npb25zIGFzIFByb21pc2U8Ym9vbGVhbj4pLnRoZW4oZ3VhcmQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEhleFByZWZpeChoZXg6IHN0cmluZykge1xuICBjb25zdCB1blBhZGRlZCA9IGhleC5zdGFydHNXaXRoKCcweCcpID8gaGV4LnNsaWNlKDIpIDogaGV4O1xuXG4gIGlmICh1blBhZGRlZC5sZW5ndGggJSAyID09PSAxKSB7XG4gICAgcmV0dXJuIGAwJHt1blBhZGRlZH1gO1xuICB9XG5cbiAgcmV0dXJuIHVuUGFkZGVkO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxRQUFRLEdBQ1QsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxvQkFBNkQ7SUFFN0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sS0FBSyxHQUFHLENBQUMsY0FBdUIsRUFBRSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pDLEdBQUcsb0JBQW9CO2dCQUN2QixlQUFlLEVBQ2IsQ0FBQyxRQUFRLENBQUMsK0JBQStCLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztvQkFDL0QsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO2FBQzlDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsSUFBSSxPQUFPLGNBQWMsS0FBSyxTQUFTLEVBQUU7UUFDdkMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDOUI7U0FBTTtRQUNMLE9BQVEsY0FBbUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0UmVzcG9uc2VPcHRpb25zLFxuICBpZGVudGl0eSxcbn0gZnJvbSAnLi4vaWRlbnRpdHkvaW5kZXguanMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3VhcmRUeFBlcm1pc3Npb24oXG4gIHNwZW5kaW5nTGltaXRPcHRpb25zOiBUcmFuc2FjdGlvblNwZW5kaW5nTGltaXRSZXNwb25zZU9wdGlvbnNcbikge1xuICBjb25zdCBoYXNQZXJtaXNzaW9ucyA9IGlkZW50aXR5Lmhhc1Blcm1pc3Npb25zKHNwZW5kaW5nTGltaXRPcHRpb25zKTtcbiAgY29uc3QgZ3VhcmQgPSAoaGFzUGVybWlzc2lvbnM6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoIWhhc1Blcm1pc3Npb25zKSB7XG4gICAgICByZXR1cm4gaWRlbnRpdHkucmVxdWVzdFBlcm1pc3Npb25zKHtcbiAgICAgICAgLi4uc3BlbmRpbmdMaW1pdE9wdGlvbnMsXG4gICAgICAgIEdsb2JhbERFU09MaW1pdDpcbiAgICAgICAgICAoaWRlbnRpdHkudHJhbnNhY3Rpb25TcGVuZGluZ0xpbWl0T3B0aW9ucy5HbG9iYWxERVNPTGltaXQgPz8gMCkgK1xuICAgICAgICAgIChzcGVuZGluZ0xpbWl0T3B0aW9ucy5HbG9iYWxERVNPTGltaXQgPz8gMCksXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKHR5cGVvZiBoYXNQZXJtaXNzaW9ucyA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGd1YXJkKGhhc1Blcm1pc3Npb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKGhhc1Blcm1pc3Npb25zIGFzIFByb21pc2U8Ym9vbGVhbj4pLnRoZW4oZ3VhcmQpO1xuICB9XG59XG4iXX0=

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc