@magic-xpa/engine 4.1100.0-dev4110.252 → 4.1100.0-dev4110.256
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/src/ClientManager.mjs +2 -2
- package/esm2022/src/CommandsProcessorBase.mjs +1 -1
- package/esm2022/src/CommandsProcessorManager.mjs +1 -1
- package/esm2022/src/CommandsTable.mjs +1 -1
- package/esm2022/src/CurrentClientVersion.mjs +2 -2
- package/esm2022/src/GUIManager.mjs +1 -1
- package/esm2022/src/GuiEventsProcessor.mjs +1 -1
- package/esm2022/src/ServerConfig.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +1 -1
- package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +1 -1
- package/esm2022/src/data/DataView.mjs +1 -1
- package/esm2022/src/data/DvCache.mjs +1 -1
- package/esm2022/src/data/Field.mjs +1 -1
- package/esm2022/src/data/FieldsTable.mjs +1 -1
- package/esm2022/src/data/Key.mjs +1 -1
- package/esm2022/src/data/Record.mjs +2 -2
- package/esm2022/src/data/RecordsTable.mjs +1 -1
- package/esm2022/src/data/TaskTransactionManager.mjs +1 -1
- package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +1 -1
- package/esm2022/src/env/EnvVariablesTable.mjs +1 -1
- package/esm2022/src/env/Environment.mjs +1 -1
- package/esm2022/src/env/LanguageData.mjs +1 -1
- package/esm2022/src/env/MirrorString.mjs +1 -1
- package/esm2022/src/event/ActionManager.mjs +1 -1
- package/esm2022/src/event/Event.mjs +1 -1
- package/esm2022/src/event/EventHandler.mjs +1 -1
- package/esm2022/src/event/EventHandlerPosition.mjs +1 -1
- package/esm2022/src/event/EventsManager.mjs +1 -1
- package/esm2022/src/event/RunTimeEvent.mjs +1 -1
- package/esm2022/src/event/UserEventsTable.mjs +1 -1
- package/esm2022/src/exp/ExpTable.mjs +1 -1
- package/esm2022/src/exp/Expression.mjs +1 -1
- package/esm2022/src/exp/ExpressionEvaluator.mjs +1 -1
- package/esm2022/src/exp/ExpressionLocalJpn.mjs +1 -1
- package/esm2022/src/exp/GlobalParamsTable.mjs +1 -1
- package/esm2022/src/exp/YesNoExp.mjs +1 -1
- package/esm2022/src/gui/FormsTable.mjs +1 -1
- package/esm2022/src/gui/MgControl.mjs +1 -1
- package/esm2022/src/gui/MgForm.mjs +1 -1
- package/esm2022/src/http/HttpManager.mjs +1 -1
- package/esm2022/src/http/client/HttpClientAsync.mjs +1 -1
- package/esm2022/src/http/client/HttpClientBase.mjs +1 -1
- package/esm2022/src/http/client/HttpClientEvents.mjs +1 -1
- package/esm2022/src/http/client/HttpClientSync.mjs +1 -1
- package/esm2022/src/http/client/HttpUtility.mjs +1 -1
- package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +1 -1
- package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +1 -1
- package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +1 -1
- package/esm2022/src/remote/RemoteCommandsProcessor.mjs +1 -1
- package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +1 -1
- package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +1 -1
- package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +1 -1
- package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +1 -1
- package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +1 -1
- package/esm2022/src/remote/ServerError.mjs +1 -1
- package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +1 -1
- package/esm2022/src/rt/Argument.mjs +1 -1
- package/esm2022/src/rt/ArgumentsList.mjs +1 -1
- package/esm2022/src/rt/Boundary.mjs +1 -1
- package/esm2022/src/rt/CompMainPrgTable.mjs +1 -1
- package/esm2022/src/rt/DataviewHeaderBase.mjs +1 -1
- package/esm2022/src/rt/DataviewHeaders.mjs +1 -1
- package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +1 -1
- package/esm2022/src/rt/ExecutionStack.mjs +1 -1
- package/esm2022/src/rt/HandlersTable.mjs +1 -1
- package/esm2022/src/rt/LastFocusedManager.mjs +1 -1
- package/esm2022/src/rt/Operation.mjs +1 -1
- package/esm2022/src/rt/OperationTable.mjs +1 -1
- package/esm2022/src/rt/Recompute.mjs +1 -1
- package/esm2022/src/rt/RecomputeTable.mjs +1 -1
- package/esm2022/src/rt/RemoteDataviewHeader.mjs +1 -1
- package/esm2022/src/rt/TableCache.mjs +1 -1
- package/esm2022/src/rt/TableCacheManager.mjs +1 -1
- package/esm2022/src/rt/Transaction.mjs +1 -1
- package/esm2022/src/security/UserDetails.mjs +1 -1
- package/esm2022/src/tasks/MGData.mjs +1 -1
- package/esm2022/src/tasks/MGDataCollection.mjs +1 -1
- package/esm2022/src/tasks/RCTimer.mjs +1 -1
- package/esm2022/src/tasks/RemoteTaskService.mjs +1 -1
- package/esm2022/src/tasks/Task.mjs +1 -1
- package/esm2022/src/tasks/TaskBase.mjs +1 -1
- package/esm2022/src/tasks/TaskServiceBase.mjs +1 -1
- package/esm2022/src/tasks/TasksTable.mjs +1 -1
- package/esm2022/src/tasks/sort/SortCollection.mjs +1 -1
- package/esm2022/src/util/ConstUtils.mjs +1 -1
- package/esm2022/src/util/FlowMonitorQueue.mjs +1 -1
- package/esm2022/src/util/HeapSort.mjs +1 -1
- package/esm2022/src/util/MgPriorityBlockingQueue.mjs +1 -1
- package/esm2022/src/util/MgPriorityQueue.mjs +1 -1
- package/esm2022/src/util/PrmMap.mjs +1 -1
- package/esm2022/src/util/Scrambler.mjs +1 -1
- package/esm2022/src/util/UniqueIDUtils.mjs +1 -1
- package/esm2022/src/util/cookie.service.mjs +1 -1
- package/fesm2022/magic-xpa-engine.mjs +3 -3
- package/fesm2022/magic-xpa-engine.mjs.map +1 -1
- package/package.json +4 -4
@@ -484,4 +484,4 @@ export class EnvironmentDetails {
|
|
484
484
|
return this._createInModifyMode;
|
485
485
|
}
|
486
486
|
}
|
487
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2Vudi9FbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQVEsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBQ2QsYUFBYSxHQUEwQyxJQUFJLFNBQVMsRUFBOEIsQ0FBQztJQUNuRyx5QkFBeUIsR0FBVyxDQUFDLENBQUM7SUFDdEMsK0JBQStCLEdBQVcsQ0FBQyxDQUFDO0lBQzVDLDZCQUE2QixHQUFXLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsR0FBVyxDQUFDLENBQUM7SUFDN0IscUJBQXFCLEdBQVcsQ0FBQyxDQUFDO0lBQ2xDLDJCQUEyQixHQUFZLEtBQUssQ0FBQztJQUM3QyxTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBQ3RCLGNBQWMsR0FBVyxJQUFJLENBQUM7SUFDOUIsaUJBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLG1CQUFtQixHQUFXLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQVcsSUFBSSxDQUFD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3IsIElFbnZpcm9ubWVudH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQge0RlYnVnLCBFbmNvZGluZywgSGFzaHRhYmxlLCBMaXN0LCBOU3RyaW5nfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7XHJcbiAgQ29uc3RhbnRzLFxyXG4gIExvZ2dlcixcclxuICBPU0Vudmlyb25tZW50LFxyXG4gIFV0aWxEYXRlSnBuLFxyXG4gIFV0aWxTdHJCeXRlTW9kZSxcclxuICBYTUxDb25zdGFudHMsXHJcbiAgWG1sUGFyc2VyXHJcbn0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7Q29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyfSBmcm9tICcuLi9Db21tYW5kc1Byb2Nlc3Nvck1hbmFnZXInO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tICcuLi9Db25zdEludGVyZmFjZSc7XHJcbmltcG9ydCB7U2VydmVyQ29uZmlnfSBmcm9tICcuLi9TZXJ2ZXJDb25maWcnO1xyXG5pbXBvcnQge0FjY2Vzc0hlbHBlcn0gZnJvbSAnLi4vQWNjZXNzSGVscGVyJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgVGhpcyBjbGFzcyBob2xkcyBzb21lIG9mIHRoZSBNYWdpYyBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIHdoaWNoIHRoZSBjbGllbnQgbmVlZHNcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50IGltcGxlbWVudHMgSUVudmlyb25tZW50IHtcclxuICBwcml2YXRlIF9lbnZpcm9ubWVudHM6IEhhc2h0YWJsZTxudW1iZXIsIEVudmlyb25tZW50RGV0YWlscz4gPSBuZXcgSGFzaHRhYmxlPG51bWJlciwgRW52aXJvbm1lbnREZXRhaWxzPigpO1xyXG4gIHByaXZhdGUgX2NvbnRleHRJbmFjdGl2aXR5VGltZW91dDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9jbGllbnRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfY29udGV4dEluYWN0aXZpdHlXYXJuaW5nVGltZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF90b29saXRpcFRpbWVvdXQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfY29udGV4dFVubG9hZFRpbWVvdXQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfY2FuUmVwbGFjZURlY2ltYWxTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9jb2RlUGFnZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9kYXRlU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFwwJzsgLy8gZGF0ZSBzZXBhcmF0b3JcclxuICBwcml2YXRlIF9kZWNpbWFsU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFwwJzsgLy8gZGVjaW1hbCBzZXBhcmF0b3JcclxuICBwcml2YXRlIF90aG91c2FuZHNTZXBhcmF0b3I6IHN0cmluZyA9ICdcXDAnOyAvLyB0aG91c2FuZHMgc2VwYXJhdG9yXHJcbiAgcHJpdmF0ZSBfdGltZVNlcGFyYXRvcjogc3RyaW5nID0gJ1xcMCc7IC8vIHRpbWUgc2VwYXJhdG9yXHJcblxyXG4gIHByaXZhdGUgX2d1aWQ6IHN0cmluZyA9IG51bGw7IC8vIGd1aWQgb2YgdGhlIGFwcGxpY2F0aW9uXHJcbiAgcHJpdmF0ZSBfaW1lQXV0b09mZjogYm9vbGVhbiA9IGZhbHNlOyAvLyBKUE46IElNRSBzdXBwb3J0XHJcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZyA9ICdcXDAnO1xyXG4gIHByaXZhdGUgX2xvY2FsQXM0MDBTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9sb2NhbEV4dHJhR2VuZ286IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbG9jYWxGbGFnczogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9sb3dIaWdoOiBib29sZWFuID0gdHJ1ZTsgLy8gd2hhdCBpcyB0aGUgb3JkZXIgb2YgYnl0ZXMgaW4gZXhwcmVzc2lvbnMgKExPV19ISUdIIG9yIEhJR0hfTE9XKVxyXG4gIHByaXZhdGUgX293bmVyOiBzdHJpbmcgPSBudWxsOyAvLyBvd25lclxyXG4gIHByaXZhdGUgX2RlYnVnTW9kZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9zaWduaWZpY2FudE51bVNpemU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfc3BlY2lhbEFuc2lFeHByZXNzaW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3BlY2lhbEltbWVkaWF0ZWhhbmRsZXJFbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zcGVjaWFsU2hvd1N0YXR1c0JhclBhbmVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3BlY2lhbFJvdXRlVG9Sb290UHJvZ09uQ29udGV4dFJlY3JlYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIHByaXZhdGUgX3NwZWNpYWxDYW5jZWxPbkNyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3N5c3RlbTogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF90ZXJtaW5hbDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9mb3J3YXJkU2xhc2g6IHN0cmluZyA9IENvbnN0YW50cy5Gb3J3YXJkU2xhc2hXZWJVc2FnZTsgLy8gcmVmZXIgdG8gYSBmb3J3YXJkIHNsYXNoIGFzIGEgcmVsYXRpdmUgd2ViIHVybC5cclxuICBwcml2YXRlIF9kcm9wVXNlckZvcm1hdHM6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX3dlYmNsaWVudFJlaW5pdFNlc3Npb246IHN0cmluZyA9IFwiTlwiO1xyXG4gIHByaXZhdGUgX3NwZWNpYWxWYWxOZXdQb2xpY3k6IGJvb2xlYW4gPSBmYWxzZTsgLy8/P1xyXG5cclxuICBzdGF0aWMgSW5zdGFuY2U6IEVudmlyb25tZW50ID0gbmV3IEVudmlyb25tZW50KCk7XHJcblxyXG4gIGdldCBMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlO1xyXG4gIH1cclxuXHJcblxyXG4gIElnbm9yZVJlcGxhY2VEZWNpbWFsU2VwYXJhdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBnZXQgU3BlY2lhbFJlc3RvcmVNYXhpbWl6ZWRGb3JtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+aW5zdHJ1Y3RzIGhvdyB0byByZWZlciBhIGZvcndhcmQgc2xhc2ggLSBlaXRoZXIgYXMgYSByZWxhdGl2ZSB3ZWIgdXJsLCBvciBhcyBhIGZpbGUgaW4gdGhlIGZpbGUgc3lzdGVtLi48L3N1bW1hcnk+XHJcbiAgc2V0IEZvcndhcmRTbGFzaFVzYWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2ZvcndhcmRTbGFzaCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEZvcndhcmRTbGFzaFVzYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9yd2FyZFNsYXNoO1xyXG4gIH1cclxuXHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkO1xyXG4gIGZpbGxEYXRhKHRva2Vuc1ZlY3RvcjogTGlzdDxzdHJpbmc+KTogdm9pZDtcclxuICBmaWxsRGF0YSh0b2tlbnNWZWN0b3JPclBhcnNlcj86IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGFyZ3VtZW50c1swXSBpbnN0YW5jZW9mIFhtbFBhcnNlcikge1xyXG4gICAgICB0aGlzLmZpbGxEYXRhXzAodG9rZW5zVmVjdG9yT3JQYXJzZXIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGxEYXRhXzEodG9rZW5zVmVjdG9yT3JQYXJzZXIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE5lZWQgcGFydCBpbnB1dCBTdHJpbmcgdG8gcmVsZXZhbnQgZm9yIHRoZSBjbGFzcyBkYXRhLiBlbmQgPGVudiAuLi4+IHRhZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHVibGljIGZpbGxEYXRhXzAocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIGxldCBlbmRDb250ZXh0OiBudW1iZXIgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19URVJNLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgaWYgKGVuZENvbnRleHQgIT09IC0xICYmIGVuZENvbnRleHQgPCBwYXJzZXIuZ2V0WE1MZGF0YSgpLmxlbmd0aCkge1xyXG4gICAgICAvLyBsYXN0IHBvc2l0aW9uIG9mIGl0cyB0YWdcclxuICAgICAgbGV0IHRhZzogU3RyaW5nID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KTtcclxuICAgICAgcGFyc2VyLmFkZDJDdXJySW5kZXgodGFnLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0VOVikgKyBDb25zdEludGVyZmFjZS5NR19UQUdfRU5WLmxlbmd0aCk7XHJcbiAgICAgIGxldCB0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPiA9IFhtbFBhcnNlci5nZXRUb2tlbnMocGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KSwgWE1MQ29uc3RhbnRzLlhNTF9BVFRSX0RFTElNKTtcclxuICAgICAgdGhpcy5maWxsRGF0YSh0b2tlbnNWZWN0b3IpO1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZENvbnRleHQgKyBYTUxDb25zdGFudHMuVEFHX1RFUk0ubGVuZ3RoKTtcclxuICAgIH0gZWxzZSBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBFbnZpcm9ubWVudC5GaWxsRGF0YSgpIG91dCBvZiBzdHJpbmcgYm91bmRzXCIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE1ha2UgaW5pdGlhbGl6YXRpb24gb2YgcHJpdmF0ZSBlbGVtZW50cyBieSBmb3VuZCB0b2tlbnNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidG9rZW5zVmVjdG9yXCI+Zm91bmQgdG9rZW5zLCB3aGljaCBjb25zaXN0IGF0dHJpYnV0ZS92YWx1ZSBvZiBldmVyeSBmb3VuZCBlbGVtZW50PC9wYXJhbT5cclxuICBwcml2YXRlIGZpbGxEYXRhXzEodG9rZW5zVmVjdG9yOiBMaXN0PHN0cmluZz4pOiB2b2lkIHtcclxuICAgIGxldCBhdHRyaWJ1dGU6IHN0cmluZztcclxuICAgIGxldCB2YWx1ZVN0cjogc3RyaW5nO1xyXG4gICAgbGV0IGhhc2hLZXk6IG51bWJlcjtcclxuICAgIGxldCBlbnY6IEVudmlyb25tZW50RGV0YWlscztcclxuICAgIGVudiA9IG5ldyBFbnZpcm9ubWVudERldGFpbHMoKTtcclxuXHJcbiAgICBmb3IgKGxldCBqOiBudW1iZXIgPSAwOyBqIDwgdG9rZW5zVmVjdG9yLmxlbmd0aDsgaiArPSAyKSB7XHJcbiAgICAgIGF0dHJpYnV0ZSA9ICh0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaikpO1xyXG4gICAgICB2YWx1ZVN0ciA9ICh0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaiArIDEpKTtcclxuICAgICAgdmFsdWVTdHIgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpO1xyXG4gICAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9USE9VU0FORFM6XHJcbiAgICAgICAgICB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3IgPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ERUNJTUFMX1NFUEFSQVRPUjpcclxuICAgICAgICAgIHRoaXMuX2RlY2ltYWxTZXBhcmF0b3IgPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9XRUJDTElFTlRfUkVJTklUX1NFU1NJT046XHJcbiAgICAgICAgICB0aGlzLl93ZWJjbGllbnRSZWluaXRTZXNzaW9uID0gdmFsdWVTdHJbMF07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREFURTpcclxuICAgICAgICAgIHRoaXMuX2RhdGVTZXBhcmF0b3IgPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIERpc3BsYXlDb252ZXJ0b3IuSW5zdGFuY2Uuc2V0RGF0ZUNoYXIodGhpcy5fZGF0ZVNlcGFyYXRvci5jaGFyQ29kZUF0KDApKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9USU1FOlxyXG4gICAgICAgICAgdGhpcy5fdGltZVNlcGFyYXRvciA9IHZhbHVlU3RyWzBdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09XTkVSOlxyXG4gICAgICAgICAgdGhpcy5fb3duZXIgPSB2YWx1ZVN0cjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TSUdOSUZJQ0FOVF9OVU1fU0laRTpcclxuICAgICAgICAgIHRoaXMuX3NpZ25pZmljYW50TnVtU2l6ZSA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQlVHX01PREU6XHJcbiAgICAgICAgICB0aGlzLl9kZWJ1Z01vZGUgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QT0lOVF9UUkFOU0xBVElPTjpcclxuICAgICAgICAgIHRoaXMuX2NhblJlcGxhY2VEZWNpbWFsU2VwYXJhdG9yID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfRVhJVENUUkw6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTE9XSElHSDpcclxuICAgICAgICAgIHRoaXMuX2xvd0hpZ2ggPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQUNDRVNTX1RFU1Q6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9URVhUX1NJWkVfRkFDVE9SSU5HOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfRkxBVF9FRElUX09OX0NMQVNTSUNfVEhFTUU6XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOQ09ESU5HOlxyXG4gICAgICAgICAgaWYgKHZhbHVlU3RyICE9PSBcIiBcIikge1xyXG4gICAgICAgICAgICB0aGlzLl9jb2RlUGFnZSA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgICBVdGlsU3RyQnl0ZU1vZGUuRW5jb2RpbmcgPSB0aGlzLkdldEVuY29kaW5nKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1lTVEVNOlxyXG4gICAgICAgICAgdGhpcy5fc3lzdGVtID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT01QT05FTlQ6XHJcbiAgICAgICAgICBlbnYuQ29tcElkeCA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RBVEVNT0RFOlxyXG4gICAgICAgICAgZW52LkRhdGVNb2RlID0gdmFsdWVTdHJbMF07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ0VOVFVSWTpcclxuICAgICAgICAgIGVudi5DZW50dXJ5ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSURMRVRJTUU6XHJcbiAgICAgICAgICBlbnYuSWRsZVRpbWUgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIC8vIGhhbmRsZSB0aGUgZGVmYXVsdCBpZGxlIHRpbWUgdmFsdWVcclxuICAgICAgICAgIGlmIChlbnYuSWRsZVRpbWUgPT09IDApXHJcbiAgICAgICAgICAgIGVudi5JZGxlVGltZSA9IDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVVBEX0lOX1FVRVJZOlxyXG4gICAgICAgICAgZW52LlVwZGF0ZUluUXVlcnlNb2RlID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NSRV9JTl9NT0RJRlk6XHJcbiAgICAgICAgICBlbnYuQ3JlYXRlSW5Nb2RpZnlNb2RlID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFRkFVTFRfQ09MT1I6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREVGQVVMVF9GT0NVU19DT0xPUjpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX0lOQUNUSVZJVFlfVElNRU9VVDpcclxuICAgICAgICAgIHRoaXMuX2NvbnRleHRJbmFjdGl2aXR5VGltZW91dCA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NMSUVOVF9DT05URVhUX0lOQUNUSVZJVFlfVElNRU9VVDpcclxuICAgICAgICAgIHRoaXMuX2NsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dCA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NPTlRFWFRfSU5BQ1RJVklUWV9XQVJOSU5HX1RJTUU6XHJcbiAgICAgICAgICB0aGlzLl9jb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVE9PTFRJUF9USU1FT1VUOlxyXG4gICAgICAgICAgdGhpcy5fdG9vbGl0aXBUaW1lb3V0ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9VTkxPQURfVElNRU9VVDpcclxuICAgICAgICAgIHRoaXMuX2NvbnRleHRVbmxvYWRUaW1lb3V0ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSU1FX0FVVE9fT0ZGOlxyXG4gICAgICAgICAgdGhpcy5faW1lQXV0b09mZiA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MT0NBTF9BUzQwMFNFVDpcclxuICAgICAgICAgIHRoaXMuX2xvY2FsQXM0MDBTZXQgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTE9DQUxfRVhUUkFfR0VOR086XHJcbiAgICAgICAgICB0aGlzLl9sb2NhbEV4dHJhR2VuZ28gPSB2YWx1ZVN0cjtcclxuICAgICAgICAgIFV0aWxEYXRlSnBuLmdldEluc3RhbmNlKCkuYWRkRXh0cmFHZW5nbyh0aGlzLl9sb2NhbEV4dHJhR2VuZ28pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xPQ0FMX0ZMQUdTOlxyXG4gICAgICAgICAgdGhpcy5fbG9jYWxGbGFncyA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfSU1NRURJQVRFX0hBTkRMRVJfRU5EOlxyXG4gICAgICAgICAgdGhpcy5fc3BlY2lhbEltbWVkaWF0ZWhhbmRsZXJFbmQgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQUNJQUxfQU5TSV9FWFA6XHJcbiAgICAgICAgICB0aGlzLl9zcGVjaWFsQW5zaUV4cHJlc3Npb24gPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9TSE9XX1NUQVRVU0JBUl9QQU5FUzpcclxuICAgICAgICAgIHRoaXMuX3NwZWNpYWxTaG93U3RhdHVzQmFyUGFuZXMgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9ST1VURV9UT19ST09UX1BST0dfT05fQ09OVEVYVF9SRUNSRUFUSU9OOlxyXG4gICAgICAgICAgdGhpcy5fc3BlY2lhbFJvdXRlVG9Sb290UHJvZ09uQ29udGV4dFJlY3JlYXRpb24gPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9TUEVDSUFMX0VESVRfTEVGVF9BTElHTjpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVBQ0lBTF9TV0ZfQ09OVFJPTF9OQU1FOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xBTkdVQUdFOlxyXG4gICAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VSSUQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19VU0VSTkFNRTpcclxuICAgICAgICAgIFNlcnZlckNvbmZpZy5JbnN0YW5jZS5zZXRVc2VybmFtZSh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVEVSTUlOQUw6XHJcbiAgICAgICAgICB0aGlzLl90ZXJtaW5hbCA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1VTRVJJTkZPOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0dVSUQ6XHJcbiAgICAgICAgICB0aGlzLl9ndWlkID0gdmFsdWVTdHI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVFJPTFNfUEVSU0lTVEVOQ1lfUEFUSDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QUk9KRElSOlxyXG4gICAgICAgICAgZW52LlByb2pEaXIgPSB2YWx1ZVN0cjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EUk9QX1VTRVJGT1JNQVRTOlxyXG4gICAgICAgICAgdGhpcy5fZHJvcFVzZXJGb3JtYXRzID0gdmFsdWVTdHI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9WQUxfTkVXX1BPTElDWTpcclxuICAgICAgICAgIHRoaXMuX3NwZWNpYWxWYWxOZXdQb2xpY3kgPSAgWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfQ0FOQ0VMX09OX0NSRUFURTpcclxuICAgICAgICAgIHRoaXMuX3NwZWNpYWxDYW5jZWxPbkNyZWF0ZSA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0xFR0FDWV9UUklNX1JBTkdFOlxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0xFR0FDWV9FTVBUWV9SQU5HRTpcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREVGQVVMVF9ESVNBQkxFRF9DT0xPUjpcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9BTlNJX0JMT0JfQ0hFQ0tfTlVMTDpcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9UQUJMRV9SRURVQ0VfVElUTEVfSEVJR0hUOlxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0RPVE5FVF9BTExPV19aRVJPX0RBVEU6XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfUkVVU0VfVEFCTEVfRURJVE9SOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEVudmlyb25tZW50LmZpbGxEYXRhKCk6IHVua25vd24gYXR0cmlidXRlOiBcIiArIGF0dHJpYnV0ZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaGFzaEtleSA9IGVudi5Db21wSWR4O1xyXG4gICAgdGhpcy5fZW52aXJvbm1lbnRzLnNldF9JdGVtKGhhc2hLZXksIGVudik7XHJcblxyXG5cclxuICAgIC8vIFRPRE86IHNvbWVob3cgYWRkQXN5bmMgdGhyb3dzIHNvbWUgZXhjZXB0aW9uIGZvciBTRVRfRU5WX1RPT0xUSVBfVElNRU9VVC4gRXZhbHVhdGUgYW5kIGZpeCBpdCwgaWYgcG9zc2libGVcclxuICAgIC8vIGlmICh0aGlzLl90b29saXRpcFRpbWVvdXQgPiAwKVxyXG4gICAgLy8gICBDb21tYW5kcy5hZGRBc3luYyhDb21tYW5kVHlwZS5TRVRfRU5WX1RPT0xUSVBfVElNRU9VVCwgPE9iamVjdD5udWxsLCA8T2JqZWN0PnRoaXMuX3Rvb2xpdGlwVGltZW91dCk7XHJcblxyXG5cclxuXHJcbiAgICAvLyBpZiAodGhpcy5fbGFuZ3VhZ2UgIT09ICcgJylcclxuICAgIC8vICAgQ29tbWFuZHMuYWRkQXN5bmMoQ29tbWFuZFR5cGUuU0VUX0VOVl9MQU1HVUFHRSwgbnVsbCwgMCwgdGhpcy5fbGFuZ3VhZ2UuY2hhckNvZGVBdCgwKSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZmlsbCB0aGUgZmlsZSBtYXBwaW5nIHdoZW4gcGFzc2VkIHRocm91Z2ggdGhlIGNhY2hlOiBwbGFjZWQgaW50byB0aGUgY2FjaGUgYnkgdGhlIHJ1bnRpbWUtZW5naW5lLCBwYXNzZWRcclxuICAvLy8gICBhcyAnPGZpbGV1cmwgdmFsID0gXCIvLi4uXCInXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIlRBR19VUkxcIj48L3BhcmFtPlxyXG4gIGFzeW5jIGZpbGxGcm9tVXJsKHRhZ05hbWU6IHN0cmluZywgcGFyc2VyOiBYbWxQYXJzZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBYTUxkYXRhOiBzdHJpbmcgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpO1xyXG5cclxuICAgIGxldCBlbmRDb250ZXh0OiBudW1iZXIgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19URVJNLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgaWYgKGVuZENvbnRleHQgIT09IC0xICYmIGVuZENvbnRleHQgPCBYTUxkYXRhLmxlbmd0aCkge1xyXG5cclxuICAgICAgLy8gZmluZCBsYXN0IHBvc2l0aW9uIG9mIGl0cyB0YWdcclxuICAgICAgbGV0IHRhZ0FuZEF0dHJpYnV0ZXM6IHN0cmluZyA9IHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kQ29udGV4dCk7XHJcbiAgICAgIHBhcnNlci5hZGQyQ3VyckluZGV4KHRhZ0FuZEF0dHJpYnV0ZXMuaW5kZXhPZih0YWdOYW1lKSArIHRhZ05hbWUubGVuZ3RoKTtcclxuXHJcbiAgICAgIGxldCB0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPiA9IFhtbFBhcnNlci5nZXRUb2tlbnMocGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KSwgWE1MQ29uc3RhbnRzLlhNTF9BVFRSX0RFTElNKTtcclxuICAgICAgRGVidWcuQXNzZXJ0KHRva2Vuc1ZlY3Rvci5nZXRfSXRlbSgwKSA9PT0gWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkFMVUUpO1xyXG5cclxuICAgICAgbGV0IGNhY2hlZEZpbGVVcmw6IHN0cmluZyA9ICh0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oMSkpO1xyXG4gICAgICBpZiAoY2FjaGVkRmlsZVVybC50cmltKCkgPT09IFwiXCIpXHJcbiAgICAgIC8vIG1pZ2h0IGhhcHBlbiBpbiBjYXNlIHRoZSB4cGEgc2VydmVyIGZhaWxlZCB0byB3cml0ZSB0byBpdHMgY2FjaGUgZm9sZGVyXHJcbiAgICAgIC8vIChlLmcuIHRoZSBjYWNoZSBmb2xkZXIgaXMgaW52YWxpZCwgZHVlIHRvIGEgY29uZmlndXJhdGlvbiBtaXN0YWtlLFxyXG4gICAgICAvLyBpbiB3aGljaCBjYXNlIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtYXRjaGVkIHdpdGggYW4gZXJyb3IgaW4gdGhlIHhwYSBzZXJ2ZXIncyBsb2cgZmlsZSAoR2VuZXJhbEVycm9yTG9nPSkpLlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUVycm9yVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJFbXB0eSBjYWNoZWQgZmlsZSBVUkw6ICd7MH0nXCIsIHRhZ0FuZEF0dHJpYnV0ZXMudHJpbSgpKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBDb250ZW50OiBzdHJpbmcgPSBhd2FpdCBDb21tYW5kc1Byb2Nlc3Nvck1hbmFnZXIuR2V0Q29udGVudChjYWNoZWRGaWxlVXJsLCB0cnVlKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgc3dpdGNoICh0YWdOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0tCRE1BUF9VUkw6XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0VOVl9QQVJBTV9VUkw6XHJcbiAgICAgICAgICAgICAgbGV0IGlubmVyWG1sUGFyc2VyOiBYbWxQYXJzZXIgPSBuZXcgWG1sUGFyc2VyKENvbnRlbnQpO1xyXG4gICAgICAgICAgICAgIHdoaWxlIChBY2Nlc3NIZWxwZXIuZW52UGFyYW1zVGFibGUubWlycm9yRnJvbVhNTChpbm5lclhtbFBhcnNlci5nZXROZXh0VGFnKCksIGlubmVyWG1sUGFyc2VyKSkge1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChleCkge1xyXG4gICAgICAgICAgc3dpdGNoICh0YWdOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0tCRE1BUF9VUkw6XHJcbiAgICAgICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKE5TdHJpbmcuRm9ybWF0KFwiS2V5Ym9hcmQgTWFwcGluZzogJ3swfSd7MX17Mn1cIiwgY2FjaGVkRmlsZVVybCwgT1NFbnZpcm9ubWVudC5Fb2xTZXEsIGV4Lk1lc3NhZ2UpKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfRU5WX1BBUkFNX1VSTDpcclxuICAgICAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJFbnYgUGFyYW1zIFRhYmxlOiAnezB9J3sxfXsyfVwiLCBjYWNoZWRGaWxlVXJsLCBPU0Vudmlyb25tZW50LkVvbFNlcSwgZXguTWVzc2FnZSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgICAgZW5kQ29udGV4dCA9IFhNTGRhdGEuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX09QRU4sIGVuZENvbnRleHQpO1xyXG4gICAgICBpZiAoZW5kQ29udGV4dCAhPT0gLTEpXHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRDb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgRW52aXJvbm1lbnREZXRhaWxzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgY29tcElkeFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+b2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IEVudmlyb25tZW50RGV0YWlsczwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldEVudkRldChjb21wSWR4OiBudW1iZXIpOiBFbnZpcm9ubWVudERldGFpbHMge1xyXG4gICAgbGV0IGVudmlyb25tZW50RGV0YWlsczogRW52aXJvbm1lbnREZXRhaWxzID0gPEVudmlyb25tZW50RGV0YWlscz50aGlzLl9lbnZpcm9ubWVudHMuZ2V0X0l0ZW0oY29tcElkeCk7XHJcblxyXG4gICAgaWYgKGVudmlyb25tZW50RGV0YWlscyA9PT0gbnVsbClcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gRW52aXJvbm1lbnQuZ2V0RW52RGV0KCkgdGhlcmUgaXMgbm8gZW52XCIpO1xyXG4gICAgcmV0dXJuIGVudmlyb25tZW50RGV0YWlscztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIGRhdGUgbW9kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+b2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gRGF0ZU1vZGU8L3JldHVybnM+XHJcbiAgR2V0RGF0ZU1vZGUoY29tcElkeDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldEVudkRldChjb21wSWR4KS5EYXRlTW9kZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIFRob3VzYW5kc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBUaG91c2FuZHM8L3JldHVybnM+XHJcbiAgR2V0VGhvdXNhbmRzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgRGVjaW1hbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBEZWNpbWFsPC9yZXR1cm5zPlxyXG4gIEdldERlY2ltYWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNpbWFsU2VwYXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgdGhlIERlY2ltYWxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHNldERlY2ltYWxTZXBhcmF0b3IodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVjaW1hbFNlcGFyYXRvciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgdGhlIERlY2ltYWxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHNldFRob3VzYW5kc1NlcGFyYXRvcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3IgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldERhdGVTZXBhcmF0b3IodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGF0ZVNlcGFyYXRvciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZVNlcGFyYXRvcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl90aW1lU2VwYXJhdG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBEYXRlIFNlcGFyYXRvclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBEYXRlIFNlcGFyYXRvcjwvcmV0dXJucz5cclxuICBHZXREYXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0ZVNlcGFyYXRvcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIElkbGVUaW1lXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj5vZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBJZGxlVGltZTwvcmV0dXJucz5cclxuICBnZXRJZGxlVGltZShjb21wSWR4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLklkbGVUaW1lO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgb3duZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gb3duZXI8L3JldHVybnM+XHJcbiAgZ2V0T3duZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9vd25lcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIHRpbWUgc2VwYXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRpbWUgc2VwZXJhdG9yPC9yZXR1cm5zPlxyXG4gIEdldFRpbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aW1lU2VwYXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgY2VudHVyeVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+b2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5jZW50dXJ5PC9yZXR1cm5zPlxyXG4gIEdldENlbnR1cnkoY29tcElkeDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldEVudkRldChjb21wSWR4KS5DZW50dXJ5O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBUUlVFIGlmIHVwZGF0ZSBpcyBhbGxvd2VkIGluIHF1ZXJ5IG1vZGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29tcElkeFwiPm9mIHRoZSB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IFVwZGF0ZUluUXVlcnlNb2RlPC9yZXR1cm5zPlxyXG4gIGFsbG93VXBkYXRlSW5RdWVyeU1vZGUoY29tcElkeDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuYWxsb3dVcGRhdGVJblF1ZXJ5TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBUUlVFIGlmIGNyZWF0ZSBpcyBhbGxvd2VkIGluIG1vZGlmeSBtb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj5vZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBhbGxvd0NyZWF0ZUluTW9kaWZ5TW9kZTwvcmV0dXJucz5cclxuICBhbGxvd0NyZWF0ZUluTW9kaWZ5TW9kZShjb21wSWR4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldEVudkRldChjb21wSWR4KS5hbGxvd0NyZWF0ZUluTW9kaWZ5TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgc2lnbmlmaWNhbnQgbnVtIHNpemVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIHNpZ25pZmljYW50IG51bSBzaXplPC9yZXR1cm5zPlxyXG4gIEdldFNpZ25pZmljYW50TnVtU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpZ25pZmljYW50TnVtU2l6ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIHNpZ25pZmljYW50IG51bSBzaXplXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHNldFNpZ25pZmljYW50TnVtU2l6ZShuZXdTaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NpZ25pZmljYW50TnVtU2l6ZSA9IG5ld1NpemU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBjb2RlIHBhZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGNvZGUgcGFnZVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZ2V0Q29kZVBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2RlUGFnZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgY2hhcnNldCBvZiB0aGUgY3VycmVudCBkb2N1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0RW5jb2RpbmcoKTogRW5jb2Rpbmcge1xyXG4gICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZztcclxuICAgIHRyeSB7XHJcbiAgICAgIGVuY29kaW5nID0gRW5jb2RpbmcuR2V0RW5jb2RpbmcodGhpcy5fY29kZVBhZ2UpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4Y2VwdGlvbikge1xyXG4gICAgICBlbmNvZGluZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW5jb2Rpbmc7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgc3lzdGVtIG5hbWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIHN5c3RlbSBuYW1lXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBnZXRTeXN0ZW0oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zeXN0ZW07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgZGVidWcgbGV2ZWxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gMCBubyBkZWJ1ZyAxIGRlYnVnIDIgZGVidWcgYW5kIGRhdGEgdHJhbnNmZXJzIGluIGhleCAoIG5vdCBpbiBiYXNlNjQpXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBHZXREZWJ1Z0xldmVsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVidWdNb2RlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgaWYgJy4nIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHRoZSBkZWNpbWFsIHNlcGFyYXRvclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgQ2FuUmVwbGFjZURlY2ltYWxTZXBhcmF0b3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuSWdub3JlUmVwbGFjZURlY2ltYWxTZXBhcmF0b3IgJiYgdGhpcy5fY2FuUmVwbGFjZURlY2ltYWxTZXBhcmF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBDbGllbnRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIENsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dDwvcmV0dXJucz5cclxuICBnZXRDbGllbnRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jbGllbnRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIENvbnRleHRJbmFjdGl2aXR5VGltZW91dDwvcmV0dXJucz5cclxuICBnZXRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBDb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lb3V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBDb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lb3V0PC9yZXR1cm5zPlxyXG4gIGdldENvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgQ29udGV4dFVubG9hZFRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldENvbnRleHRVbmxvYWRUaW1lb3V0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dFVubG9hZFRpbWVvdXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSB0b29sdGlwIHRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIHRvb2x0aXBUaW1lb3V0PC9yZXR1cm5zPlxyXG4gIEdldFRvb2x0aXBUaW1lb3V0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG9vbGl0aXBUaW1lb3V0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgVFJVRSBpZiB0aGUgYnl0ZXMgc2VxdWVuY2UgZm9yIG51bWJlcnMgaW4gZXhwcmVzc2lvbnMgaXMgZnJvbSBsb3cgdG8gaGlnaFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TG93SGlnaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb3dIaWdoO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBpZiBJTUVBdXRvT2ZmID0gWVxyXG4gIC8vLyAgIChKUE46IElNRSBzdXBwb3J0KVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0SW1lQXV0b09mZigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pbWVBdXRvT2ZmO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0cnVlIGlmIEFzNDAwU2V0IGZsYWcgPSBZXHJcbiAgLy8vICAgKERCQ1MgU3VwcG9ydClcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldExvY2FsQXM0MDBTZXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxBczQwMFNldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5GdW5jdGlvbiByZXR1cm5pbmcgYWRkaXRpb25hbCBHZW5nbyB2YWx1ZS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldExvY2FsRXh0cmFHZW5nbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsRXh0cmFHZW5nbztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5GdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIGZsYWcgZiBpcyBpbiB0aGUgbG9jYWwgZmxhZ3MuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRMb2NhbEZsYWcoZjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxGbGFncyAhPT0gbnVsbCAmJiB0aGlzLl9sb2NhbEZsYWdzLmluZGV4T2YoZikgPj0gMDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdHJ1ZSBpZiBTcGVjaWFsSW1tZWRpYXRlSGFuZGxlckVuZCBmbGFnID0gWTwvcmV0dXJucz5cclxuICBnZXRTcGVjaWFsSW1tZWRpYXRlSGFuZGxlckVuZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zcGVjaWFsSW1tZWRpYXRlaGFuZGxlckVuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdHJ1ZSBpZiBTcGVjaWFsQW5zaUV4cHJlc3Npb24gZmxhZyA9IFk8L3JldHVybnM+XHJcbiAgZ2V0U3BlY2lhbEFuc2lFeHByZXNzaW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxBbnNpRXhwcmVzc2lvbjtcclxuICB9XHJcblxyXG4gIGdldFNwZWNpYWxTaG93U3RhdHVzQmFyUGFuZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3BlY2lhbFNob3dTdGF0dXNCYXJQYW5lcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBGdW5jdGlvbiByZXR1cm5zIHRoZSB0ZXJtaW5hbCBudW1iZXIuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+dGVybWluYWwgbnVtYmVyLjwvcmV0dXJucz5cclxuICBnZXRUZXJtaW5hbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rlcm1pbmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZ1bmN0aW9uIHJldHVybnMgd2ViIGNsaWVudCByZS1pbml0IHNlc3Npb24uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+dGVybWluYWwgbnVtYmVyLjwvcmV0dXJucz5cclxuICBnZXRXZWJDbGllbnRSZWluaXRTZXNzaW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2ViY2xpZW50UmVpbml0U2Vzc2lvbjtcclxuICB9XHJcblxyXG4gIHNldFdlYkNsaWVudFJlaW5pdFNlc3Npb24oIHNlc3Npb24gOiBzdHJpbmcpIHtcclxuICAgICB0aGlzLl93ZWJjbGllbnRSZWluaXRTZXNzaW9uID0gc2Vzc2lvbjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBGdW5jdGlvbiByZXR1cm5zIHdlYiBjbGllbnQgcmUtaW5pdCBzZXNzaW9uLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPnRlcm1pbmFsIG51bWJlci48L3JldHVybnM+XHJcbiAgZ2V0U3BlY2lhbFJvdXRlVG9Sb290UHJvZ09uQ29udGV4dFJlY3JlYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3BlY2lhbFJvdXRlVG9Sb290UHJvZ09uQ29udGV4dFJlY3JlYXRpb247XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+Z2V0cyBndWkgSWQgb2YgdGhlIGFwcGxpY2F0aW9uPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgR2V0R1VJRCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2d1aWQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgcHJvamVjdCdzIGRpclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29tcElkeFwiPmNvbXBvbmVudCBpbmRleC48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0UHJvakRpcihjb21wSWR4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLlByb2pEaXI7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm5zIHZhbHVlIG9mIFNwZWNpYWxMb2dJbnRlcm5hbEV4Y2VwdGlvbnMuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEdldFNwZWNpYWxMb2dJbnRlcm5hbEV4Y2VwdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIG93bmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0T3duZXIodmFsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX293bmVyID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFNldCB0aGUgZGF0ZSBtb2RlIGluIHRoZSBjb21wb25lbnQncyBlbnZpcm9ubWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0RGF0ZU1vZGUoY29tcElkeDogbnVtYmVyLCB2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuRGF0ZU1vZGUgPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU2V0IHRoZSBjZW50dXJ5IGluIHRoZSBjb21wb25lbnQncyBlbnZpcm9ubWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0Q2VudHVyeShjb21wSWR4OiBudW1iZXIsIHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVudkRldChjb21wSWR4KS5DZW50dXJ5ID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFNldCB0aGUgaWRsZSB0aW1lIGluIHRoZSBjb21wb25lbnQncyBlbnZpcm9ubWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0SWRsZVRpbWUoY29tcElkeDogbnVtYmVyLCB2YWw6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuSWRsZVRpbWUgPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU2V0IHRoZSBhbGxvdy11cGRhdGUtaW4tcXVyeS1tb2RlIGZsYWcgaW4gdGhlIGNvbXBvbmVudCdzIGVudmlyb25tZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRBbGxvd1VwZGF0ZUluUXVlcnlNb2RlKGNvbXBJZHg6IG51bWJlciwgdmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVudkRldChjb21wSWR4KS5VcGRhdGVJblF1ZXJ5TW9kZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIGFsbG93LWNyZWF0ZS1pbi1tb2RpZnktbW9kZSBmbGFnIGluIHRoZSBjb21wb25lbnQncyBlbnZpcm9ubWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0QWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoY29tcElkeDogbnVtYmVyLCB2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLkNyZWF0ZUluTW9kaWZ5TW9kZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIGNvbnRleHQgdGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj48L3BhcmFtPlxyXG4gIHNldENvbnRleHRJbmFjdGl2aXR5VGltZW91dCh2YWw6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udGV4dEluYWN0aXZpdHlUaW1lb3V0ID0gdmFsO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIGNvbnRleHQgaW5hY3Rpdml0eSB3YXJuaW5nIHRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRDb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lKHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgY29udGV4dCB1bmxvYWQgdGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj48L3BhcmFtPlxyXG4gIHNldENvbnRleHRVbmxvYWRUaW1lb3V0KHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZXh0VW5sb2FkVGltZW91dCA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzZXQgdGhlIHRlcm1pbmFsIG51bWJlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj48L3BhcmFtPlxyXG4gIHNldFRlcm1pbmFsKHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl90ZXJtaW5hbCA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gIEdldCB0aGUgVXNlckZvcm1hdHMgZm9yIERyYWcgJiBEcm9wIE9wZXJhdGlvbi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgR2V0RHJvcFVzZXJGb3JtYXRzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZHJvcFVzZXJGb3JtYXRzO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdHJ1ZSBpZiBfc3BlY2lhbFZhbE5ld1BvbGljeSBmbGFnID0gWTwvcmV0dXJucz5cclxuICBHZXRTcGVjaWFsVmFsTmV3UG9saWN5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxWYWxOZXdQb2xpY3k7XHJcbiAgfVxyXG5cclxuICBHZXRTcGVjaWFsQ2FuY2VsT25DcmVhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3BlY2lhbENhbmNlbE9uQ3JlYXRlO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBUaGlzIGNsYXNzIGhvbGRzIGRldGFpbHMgZm9yIHNpbmdsZSBFbnZpcm9ubWVudCAocGVyIENvbXBvbmVudClcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50RGV0YWlscyB7XHJcbiAgcHJpdmF0ZSBfY3JlYXRlSW5Nb2RpZnlNb2RlOiBib29sZWFuID0gZmFsc2U7IC8vIGFsbG93IGNyZWF0ZSBpbiBtb2RpZnkgbW9kZSA/XHJcbiAgcHJpdmF0ZSBfdXBkYXRlSW5RdWVyeU1vZGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gYWxsb3cgdXBkYXRlIGluIHF1ZXJ5IG1vZGUgP1xyXG5cclxuICBDb21wSWR4OiBudW1iZXIgPSAwO1xyXG4gIERhdGVNb2RlOiBzdHJpbmcgPSAnXFwwJztcclxuICBDZW50dXJ5OiBudW1iZXIgPSAwO1xyXG4gIElkbGVUaW1lOiBudW1iZXIgPSAwO1xyXG5cclxuICBzZXQgVXBkYXRlSW5RdWVyeU1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3VwZGF0ZUluUXVlcnlNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgQ3JlYXRlSW5Nb2RpZnlNb2RlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jcmVhdGVJbk1vZGlmeU1vZGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIFByb2pEaXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjb25zdHJ1Y3RvclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLkNvbXBJZHggPSAwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBUUlVFIGlmIHVwZGF0ZSBpcyBhbGxvd2VkIGluIHF1ZXJ5IG1vZGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGFsbG93VXBkYXRlSW5RdWVyeU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXBkYXRlSW5RdWVyeU1vZGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgdXBkYXRlIGlzIGFsbG93ZWQgaW4gcXVlcnkgbW9kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlSW5Nb2RpZnlNb2RlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
487
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2Vudi9FbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQVEsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBQ2QsYUFBYSxHQUEwQyxJQUFJLFNBQVMsRUFBOEIsQ0FBQztJQUNuRyx5QkFBeUIsR0FBVyxDQUFDLENBQUM7SUFDdEMsK0JBQStCLEdBQVcsQ0FBQyxDQUFDO0lBQzVDLDZCQUE2QixHQUFXLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsR0FBVyxDQUFDLENBQUM7SUFDN0IscUJBQXFCLEdBQVcsQ0FBQyxDQUFDO0lBQ2xDLDJCQUEyQixHQUFZLEtBQUssQ0FBQztJQUM3QyxTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBQ3RCLGNBQWMsR0FBVyxJQUFJLENBQUM7SUFDOUIsaUJBQWlCLEdBQVcsSUFBSSxDQUFDO0lBQ2pDLG1CQUFtQixHQUFXLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQVcsSUFBSSxDQUFD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Q0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQU1ELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7O0FBTUgsTUFBTSxPQUFPLGtCQUFrQjtJQUNyQixtQkFBbUIsR0FBWSxLQUFLLENBQUM7SUFDckMsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBRTVDLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEIsUUFBUSxHQUFXLElBQUksQ0FBQztJQUN4QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFFckIsSUFBSSxpQkFBaUIsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLEdBQVcsSUFBSSxDQUFDO0lBS3ZCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUtELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBS0QsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlzcGxheUNvbnZlcnRvciwgSUVudmlyb25tZW50fSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7RGVidWcsIEVuY29kaW5nLCBIYXNodGFibGUsIExpc3QsIE5TdHJpbmd9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHtcclxuICBDb25zdGFudHMsXHJcbiAgTG9nZ2VyLFxyXG4gIE9TRW52aXJvbm1lbnQsXHJcbiAgVXRpbERhdGVKcG4sXHJcbiAgVXRpbFN0ckJ5dGVNb2RlLFxyXG4gIFhNTENvbnN0YW50cyxcclxuICBYbWxQYXJzZXJcclxufSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtDb21tYW5kc1Byb2Nlc3Nvck1hbmFnZXJ9IGZyb20gJy4uL0NvbW1hbmRzUHJvY2Vzc29yTWFuYWdlcic7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gJy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHtTZXJ2ZXJDb25maWd9IGZyb20gJy4uL1NlcnZlckNvbmZpZyc7XHJcbmltcG9ydCB7QWNjZXNzSGVscGVyfSBmcm9tICcuLi9BY2Nlc3NIZWxwZXInO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBUaGlzIGNsYXNzIGhvbGRzIHNvbWUgb2YgdGhlIE1hZ2ljIGVudmlyb25tZW50IHBhcmFtZXRlcnMgd2hpY2ggdGhlIGNsaWVudCBuZWVkc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnQgaW1wbGVtZW50cyBJRW52aXJvbm1lbnQge1xyXG4gIHByaXZhdGUgX2Vudmlyb25tZW50czogSGFzaHRhYmxlPG51bWJlciwgRW52aXJvbm1lbnREZXRhaWxzPiA9IG5ldyBIYXNodGFibGU8bnVtYmVyLCBFbnZpcm9ubWVudERldGFpbHM+KCk7XHJcbiAgcHJpdmF0ZSBfY29udGV4dEluYWN0aXZpdHlUaW1lb3V0OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2NsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9jb250ZXh0SW5hY3Rpdml0eVdhcm5pbmdUaW1lOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3Rvb2xpdGlwVGltZW91dDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9jb250ZXh0VW5sb2FkVGltZW91dDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9jYW5SZXBsYWNlRGVjaW1hbFNlcGFyYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2NvZGVQYWdlOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2RhdGVTZXBhcmF0b3I6IHN0cmluZyA9ICdcXDAnOyAvLyBkYXRlIHNlcGFyYXRvclxyXG4gIHByaXZhdGUgX2RlY2ltYWxTZXBhcmF0b3I6IHN0cmluZyA9ICdcXDAnOyAvLyBkZWNpbWFsIHNlcGFyYXRvclxyXG4gIHByaXZhdGUgX3Rob3VzYW5kc1NlcGFyYXRvcjogc3RyaW5nID0gJ1xcMCc7IC8vIHRob3VzYW5kcyBzZXBhcmF0b3JcclxuICBwcml2YXRlIF90aW1lU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFwwJzsgLy8gdGltZSBzZXBhcmF0b3JcclxuXHJcbiAgcHJpdmF0ZSBfZ3VpZDogc3RyaW5nID0gbnVsbDsgLy8gZ3VpZCBvZiB0aGUgYXBwbGljYXRpb25cclxuICBwcml2YXRlIF9pbWVBdXRvT2ZmOiBib29sZWFuID0gZmFsc2U7IC8vIEpQTjogSU1FIHN1cHBvcnRcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nID0gJ1xcMCc7XHJcbiAgcHJpdmF0ZSBfbG9jYWxBczQwMFNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xvY2FsRXh0cmFHZW5nbzogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9sb2NhbEZsYWdzOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX2xvd0hpZ2g6IGJvb2xlYW4gPSB0cnVlOyAvLyB3aGF0IGlzIHRoZSBvcmRlciBvZiBieXRlcyBpbiBleHByZXNzaW9ucyAoTE9XX0hJR0ggb3IgSElHSF9MT1cpXHJcbiAgcHJpdmF0ZSBfb3duZXI6IHN0cmluZyA9IG51bGw7IC8vIG93bmVyXHJcbiAgcHJpdmF0ZSBfZGVidWdNb2RlOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3NpZ25pZmljYW50TnVtU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9zcGVjaWFsQW5zaUV4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zcGVjaWFsSW1tZWRpYXRlaGFuZGxlckVuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3NwZWNpYWxTaG93U3RhdHVzQmFyUGFuZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zcGVjaWFsUm91dGVUb1Jvb3RQcm9nT25Db250ZXh0UmVjcmVhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfc3BlY2lhbENhbmNlbE9uQ3JlYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3lzdGVtOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX3Rlcm1pbmFsOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2ZvcndhcmRTbGFzaDogc3RyaW5nID0gQ29uc3RhbnRzLkZvcndhcmRTbGFzaFdlYlVzYWdlOyAvLyByZWZlciB0byBhIGZvcndhcmQgc2xhc2ggYXMgYSByZWxhdGl2ZSB3ZWIgdXJsLlxyXG4gIHByaXZhdGUgX2Ryb3BVc2VyRm9ybWF0czogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfd2ViY2xpZW50UmVpbml0U2Vzc2lvbjogc3RyaW5nID0gXCJOXCI7XHJcbiAgcHJpdmF0ZSBfc3BlY2lhbFZhbE5ld1BvbGljeTogYm9vbGVhbiA9IGZhbHNlOyAvLz8/XHJcblxyXG4gIHN0YXRpYyBJbnN0YW5jZTogRW52aXJvbm1lbnQgPSBuZXcgRW52aXJvbm1lbnQoKTtcclxuXHJcbiAgZ2V0IExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgSWdub3JlUmVwbGFjZURlY2ltYWxTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGdldCBTcGVjaWFsUmVzdG9yZU1heGltaXplZEZvcm0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5pbnN0cnVjdHMgaG93IHRvIHJlZmVyIGEgZm9yd2FyZCBzbGFzaCAtIGVpdGhlciBhcyBhIHJlbGF0aXZlIHdlYiB1cmwsIG9yIGFzIGEgZmlsZSBpbiB0aGUgZmlsZSBzeXN0ZW0uLjwvc3VtbWFyeT5cclxuICBzZXQgRm9yd2FyZFNsYXNoVXNhZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZm9yd2FyZFNsYXNoID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgRm9yd2FyZFNsYXNoVXNhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3J3YXJkU2xhc2g7XHJcbiAgfVxyXG5cclxuICBmaWxsRGF0YShwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQ7XHJcbiAgZmlsbERhdGEodG9rZW5zVmVjdG9yOiBMaXN0PHN0cmluZz4pOiB2b2lkO1xyXG4gIGZpbGxEYXRhKHRva2Vuc1ZlY3Rvck9yUGFyc2VyPzogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoYXJndW1lbnRzWzBdIGluc3RhbmNlb2YgWG1sUGFyc2VyKSB7XHJcbiAgICAgIHRoaXMuZmlsbERhdGFfMCh0b2tlbnNWZWN0b3JPclBhcnNlcik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZmlsbERhdGFfMSh0b2tlbnNWZWN0b3JPclBhcnNlcik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgTmVlZCBwYXJ0IGlucHV0IFN0cmluZyB0byByZWxldmFudCBmb3IgdGhlIGNsYXNzIGRhdGEuIGVuZCA8ZW52IC4uLj4gdGFnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwdWJsaWMgZmlsbERhdGFfMChwYXJzZXI6IFhtbFBhcnNlcik6IHZvaWQge1xyXG4gICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX1RFUk0sIHBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICBpZiAoZW5kQ29udGV4dCAhPT0gLTEgJiYgZW5kQ29udGV4dCA8IHBhcnNlci5nZXRYTUxkYXRhKCkubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGxhc3QgcG9zaXRpb24gb2YgaXRzIHRhZ1xyXG4gICAgICBsZXQgdGFnOiBTdHJpbmcgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpO1xyXG4gICAgICBwYXJzZXIuYWRkMkN1cnJJbmRleCh0YWcuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19UQUdfRU5WKSArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19FTlYubGVuZ3RoKTtcclxuICAgICAgbGV0IHRva2Vuc1ZlY3RvcjogTGlzdDxzdHJpbmc+ID0gWG1sUGFyc2VyLmdldFRva2VucyhwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpLCBYTUxDb25zdGFudHMuWE1MX0FUVFJfREVMSU0pO1xyXG4gICAgICB0aGlzLmZpbGxEYXRhKHRva2Vuc1ZlY3Rvcik7XHJcbiAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgoZW5kQ29udGV4dCArIFhNTENvbnN0YW50cy5UQUdfVEVSTS5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEVudmlyb25tZW50LkZpbGxEYXRhKCkgb3V0IG9mIHN0cmluZyBib3VuZHNcIik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgTWFrZSBpbml0aWFsaXphdGlvbiBvZiBwcml2YXRlIGVsZW1lbnRzIGJ5IGZvdW5kIHRva2Vuc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0b2tlbnNWZWN0b3JcIj5mb3VuZCB0b2tlbnMsIHdoaWNoIGNvbnNpc3QgYXR0cmlidXRlL3ZhbHVlIG9mIGV2ZXJ5IGZvdW5kIGVsZW1lbnQ8L3BhcmFtPlxyXG4gIHByaXZhdGUgZmlsbERhdGFfMSh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nO1xyXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmc7XHJcbiAgICBsZXQgaGFzaEtleTogbnVtYmVyO1xyXG4gICAgbGV0IGVudjogRW52aXJvbm1lbnREZXRhaWxzO1xyXG4gICAgZW52ID0gbmV3IEVudmlyb25tZW50RGV0YWlscygpO1xyXG5cclxuICAgIGZvciAobGV0IGo6IG51bWJlciA9IDA7IGogPCB0b2tlbnNWZWN0b3IubGVuZ3RoOyBqICs9IDIpIHtcclxuICAgICAgYXR0cmlidXRlID0gKHRva2Vuc1ZlY3Rvci5nZXRfSXRlbShqKSk7XHJcbiAgICAgIHZhbHVlU3RyID0gKHRva2Vuc1ZlY3Rvci5nZXRfSXRlbShqICsgMSkpO1xyXG4gICAgICB2YWx1ZVN0ciA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cik7XHJcbiAgICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RIT1VTQU5EUzpcclxuICAgICAgICAgIHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvciA9IHZhbHVlU3RyWzBdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQ0lNQUxfU0VQQVJBVE9SOlxyXG4gICAgICAgICAgdGhpcy5fZGVjaW1hbFNlcGFyYXRvciA9IHZhbHVlU3RyWzBdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1dFQkNMSUVOVF9SRUlOSVRfU0VTU0lPTjpcclxuICAgICAgICAgIHRoaXMuX3dlYmNsaWVudFJlaW5pdFNlc3Npb24gPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EQVRFOlxyXG4gICAgICAgICAgdGhpcy5fZGF0ZVNlcGFyYXRvciA9IHZhbHVlU3RyWzBdO1xyXG4gICAgICAgICAgRGlzcGxheUNvbnZlcnRvci5JbnN0YW5jZS5zZXREYXRlQ2hhcih0aGlzLl9kYXRlU2VwYXJhdG9yLmNoYXJDb2RlQXQoMCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RJTUU6XHJcbiAgICAgICAgICB0aGlzLl90aW1lU2VwYXJhdG9yID0gdmFsdWVTdHJbMF07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfT1dORVI6XHJcbiAgICAgICAgICB0aGlzLl9vd25lciA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NJR05JRklDQU5UX05VTV9TSVpFOlxyXG4gICAgICAgICAgdGhpcy5fc2lnbmlmaWNhbnROdW1TaXplID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREVCVUdfTU9ERTpcclxuICAgICAgICAgIHRoaXMuX2RlYnVnTW9kZSA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BPSU5UX1RSQU5TTEFUSU9OOlxyXG4gICAgICAgICAgdGhpcy5fY2FuUmVwbGFjZURlY2ltYWxTZXBhcmF0b3IgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9FWElUQ1RSTDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MT1dISUdIOlxyXG4gICAgICAgICAgdGhpcy5fbG93SGlnaCA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9BQ0NFU1NfVEVTVDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1RFWFRfU0laRV9GQUNUT1JJTkc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9GTEFUX0VESVRfT05fQ0xBU1NJQ19USEVNRTpcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5DT0RJTkc6XHJcbiAgICAgICAgICBpZiAodmFsdWVTdHIgIT09IFwiIFwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvZGVQYWdlID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICAgIFV0aWxTdHJCeXRlTW9kZS5FbmNvZGluZyA9IHRoaXMuR2V0RW5jb2RpbmcoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TWVNURU06XHJcbiAgICAgICAgICB0aGlzLl9zeXN0ZW0gPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NPTVBPTkVOVDpcclxuICAgICAgICAgIGVudi5Db21wSWR4ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREFURU1PREU6XHJcbiAgICAgICAgICBlbnYuRGF0ZU1vZGUgPSB2YWx1ZVN0clswXTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5UVVJZOlxyXG4gICAgICAgICAgZW52LkNlbnR1cnkgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JRExFVElNRTpcclxuICAgICAgICAgIGVudi5JZGxlVGltZSA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWVTdHIpO1xyXG4gICAgICAgICAgLy8gaGFuZGxlIHRoZSBkZWZhdWx0IGlkbGUgdGltZSB2YWx1ZVxyXG4gICAgICAgICAgaWYgKGVudi5JZGxlVGltZSA9PT0gMClcclxuICAgICAgICAgICAgZW52LklkbGVUaW1lID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VUERfSU5fUVVFUlk6XHJcbiAgICAgICAgICBlbnYuVXBkYXRlSW5RdWVyeU1vZGUgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ1JFX0lOX01PRElGWTpcclxuICAgICAgICAgIGVudi5DcmVhdGVJbk1vZGlmeU1vZGUgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREVGQVVMVF9DT0xPUjpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ERUZBVUxUX0ZPQ1VTX0NPTE9SOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NPTlRFWFRfSU5BQ1RJVklUWV9USU1FT1VUOlxyXG4gICAgICAgICAgdGhpcy5fY29udGV4dEluYWN0aXZpdHlUaW1lb3V0ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ0xJRU5UX0NPTlRFWFRfSU5BQ1RJVklUWV9USU1FT1VUOlxyXG4gICAgICAgICAgdGhpcy5fY2xpZW50Q29udGV4dEluYWN0aXZpdHlUaW1lb3V0ID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9JTkFDVElWSVRZX1dBUk5JTkdfVElNRTpcclxuICAgICAgICAgIHRoaXMuX2NvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWUgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9UT09MVElQX1RJTUVPVVQ6XHJcbiAgICAgICAgICB0aGlzLl90b29saXRpcFRpbWVvdXQgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX1VOTE9BRF9USU1FT1VUOlxyXG4gICAgICAgICAgdGhpcy5fY29udGV4dFVubG9hZFRpbWVvdXQgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JTUVfQVVUT19PRkY6XHJcbiAgICAgICAgICB0aGlzLl9pbWVBdXRvT2ZmID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xPQ0FMX0FTNDAwU0VUOlxyXG4gICAgICAgICAgdGhpcy5fbG9jYWxBczQwMFNldCA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MT0NBTF9FWFRSQV9HRU5HTzpcclxuICAgICAgICAgIHRoaXMuX2xvY2FsRXh0cmFHZW5nbyA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgVXRpbERhdGVKcG4uZ2V0SW5zdGFuY2UoKS5hZGRFeHRyYUdlbmdvKHRoaXMuX2xvY2FsRXh0cmFHZW5nbyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTE9DQUxfRkxBR1M6XHJcbiAgICAgICAgICB0aGlzLl9sb2NhbEZsYWdzID0gdmFsdWVTdHI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9JTU1FRElBVEVfSEFORExFUl9FTkQ6XHJcbiAgICAgICAgICB0aGlzLl9zcGVjaWFsSW1tZWRpYXRlaGFuZGxlckVuZCA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVBQ0lBTF9BTlNJX0VYUDpcclxuICAgICAgICAgIHRoaXMuX3NwZWNpYWxBbnNpRXhwcmVzc2lvbiA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1NIT1dfU1RBVFVTQkFSX1BBTkVTOlxyXG4gICAgICAgICAgdGhpcy5fc3BlY2lhbFNob3dTdGF0dXNCYXJQYW5lcyA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1JPVVRFX1RPX1JPT1RfUFJPR19PTl9DT05URVhUX1JFQ1JFQVRJT046XHJcbiAgICAgICAgICB0aGlzLl9zcGVjaWFsUm91dGVUb1Jvb3RQcm9nT25Db250ZXh0UmVjcmVhdGlvbiA9IFhtbFBhcnNlci5nZXRCb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1NQRUNJQUxfRURJVF9MRUZUX0FMSUdOOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUFDSUFMX1NXRl9DT05UUk9MX05BTUU6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTEFOR1VBR0U6XHJcbiAgICAgICAgICB0aGlzLl9sYW5ndWFnZSA9IHZhbHVlU3RyWzBdO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1VTRVJJRDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX1VTRVJOQU1FOlxyXG4gICAgICAgICAgU2VydmVyQ29uZmlnLkluc3RhbmNlLnNldFVzZXJuYW1lKHZhbHVlU3RyKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9URVJNSU5BTDpcclxuICAgICAgICAgIHRoaXMuX3Rlcm1pbmFsID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVVNFUklORk86XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfR1VJRDpcclxuICAgICAgICAgIHRoaXMuX2d1aWQgPSB2YWx1ZVN0cjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05UUk9MU19QRVJTSVNURU5DWV9QQVRIOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BST0pESVI6XHJcbiAgICAgICAgICBlbnYuUHJvakRpciA9IHZhbHVlU3RyO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RST1BfVVNFUkZPUk1BVFM6XHJcbiAgICAgICAgICB0aGlzLl9kcm9wVXNlckZvcm1hdHMgPSB2YWx1ZVN0cjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1ZBTF9ORVdfUE9MSUNZOlxyXG4gICAgICAgICAgdGhpcy5fc3BlY2lhbFZhbE5ld1BvbGljeSA9ICBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9DQU5DRUxfT05fQ1JFQVRFOlxyXG4gICAgICAgICAgdGhpcy5fc3BlY2lhbENhbmNlbE9uQ3JlYXRlID0gWG1sUGFyc2VyLmdldEJvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfTEVHQUNZX1RSSU1fUkFOR0U6XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfTEVHQUNZX0VNUFRZX1JBTkdFOlxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ERUZBVUxUX0RJU0FCTEVEX0NPTE9SOlxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0FOU0lfQkxPQl9DSEVDS19OVUxMOlxyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1RBQkxFX1JFRFVDRV9USVRMRV9IRUlHSFQ6XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfRE9UTkVUX0FMTE9XX1pFUk9fREFURTpcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9SRVVTRV9UQUJMRV9FRElUT1I6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gRW52aXJvbm1lbnQuZmlsbERhdGEoKTogdW5rbm93biBhdHRyaWJ1dGU6IFwiICsgYXR0cmlidXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBoYXNoS2V5ID0gZW52LkNvbXBJZHg7XHJcbiAgICB0aGlzLl9lbnZpcm9ubWVudHMuc2V0X0l0ZW0oaGFzaEtleSwgZW52KTtcclxuXHJcblxyXG4gICAgLy8gVE9ETzogc29tZWhvdyBhZGRBc3luYyB0aHJvd3Mgc29tZSBleGNlcHRpb24gZm9yIFNFVF9FTlZfVE9PTFRJUF9USU1FT1VULiBFdmFsdWF0ZSBhbmQgZml4IGl0LCBpZiBwb3NzaWJsZVxyXG4gICAgLy8gaWYgKHRoaXMuX3Rvb2xpdGlwVGltZW91dCA+IDApXHJcbiAgICAvLyAgIENvbW1hbmRzLmFkZEFzeW5jKENvbW1hbmRUeXBlLlNFVF9FTlZfVE9PTFRJUF9USU1FT1VULCA8T2JqZWN0Pm51bGwsIDxPYmplY3Q+dGhpcy5fdG9vbGl0aXBUaW1lb3V0KTtcclxuXHJcblxyXG5cclxuICAgIC8vIGlmICh0aGlzLl9sYW5ndWFnZSAhPT0gJyAnKVxyXG4gICAgLy8gICBDb21tYW5kcy5hZGRBc3luYyhDb21tYW5kVHlwZS5TRVRfRU5WX0xBTUdVQUdFLCBudWxsLCAwLCB0aGlzLl9sYW5ndWFnZS5jaGFyQ29kZUF0KDApKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaWxsIHRoZSBmaWxlIG1hcHBpbmcgd2hlbiBwYXNzZWQgdGhyb3VnaCB0aGUgY2FjaGU6IHBsYWNlZCBpbnRvIHRoZSBjYWNoZSBieSB0aGUgcnVudGltZS1lbmdpbmUsIHBhc3NlZFxyXG4gIC8vLyAgIGFzICc8ZmlsZXVybCB2YWwgPSBcIi8uLi5cIidcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiVEFHX1VSTFwiPjwvcGFyYW0+XHJcbiAgYXN5bmMgZmlsbEZyb21VcmwodGFnTmFtZTogc3RyaW5nLCBwYXJzZXI6IFhtbFBhcnNlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IFhNTGRhdGE6IHN0cmluZyA9IHBhcnNlci5nZXRYTUxkYXRhKCk7XHJcblxyXG4gICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX1RFUk0sIHBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICBpZiAoZW5kQ29udGV4dCAhPT0gLTEgJiYgZW5kQ29udGV4dCA8IFhNTGRhdGEubGVuZ3RoKSB7XHJcblxyXG4gICAgICAvLyBmaW5kIGxhc3QgcG9zaXRpb24gb2YgaXRzIHRhZ1xyXG4gICAgICBsZXQgdGFnQW5kQXR0cmlidXRlczogc3RyaW5nID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KTtcclxuICAgICAgcGFyc2VyLmFkZDJDdXJySW5kZXgodGFnQW5kQXR0cmlidXRlcy5pbmRleE9mKHRhZ05hbWUpICsgdGFnTmFtZS5sZW5ndGgpO1xyXG5cclxuICAgICAgbGV0IHRva2Vuc1ZlY3RvcjogTGlzdDxzdHJpbmc+ID0gWG1sUGFyc2VyLmdldFRva2VucyhwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpLCBYTUxDb25zdGFudHMuWE1MX0FUVFJfREVMSU0pO1xyXG4gICAgICBEZWJ1Zy5Bc3NlcnQodG9rZW5zVmVjdG9yLmdldF9JdGVtKDApID09PSBYTUxDb25zdGFudHMuTUdfQVRUUl9WQUxVRSk7XHJcblxyXG4gICAgICBsZXQgY2FjaGVkRmlsZVVybDogc3RyaW5nID0gKHRva2Vuc1ZlY3Rvci5nZXRfSXRlbSgxKSk7XHJcbiAgICAgIGlmIChjYWNoZWRGaWxlVXJsLnRyaW0oKSA9PT0gXCJcIilcclxuICAgICAgLy8gbWlnaHQgaGFwcGVuIGluIGNhc2UgdGhlIHhwYSBzZXJ2ZXIgZmFpbGVkIHRvIHdyaXRlIHRvIGl0cyBjYWNoZSBmb2xkZXJcclxuICAgICAgLy8gKGUuZy4gdGhlIGNhY2hlIGZvbGRlciBpcyBpbnZhbGlkLCBkdWUgdG8gYSBjb25maWd1cmF0aW9uIG1pc3Rha2UsXHJcbiAgICAgIC8vIGluIHdoaWNoIGNhc2UgdGhlIGN1cnJlbnQgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIG1hdGNoZWQgd2l0aCBhbiBlcnJvciBpbiB0aGUgeHBhIHNlcnZlcidzIGxvZyBmaWxlIChHZW5lcmFsRXJyb3JMb2c9KSkuXHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXJyb3JUb0xvZyhOU3RyaW5nLkZvcm1hdChcIkVtcHR5IGNhY2hlZCBmaWxlIFVSTDogJ3swfSdcIiwgdGFnQW5kQXR0cmlidXRlcy50cmltKCkpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IENvbnRlbnQ6IHN0cmluZyA9IGF3YWl0IENvbW1hbmRzUHJvY2Vzc29yTWFuYWdlci5HZXRDb250ZW50KGNhY2hlZEZpbGVVcmwsIHRydWUpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfS0JETUFQX1VSTDpcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfRU5WX1BBUkFNX1VSTDpcclxuICAgICAgICAgICAgICBsZXQgaW5uZXJYbWxQYXJzZXI6IFhtbFBhcnNlciA9IG5ldyBYbWxQYXJzZXIoQ29udGVudCk7XHJcbiAgICAgICAgICAgICAgd2hpbGUgKEFjY2Vzc0hlbHBlci5lbnZQYXJhbXNUYWJsZS5taXJyb3JGcm9tWE1MKGlubmVyWG1sUGFyc2VyLmdldE5leHRUYWcoKSwgaW5uZXJYbWxQYXJzZXIpKSB7XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfS0JETUFQX1VSTDpcclxuICAgICAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJLZXlib2FyZCBNYXBwaW5nOiAnezB9J3sxfXsyfVwiLCBjYWNoZWRGaWxlVXJsLCBPU0Vudmlyb25tZW50LkVvbFNlcSwgZXguTWVzc2FnZSkpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19FTlZfUEFSQU1fVVJMOlxyXG4gICAgICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhOU3RyaW5nLkZvcm1hdChcIkVudiBQYXJhbXMgVGFibGU6ICd7MH0nezF9ezJ9XCIsIGNhY2hlZEZpbGVVcmwsIE9TRW52aXJvbm1lbnQuRW9sU2VxLCBleC5NZXNzYWdlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbmRDb250ZXh0ID0gWE1MZGF0YS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfT1BFTiwgZW5kQ29udGV4dCk7XHJcbiAgICAgIGlmIChlbmRDb250ZXh0ICE9PSAtMSlcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZENvbnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBFbnZpcm9ubWVudERldGFpbHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBjb21wSWR4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj5vZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgRW52aXJvbm1lbnREZXRhaWxzPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZ2V0RW52RGV0KGNvbXBJZHg6IG51bWJlcik6IEVudmlyb25tZW50RGV0YWlscyB7XHJcbiAgICBsZXQgZW52aXJvbm1lbnREZXRhaWxzOiBFbnZpcm9ubWVudERldGFpbHMgPSA8RW52aXJvbm1lbnREZXRhaWxzPnRoaXMuX2Vudmlyb25tZW50cy5nZXRfSXRlbShjb21wSWR4KTtcclxuXHJcbiAgICBpZiAoZW52aXJvbm1lbnREZXRhaWxzID09PSBudWxsKVxyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJpbiBFbnZpcm9ubWVudC5nZXRFbnZEZXQoKSB0aGVyZSBpcyBubyBlbnZcIik7XHJcbiAgICByZXR1cm4gZW52aXJvbm1lbnREZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgZGF0ZSBtb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj5vZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBEYXRlTW9kZTwvcmV0dXJucz5cclxuICBHZXREYXRlTW9kZShjb21wSWR4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLkRhdGVNb2RlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgVGhvdXNhbmRzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IFRob3VzYW5kczwvcmV0dXJucz5cclxuICBHZXRUaG91c2FuZHMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBEZWNpbWFsXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IERlY2ltYWw8L3JldHVybnM+XHJcbiAgR2V0RGVjaW1hbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlY2ltYWxTZXBhcmF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0cyB0aGUgRGVjaW1hbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0RGVjaW1hbFNlcGFyYXRvcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZWNpbWFsU2VwYXJhdG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0cyB0aGUgRGVjaW1hbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc2V0VGhvdXNhbmRzU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZVNlcGFyYXRvcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kYXRlU2VwYXJhdG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RpbWVTZXBhcmF0b3IgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIERhdGUgU2VwYXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IERhdGUgU2VwYXJhdG9yPC9yZXR1cm5zPlxyXG4gIEdldERhdGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlU2VwYXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgSWRsZVRpbWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29tcElkeFwiPm9mIHRoZSB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IElkbGVUaW1lPC9yZXR1cm5zPlxyXG4gIGdldElkbGVUaW1lKGNvbXBJZHg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuSWRsZVRpbWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBvd25lclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBvd25lcjwvcmV0dXJucz5cclxuICBnZXRPd25lcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX293bmVyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgdGltZSBzZXBhcmF0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGltZSBzZXBlcmF0b3I8L3JldHVybnM+XHJcbiAgR2V0VGltZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpbWVTZXBhcmF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBjZW50dXJ5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj5vZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPmNlbnR1cnk8L3JldHVybnM+XHJcbiAgR2V0Q2VudHVyeShjb21wSWR4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLkNlbnR1cnk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgdXBkYXRlIGlzIGFsbG93ZWQgaW4gcXVlcnkgbW9kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21wSWR4XCI+b2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gVXBkYXRlSW5RdWVyeU1vZGU8L3JldHVybnM+XHJcbiAgYWxsb3dVcGRhdGVJblF1ZXJ5TW9kZShjb21wSWR4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldEVudkRldChjb21wSWR4KS5hbGxvd1VwZGF0ZUluUXVlcnlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgY3JlYXRlIGlzIGFsbG93ZWQgaW4gbW9kaWZ5IG1vZGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29tcElkeFwiPm9mIHRoZSB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGFsbG93Q3JlYXRlSW5Nb2RpZnlNb2RlPC9yZXR1cm5zPlxyXG4gIGFsbG93Q3JlYXRlSW5Nb2RpZnlNb2RlKGNvbXBJZHg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLmFsbG93Q3JlYXRlSW5Nb2RpZnlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBzaWduaWZpY2FudCBudW0gc2l6ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgc2lnbmlmaWNhbnQgbnVtIHNpemU8L3JldHVybnM+XHJcbiAgR2V0U2lnbmlmaWNhbnROdW1TaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2lnbmlmaWNhbnROdW1TaXplO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgc2lnbmlmaWNhbnQgbnVtIHNpemVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc2V0U2lnbmlmaWNhbnROdW1TaXplKG5ld1NpemU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fc2lnbmlmaWNhbnROdW1TaXplID0gbmV3U2l6ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIGNvZGUgcGFnZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgY29kZSBwYWdlXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBnZXRDb2RlUGFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvZGVQYWdlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBjaGFyc2V0IG9mIHRoZSBjdXJyZW50IGRvY3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRFbmNvZGluZygpOiBFbmNvZGluZyB7XHJcbiAgICBsZXQgZW5jb2Rpbmc6IEVuY29kaW5nO1xyXG4gICAgdHJ5IHtcclxuICAgICAgZW5jb2RpbmcgPSBFbmNvZGluZy5HZXRFbmNvZGluZyh0aGlzLl9jb2RlUGFnZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgIGVuY29kaW5nID0gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBlbmNvZGluZztcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBzeXN0ZW0gbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgc3lzdGVtIG5hbWVcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGdldFN5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N5c3RlbTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBkZWJ1ZyBsZXZlbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiAwIG5vIGRlYnVnIDEgZGVidWcgMiBkZWJ1ZyBhbmQgZGF0YSB0cmFuc2ZlcnMgaW4gaGV4ICggbm90IGluIGJhc2U2NClcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIEdldERlYnVnTGV2ZWwoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWJ1Z01vZGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBpZiAnLicgc2hvdWxkIGJlIGNoYW5nZWQgdG8gdGhlIGRlY2ltYWwgc2VwYXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBDYW5SZXBsYWNlRGVjaW1hbFNlcGFyYXRvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5JZ25vcmVSZXBsYWNlRGVjaW1hbFNlcGFyYXRvciAmJiB0aGlzLl9jYW5SZXBsYWNlRGVjaW1hbFNlcGFyYXRvcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIENsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgQ2xpZW50Q29udGV4dEluYWN0aXZpdHlUaW1lb3V0PC9yZXR1cm5zPlxyXG4gIGdldENsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENvbnRleHRJbmFjdGl2aXR5VGltZW91dDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIENvbnRleHRJbmFjdGl2aXR5VGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgQ29udGV4dEluYWN0aXZpdHlUaW1lb3V0PC9yZXR1cm5zPlxyXG4gIGdldENvbnRleHRJbmFjdGl2aXR5VGltZW91dCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHRJbmFjdGl2aXR5VGltZW91dDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIENvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIENvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWVvdXQ8L3JldHVybnM+XHJcbiAgZ2V0Q29udGV4dEluYWN0aXZpdHlXYXJuaW5nVGltZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBDb250ZXh0VW5sb2FkVGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0Q29udGV4dFVubG9hZFRpbWVvdXQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0VW5sb2FkVGltZW91dDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIHRvb2x0aXAgdGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgdG9vbHRpcFRpbWVvdXQ8L3JldHVybnM+XHJcbiAgR2V0VG9vbHRpcFRpbWVvdXQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90b29saXRpcFRpbWVvdXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBUUlVFIGlmIHRoZSBieXRlcyBzZXF1ZW5jZSBmb3IgbnVtYmVycyBpbiBleHByZXNzaW9ucyBpcyBmcm9tIGxvdyB0byBoaWdoXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRMb3dIaWdoKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvd0hpZ2g7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0cnVlIGlmIElNRUF1dG9PZmYgPSBZXHJcbiAgLy8vICAgKEpQTjogSU1FIHN1cHBvcnQpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRJbWVBdXRvT2ZmKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ltZUF1dG9PZmY7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgQXM0MDBTZXQgZmxhZyA9IFlcclxuICAvLy8gICAoREJDUyBTdXBwb3J0KVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgR2V0TG9jYWxBczQwMFNldCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2NhbEFzNDAwU2V0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PkZ1bmN0aW9uIHJldHVybmluZyBhZGRpdGlvbmFsIEdlbmdvIHZhbHVlLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TG9jYWxFeHRyYUdlbmdvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxFeHRyYUdlbmdvO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PkZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgZmxhZyBmIGlzIGluIHRoZSBsb2NhbCBmbGFncy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldExvY2FsRmxhZyhmOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2NhbEZsYWdzICE9PSBudWxsICYmIHRoaXMuX2xvY2FsRmxhZ3MuaW5kZXhPZihmKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIFNwZWNpYWxJbW1lZGlhdGVIYW5kbGVyRW5kIGZsYWcgPSBZPC9yZXR1cm5zPlxyXG4gIGdldFNwZWNpYWxJbW1lZGlhdGVIYW5kbGVyRW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NwZWNpYWxJbW1lZGlhdGVoYW5kbGVyRW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIFNwZWNpYWxBbnNpRXhwcmVzc2lvbiBmbGFnID0gWTwvcmV0dXJucz5cclxuICBnZXRTcGVjaWFsQW5zaUV4cHJlc3Npb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3BlY2lhbEFuc2lFeHByZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3BlY2lhbFNob3dTdGF0dXNCYXJQYW5lcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zcGVjaWFsU2hvd1N0YXR1c0JhclBhbmVzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZ1bmN0aW9uIHJldHVybnMgdGhlIHRlcm1pbmFsIG51bWJlci5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz50ZXJtaW5hbCBudW1iZXIuPC9yZXR1cm5zPlxyXG4gIGdldFRlcm1pbmFsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGVybWluYWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgRnVuY3Rpb24gcmV0dXJucyB3ZWIgY2xpZW50IHJlLWluaXQgc2Vzc2lvbi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz50ZXJtaW5hbCBudW1iZXIuPC9yZXR1cm5zPlxyXG4gIGdldFdlYkNsaWVudFJlaW5pdFNlc3Npb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl93ZWJjbGllbnRSZWluaXRTZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0V2ViQ2xpZW50UmVpbml0U2Vzc2lvbiggc2Vzc2lvbiA6IHN0cmluZykge1xyXG4gICAgIHRoaXMuX3dlYmNsaWVudFJlaW5pdFNlc3Npb24gPSBzZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZ1bmN0aW9uIHJldHVybnMgd2ViIGNsaWVudCByZS1pbml0IHNlc3Npb24uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+dGVybWluYWwgbnVtYmVyLjwvcmV0dXJucz5cclxuICBnZXRTcGVjaWFsUm91dGVUb1Jvb3RQcm9nT25Db250ZXh0UmVjcmVhdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zcGVjaWFsUm91dGVUb1Jvb3RQcm9nT25Db250ZXh0UmVjcmVhdGlvbjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5nZXRzIGd1aSBJZCBvZiB0aGUgYXBwbGljYXRpb248L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBHZXRHVUlEKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ3VpZDtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBwcm9qZWN0J3MgZGlyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb21wSWR4XCI+Y29tcG9uZW50IGluZGV4LjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBnZXRQcm9qRGlyKGNvbXBJZHg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuUHJvakRpcjtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdmFsdWUgb2YgU3BlY2lhbExvZ0ludGVybmFsRXhjZXB0aW9ucy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgR2V0U3BlY2lhbExvZ0ludGVybmFsRXhjZXB0aW9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFNldCB0aGUgb3duZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRPd25lcih2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3duZXIgPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU2V0IHRoZSBkYXRlIG1vZGUgaW4gdGhlIGNvbXBvbmVudCdzIGVudmlyb25tZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXREYXRlTW9kZShjb21wSWR4OiBudW1iZXIsIHZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVudkRldChjb21wSWR4KS5EYXRlTW9kZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIGNlbnR1cnkgaW4gdGhlIGNvbXBvbmVudCdzIGVudmlyb25tZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRDZW50dXJ5KGNvbXBJZHg6IG51bWJlciwgdmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLkNlbnR1cnkgPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU2V0IHRoZSBpZGxlIHRpbWUgaW4gdGhlIGNvbXBvbmVudCdzIGVudmlyb25tZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRJZGxlVGltZShjb21wSWR4OiBudW1iZXIsIHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVudkRldChjb21wSWR4KS5JZGxlVGltZSA9IHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIGFsbG93LXVwZGF0ZS1pbi1xdXJ5LW1vZGUgZmxhZyBpbiB0aGUgY29tcG9uZW50J3MgZW52aXJvbm1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29tcElkeFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj48L3BhcmFtPlxyXG4gIHNldEFsbG93VXBkYXRlSW5RdWVyeU1vZGUoY29tcElkeDogbnVtYmVyLCB2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RW52RGV0KGNvbXBJZHgpLlVwZGF0ZUluUXVlcnlNb2RlID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFNldCB0aGUgYWxsb3ctY3JlYXRlLWluLW1vZGlmeS1tb2RlIGZsYWcgaW4gdGhlIGNvbXBvbmVudCdzIGVudmlyb25tZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbXBJZHhcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsXCI+PC9wYXJhbT5cclxuICBzZXRBbGxvd0NyZWF0ZUluTW9kaWZ5TW9kZShjb21wSWR4OiBudW1iZXIsIHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFbnZEZXQoY29tcElkeCkuQ3JlYXRlSW5Nb2RpZnlNb2RlID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgY29udGV4dCB0aW1lb3V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0Q29udGV4dEluYWN0aXZpdHlUaW1lb3V0KHZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQgPSB2YWw7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgY29udGV4dCBpbmFjdGl2aXR5IHdhcm5pbmcgdGltZW91dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxcIj48L3BhcmFtPlxyXG4gIHNldENvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWUodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbnRleHRJbmFjdGl2aXR5V2FybmluZ1RpbWUgPSB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRoZSBjb250ZXh0IHVubG9hZCB0aW1lb3V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0Q29udGV4dFVubG9hZFRpbWVvdXQodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbnRleHRVbmxvYWRUaW1lb3V0ID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdGVybWluYWwgbnVtYmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgc2V0VGVybWluYWwodmFsOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Rlcm1pbmFsID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgR2V0IHRoZSBVc2VyRm9ybWF0cyBmb3IgRHJhZyAmIERyb3AgT3BlcmF0aW9uLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBHZXREcm9wVXNlckZvcm1hdHMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kcm9wVXNlckZvcm1hdHM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIF9zcGVjaWFsVmFsTmV3UG9saWN5IGZsYWcgPSBZPC9yZXR1cm5zPlxyXG4gIEdldFNwZWNpYWxWYWxOZXdQb2xpY3koKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3BlY2lhbFZhbE5ld1BvbGljeTtcclxuICB9XHJcblxyXG4gIEdldFNwZWNpYWxDYW5jZWxPbkNyZWF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zcGVjaWFsQ2FuY2VsT25DcmVhdGU7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIFRoaXMgY2xhc3MgaG9sZHMgZGV0YWlscyBmb3Igc2luZ2xlIEVudmlyb25tZW50IChwZXIgQ29tcG9uZW50KVxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnREZXRhaWxzIHtcclxuICBwcml2YXRlIF9jcmVhdGVJbk1vZGlmeU1vZGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gYWxsb3cgY3JlYXRlIGluIG1vZGlmeSBtb2RlID9cclxuICBwcml2YXRlIF91cGRhdGVJblF1ZXJ5TW9kZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBhbGxvdyB1cGRhdGUgaW4gcXVlcnkgbW9kZSA/XHJcblxyXG4gIENvbXBJZHg6IG51bWJlciA9IDA7XHJcbiAgRGF0ZU1vZGU6IHN0cmluZyA9ICdcXDAnO1xyXG4gIENlbnR1cnk6IG51bWJlciA9IDA7XHJcbiAgSWRsZVRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gIHNldCBVcGRhdGVJblF1ZXJ5TW9kZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdXBkYXRlSW5RdWVyeU1vZGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldCBDcmVhdGVJbk1vZGlmeU1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NyZWF0ZUluTW9kaWZ5TW9kZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgUHJvakRpcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNvbnN0cnVjdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuQ29tcElkeCA9IDA7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgdXBkYXRlIGlzIGFsbG93ZWQgaW4gcXVlcnkgbW9kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYWxsb3dVcGRhdGVJblF1ZXJ5TW9kZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl91cGRhdGVJblF1ZXJ5TW9kZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gVFJVRSBpZiB1cGRhdGUgaXMgYWxsb3dlZCBpbiBxdWVyeSBtb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhbGxvd0NyZWF0ZUluTW9kaWZ5TW9kZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVJbk1vZGlmeU1vZGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -224,4 +224,4 @@ export class LanguageData {
|
|
224
224
|
}
|
225
225
|
}
|
226
226
|
}
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFuZ3VhZ2VEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9lbnYvTGFuZ3VhZ2VEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzFHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxxQkFBcUIsR0FBVyxFQUFFLENBQUM7QUFDekMsTUFBTSxTQUFTLEdBQVcsY0FBYyxDQUFDO0FBQ3pDLE1BQU0sT0FBTyxHQUFXLGVBQWUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sWUFBWTtJQUNmLGNBQWMsR0FBOEIsSUFBSSxDQUFDO0lBQ2pELHFCQUFxQixHQUFXLElBQUksQ0FBQztJQUNyQyxpQkFBaUIsR0FBVyxJQUFJLENBQUM7SUFDakMsV0FBVyxHQUFXLElBQUksQ0FBQztJQUMzQixXQUFXLEdBQVcsSUFBSSxDQUFDO0lBQzNCLFdBQVcsR0FBOEIsSUFBSSxDQUFDO0lBRXRELE1BQU0sQ0FBQyxRQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQ7SUFDQSxDQUFDO0lBS0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFpQjtRQUU5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM1RCxDQUFDO1FBRUQs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d0JBQ3BFLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUNoRSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMxRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUk7NEJBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDbEQsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIYXNodGFibGUsIE5TdHJpbmcsIGlzVW5kZWZpbmVkfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtKU09OX1V0aWxzLCBMb2dnZXIsIE1pc2MsIE1zZ0ludGVyZmFjZSwgU3RyVXRpbCwgWE1MQ29uc3RhbnRzLCBYbWxQYXJzZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yTWFuYWdlcn0gZnJvbSBcIi4uL0NvbW1hbmRzUHJvY2Vzc29yTWFuYWdlclwiO1xyXG5pbXBvcnQge0lMYW5ndWFnZURhdGF9IGZyb20gXCIuL0lMYW5ndWFnZURhdGFcIjtcclxuaW1wb3J0IHtDbGllbnRNYW5hZ2VyfSBmcm9tIFwiLi4vQ2xpZW50TWFuYWdlclwiO1xyXG5cclxuY29uc3QgTUxTX0VPRl9DSEFSU19UT19SRUFEOiBudW1iZXIgPSAxMDtcclxuY29uc3QgU1RBUlRfVEFHOiBzdHJpbmcgPSBcIjxFcnJvckNvZGVzPlwiO1xyXG5jb25zdCBFTkRfVEFHOiBzdHJpbmcgPSBcIjwvRXJyb3JDb2Rlcz5cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZURhdGEgaW1wbGVtZW50cyBJTGFuZ3VhZ2VEYXRhIHtcclxuICBwcml2YXRlIF9jb25zdE1lc3NhZ2VzOiBIYXNodGFibGU8c3RyaW5nLCBzdHJpbmc+ID0gbnVsbDtcclxuICBwcml2YXRlIF9jb25zdE1lc3NhZ2VzQ29udGVudDogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9jb25zdE1lc3NhZ2VzVXJsOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX21sc0NvbnRlbnQ6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWxzRmlsZVVybDogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9tbHNTdHJpbmdzOiBIYXNodGFibGU8c3RyaW5nLCBzdHJpbmc+ID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBMYW5ndWFnZURhdGEgPSBuZXcgTGFuZ3VhZ2VEYXRhKCk7XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgVG8gcmV0cmlldmUgdGhlIGNvbnRlbnQgb2YgdGhlICdsYW5ndWFnZScgZWxlbWVudCA8bGFuZ3VhZ2U+Li4uLi48L2xhbmd1YWdlPlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlciwgcGFyc2VyLmdldE5leHRUYWcoKSkpIHtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLkluaXRDb25zdE1lc3NhZ2VzVGFibGUoKTtcclxuICAgIGF3YWl0IHRoaXMuZmlsbE1sc01lc3NhZ2VzVGFibGUoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBUbyBleHRyYWN0IHRoZSB1cmwgb2YgdGhlIGNvbnN0IG1lc3NhZ2VzIGZyb20gdGhlIHhtbCBmcm9tIDxsYW5ndWFnZT48Y29uc3RtZXNzYWdlcz4qKio8L2NvbnN0bWVzc2FnZXM+PC9sYW5ndWFnZT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm91bmRUYWdOYW1lXCI+cG9zc2libGUgdGFnIG5hbWUsIG5hbWUgb2Ygb2JqZWN0LCB3aGljaCBuZWVkIGJlIGFsbG9jYXRlZDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBpbml0SW5uZXJPYmplY3RzKHBhcnNlcjogWG1sUGFyc2VyLCBmb3VuZFRhZ05hbWU6IFN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PSBudWxsKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgc3dpdGNoIChmb3VuZFRhZ05hbWUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfTEFOR1VBR0U6XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSArIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfQ09OU1RNRVNTQUdFUzoge1xyXG4gICAgICAgIGxldCBlbmRVcmxWYWx1ZTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICAgICAgZW5kVXJsVmFsdWUgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19PUEVOLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgICAgIHRoaXMuX2NvbnN0TWVzc2FnZXNVcmwgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZFVybFZhbHVlKTtcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZFVybFZhbHVlKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NPTlNUTUVTU0FHRVNDT05URU5UOiB7XHJcbiAgICAgICAgbGV0IGVuZFVybFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgKyAxKTtcclxuICAgICAgICBlbmRVcmxWYWx1ZSA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19UQUdfQ09OU1RNRVNTQUdFU0NPTlRFTlQsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgLSAyO1xyXG4gICAgICAgIHRoaXMuX2NvbnN0TWVzc2FnZXNDb250ZW50ID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRVcmxWYWx1ZSk7XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRVcmxWYWx1ZSk7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19NTFNfQ09OVEVOVDoge1xyXG4gICAgICAgIGxldCBlbmRVcmxWYWx1ZTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICAgICAgZW5kVXJsVmFsdWUgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfVEFHX01MU19DT05URU5ULCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpIC0gMjtcclxuICAgICAgICB0aGlzLl9tbHNDb250ZW50ID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRVcmxWYWx1ZSk7XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRVcmxWYWx1ZSk7XHJcblxyXG4gICAgICAgIC8vIEEgbmV3IE1MUyBoYXMgYXJyaXZlZCwgaWYgbWxzU3RyaW5ncyBoYXMgdmFsdWVzLCBjbGVhbiBpdC5cclxuICAgICAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eSh0aGlzLl9tbHNDb250ZW50KSkge1xyXG4gICAgICAgICAgLy8gY2xlYXIgdGhlIGV4aXN0aW5nIG1scyAoaWYgaXQgZXhpc3RzKVxyXG4gICAgICAgICAgaWYgKHRoaXMuX21sc1N0cmluZ3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLkNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgbmV3IE1MUyBpcyBhbiBlbXB0eSBzdHJpbmcsIGNsZWFuIHRoZSBNTFMgZGF0YVxyXG4gICAgICAgIGlmIChOU3RyaW5nLklzTnVsbE9yRW1wdHkodGhpcy5fbWxzQ29udGVudCkgJiYgdGhpcy5fbWxzQ29udGVudCAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLl9tbHNDb250ZW50ID0gbnVsbDtcclxuICAgICAgICAgIGlmICh0aGlzLl9tbHNTdHJpbmdzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWxzU3RyaW5ncy5DbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzID0gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19NTFNfRklMRV9VUkw6IHtcclxuICAgICAgICBsZXQgZW5kVXJsVmFsdWU6IG51bWJlcjtcclxuXHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSArIDEpO1xyXG4gICAgICAgIGVuZFVybFZhbHVlID0gcGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfT1BFTiwgcGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuICAgICAgICB0aGlzLl9tbHNGaWxlVXJsID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRVcmxWYWx1ZSkudHJpbSgpO1xyXG5cclxuICAgICAgICAvLyBBIG5ldyBNTFMgaGFzIGFycml2ZWQsIGlmIG1sc1N0cmluZ3MgaGFzIHZhbHVlcywgY2xlYW4gaXQuXHJcbiAgICAgICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkodGhpcy5fbWxzRmlsZVVybCkpIHtcclxuICAgICAgICAgIC8vIGNsZWFyIHRoZSBleGlzdGluZyBtbHMgKGlmIGl0IGV4aXN0cylcclxuICAgICAgICAgIGlmICh0aGlzLl9tbHNTdHJpbmdzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWxzU3RyaW5ncy5DbGVhcigpO1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzID0gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgbmV3IE1MUyBpcyBhbiBlbXB0eSBzdHJpbmcsIGNsZWFuIHRoZSBNTFMgZGF0YVxyXG4gICAgICAgIGVsc2UgaWYgKE5TdHJpbmcuSXNOdWxsT3JFbXB0eSh0aGlzLl9tbHNGaWxlVXJsKSAmJiB0aGlzLl9tbHNGaWxlVXJsICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuX21sc0ZpbGVVcmwgPSBudWxsO1xyXG4gICAgICAgICAgaWYgKHRoaXMuX21sc1N0cmluZ3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLkNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBudWxsO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgoZW5kVXJsVmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19DT05TVE1FU1NBR0VTX0VORDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfTUxTX0ZJTEVfVVJMX0VORDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfQ09OU1RNRVNTQUdFU0NPTlRFTlRfRU5EOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19NTFNfQ09OVEVOVF9FTkQ6XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfTEFOR1VBR0VfRU5EOlxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgyRW5kT2ZUYWcoKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcIlRoZXJlIGlzIG5vIHN1Y2ggdGFnIGluIExhbmd1YWdlRGF0YS5pbml0SW5uZXJPYmplY3RzKCk6IFwiICsgZm91bmRUYWdOYW1lKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IFJldHVybnMgdGhlIGNvbnN0IG1zZyBieSBtc2dJZC4gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1zZ0lkXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGdldENvbnN0TWVzc2FnZShtc2dJZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vIE1hcCBkZWZhdWx0IG1lc3NhZ2UgSUQgdG8gY29ycmVzcG9uZGluZyBtZXNzYWdlIHN0cmluZy5cclxuICAgIGlmICh0aGlzLl9jb25zdE1lc3NhZ2VzID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2NvbnN0TWVzc2FnZXMgPSBuZXcgSGFzaHRhYmxlPHN0cmluZywgc3RyaW5nPigpO1xyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDw9IE1zZ0ludGVyZmFjZS5EZWZhdWx0TWVzc2FnZXMubGVuZ3RoIC0gMTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgdGhpcy5fY29uc3RNZXNzYWdlcy5zZXRfSXRlbShNc2dJbnRlcmZhY2UuRGVmYXVsdE1lc3NhZ2VzW2ldLk1zZ0lELCBNc2dJbnRlcmZhY2UuRGVmYXVsdE1lc3NhZ2VzW2ldLk1zZ1N0cmluZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gPHN0cmluZz50aGlzLl9jb25zdE1lc3NhZ2VzLmdldF9JdGVtKG1zZ0lkKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gSW5pdGlhbGl6ZSB0aGUgY29uc3QgbXNnIHRhYmxlIGZyb20gZWl0aGVyIHRoZSBVUkwgb3IgdGhlIFhNTCBjb250ZW50cy4gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgYXN5bmMgSW5pdENvbnN0TWVzc2FnZXNUYWJsZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBtc2dzSW5Db21tZW50U3RyaW5nOiBTdHJpbmcgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5fY29uc3RNZXNzYWdlc1VybCAhPSBudWxsIHx8IHRoaXMuX2NvbnN0TWVzc2FnZXNDb250ZW50ICE9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5fY29uc3RNZXNzYWdlc1VybCAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBnZXQgdGhlIGNvbnRlbnQgZnJvbSB0aGUgc2VydmVyXHJcbiAgICAgICAgICAgIG1zZ3NJbkNvbW1lbnRTdHJpbmcgPSBhd2FpdCBDb21tYW5kc1Byb2Nlc3Nvck1hbmFnZXIuR2V0Q29udGVudCh0aGlzLl9jb25zdE1lc3NhZ2VzVXJsLCB0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKE5TdHJpbmcuRm9ybWF0KFwiVW5rbm93biBtZXNzYWdlIGZpbGU6IFxcXCJ7MH1cXFwiXCIsIHRoaXMuX2NvbnN0TWVzc2FnZXNVcmwpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAvLyBObyBjYWNoZSAtIHdlIGhhdmUgYWxsIHRoZSBkYXRhIGhlcmVcclxuICAgICAgICAgIG1zZ3NJbkNvbW1lbnRTdHJpbmcgPSB0aGlzLl9jb25zdE1lc3NhZ2VzQ29udGVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtc2dzSW5Db21tZW50U3RyaW5nICE9IG51bGwpIHtcclxuICAgICAgICAgIC8vIGlnbm9yZSB0aGUgY29tbWVudCB3cmFwcGVyXHJcbiAgICAgICAgICBsZXQgc3RhcnREYXRhOiBudW1iZXIgPSBtc2dzSW5Db21tZW50U3RyaW5nLmluZGV4T2YoU1RBUlRfVEFHKTtcclxuICAgICAgICAgIGxldCBlbmREYXRhOiBudW1iZXIgPSBtc2dzSW5Db21tZW50U3RyaW5nLmluZGV4T2YoRU5EX1RBRykgKyBFTkRfVEFHLmxlbmd0aDtcclxuICAgICAgICAgIGxldCByZXRyaWV2ZWRDb25zdE1lc3NhZ2VzOiBzdHJpbmcgPSBtc2dzSW5Db21tZW50U3RyaW5nLnN1YnN0cihzdGFydERhdGEsIChlbmREYXRhKSAtIChzdGFydERhdGEpKTtcclxuXHJcbiAgICAgICAgICAvLyBwYXJzZSAnY29uc3RNZXNzYWdlcycgaW50byAnbGFuZ3VhZ2VNZXNzYWdlcydcclxuICAgICAgICAgIHRoaXMuZmlsbENvbnN0TWVzc2FnZXNUYWJsZShyZXRyaWV2ZWRDb25zdE1lc3NhZ2VzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRGV2VG9Mb2coXCInY29uc3RNZXNzYWdlc1VybCcgYW5kICdjb25zdE1lc3NhZ2VzQ29udGVudCcgd2VyZSBub3QgaW5pdGlhbGl6ZWQuXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2coZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFJlYWQgdGhlIGNvbnN0IG1zZ3MgZnJvbSB0aGUgeG1sIGFuZCBmaWxsIHRoZSBjb25zdCBtc2cgdGFibGUuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnN0TWVzc2FnZXNcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgZmlsbENvbnN0TWVzc2FnZXNUYWJsZShjb25zdE1lc3NhZ2VzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChjb25zdE1lc3NhZ2VzICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fY29uc3RNZXNzYWdlcyA9IG5ldyBIYXNodGFibGUoKTtcclxuICAgICAgICBKU09OX1V0aWxzLkpTT05Gcm9tWE1MKGNvbnN0TWVzc2FnZXMsIHRoaXMuRmlsbENvbnN0TWVzc2FnZXNGcm9tSlNPTi5iaW5kKHRoaXMpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nKGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgRmlsbENvbnN0TWVzc2FnZXNGcm9tSlNPTihlcnJvciwgcmVzdWx0KTogdm9pZCB7XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgd2FzIGFuIGVycm9yIGluIHBhcnNpbmcgdGhlIFhNTCxcclxuICAgIGlmIChlcnJvciAhPSBudWxsKSB7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBlcnJvck1lc3NhZ2VzID0gcmVzdWx0WydFcnJvckNvZGVzJ11bJ0Vycm9yTWVzc2FnZSddO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXJyb3JNZXNzYWdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZXJyb3JJZCA9IGVycm9yTWVzc2FnZXNbaV1bJyQnXVsnaWQnXTtcclxuICAgICAgbGV0IGVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZXNbaV1bJ18nXTtcclxuXHJcbiAgICAgIHRoaXMuX2NvbnN0TWVzc2FnZXMuc2V0X0l0ZW0oZXJyb3JJZCwgKGlzVW5kZWZpbmVkKGVycm9yTWVzc2FnZSkgPyBcIlwiIDogZXJyb3JNZXNzYWdlLnRyaW0oKSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFJldHVybiB0aGUgdHJhbnNsYXRpb24gb24gdGhlIGZyb21TdHJpbmcuIElmIHRoZSBtbHNTdHJpbmdzXyB0YWJsZSBpcyBlbXB0eSwgcmVhZCBpdCBmcm9tIHRoZSBmaWxlIGEgYW5kIGZpbGwgaXQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZyb21TdHJpbmdcIj48L3BhcmFtPlxyXG4gIHRyYW5zbGF0ZShmcm9tU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRvU3RyaW5nOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLl9tbHNTdHJpbmdzID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmcm9tU3RyaW5nO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHRvU3RyaW5nID0gdGhpcy5fbWxzU3RyaW5ncy5nZXRfSXRlbShmcm9tU3RyaW5nKTtcclxuXHJcbiAgICAgIGlmICh0b1N0cmluZyA9PSBudWxsKVxyXG4gICAgICAgIHRvU3RyaW5nID0gZnJvbVN0cmluZztcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b1N0cmluZztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBGaWxsIHRoZSBtbHNTdHJpbmdzXyB0YWJsZS4gR2V0IHRoZSBmaWxlLCByZWFkIHRoZSBudW1iZXIgb2YgdHJhbnNsYXRpb24gZnJvbSBpdHMgbG9jYXRpb24gYXQgdGhlIGxhc3RcclxuICAvLy8gICBsaW5lIG9mIHRoZSBmaWxlLiBUaGVuIGxvb3Agb24gdGhlIGZpbGUgZnJvbSB0aGUgYmVnaW5uaW5nIGFuZCBmaWxsIHRoZSB0YWJsZS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGFzeW5jIGZpbGxNbHNNZXNzYWdlc1RhYmxlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuX21sc0NvbnRlbnQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9tbHNDb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGxldCBsaW5lUGFpcnM6IG51bWJlciA9IDA7XHJcbiAgICAgICAgICBsZXQgc3JjTGluZTogU3RyaW5nID0gdGhpcy5fbWxzQ29udGVudCArIDM7XHJcbiAgICAgICAgICBsZXQgdHJhbnNMaW5lOiBzdHJpbmc7XHJcbiAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzID0gbmV3IEhhc2h0YWJsZTxzdHJpbmcsIHN0cmluZz4oKTtcclxuICAgICAgICAgIC8vIHJlYWQgdGhlIGxhc3QgbGluZVxyXG4gICAgICAgICAgbGV0IGxpbmVzU3RyOiBTdHJpbmcgPSB0aGlzLl9tbHNDb250ZW50LnN1YnN0cih0aGlzLl9tbHNDb250ZW50Lmxlbmd0aCAtIE1MU19FT0ZfQ0hBUlNfVE9fUkVBRCwgOCk7XHJcbiAgICAgICAgICAvLyB0aGUgbnVtYmVyIG9mIHBhaXJzIGlzIGluIGhleCwgc28gY29udmVydCBpdCB0byBpbnQuXHJcbiAgICAgICAgICBsaW5lUGFpcnMgPSBwYXJzZUludChsaW5lc1N0ci50b1N0cmluZygpLCAxNik7XHJcbiAgICAgICAgICBsZXQgdG9rZW5zOiBTdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUoc3JjTGluZS50b1N0cmluZygpLCBcIlxcblwiKTtcclxuICAgICAgICAgIGZvciAobGV0IHBhaXJOdW06IG51bWJlciA9IDA7IHBhaXJOdW0gPCBsaW5lUGFpcnMgKiAyOyBwYWlyTnVtICs9IDIpIHtcclxuICAgICAgICAgICAgc3JjTGluZSA9IHRva2Vuc1twYWlyTnVtXS5zdWJzdHIoMCwgdG9rZW5zW3BhaXJOdW1dLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICB0cmFuc0xpbmUgPSB0b2tlbnNbcGFpck51bSArIDFdLnN1YnN0cigwLCB0b2tlbnNbcGFpck51bSArIDFdLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWxzU3RyaW5ncy5nZXRfSXRlbShzcmNMaW5lLnRvU3RyaW5nKCkpID09IG51bGwpXHJcbiAgICAgICAgICAgICAgdGhpcy5fbWxzU3RyaW5ncy5zZXRfSXRlbShzcmNMaW5lLnRvU3RyaW5nKCksIHRyYW5zTGluZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYodGhpcy5fbWxzRmlsZVVybCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYodGhpcy5fbWxzRmlsZVVybC5zdGFydHNXaXRoKFwiLi9cIikpXHJcbiAgICAgICAgICB0aGlzLl9tbHNGaWxlVXJsPSBOU3RyaW5nLlJlcGxhY2UodGhpcy5fbWxzRmlsZVVybCwgJy4vJywgIENsaWVudE1hbmFnZXIuR2V0QXNzZXRzVVJMKCkgKycvY2FjaGUvJyk7XHJcblxyXG4gICAgICAgIGxldCBjb250ZW50U3RyOiBzdHJpbmcgPSBhd2FpdCBDb21tYW5kc1Byb2Nlc3Nvck1hbmFnZXIuR2V0Q29udGVudCh0aGlzLl9tbHNGaWxlVXJsLCB0cnVlKTtcclxuICAgICAgICBsZXQgYnVmZmVyOiBTdHJpbmcgPSBjb250ZW50U3RyO1xyXG4gICAgICAgIGlmIChidWZmZXIgIT0gbnVsbCAmJiBidWZmZXIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbGV0IGNvbnRlbnRMZW46IG51bWJlciA9IGJ1ZmZlci5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzID0gbmV3IEhhc2h0YWJsZTxzdHJpbmcsIHN0cmluZz4oKTtcclxuICAgICAgICAgIC8vIHJlYWQgdGhlIGxhc3QgbGluZVxyXG4gICAgICAgICAgbGV0IGxpbmVzU3RyID0gYnVmZmVyLnN1YnN0cihjb250ZW50TGVuIC0gTUxTX0VPRl9DSEFSU19UT19SRUFELCA4KTtcclxuICAgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgcGFpcnMgaXMgaW4gaGV4LCBzbyBjb252ZXJ0IGl0IHRvIGludC5cclxuICAgICAgICAgIGxldCBsaW5lUGFpcnMgPSBwYXJzZUludChsaW5lc1N0ciwgMTYpO1xyXG4gICAgICAgICAgLy8gbm93IGZyb20gdGhlIGJlZ2luaW5nIChza2lwcGluZyB0aGUgVVRGIEJPTSBieXRlcyksIGxvb3Agb24gdGhlIHBhaXJzIGFuZCBmaWxsIHRoZSBoYXNoIG1hcFxyXG4gICAgICAgICAgbGV0IHNyY0xpbmU6IHN0cmluZztcclxuICAgICAgICAgIGxldCB0cmFuc0xpbmU6IHN0cmluZztcclxuICAgICAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShidWZmZXIudG9TdHJpbmcoKSwgXCJcXG5cIik7XHJcbiAgICAgICAgICBmb3IgKGxldCBwYWlyTnVtOiBudW1iZXIgPSAwOyBwYWlyTnVtIDwgbGluZVBhaXJzICogMjsgcGFpck51bSArPSAyKSB7XHJcbiAgICAgICAgICAgIHNyY0xpbmUgPSB0b2tlbnNbcGFpck51bV0uc3Vic3RyKDAsIHRva2Vuc1twYWlyTnVtXS5sZW5ndGggLSAxKTtcclxuICAgICAgICAgICAgdHJhbnNMaW5lID0gdG9rZW5zW3BhaXJOdW0gKyAxXS5zdWJzdHIoMCwgdG9rZW5zW3BhaXJOdW0gKyAxXS5sZW5ndGggLSAxKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21sc1N0cmluZ3MuZ2V0X0l0ZW0oc3JjTGluZSkgPT0gbnVsbClcclxuICAgICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLnNldF9JdGVtKHNyY0xpbmUsIHRyYW5zTGluZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZyhlKTtcclxuICAgICAgTWlzYy5Xcml0ZVN0YWNrVHJhY2UoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFuZ3VhZ2VEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9lbnYvTGFuZ3VhZ2VEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzFHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsTUFBTSxxQkFBcUIsR0FBVyxFQUFFLENBQUM7QUFDekMsTUFBTSxTQUFTLEdBQVcsY0FBYyxDQUFDO0FBQ3pDLE1BQU0sT0FBTyxHQUFXLGVBQWUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sWUFBWTtJQUNmLGNBQWMsR0FBOEIsSUFBSSxDQUFDO0lBQ2pELHFCQUFxQixHQUFXLElBQUksQ0FBQztJQUNyQyxpQkFBaUIsR0FBVyxJQUFJLENBQUM7SUFDakMsV0FBVyxHQUFXLElBQUksQ0FBQztJQUMzQixXQUFXLEdBQVcsSUFBSSxDQUFDO0lBQzNCLFdBQVcsR0FBOEIsSUFBSSxDQUFDO0lBRXRELE1BQU0sQ0FBQyxRQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQ7SUFDQSxDQUFDO0lBS0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFpQjtRQUU5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUU7U0FDMUQ7UUFFRCxNQUFNLElBQUks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QUNqRDtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLENBQUMsRUFBRTtZQUNSLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0hhc2h0YWJsZSwgTlN0cmluZywgaXNVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0pTT05fVXRpbHMsIExvZ2dlciwgTWlzYywgTXNnSW50ZXJmYWNlLCBTdHJVdGlsLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7Q29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyfSBmcm9tIFwiLi4vQ29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlRGF0YX0gZnJvbSBcIi4vSUxhbmd1YWdlRGF0YVwiO1xyXG5pbXBvcnQge0NsaWVudE1hbmFnZXJ9IGZyb20gXCIuLi9DbGllbnRNYW5hZ2VyXCI7XHJcblxyXG5jb25zdCBNTFNfRU9GX0NIQVJTX1RPX1JFQUQ6IG51bWJlciA9IDEwO1xyXG5jb25zdCBTVEFSVF9UQUc6IHN0cmluZyA9IFwiPEVycm9yQ29kZXM+XCI7XHJcbmNvbnN0IEVORF9UQUc6IHN0cmluZyA9IFwiPC9FcnJvckNvZGVzPlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExhbmd1YWdlRGF0YSBpbXBsZW1lbnRzIElMYW5ndWFnZURhdGEge1xyXG4gIHByaXZhdGUgX2NvbnN0TWVzc2FnZXM6IEhhc2h0YWJsZTxzdHJpbmcsIHN0cmluZz4gPSBudWxsO1xyXG4gIHByaXZhdGUgX2NvbnN0TWVzc2FnZXNDb250ZW50OiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX2NvbnN0TWVzc2FnZXNVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWxzQ29udGVudDogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9tbHNGaWxlVXJsOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX21sc1N0cmluZ3M6IEhhc2h0YWJsZTxzdHJpbmcsIHN0cmluZz4gPSBudWxsO1xyXG5cclxuICBzdGF0aWMgSW5zdGFuY2U6IExhbmd1YWdlRGF0YSA9IG5ldyBMYW5ndWFnZURhdGEoKTtcclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBUbyByZXRyaWV2ZSB0aGUgY29udGVudCBvZiB0aGUgJ2xhbmd1YWdlJyBlbGVtZW50IDxsYW5ndWFnZT4uLi4uLjwvbGFuZ3VhZ2U+XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBmaWxsRGF0YShwYXJzZXI6IFhtbFBhcnNlcik6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHdoaWxlICh0aGlzLmluaXRJbm5lck9iamVjdHMocGFyc2VyLCBwYXJzZXIuZ2V0TmV4dFRhZygpKSkge1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuSW5pdENvbnN0TWVzc2FnZXNUYWJsZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5maWxsTWxzTWVzc2FnZXNUYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFRvIGV4dHJhY3QgdGhlIHVybCBvZiB0aGUgY29uc3QgbWVzc2FnZXMgZnJvbSB0aGUgeG1sIGZyb20gPGxhbmd1YWdlPjxjb25zdG1lc3NhZ2VzPioqKjwvY29uc3RtZXNzYWdlcz48L2xhbmd1YWdlPlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJmb3VuZFRhZ05hbWVcIj5wb3NzaWJsZSB0YWcgbmFtZSwgbmFtZSBvZiBvYmplY3QsIHdoaWNoIG5lZWQgYmUgYWxsb2NhdGVkPC9wYXJhbT5cclxuICBwcml2YXRlIGluaXRJbm5lck9iamVjdHMocGFyc2VyOiBYbWxQYXJzZXIsIGZvdW5kVGFnTmFtZTogU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGZvdW5kVGFnTmFtZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19MQU5HVUFHRTpcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19DT05TVE1FU1NBR0VTOiB7XHJcbiAgICAgICAgbGV0IGVuZFVybFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgKyAxKTtcclxuICAgICAgICBlbmRVcmxWYWx1ZSA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX09QRU4sIHBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICAgICAgdGhpcy5fY29uc3RNZXNzYWdlc1VybCA9IHBhcnNlci5nZXRYTUxzdWJzdHJpbmcoZW5kVXJsVmFsdWUpO1xyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgoZW5kVXJsVmFsdWUpO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19UQUdfQ09OU1RNRVNTQUdFU0NPTlRFTlQ6IHtcclxuICAgICAgICBsZXQgZW5kVXJsVmFsdWU6IG51bWJlcjtcclxuXHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19DTE9TRSwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSArIDEpO1xyXG4gICAgICAgIGVuZFVybFZhbHVlID0gcGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX1RBR19DT05TVE1FU1NBR0VTQ09OVEVOVCwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSAtIDI7XHJcbiAgICAgICAgdGhpcy5fY29uc3RNZXNzYWdlc0NvbnRlbnQgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZFVybFZhbHVlKTtcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZFVybFZhbHVlKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX01MU19DT05URU5UOiB7XHJcbiAgICAgICAgbGV0IGVuZFVybFZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgICAgIHBhcnNlci5zZXRDdXJySW5kZXgocGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgKyAxKTtcclxuICAgICAgICBlbmRVcmxWYWx1ZSA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19UQUdfTUxTX0NPTlRFTlQsIHBhcnNlci5nZXRDdXJySW5kZXgoKSkgLSAyO1xyXG4gICAgICAgIHRoaXMuX21sc0NvbnRlbnQgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZFVybFZhbHVlKTtcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KGVuZFVybFZhbHVlKTtcclxuXHJcbiAgICAgICAgLy8gQSBuZXcgTUxTIGhhcyBhcnJpdmVkLCBpZiBtbHNTdHJpbmdzIGhhcyB2YWx1ZXMsIGNsZWFuIGl0LlxyXG4gICAgICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KHRoaXMuX21sc0NvbnRlbnQpKSB7XHJcbiAgICAgICAgICAvLyBjbGVhciB0aGUgZXhpc3RpbmcgbWxzIChpZiBpdCBleGlzdHMpXHJcbiAgICAgICAgICBpZiAodGhpcy5fbWxzU3RyaW5ncyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MuQ2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fbWxzU3RyaW5ncyA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiBuZXcgTUxTIGlzIGFuIGVtcHR5IHN0cmluZywgY2xlYW4gdGhlIE1MUyBkYXRhXHJcbiAgICAgICAgaWYgKE5TdHJpbmcuSXNOdWxsT3JFbXB0eSh0aGlzLl9tbHNDb250ZW50KSAmJiB0aGlzLl9tbHNDb250ZW50ICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuX21sc0NvbnRlbnQgPSBudWxsO1xyXG4gICAgICAgICAgaWYgKHRoaXMuX21sc1N0cmluZ3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLkNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX01MU19GSUxFX1VSTDoge1xyXG4gICAgICAgIGxldCBlbmRVcmxWYWx1ZTogbnVtYmVyO1xyXG5cclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICsgMSk7XHJcbiAgICAgICAgZW5kVXJsVmFsdWUgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19PUEVOLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgICAgIHRoaXMuX21sc0ZpbGVVcmwgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZFVybFZhbHVlKS50cmltKCk7XHJcblxyXG4gICAgICAgIC8vIEEgbmV3IE1MUyBoYXMgYXJyaXZlZCwgaWYgbWxzU3RyaW5ncyBoYXMgdmFsdWVzLCBjbGVhbiBpdC5cclxuICAgICAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eSh0aGlzLl9tbHNGaWxlVXJsKSkge1xyXG4gICAgICAgICAgLy8gY2xlYXIgdGhlIGV4aXN0aW5nIG1scyAoaWYgaXQgZXhpc3RzKVxyXG4gICAgICAgICAgaWYgKHRoaXMuX21sc1N0cmluZ3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLkNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiBuZXcgTUxTIGlzIGFuIGVtcHR5IHN0cmluZywgY2xlYW4gdGhlIE1MUyBkYXRhXHJcbiAgICAgICAgZWxzZSBpZiAoTlN0cmluZy5Jc051bGxPckVtcHR5KHRoaXMuX21sc0ZpbGVVcmwpICYmIHRoaXMuX21sc0ZpbGVVcmwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5fbWxzRmlsZVVybCA9IG51bGw7XHJcbiAgICAgICAgICBpZiAodGhpcy5fbWxzU3RyaW5ncyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MuQ2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fbWxzU3RyaW5ncyA9IG51bGw7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRVcmxWYWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NPTlNUTUVTU0FHRVNfRU5EOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19NTFNfRklMRV9VUkxfRU5EOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19DT05TVE1FU1NBR0VTQ09OVEVOVF9FTkQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX01MU19DT05URU5UX0VORDpcclxuICAgICAgICBwYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX1RBR19MQU5HVUFHRV9FTkQ6XHJcbiAgICAgICAgcGFyc2VyLnNldEN1cnJJbmRleDJFbmRPZlRhZygpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiVGhlcmUgaXMgbm8gc3VjaCB0YWcgaW4gTGFuZ3VhZ2VEYXRhLmluaXRJbm5lck9iamVjdHMoKTogXCIgKyBmb3VuZFRhZ05hbWUpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUmV0dXJucyB0aGUgY29uc3QgbXNnIGJ5IG1zZ0lkLiA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibXNnSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0Q29uc3RNZXNzYWdlKG1zZ0lkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gTWFwIGRlZmF1bHQgbWVzc2FnZSBJRCB0byBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugc3RyaW5nLlxyXG4gICAgaWYgKHRoaXMuX2NvbnN0TWVzc2FnZXMgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fY29uc3RNZXNzYWdlcyA9IG5ldyBIYXNodGFibGU8c3RyaW5nLCBzdHJpbmc+KCk7XHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPD0gTXNnSW50ZXJmYWNlLkRlZmF1bHRNZXNzYWdlcy5sZW5ndGggLSAxOyBpID0gaSArIDEpIHtcclxuICAgICAgICB0aGlzLl9jb25zdE1lc3NhZ2VzLnNldF9JdGVtKE1zZ0ludGVyZmFjZS5EZWZhdWx0TWVzc2FnZXNbaV0uTXNnSUQsIE1zZ0ludGVyZmFjZS5EZWZhdWx0TWVzc2FnZXNbaV0uTXNnU3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiA8c3RyaW5nPnRoaXMuX2NvbnN0TWVzc2FnZXMuZ2V0X0l0ZW0obXNnSWQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBJbml0aWFsaXplIHRoZSBjb25zdCBtc2cgdGFibGUgZnJvbSBlaXRoZXIgdGhlIFVSTCBvciB0aGUgWE1MIGNvbnRlbnRzLiA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBhc3luYyBJbml0Q29uc3RNZXNzYWdlc1RhYmxlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG1zZ3NJbkNvbW1lbnRTdHJpbmc6IFN0cmluZyA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLl9jb25zdE1lc3NhZ2VzVXJsICE9IG51bGwgfHwgdGhpcy5fY29uc3RNZXNzYWdlc0NvbnRlbnQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9jb25zdE1lc3NhZ2VzVXJsICE9IG51bGwpIHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGdldCB0aGUgY29udGVudCBmcm9tIHRoZSBzZXJ2ZXJcclxuICAgICAgICAgICAgbXNnc0luQ29tbWVudFN0cmluZyA9IGF3YWl0IENvbW1hbmRzUHJvY2Vzc29yTWFuYWdlci5HZXRDb250ZW50KHRoaXMuX2NvbnN0TWVzc2FnZXNVcmwsIHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJVbmtub3duIG1lc3NhZ2UgZmlsZTogXFxcInswfVxcXCJcIiwgdGhpcy5fY29uc3RNZXNzYWdlc1VybCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIC8vIE5vIGNhY2hlIC0gd2UgaGF2ZSBhbGwgdGhlIGRhdGEgaGVyZVxyXG4gICAgICAgICAgbXNnc0luQ29tbWVudFN0cmluZyA9IHRoaXMuX2NvbnN0TWVzc2FnZXNDb250ZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1zZ3NJbkNvbW1lbnRTdHJpbmcgIT0gbnVsbCkge1xyXG4gICAgICAgICAgLy8gaWdub3JlIHRoZSBjb21tZW50IHdyYXBwZXJcclxuICAgICAgICAgIGxldCBzdGFydERhdGE6IG51bWJlciA9IG1zZ3NJbkNvbW1lbnRTdHJpbmcuaW5kZXhPZihTVEFSVF9UQUcpO1xyXG4gICAgICAgICAgbGV0IGVuZERhdGE6IG51bWJlciA9IG1zZ3NJbkNvbW1lbnRTdHJpbmcuaW5kZXhPZihFTkRfVEFHKSArIEVORF9UQUcubGVuZ3RoO1xyXG4gICAgICAgICAgbGV0IHJldHJpZXZlZENvbnN0TWVzc2FnZXM6IHN0cmluZyA9IG1zZ3NJbkNvbW1lbnRTdHJpbmcuc3Vic3RyKHN0YXJ0RGF0YSwgKGVuZERhdGEpIC0gKHN0YXJ0RGF0YSkpO1xyXG5cclxuICAgICAgICAgIC8vIHBhcnNlICdjb25zdE1lc3NhZ2VzJyBpbnRvICdsYW5ndWFnZU1lc3NhZ2VzJ1xyXG4gICAgICAgICAgdGhpcy5maWxsQ29uc3RNZXNzYWdlc1RhYmxlKHJldHJpZXZlZENvbnN0TWVzc2FnZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhcIidjb25zdE1lc3NhZ2VzVXJsJyBhbmQgJ2NvbnN0TWVzc2FnZXNDb250ZW50JyB3ZXJlIG5vdCBpbml0aWFsaXplZC5cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZyhleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUmVhZCB0aGUgY29uc3QgbXNncyBmcm9tIHRoZSB4bWwgYW5kIGZpbGwgdGhlIGNvbnN0IG1zZyB0YWJsZS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29uc3RNZXNzYWdlc1wiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBmaWxsQ29uc3RNZXNzYWdlc1RhYmxlKGNvbnN0TWVzc2FnZXM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGNvbnN0TWVzc2FnZXMgIT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9jb25zdE1lc3NhZ2VzID0gbmV3IEhhc2h0YWJsZSgpO1xyXG4gICAgICAgIEpTT05fVXRpbHMuSlNPTkZyb21YTUwoY29uc3RNZXNzYWdlcywgdGhpcy5GaWxsQ29uc3RNZXNzYWdlc0Zyb21KU09OLmJpbmQodGhpcykpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2coZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBGaWxsQ29uc3RNZXNzYWdlc0Zyb21KU09OKGVycm9yLCByZXN1bHQpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gcGFyc2luZyB0aGUgWE1MLFxyXG4gICAgaWYgKGVycm9yICE9IG51bGwpIHtcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGVycm9yTWVzc2FnZXMgPSByZXN1bHRbJ0Vycm9yQ29kZXMnXVsnRXJyb3JNZXNzYWdlJ107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlcnJvck1lc3NhZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlcnJvcklkID0gZXJyb3JNZXNzYWdlc1tpXVsnJCddWydpZCddO1xyXG4gICAgICBsZXQgZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlc1tpXVsnXyddO1xyXG5cclxuICAgICAgdGhpcy5fY29uc3RNZXNzYWdlcy5zZXRfSXRlbShlcnJvcklkLCAoaXNVbmRlZmluZWQoZXJyb3JNZXNzYWdlKSA/IFwiXCIgOiBlcnJvck1lc3NhZ2UudHJpbSgpKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUmV0dXJuIHRoZSB0cmFuc2xhdGlvbiBvbiB0aGUgZnJvbVN0cmluZy4gSWYgdGhlIG1sc1N0cmluZ3NfIHRhYmxlIGlzIGVtcHR5LCByZWFkIGl0IGZyb20gdGhlIGZpbGUgYSBhbmQgZmlsbCBpdC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZnJvbVN0cmluZ1wiPjwvcGFyYW0+XHJcbiAgdHJhbnNsYXRlKGZyb21TdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdG9TdHJpbmc6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuX21sc1N0cmluZ3MgPT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZyb21TdHJpbmc7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgdG9TdHJpbmcgPSB0aGlzLl9tbHNTdHJpbmdzLmdldF9JdGVtKGZyb21TdHJpbmcpO1xyXG5cclxuICAgICAgaWYgKHRvU3RyaW5nID09IG51bGwpXHJcbiAgICAgICAgdG9TdHJpbmcgPSBmcm9tU3RyaW5nO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvU3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZpbGwgdGhlIG1sc1N0cmluZ3NfIHRhYmxlLiBHZXQgdGhlIGZpbGUsIHJlYWQgdGhlIG51bWJlciBvZiB0cmFuc2xhdGlvbiBmcm9tIGl0cyBsb2NhdGlvbiBhdCB0aGUgbGFzdFxyXG4gIC8vLyAgIGxpbmUgb2YgdGhlIGZpbGUuIFRoZW4gbG9vcCBvbiB0aGUgZmlsZSBmcm9tIHRoZSBiZWdpbm5pbmcgYW5kIGZpbGwgdGhlIHRhYmxlLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgZmlsbE1sc01lc3NhZ2VzVGFibGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5fbWxzQ29udGVudCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21sc0NvbnRlbnQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbGV0IGxpbmVQYWlyczogbnVtYmVyID0gMDtcclxuICAgICAgICAgIGxldCBzcmNMaW5lOiBTdHJpbmcgPSB0aGlzLl9tbHNDb250ZW50ICsgMztcclxuICAgICAgICAgIGxldCB0cmFuc0xpbmU6IHN0cmluZztcclxuICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBuZXcgSGFzaHRhYmxlPHN0cmluZywgc3RyaW5nPigpO1xyXG4gICAgICAgICAgLy8gcmVhZCB0aGUgbGFzdCBsaW5lXHJcbiAgICAgICAgICBsZXQgbGluZXNTdHI6IFN0cmluZyA9IHRoaXMuX21sc0NvbnRlbnQuc3Vic3RyKHRoaXMuX21sc0NvbnRlbnQubGVuZ3RoIC0gTUxTX0VPRl9DSEFSU19UT19SRUFELCA4KTtcclxuICAgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgcGFpcnMgaXMgaW4gaGV4LCBzbyBjb252ZXJ0IGl0IHRvIGludC5cclxuICAgICAgICAgIGxpbmVQYWlycyA9IHBhcnNlSW50KGxpbmVzU3RyLnRvU3RyaW5nKCksIDE2KTtcclxuICAgICAgICAgIGxldCB0b2tlbnM6IFN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShzcmNMaW5lLnRvU3RyaW5nKCksIFwiXFxuXCIpO1xyXG4gICAgICAgICAgZm9yIChsZXQgcGFpck51bTogbnVtYmVyID0gMDsgcGFpck51bSA8IGxpbmVQYWlycyAqIDI7IHBhaXJOdW0gKz0gMikge1xyXG4gICAgICAgICAgICBzcmNMaW5lID0gdG9rZW5zW3BhaXJOdW1dLnN1YnN0cigwLCB0b2tlbnNbcGFpck51bV0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIHRyYW5zTGluZSA9IHRva2Vuc1twYWlyTnVtICsgMV0uc3Vic3RyKDAsIHRva2Vuc1twYWlyTnVtICsgMV0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tbHNTdHJpbmdzLmdldF9JdGVtKHNyY0xpbmUudG9TdHJpbmcoKSkgPT0gbnVsbClcclxuICAgICAgICAgICAgICB0aGlzLl9tbHNTdHJpbmdzLnNldF9JdGVtKHNyY0xpbmUudG9TdHJpbmcoKSwgdHJhbnNMaW5lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZih0aGlzLl9tbHNGaWxlVXJsICE9IG51bGwpIHtcclxuICAgICAgICBpZih0aGlzLl9tbHNGaWxlVXJsLnN0YXJ0c1dpdGgoXCIuL1wiKSlcclxuICAgICAgICAgIHRoaXMuX21sc0ZpbGVVcmw9IE5TdHJpbmcuUmVwbGFjZSh0aGlzLl9tbHNGaWxlVXJsLCAnLi8nLCAgQ2xpZW50TWFuYWdlci5HZXRBc3NldHNVUkwoKSArJy9jYWNoZS8nKTtcclxuXHJcbiAgICAgICAgbGV0IGNvbnRlbnRTdHI6IHN0cmluZyA9IGF3YWl0IENvbW1hbmRzUHJvY2Vzc29yTWFuYWdlci5HZXRDb250ZW50KHRoaXMuX21sc0ZpbGVVcmwsIHRydWUpO1xyXG4gICAgICAgIGxldCBidWZmZXI6IFN0cmluZyA9IGNvbnRlbnRTdHI7XHJcbiAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsICYmIGJ1ZmZlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBsZXQgY29udGVudExlbjogbnVtYmVyID0gYnVmZmVyLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3MgPSBuZXcgSGFzaHRhYmxlPHN0cmluZywgc3RyaW5nPigpO1xyXG4gICAgICAgICAgLy8gcmVhZCB0aGUgbGFzdCBsaW5lXHJcbiAgICAgICAgICBsZXQgbGluZXNTdHIgPSBidWZmZXIuc3Vic3RyKGNvbnRlbnRMZW4gLSBNTFNfRU9GX0NIQVJTX1RPX1JFQUQsIDgpO1xyXG4gICAgICAgICAgLy8gdGhlIG51bWJlciBvZiBwYWlycyBpcyBpbiBoZXgsIHNvIGNvbnZlcnQgaXQgdG8gaW50LlxyXG4gICAgICAgICAgbGV0IGxpbmVQYWlycyA9IHBhcnNlSW50KGxpbmVzU3RyLCAxNik7XHJcbiAgICAgICAgICAvLyBub3cgZnJvbSB0aGUgYmVnaW5pbmcgKHNraXBwaW5nIHRoZSBVVEYgQk9NIGJ5dGVzKSwgbG9vcCBvbiB0aGUgcGFpcnMgYW5kIGZpbGwgdGhlIGhhc2ggbWFwXHJcbiAgICAgICAgICBsZXQgc3JjTGluZTogc3RyaW5nO1xyXG4gICAgICAgICAgbGV0IHRyYW5zTGluZTogc3RyaW5nO1xyXG4gICAgICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJ1ZmZlci50b1N0cmluZygpLCBcIlxcblwiKTtcclxuICAgICAgICAgIGZvciAobGV0IHBhaXJOdW06IG51bWJlciA9IDA7IHBhaXJOdW0gPCBsaW5lUGFpcnMgKiAyOyBwYWlyTnVtICs9IDIpIHtcclxuICAgICAgICAgICAgc3JjTGluZSA9IHRva2Vuc1twYWlyTnVtXS5zdWJzdHIoMCwgdG9rZW5zW3BhaXJOdW1dLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICB0cmFuc0xpbmUgPSB0b2tlbnNbcGFpck51bSArIDFdLnN1YnN0cigwLCB0b2tlbnNbcGFpck51bSArIDFdLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWxzU3RyaW5ncy5nZXRfSXRlbShzcmNMaW5lKSA9PSBudWxsKVxyXG4gICAgICAgICAgICAgIHRoaXMuX21sc1N0cmluZ3Muc2V0X0l0ZW0oc3JjTGluZSwgdHJhbnNMaW5lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nKGUpO1xyXG4gICAgICBNaXNjLldyaXRlU3RhY2tUcmFjZShlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
@@ -62,4 +62,4 @@ export class MirrorString {
|
|
62
62
|
return this._reserved;
|
63
63
|
}
|
64
64
|
}
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlycm9yU3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9lbnYvTWlycm9yU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sWUFBWTtJQUNmLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsTUFBTSxHQUFXLElBQUksQ0FBQztJQUk5QixZQUFZLENBQVU7UUFDcEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBS08sYUFBYTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBS08sYUFBYSxDQUFDLENBQVM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUtELFdBQVc7UUFDVCxPQUFPLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3pGLENBQUM7SUFPTSxJQUFJLENBQUMsSUFBWSxFQUFFLFNBQW9CO1FBQzVDLElBQUksVUFBa0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUN6RCxJQUFJLE9BQU8sR0FBVyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsSUFBSSxTQUFTLEdBQVcsY0FBYyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVqRSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFHM0QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JCLFVBQVUsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQy9CLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFDM0csUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBRXZDLFFBQVEsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUM7Z0JBQzlFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBR2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZFLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN2QixZQUFZLElBQUksY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDbEQ7O2dCQUVDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBRXpCLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFHakMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDcEUsT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7O2dCQUUzQixPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztTQUNuQzthQUNJLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFHM0ksT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7U0FDaEM7YUFDSTtZQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBTUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBTUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lNaXJyb3JYTUx9IGZyb20gXCIuLi91dGlsL0lNaXJyb3JYTUxcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7UGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUGFyYW1QYXJzZVJlc3VsdFwiO1xyXG5pbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtEZWJ1ZywgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTWlycm9yU3RyaW5nIGltcGxlbWVudHMgSU1pcnJvclhNTCB7XHJcbiAgcHJpdmF0ZSBfcmVzZXJ2ZWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gSXMgdGhpcyB2YXJpYWJsZSByZXNlcnZlZCAtIGNhbiBub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlclxyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHM6IHN0cmluZyk7XHJcbiAgY29uc3RydWN0b3Iocz86IHN0cmluZykge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMShzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNlcnZlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMShzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gcztcclxuICAgIHRoaXMuX3Jlc2VydmVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgZm9yIHRoZSBYTUxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIG1pcnJvclRvWE1MKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyBYbWxQYXJzZXIuZXNjYXBlKHRoaXMuX3ZhbHVlKSArIFwiXFxcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluaXRpYWxpemUgdGhlIG9iamVjdCBmcm9tIHRoZSBYTUwgYXR0cmlidXRlcyBvZiBhIHNpbmdsZSBwYXJhbS4gVGhlIGV4cGVjdGVkXHJcbiAgLy8vICAgZm9ybWF0IGlzOiBcInZhbHVlPVwiLi4uXCIgcmVzZXJ2ZWQ9XCIuXCIvPlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ4bWxQYXJzZXJcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBpbml0KG5hbWU6IFN0cmluZywgeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiBQYXJhbVBhcnNlUmVzdWx0IHtcclxuICAgIGxldCB2YWx1ZVN0YXJ0OiBudW1iZXIsIHZhbHVlRW5kLCByZXNlcnZlU3RhcnQsIHBhcmFtRW5kO1xyXG4gICAgbGV0IHhtbERhdGE6IHN0cmluZyA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCk7XHJcbiAgICBsZXQgdmFsdWVBdHRyOiBzdHJpbmcgPSBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9WQUxVRSArIFwiPVxcXCJcIjtcclxuXHJcbiAgICBwYXJhbUVuZCA9IHhtbERhdGEuaW5kZXhPZihcIi8+XCIsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBvZmZzZXRzIGludG8gdGhlIFhNTCBkYXRhOiBzdGFydCBvZiB2YWx1ZSwgZW5kIG9mIHZhbHVlLCBsb2NhdGlvbiBvZiByZXNlcnZlZCBjaGFyXHJcbiAgICB2YWx1ZVN0YXJ0ID0gTlN0cmluZy5JbmRleE9mKHhtbERhdGEsIHZhbHVlQXR0ciwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICBpZiAodmFsdWVTdGFydCAhPT0gLTEpIHtcclxuICAgICAgdmFsdWVTdGFydCArPSB2YWx1ZUF0dHIubGVuZ3RoO1xyXG4gICAgICByZXNlcnZlU3RhcnQgPSBOU3RyaW5nLkluZGV4T2YoeG1sRGF0YSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVTRVJWRUQgKyBcIj1cXFwiXCIsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSxcclxuICAgICAgICBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcblxyXG4gICAgICB2YWx1ZUVuZCA9IHJlc2VydmVTdGFydCAhPT0gLTFcclxuICAgICAgICA/IHhtbERhdGEuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9SRVNFUlZFRCArIFwiPVxcXCJcIiwgdmFsdWVTdGFydCkgLSAyXHJcbiAgICAgICAgOiBwYXJhbUVuZCAtIDE7XHJcblxyXG4gICAgICAvLyBmaWxsIHRoZSBvYmplY3QncyBkYXRhXHJcbiAgICAgIHRoaXMuX3ZhbHVlID0geG1sRGF0YS5zdWJzdHIodmFsdWVTdGFydCwgdmFsdWVFbmQgLSB2YWx1ZVN0YXJ0KS50cmltKCk7XHJcbiAgICAgIGlmIChyZXNlcnZlU3RhcnQgIT09IC0xKSB7XHJcbiAgICAgICAgcmVzZXJ2ZVN0YXJ0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFU0VSVkVELmxlbmd0aCArIDI7IC8vIHNraXAgPSdcclxuICAgICAgICB0aGlzLl9yZXNlcnZlZCA9ICh4bWxEYXRhW3Jlc2VydmVTdGFydF0gPT09ICdZJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX3Jlc2VydmVkID0gZmFsc2U7XHJcblxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KHZhbHVlRW5kKTtcclxuXHJcbiAgICAgIC8vIExvZ2ljYWwgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBvdGhlcnMgdmFyaWFibGVzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHVwcGVyIGNhc2VcclxuICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9MT0dJQ0FMX05BTUVTX0JSQUNLRVRTKSlcclxuICAgICAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5PSztcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LlRPVVBQRVI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChOU3RyaW5nLkluZGV4T2YoeG1sRGF0YSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVNT1ZFRCwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgIT09IC0xKSB7XHJcblxyXG4gICAgICAvLyByZW1vdmUgdGhpcyB2YXJpYWJsZSBmcm9tIHRoZSB0YWJsZVxyXG4gICAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5ERUxFVEU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgRGVidWcuQXNzZXJ0KGZhbHNlLCBcImJhZCBYTUwgcGFyc2luZ1wiKTtcclxuICAgICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuRkFJTEVEO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIFRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaXMgdGhlIHZhcmlhYmxlIHJlc2VydmVkP1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc1Jlc2VydmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc2VydmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -88,4 +88,4 @@ export class ActionManager {
|
|
88
88
|
this.enableList(ActionManager.actNavigation, enable, false);
|
89
89
|
}
|
90
90
|
}
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aW9uTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvZXZlbnQvQWN0aW9uTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixNQUFNLENBQUMsVUFBVSxHQUFhO1FBQzVCLGlCQUFpQixDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxXQUFXO1FBQzdELGlCQUFpQixDQUFDLGlCQUFpQjtRQUNuQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsU0FBUztRQUMvRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQy9CLGlCQUFpQixDQUFDLGlCQUFpQjtRQUNuQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsa0JBQWtCO1FBQ3BDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUNwQyxpQkFBaUIsQ0FBQyxrQkFBa0I7UUFDcEMsaUJBQWlCLENBQUMsZUFBZTtRQUNqQyxpQkFBaUIsQ0FBQyxlQUFlO1FBQ2pDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUNwQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsWUFBWTtRQUM5QixpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtRQUMvRCxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDdEMsaUJBQWlCLENBQUMsZ0JBQWdCO1FBQ2xDLGlCQUFpQixDQUFDLHdCQUF3QjtRQUMxQyxpQkFBaUIsQ0FBQyx3QkFBd0I7UUFDMUMsaUJBQWlCLENBQUMsc0JBQXNCO1FBQ3hDLGlCQUFpQixDQUFDLGNBQWM7UUFDaEMsaUJBQWlCLENBQUMseUJBQXlCO1FBQzNDLGlCQUFpQixDQUFDLHNCQUFzQjtRQUN4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SUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBTUQsdUJBQXVCLENBQUMsTUFBZTtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcm5hbEludGVyZmFjZSB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBJQWN0aW9uTWFuYWdlciB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25NYW5hZ2VyIGltcGxlbWVudHMgSUFjdGlvbk1hbmFnZXIge1xyXG4gIHN0YXRpYyBhY3RFbmFibGVkOiBudW1iZXJbXSA9IFtcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DTE9TRSwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0VYSVQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUlRPX01PRElGWSxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVE9fQ1JFQVRFLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1JUT19RVUVSWSwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX09LLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NBTkNFTCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfUFJWRkxELFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9OWFRGTEQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0JFR0xJTkUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0VORExJTkUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0JFR1BBR0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEFCX05FWFQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEFCX1BSRVYsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0VORFBBR0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVVNJTkdfSEVMUCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9BQk9VVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DVFJMX0hJVCwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0hJVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9XRUJfT05fREJMSUNLLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1dFQl9DTElDSyxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1JFQ09SRCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1NDUkVFTixcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1ZJRVcsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUlRfUVVJVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9TRVJWRVJfVEVSTUlOQVRJT04sXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU1VCRk9STV9SRUZSRVNILFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1NVQkZPUk1fQ0xPU0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfRVhJVF9TWVNURU0sXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU1VCRk9STV9PUEVOLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NPTF9TT1JULFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NUUkxfTU9ESUZZLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1JPTExCQUNLLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0VYVF9FVkVOVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DT0xfQ0xJQ0ssXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUFJFU1MsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfRU5BQkxFX0VWRU5UUyxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DT0xfRklMVEVSLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0lOREVYX0NIQU5HRSxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9XRUJDTElFTlRfUk9VVEUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU0VUX0VYVEVSTkFMX1ZBTFVFLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0ZFVENIX1JFQ09SRFNfQUhFQURfRlJPTV9TRVJWRVIsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ09OVEVYVF9SRU1PVkVcclxuICBdO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBhY3ROYXZpZ2F0aW9uOiBudW1iZXJbXSA9IFtcclxuICAgICAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX1BSVkxJTkUsXHJcbiAgICAgICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9QUlZQQUdFLFxyXG4gICAgICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfQkVHVEJMLFxyXG4gICAgICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfTlhUTElORSxcclxuICAgICAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX05YVFBBR0UsXHJcbiAgICAgICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9FTkRUQkxcclxuICAgIF07XHJcblxyXG5cclxuICBwcml2YXRlIF9hY3RDb3VudDogbnVtYmVyW10gPSBudWxsOyAvLyB0byBrbm93IHdoaWNoIGFjdGlvbiB3YXMgbGFzdCBlbmFibGVkXHJcbiAgcHJpdmF0ZSBfYWN0U3RhdGU6IGJvb2xlYW5bXSA9IG51bGw7IC8vIGFjdGlvbiBzdGF0ZSBhcnJheSBmb3IgYWxsIDUyNiBhY3Rpb25zXHJcbiAgcHJpdmF0ZSBfbnVtZXJhdG9yOiBudW1iZXIgPSAwOyAvLyBnZW5lcmF0b3IgZm9yIGFjdENvdW50XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIHRoaXMuX251bWVyYXRvciA9IDA7XHJcblxyXG4gICAgdGhpcy5fYWN0U3RhdGUgPSBuZXcgQXJyYXk8Ym9vbGVhbj4oSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RPVF9DTlQpO1xyXG4gICAgZm9yIChsZXQgX2FpOiBudW1iZXIgPSAwOyBfYWkgPCB0aGlzLl9hY3RTdGF0ZS5sZW5ndGg7ICsrX2FpKVxyXG4gICAgICB0aGlzLl9hY3RTdGF0ZVtfYWldID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fYWN0Q291bnQgPSBuZXcgQXJyYXk8bnVtYmVyPihJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVE9UX0NOVCk7XHJcbiAgICBmb3IgKGxldCBfYWk6IG51bWJlciA9IDA7IF9haSA8IHRoaXMuX2FjdENvdW50Lmxlbmd0aDsgKytfYWkpXHJcbiAgICAgIHRoaXMuX2FjdENvdW50W19haV0gPSAwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgYWN0aW9uIGVuYWJsZWQgb3IgZGlzYWJsZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImVuYWJsZVwiPjwvcGFyYW0+XHJcbiAgZW5hYmxlKGFjdDogbnVtYmVyLCBlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2FjdFN0YXRlW2FjdF0gPSBlbmFibGU7XHJcblxyXG4gICAgaWYgKGVuYWJsZSkge1xyXG4gICAgICB0aGlzLl9udW1lcmF0b3IrKztcclxuICAgICAgdGhpcy5fYWN0Q291bnRbYWN0XSA9IHRoaXMuX251bWVyYXRvcjtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFjdFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIHRoZSBhY3Rpb24gaXMgZW5hYmxlZCBvciBmYWxzZSBpZiBpdCBpcyBub3Q8L3JldHVybnM+XHJcbiAgaXNFbmFibGVkKGFjdDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0U3RhdGVbYWN0XTtcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGFjdENvdW50IGZvciB0aGUgc3BlY2lmaWMgYWN0aW9uPC9yZXR1cm5zPlxyXG4gIGdldEFjdENvdW50KGFjdDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RDb3VudFthY3RdO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgYWN0aW9uIGxpc3QgZW5hYmxlZCBvciBkaXNhYmxlZC5cclxuICAvLy8gICBvbmx5SWZDaGFuZ2VkIHdhcyBhZGRlZCBpbiBvcmRlciB0byBhdm9pZCBtYW55IHVwZGF0ZXMgdG8gbWVudXMgKGxpa2UgaW4gY3V0L2NvcHkpLFxyXG4gIC8vLyAgIGVzcGVjaWFsbHkgd2hlbiB0aGUgcmVxdWVzdCBjb21lcyBhcyBhbiBpbnRlcm5hbCBhY3QgZnJvbSB0aGUgZ3VpIHRocmVhZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+YXJyYXkgb2YgYWN0aW9uczwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJlbmFibGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib25seUlmQ2hhbmdlZFwiPjogY2FsbCBlbmFibGUgb25seSBpZiB0aGUgc3RhdGUgaGFzIGNoYW5nZWQuPC9wYXJhbT5cclxuICBlbmFibGVMaXN0KGFjdDogbnVtYmVyW10sIGVuYWJsZTogYm9vbGVhbiwgb25seUlmQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGFjdC5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgbnVtOiBudW1iZXIgPSBhY3RbaV07XHJcbiAgICAgIGxldCBmbGFnOiBib29sZWFuID0gIW9ubHlJZkNoYW5nZWQgfHwgdGhpcy5fYWN0U3RhdGVbbnVtXSAhPT0gZW5hYmxlO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIHRoaXMuZW5hYmxlKG51bSwgZW5hYmxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGVuYWJsZSBvciBkaXNhYmxlIGFjdGlvbnMgZm9yIG5hdmlnYXRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZW5hYmxlXCI+PC9wYXJhbT5cclxuICBlbmFibGVOYXZpZ2F0aW9uQWN0aW9ucyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZW5hYmxlTGlzdChBY3Rpb25NYW5hZ2VyLmFjdE5hdmlnYXRpb24sIGVuYWJsZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aW9uTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvZXZlbnQvQWN0aW9uTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixNQUFNLENBQUMsVUFBVSxHQUFhO1FBQzVCLGlCQUFpQixDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxXQUFXO1FBQzdELGlCQUFpQixDQUFDLGlCQUFpQjtRQUNuQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsU0FBUztRQUMvRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQy9CLGlCQUFpQixDQUFDLGlCQUFpQjtRQUNuQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsa0JBQWtCO1FBQ3BDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUNwQyxpQkFBaUIsQ0FBQyxrQkFBa0I7UUFDcEMsaUJBQWlCLENBQUMsZUFBZTtRQUNqQyxpQkFBaUIsQ0FBQyxlQUFlO1FBQ2pDLGlCQUFpQixDQUFDLGtCQUFrQjtRQUNwQyxpQkFBaUIsQ0FBQyxpQkFBaUI7UUFDbkMsaUJBQWlCLENBQUMsWUFBWTtRQUM5QixpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtRQUMvRCxpQkFBaUIsQ0FBQyxvQkFBb0I7UUFDdEMsaUJBQWlCLENBQUMsZ0JBQWdCO1FBQ2xDLGlCQUFpQixDQUFDLHdCQUF3QjtRQUMxQyxpQkFBaUIsQ0FBQyx3QkFBd0I7UUFDMUMsaUJBQWlCLENBQUMsc0JBQXNCO1FBQ3hDLGlCQUFpQixDQUFDLGNBQWM7UUFDaEMsaUJBQWlCLENBQUMseUJBQXlCO1FBQzNDLGlCQUFpQixDQUFDLHNCQUFzQjtRQUN4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R0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7SUFDSCxDQUFDO0lBTUQsdUJBQXVCLENBQUMsTUFBZTtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcm5hbEludGVyZmFjZSB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBJQWN0aW9uTWFuYWdlciB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25NYW5hZ2VyIGltcGxlbWVudHMgSUFjdGlvbk1hbmFnZXIge1xyXG4gIHN0YXRpYyBhY3RFbmFibGVkOiBudW1iZXJbXSA9IFtcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DTE9TRSwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0VYSVQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUlRPX01PRElGWSxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVE9fQ1JFQVRFLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1JUT19RVUVSWSwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX09LLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NBTkNFTCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfUFJWRkxELFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9OWFRGTEQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0JFR0xJTkUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0VORExJTkUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0JFR1BBR0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEFCX05FWFQsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEFCX1BSRVYsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX0VORFBBR0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVVNJTkdfSEVMUCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9BQk9VVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DVFJMX0hJVCwgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0hJVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9XRUJfT05fREJMSUNLLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1dFQl9DTElDSyxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1JFQ09SRCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1NDUkVFTixcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1ZJRVcsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUlRfUVVJVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9TRVJWRVJfVEVSTUlOQVRJT04sXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU1VCRk9STV9SRUZSRVNILFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1NVQkZPUk1fQ0xPU0UsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfRVhJVF9TWVNURU0sXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU1VCRk9STV9PUEVOLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NPTF9TT1JULFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0NUUkxfTU9ESUZZLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1JPTExCQUNLLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0VYVF9FVkVOVCxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DT0xfQ0xJQ0ssXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUFJFU1MsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfRU5BQkxFX0VWRU5UUyxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9DT0xfRklMVEVSLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0lOREVYX0NIQU5HRSxcclxuICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9XRUJDTElFTlRfUk9VVEUsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfU0VUX0VYVEVSTkFMX1ZBTFVFLFxyXG4gICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX0ZFVENIX1JFQ09SRFNfQUhFQURfRlJPTV9TRVJWRVIsXHJcbiAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ09OVEVYVF9SRU1PVkVcclxuICBdO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBhY3ROYXZpZ2F0aW9uOiBudW1iZXJbXSA9IFtcclxuICAgICAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX1BSVkxJTkUsXHJcbiAgICAgICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9QUlZQQUdFLFxyXG4gICAgICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfQkVHVEJMLFxyXG4gICAgICAgIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9UQkxfTlhUTElORSxcclxuICAgICAgICBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVEJMX05YVFBBR0UsXHJcbiAgICAgICAgSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RCTF9FTkRUQkxcclxuICAgIF07XHJcblxyXG5cclxuICBwcml2YXRlIF9hY3RDb3VudDogbnVtYmVyW10gPSBudWxsOyAvLyB0byBrbm93IHdoaWNoIGFjdGlvbiB3YXMgbGFzdCBlbmFibGVkXHJcbiAgcHJpdmF0ZSBfYWN0U3RhdGU6IGJvb2xlYW5bXSA9IG51bGw7IC8vIGFjdGlvbiBzdGF0ZSBhcnJheSBmb3IgYWxsIDUyNiBhY3Rpb25zXHJcbiAgcHJpdmF0ZSBfbnVtZXJhdG9yOiBudW1iZXIgPSAwOyAvLyBnZW5lcmF0b3IgZm9yIGFjdENvdW50XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICAgIHRoaXMuX251bWVyYXRvciA9IDA7XHJcblxyXG4gICAgdGhpcy5fYWN0U3RhdGUgPSBuZXcgQXJyYXk8Ym9vbGVhbj4oSW50ZXJuYWxJbnRlcmZhY2UuTUdfQUNUX1RPVF9DTlQpO1xyXG4gICAgZm9yIChsZXQgX2FpOiBudW1iZXIgPSAwOyBfYWkgPCB0aGlzLl9hY3RTdGF0ZS5sZW5ndGg7ICsrX2FpKVxyXG4gICAgICB0aGlzLl9hY3RTdGF0ZVtfYWldID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fYWN0Q291bnQgPSBuZXcgQXJyYXk8bnVtYmVyPihJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfVE9UX0NOVCk7XHJcbiAgICBmb3IgKGxldCBfYWk6IG51bWJlciA9IDA7IF9haSA8IHRoaXMuX2FjdENvdW50Lmxlbmd0aDsgKytfYWkpXHJcbiAgICAgIHRoaXMuX2FjdENvdW50W19haV0gPSAwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgYWN0aW9uIGVuYWJsZWQgb3IgZGlzYWJsZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImVuYWJsZVwiPjwvcGFyYW0+XHJcbiAgZW5hYmxlKGFjdDogbnVtYmVyLCBlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2FjdFN0YXRlW2FjdF0gPSBlbmFibGU7XHJcblxyXG4gICAgaWYgKGVuYWJsZSkge1xyXG4gICAgICB0aGlzLl9udW1lcmF0b3IrKztcclxuICAgICAgdGhpcy5fYWN0Q291bnRbYWN0XSA9IHRoaXMuX251bWVyYXRvcjtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFjdFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIHRoZSBhY3Rpb24gaXMgZW5hYmxlZCBvciBmYWxzZSBpZiBpdCBpcyBub3Q8L3JldHVybnM+XHJcbiAgaXNFbmFibGVkKGFjdDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0U3RhdGVbYWN0XTtcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGFjdENvdW50IGZvciB0aGUgc3BlY2lmaWMgYWN0aW9uPC9yZXR1cm5zPlxyXG4gIGdldEFjdENvdW50KGFjdDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RDb3VudFthY3RdO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldHMgYWN0aW9uIGxpc3QgZW5hYmxlZCBvciBkaXNhYmxlZC5cclxuICAvLy8gICBvbmx5SWZDaGFuZ2VkIHdhcyBhZGRlZCBpbiBvcmRlciB0byBhdm9pZCBtYW55IHVwZGF0ZXMgdG8gbWVudXMgKGxpa2UgaW4gY3V0L2NvcHkpLFxyXG4gIC8vLyAgIGVzcGVjaWFsbHkgd2hlbiB0aGUgcmVxdWVzdCBjb21lcyBhcyBhbiBpbnRlcm5hbCBhY3QgZnJvbSB0aGUgZ3VpIHRocmVhZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYWN0XCI+YXJyYXkgb2YgYWN0aW9uczwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJlbmFibGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib25seUlmQ2hhbmdlZFwiPjogY2FsbCBlbmFibGUgb25seSBpZiB0aGUgc3RhdGUgaGFzIGNoYW5nZWQuPC9wYXJhbT5cclxuICBlbmFibGVMaXN0KGFjdDogbnVtYmVyW10sIGVuYWJsZTogYm9vbGVhbiwgb25seUlmQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGFjdC5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgbnVtOiBudW1iZXIgPSBhY3RbaV07XHJcbiAgICAgIGxldCBmbGFnOiBib29sZWFuID0gIW9ubHlJZkNoYW5nZWQgfHwgdGhpcy5fYWN0U3RhdGVbbnVtXSAhPT0gZW5hYmxlO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIHRoaXMuZW5hYmxlKG51bSwgZW5hYmxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGVuYWJsZSBvciBkaXNhYmxlIGFjdGlvbnMgZm9yIG5hdmlnYXRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZW5hYmxlXCI+PC9wYXJhbT5cclxuICBlbmFibGVOYXZpZ2F0aW9uQWN0aW9ucyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZW5hYmxlTGlzdChBY3Rpb25NYW5hZ2VyLmFjdE5hdmlnYXRpb24sIGVuYWJsZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|