iptdevs-design-system 3.2.102 → 3.2.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/core/models/budget/budget.model.mjs +1 -1
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +5 -1
- package/esm2020/lib/core/services/course-service/course-service.model.mjs +6 -1
- package/fesm2015/iptdevs-design-system.mjs +9 -0
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +9 -0
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/core/models/budget/budget.model.d.ts +21 -0
- package/lib/core/services/budget-service/budget-service.d.ts +1 -0
- package/lib/core/services/course-service/course-service.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvbW9kZWxzL2J1ZGdldC9idWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFdmVudENvdXJzZVJxIH0gZnJvbSBcIi4uL2NsYXNzcm9vbS9jbGFzc3Jvb20tcnEubW9kZWxcIjtcbmltcG9ydCB7IENvdXJzZVR5cGVDUnEgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZS1ycS5tb2RlbFwiO1xuaW1wb3J0IHsgRW5nbGlzaF9MZXZlbHMgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBnZXRkaXNjb3VudEFsbFJxe1xuICB0b2tlbjpzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cG9uIHtcbiAgY29kZT86ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfcmVmOiAgICAgICAgICAgc3RyaW5nO1xuICBuYW1lOiAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIHR5cGU6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfdHlwZTogICAgICAgICAgc3RyaW5nO1xuICBwZXJjZW50YWdlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICAgICAgIERhdGU7XG4gIGVuZF9kYXRlOiAgICAgICAgICAgICAgIERhdGU7XG4gIHN0YXRlOiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGVzY3JpcHRpb246ICAgICAgICAgICAgc3RyaW5nO1xuICBkaXNjb3VudF9hY2FkZW1pY19wbGFuOiBEaXNjb3VudEFjYWRlbWljUGxhbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50QWNhZGVtaWNQbGFuIHtcbiAgY29kZTogIG51bWJlcjtcbiAgbmFtZTogIHN0cmluZztcblxufVxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3VudFJxe1xuICB0b2tlbjpzdHJpbmc7XG4gIGRpc2NvdW50X3JlZjpzdHJpbmc7XG4gIG5hbWU6c3RyaW5nO1xuICB0eXBlOm51bWJlcjtcbiAgZGlzY291bnRfdHlwZTpudW1iZXI7XG4gIHBlcmNlbnRhZ2U6bnVtYmVyO1xuICBzdGFydF9kYXRlOkRhdGU7XG4gIGVuZF9kYXRlOkRhdGU7XG4gIHN0YXRlOm51bWJlcjtcbiAgZGVzY3JpcHRpb246c3RyaW5nO1xuICBwbGFuOm51bWJlcltdO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3VudFVwZGF0ZVJxe1xuICB0b2tlbjpzdHJpbmc7XG4gIGNvZGU/Om51bWJlcjtcbiAgc3RhcnRfZGF0ZTpEYXRlO1xuICBlbmRfZGF0ZTpEYXRlO1xuICBzdGF0ZTpudW1iZXI7XG4gIGRlc2NyaXB0aW9uOnN0cmluZztcbiAgcGxhbjpudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ291cG9ue1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURpc2NvdW50e1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVN0YXRle1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGVudHtcbiAgbmFtZTogc3RyaW5nO1xuICBkb2N1bWVudDogbnVtYmVyO1xuICBwaG9uZTpudW1iZXI7XG4gIHBsYW46IHN0cmluZztcbiAgc3RhdGU6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGV7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQbGFue1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cblxuLy8vLy8vLy8vLy8vLy9cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkFsbENvdXJzZXdhbGxldHtcbiAgdG9rZW46c3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsbENvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogICAgICAgbnVtYmVyO1xuICBtZXNzYWdlOiAgICAgIElNZXNzYWdlUnE7XG4gIGRhdGE6ICAgICAgICAgSUNvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzIHtcbiAgY291cnNlX3dhbGxldF9jb2RlOiAgICAgICAgbnVtYmVyO1xuICB1c2VyX2NvZGU6ICAgICAgICAgICAgICAgICBJVXNlckNvZGVScTtcbiAgY291cnNlX2NvZGU6ICAgICAgICAgICAgICAgSUNvdXJzZUNvZGVScTtcbiAgY291cnNlX3dhbGxldF9zdGF0dXNfY29kZTogSUNvdXJzZVdhbGxldFN0YXR1c0NvZGVScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQ29kZVJxIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9zY2hlZHVsZTogc3RyaW5nW107XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIENvdXJzZVR5cGVDUnE7XG4gIHRvX3N0YXJ0OiAgICAgICAgRGF0ZTtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgIERhdGU7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBtb3JlX2RheXM6ICAgICAgIG51bWJlciB8IG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgc3RyaW5nO1xuICBhZ3JlZW1lbnQ6ICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBJQ291cnNlTW9kYWxpdHlScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlTW9kYWxpdHlScSB7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VXYWxsZXRTdGF0dXNDb2RlUnEge1xuICBjb2RlOiAgICAgICAgIG51bWJlcjtcbiAgc3RhdHVzOiAgICAgICBzdHJpbmc7XG4gIGNvbG9yX3N0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyQ29kZVJxIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgICAgIHN0cmluZztcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBEYXRlIHwgbnVsbDtcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6ICAgICBudW1iZXI7XG4gIGlkX2NhcmQ6ICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNZXNzYWdlUnEge1xuICBjb2RlOiAgICBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUFzc2lnblJlcXVlc3RScXtcbiAgdG9rZW46IHN0cmluZztcbiAgdXNlckNvZGU6IG51bWJlcjtcbiAgY29kZUNvdXJzZTogbnVtYmVyIHwgbnVsbDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkF2YWlsYWJsZUNvdXJzZVJzIHtcbiAgdG9rZW46ICAgICAgc3RyaW5nO1xuICBjb2RfY29kZTogICBudW1iZXI7XG4gIG5hbWVfZXZlbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxDb3Vyc2VBdmFpbGFibGVCeVN0dWRlbnRScyB7XG4gIGlwX2FwcGxpY2FudDogc3RyaW5nO1xuICBzdGF0dXM6ICAgICAgIG51bWJlcjtcbiAgbWVzc2FnZTogICAgICBJTWVzc2FnZVJxO1xuICBkYXRhOiAgICAgICAgIElBdmFpbGFibGVDb3Vyc2VzUnE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF2YWlsYWJsZUNvdXJzZXNScSB7XG4gIGF2YWlsYWJsZUNvdXJzZXM6IElDb3Vyc2VBdmFpbGFibGVScVtdIHwgYW55W107XG4gIG92ZXJkdWU6ICAgICAgICAgIElPdmVyZHVlUnEgfCBhbnlbXTtcbiAgdW5pdEFkdmFuY2U6ICAgICAgYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQXZhaWxhYmxlUnEge1xuICBudW1iZXJDbGFzZXM6IG51bWJlcjtcbiAgY3VycmVudEV2ZW50OiBJRXZlbnRDb3Vyc2VScTtcbiAgY291cnNlRGF0YTogICBJQ291cnNlRGF0YU5hbWVzUnE7XG4gIGNsYXNzcm9vbTogICAgSUNsYXNzcm9vbUVsZW1lbnRScVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGFzc3Jvb21FbGVtZW50UnEge1xuICBjbGFzc3Jvb206ICBJQ2xhc3Nyb29tQ2xhc3Nyb29tUnE7XG4gIHRpbWVfc3RhcnQ6IHN0cmluZztcbiAgdGltZV9lbmQ6ICAgc3RyaW5nO1xuICBkYXlzOiAgICAgICBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xhc3Nyb29tQ2xhc3Nyb29tUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogbnVtYmVyO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgaWRfY2FsZW5kYXI6ICAgICBzdHJpbmc7XG4gIGFkcmVzczogICAgICAgICAgc3RyaW5nO1xuICB1cGRhdGVkX2F0OiAgICAgIERhdGU7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlRGF0YU5hbWVzUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBudW1iZXI7XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIHN0cmluZztcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3ZlcmR1ZVJxIHtcbiAgY29kZVN0dWRlbnQ6ICAgICBudW1iZXI7XG4gIG51bUR1ZXM6ICAgICAgICAgbnVtYmVyO1xuICBuYW1lU3R1ZGVudDogICAgIHN0cmluZztcbiAgbGFzdG5hbWVTdHVkZW50OiBzdHJpbmc7XG4gIGRvY3VtZW50U3R1ZGVudDogc3RyaW5nO1xuICBkdWVBbW91bnQ6ICAgICAgIG51bWJlcjtcbiAgY29sb3JEYXk6ICAgICAgICBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0Q29kQnlQYXltZW50UGxhblJxIHtcbiAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgc3R1ZGVudENvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBkYXRlQW1vdW50Q29kUGF5bWVudHNScSB7XG4gIHRva2VuOiAgICAgICAgICBzdHJpbmc7XG4gIHZhbHVlQW1vdW50OiAgICBudW1iZXI7XG4gIGNvZGVDb2RQYXltZW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvZFN0dWRlbnRScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2U6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3R5cGU6ICAgICAgICAgICBudW1iZXI7XG4gIGFncmVlbWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiAgICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudDogICAgICAgICAgICAgICBJU3R1ZGVudFJzO1xuICBwYXJlbnQ6ICAgICAgICAgICAgICAgIG51bWJlciB8IG51bGw7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIHJvbGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgcGhvbmVfaW5kaWNhdGl2ZTogbnVtYmVyO1xuICBwaG9uZV9udW1iZXI6ICAgICBzdHJpbmc7XG4gIGdlbmRlcjogICAgICAgICAgIG51bWJlcjtcbiAgYmlydGhkYXRlOiAgICAgICAgRGF0ZTtcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6ICAgICBudW1iZXI7XG4gIGlkX2NhcmQ6ICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJUGFyYW1zVXBkYXRlRGF0ZUNvZFBheW1lbnRzUnEge1xuICB0b2tlbjogICAgICBzdHJpbmc7XG4gIFBheW1lbkRhdGU6IERhdGU7XG4gIGNvZGVDb2Q6ICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FuY2VsU3R1ZGVudEZlZVBheW1lbnRScSB7XG4gIHRva2VuOiAgICAgICAgICAgc3RyaW5nO1xuICBxdW90YXNfYWZmZWN0ZWQ6IElRdW90YXNBZmZlY3RlZFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1b3Rhc0FmZmVjdGVkUnEge1xuICBjb2RfY29kZTogICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgIG51bWJlcjtcbiAgcmVjZWlwdF9jb2RlOiAgICAgbnVtYmVyO1xuICBxdW90YV9jb2RlOiAgICAgICBudW1iZXI7XG4gIGNyZWRpdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgY3JlZGl0X2Ftb3VudDogICAgbnVtYmVyO1xuICBmZWVfbnVtYmVyOiAgICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgIG51bWJlcjtcbiAgdHJhbnNhY3Rpb25fdHlwZTogbnVtYmVyO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50c0J5R3JvdXBpbmdDb2RScyB7XG4gIGNvZF9jb2RlOiAgICAgICAgICBudW1iZXI7XG4gIHJlY2VpcHRfY29kZTogICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgICBudW1iZXI7XG4gIGFtb3VudF9wYXk6ICAgICAgICBudW1iZXI7XG4gIGRpc2NvdW50X3BheTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfY29kZTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfbmFtZTogICAgICBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICBzdHJpbmc7XG4gIGRhdGVfcGF5OiAgICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxTdHVkZW50UmVjZWlwdFJxIHtcbiAgdG9rZW46ICAgICAgICAgICBzdHJpbmc7XG4gIHF1b3Rhc19hZmZlY3RlZDogSVF1b3Rhc0FmZmVjdGVkUnFbXSB8IG51bGw7XG4gIHJlY2VpcHQgICAgICAgIDogbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxIHtcbiAgdG9rZW46ICAgICAgICAgICAgICBzdHJpbmc7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiAgbnVtYmVyO1xuICBzdGFydF9kYXRlOiAgICAgICAgIERhdGUgfCBudWxsO1xuICBmaW5pc2hfZGF0ZTogICAgICAgIERhdGUgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnEge1xuICB0b2tlbjogICAgICAgICAgICAgc3RyaW5nO1xuICBjb2RlX3R5cGVfY29uc3VsdDogbnVtYmVyO1xuICBzdGFydF9kYXRlOiAgICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICAgIERhdGU7XG4gIHVzZXJfY29kZTogICAgICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScyB7XG4gIHBheW1lbnRzOiAgICAgICAgICAgICAgIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnNbXTtcbiAgdG90YWxfYW1vdW50X2J5X21ldGhvZDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJzIHtcbiAgcGF5bWVudF9tZXRob2Q6ICAgIG51bWJlcjtcbiAgY29kX2NvZGU6ICAgICAgICAgIG51bWJlciB8IG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICBudW1iZXIgfCBudWxsO1xuICByZWNlaXB0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBzdHVkZW50X2NvZGU6ICAgICAgbnVtYmVyO1xuICBhbW91bnRfcGF5OiAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF9wYXk6ICAgICAgbnVtYmVyO1xuICBjb25jZXB0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBjb25jZXB0X25hbWU6ICAgICAgc3RyaW5nO1xuICBpbnZvaWNlX2NhbmNlbGxlZDogbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgICAgICAgc3RyaW5nO1xuICBkYXRlX3BheTogICAgICAgICAgRGF0ZTtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3RhbENhc2hSZWNlaXB0c0J5RGF0ZUFuZFVzZXJScyB7XG4gIHBheW1lbnRzOiAgICAgICAgICAgIElQYXltZW50QmlsbEdyYXBoUnNbXTtcbiAgdG90YWxfYnlfbWV0aG9kOiAgICAgSVRvdGFsQnlNZXRob2RSc1tdO1xuICBudW1iZXJfdHJhbnNhY3Rpb25zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRCaWxsR3JhcGhScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZXJ2aWNlczogICBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiAgICAgbnVtYmVyO1xuICBiYW5rOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogICAgICBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogICAgICAgbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogICAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiAgICAgbnVtYmVyO1xuICBvdXRzdGFuZGluZ19hbW91bnQ6IG51bWJlcjtcbiAgcG9zaXRpdmVfYW1vdW50OiAgICBudW1iZXI7XG4gIGRpc2NvdW50OiAgICAgICAgICAgbnVtYmVyO1xuICBwYXllcl9uYW1lOiAgICAgICAgIHN0cmluZztcbiAgcGF5ZXJfZG9jdW1lbnQ6ICAgICBzdHJpbmc7XG4gIGFjYWRlbWljX3BsYW46ICAgICAgbnVtYmVyO1xuICBwYXltZW50X3JlZmVyZW5jZTogIG51bGwgfCBzdHJpbmc7XG4gIHBheW1lbnRfZGF0ZTogICAgICAgRGF0ZSB8IG51bGw7XG4gIG9ic2VydmF0aW9uOiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgaW52b2ljZV9jYW5jZWxsZWQ6ICBudW1iZXI7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVG90YWxCeU1ldGhvZFJzIHtcbiAgY29kZTogICBudW1iZXI7XG4gIG5hbWU6ICAgc3RyaW5nO1xuICBhbW91bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEge1xuICB0b2tlbjogICAgICAgICBzdHJpbmc7XG4gIG1vZGFsaXR5OiAgICAgIG51bWJlcjtcbiAgY291cnNlX3N0YXR1czogbnVtYmVyO1xuICBjb29yZGluYXRvcjogICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6IElFbmdsaXNoTGV2ZWxScVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbmdsaXNoTGV2ZWxScSB7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVDb21tb25FeHBlbnNlcyAge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxICB7XG4gIHRva2VuOiAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfY29kZTogIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnMge1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIG51bWJlcjtcbiAgcHJldmlvc19jb3Vyc2U6ICAgICAgIG51bGwgfCBudW1iZXI7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGRhdGFDb3Vyc2U6ICAgICAgICBJRnVsZGF0YUNvdXJzZVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdXRzdGFuZGluZ1BheW1lbnRzUnMge1xuICBvdXRzdGFuZGluZ19wYXltZW50czogbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUGF5bWVudHNScyB7XG4gIE92ZXJkdWVfcGF5bWVudHM6ICAgIG51bWJlcjtcbiAgbnVtYmVyX2luc3RhbGxtZW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGdWxkYXRhQ291cnNlUnMge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBzdHJpbmdbXTtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgSUNvdXJzZVR5cGVDbHVBbmRUaGVScztcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IElDb3Vyc2VNb2RhbGl0eVJxO1xuICBpc19yZW5vdmF0aW9uOiAgIG51bWJlcjtcbiAgaXNfZnJvbTogICAgICAgICBudWxsO1xuICBpc19jbHViOiAgICAgICAgIG51bWJlcjtcbiAgaXNfdmlzaWJsZTogICAgICBudW1iZXI7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlVHlwZUNsdUFuZFRoZVJzIHtcbiAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgIHN0cmluZztcbiAgbGFiZWw6ICAgICAgICAgICAgIHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiAgICAgIG51bWJlcjtcbiAgbnVtYmVyX2NsYXNzX2NsdWI6IG51bWJlcjtcbiAgYWNhZGVtaWNfcGxhbjogICAgIHN0cmluZztcbiAgdGhlb3J5X2NsYXNzZXM6ICAgIG51bWJlcjtcbiAgY2x1Yl9jbGFzc2VzOiAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5QnlDb2RScSAge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgY291cnNlX2NvZGU6ICBudW1iZXI7XG4gIGNvZF9jb2RlOiAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZlBhcmFtUnEgIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHVzZXI6ICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZlBhcmFtUnMge1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgc3RyaW5nO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIG51bWJlcjtcbiAgcHJldmlvdXNfY291cnNlOiAgICAgIG51bGw7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxkYXRhQ291cnNlOiAgICAgICBJQWxsQ291cnNlc1ZpZXdlZFJzO1xuICBjdXJyZW50X2NvZDogICAgICAgICAgSUN1cnJlbnRDb2RScztcbiAgYWxsX2NvdXJzZXNfdmlld2VkOiAgIElBbGxDb3Vyc2VzVmlld2VkUnNbXTtcbiAgdXNlcl93YWxsZXQ6ICAgICAgICAgIElVc2VyV2FsbGV0UnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsbENvdXJzZXNWaWV3ZWRScyB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IHN0cmluZ1tdO1xuICB0ZWFjaGVyOiAgICAgICAgIHN0cmluZztcbiAgY291cnNlX3R5cGU6ICAgICBJQ291cnNlVHlwZUNsdUFuZFRoZVJzO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogSUNvdXJzZU1vZGFsaXR5UnE7XG4gIGlzX3Jlbm92YXRpb246ICAgbnVtYmVyO1xuICBpc19mcm9tOiAgICAgICAgIG51bGw7XG4gIGlzX2NsdWI6ICAgICAgICAgbnVtYmVyO1xuICBpc192aXNpYmxlOiAgICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdD86ICAgICBEYXRlO1xuICBjcmVhdGVkX2F0OiAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUN1cnJlbnRDb2RScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2U6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3R5cGU6ICAgICAgICAgICBudW1iZXI7XG4gIGFncmVlbWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiAgICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudDogICAgICAgICAgICAgICBudW1iZXI7XG4gIHBhcmVudDogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBhZGl0aW9uYWxfaW5mb3JtYXRpb246IG51bWJlcjtcbiAgYWR2aXNlcjogICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9zdGF0dXM6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcHJpY2U6ICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3BhaWQ6ICAgICAgICAgICAgICBudW1iZXI7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgICAgICAgRGF0ZTtcbiAgY3JlYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdXRzdGFuZGluZ1BheW1lbnRzUnMge1xuICBvdXRzdGFuZGluZ19wYXltZW50czogbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUGF5bWVudHNScyB7XG4gIE92ZXJkdWVfcGF5bWVudHM6ICAgIG51bWJlcjtcbiAgbnVtYmVyX2luc3RhbGxtZW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyV2FsbGV0UnMge1xuICB1c2VyX2NvZGU6ICAgIG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgaXNfdmlzaWJsZTogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBheW1lbnRCaWxsRWdyZXNzUnEge1xuICBwYXltZW50X21ldGhvZDogbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiBudW1iZXI7XG4gIGJhbms6IG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogbnVtYmVyO1xuICBnZW5lcmF0ZWRfYnk6IHN0cmluZztcbiAgdG90YWxfYW1vdW50OiBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6IG51bWJlcjtcbiAgZGlzY291bnQ6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZT86IHN0cmluZztcbiAgcGF5ZXJfZG9jdW1lbnQ/OiBudW1iZXI7XG4gIGNvZGVBY2FkZW1pY19wbGFuOiBudW1iZXI7XG4gIG9ic2VydmF0aW9uOiBzdHJpbmc7XG4gIHJlZl9wYXltZW50PzpzdHJpbmc7XG4gIGRhdGVfcGF5bWVudDpEYXRlO1xuICBjb21tb25fZXhwZW5zZXM6IG51bWJlcjtcbiAgdHlwZV9tb3ZlbWVudHM6bnVtYmVyO1xuICBtYW51YWxfcmVjZWlwdDpudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNhc2hDbG9zaW5nUnEge1xuICB0b2tlbjpzdHJpbmdcbiAgfVxuZXhwb3J0IGludGVyZmFjZSBJbmZvQ2FzaENsb3NpbmdScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGNvZGU6IG51bWJlcjtcbiAgY29kZV91c2VyOm51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWNhc2hDbG9zaW5nRGF0ZVJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZTogc3RyaW5nO1xuICBmaW5pc2hfZGF0ZTogc3RyaW5nO1xuICBjb2RlX3VzZXI6bnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgSVBheW1lbnRXYWxsZXRScyB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2FudGlkYWQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdEYXRhUnMge1xuICB0b3RhbEluY29tZTogbnVtYmVyO1xuICB0b3RhbEVncmVzczogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kSW5jb21lSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50TWV0aG9kRWdyZXNzSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50V2FsbGV0RWdyZXNzSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50V2FsbGV0SW5jb21lSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbmNvbWVzQW5kRWdyZXNzUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb2RlX3R5cGVfY29uc3VsdDpudW1iZXI7XG4gIGNvZGVfdHlwZV9tb3ZlbWVudDpudW1iZXI7XG4gIHN0YXJ0X2RhdGU/OnN0cmluZztcbiAgZmluaXNoX2RhdGU/OnN0cmluZztcbiAgdXNlcl9jb2RlOm51bWJlcjtcbiAgfVxuXG5cblxuZXhwb3J0IGludGVyZmFjZSBJT2JhdGluQmFsYWNlc0J5Q29vZGluYXRvclJxe1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXI7XG4gIGNvdXJzZV9zdGF0dXM6ICAgbnVtYmVyO1xuICB1c2VyX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICBFbmdsaXNoX0xldmVsc1tdO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGVuZF9kYXRlOiAgICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlUnF7XG4gIHRva2VuOiAgICAgICAgICAgc3RyaW5nO1xuICB1c2VyX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBlbmRfZGF0ZTogICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJzIHtcbiAgaW5jb21lOiAgIFJlc3BvbnNlUGF5O1xuICBleHBlbnNlczogUmVzcG9uc2VQYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VQYXkge1xuICBsaXN0UGF5bWVudDogICBJTGlzdFBheW1lbnRSc1tdO1xuICBzdW1CeU1ldGhvZDogICBJU3VtQnlNZXRob2RQYXlSc1tdO1xuICB0b3RhbEFtb3VudDogICBudW1iZXI7XG4gIGRhdGVDb25zdWx0OiAgIElEYXRlQ29uc3VsdFJzO1xuICB1c2VyQ29uc3VsdGVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVDb25zdWx0UnMge1xuICBzdGFydERhdGU6IERhdGU7XG4gIGVuZERhdGU6ICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlzdFBheW1lbnRScyB7XG4gIHBheW1lbnRfY29kZTogICAgICAgbnVtYmVyO1xuICBtZXRob2RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbWV0aG9kX2NvZGU6ICAgICAgICBudW1iZXI7XG4gIHNlcnZpY2U6ICAgICAgICAgICAgc3RyaW5nO1xuICB3YWxsZXQ6ICAgICAgICAgICAgIHN0cmluZztcbiAgYmFuazogICAgICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxuYW1lX3N0dWRlbnQ6ICAgc3RyaW5nO1xuICBmdWxsbmFtZV91c2VyOiAgICAgIHN0cmluZztcbiAgdG90YWxfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiAgICAgbnVtYmVyO1xuICBvdXRzdGFuZGluZ19hbW91bnQ6IG51bWJlcjtcbiAgcG9zaXRpdmVfYW1vdW50OiAgICBudW1iZXI7XG4gIGRpc2NvdW50OiAgICAgICAgICAgbnVtYmVyO1xuICBmYXRoZXJfbmFtZTogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIHBhdGhlcl9kb2N1bWVudDogICAgbnVsbCB8IHN0cmluZztcbiAgYWNhZGVtaWNfcGxhbjogICAgICBudW1iZXI7XG4gIHJlZmVyZW5lY19wYXltZW50OiAgbnVsbCB8IHN0cmluZztcbiAgY3JlYXRlX2RhdGU6ICAgICAgICBEYXRlO1xuICBvYnNlcnZhdGlvbjogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdW1CeU1ldGhvZFBheVJzIHtcbiAgTWV0b2RvX3BhZ29fY29kZTogbnVtYmVyO1xuICBNZXRvZG9fcGFnbzogICAgICBzdHJpbmc7XG4gIFRvdGFsX3Bvcl9tZXRvZG86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudHNNYWRlQnlEYXRlc1JzIHtcbiAgYW1vdW50Q2FuY2VsOiAgICAgICAgICBudW1iZXI7XG4gIGNvZENvZGU6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjcmVhdGlvbl9kYXRlOiAgICAgICAgIERhdGU7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZXJ2aWNlczogICAgICBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiAgICAgICAgbnVtYmVyO1xuICBiYW5rOiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogICAgICAgICBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogICAgICAgICAgbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogICAgICAgIG51bWJlcjtcbiAgY29tbW9uX2V4cGVuc2VzOiAgICAgICBudW1iZXI7XG4gIHRvdGFsX2Ftb3VudDogICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X2Ftb3VudDogICAgICAgIG51bWJlcjtcbiAgb3V0c3RhbmRpbmdfYW1vdW50OiAgICBudW1iZXI7XG4gIHBvc2l0aXZlX2Ftb3VudDogICAgICAgbnVtYmVyO1xuICBkaXNjb3VudDogICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5ZXJfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBheWVyX2RvY3VtZW50OiAgICAgICAgc3RyaW5nO1xuICBhY2FkZW1pY19wbGFuOiAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9yZWZlcmVuY2U6ICAgICBudWxsIHwgc3RyaW5nO1xuICBwYXltZW50X2RhdGU6ICAgICAgICAgIERhdGUgfCBudWxsO1xuICBvYnNlcnZhdGlvbjogICAgICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiAgICAgbnVtYmVyO1xuICBtYW51YWxfcmVjZWlwdDogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGNvZF9jb3Vyc2U6ICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZF9uYW1lOiAgIHN0cmluZztcbiAgcGF5bWVudF9zZXJ2aWNlc19uYW1lOiBzdHJpbmc7XG4gIHBheW1lbnRfd2FsbGV0X25hbWU6ICAgc3RyaW5nO1xuICBiYW5rX25hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgZnVsbG5hbWVfZmF0aGVyczogICAgICBudWxsIHwgc3RyaW5nO1xuICBnZW5lcmF0ZWRfZm9yX25hbWU6ICAgIHN0cmluZztcbiAgZ2VuZXJhdGVkX2J5X25hbWU6ICAgICBzdHJpbmc7XG4gIHR5cGVfbW92ZW1lbnRzX25hbWU6ICAgc3RyaW5nO1xuICBhY2FkZW1pY19wbGFuX25hbWU6ICAgIHN0cmluZztcbiAgdXNlcl93YWxsZXQ6ICAgICAgICAgICBJVXNlcldhbGxldFJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyV2FsbGV0UnMge1xuICB1c2VyX2NvZGU6ICAgIG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgaXNfdmlzaWJsZTogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZEVtYWlsUGF5bWVudCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWVTdHVkZW50OiBzdHJpbmc7XG4gIHBob25lU3R1ZGVudDogc3RyaW5nO1xuICBwYXltZW50RGF0ZTogc3RyaW5nO1xuICBhY2FkZW1pY1BsYW46IHN0cmluZztcbiAgcGF5ZXJEb2N1bWVudDogc3RyaW5nO1xuICB0b3RhbEFtb3VudDogbnVtYmVyO1xuICBwYXltZW50QW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nQW1vdW50OiBudW1iZXI7XG4gIGRpc2NvdW50PzogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kOiBzdHJpbmc7XG4gIGJhbms/OiBudW1iZXI7XG4gIG9ic2VydmF0aW9uPzogc3RyaW5nO1xuICBjb2Rlc1JlZmVyczogbnVtYmVyW107XG4gIGNvZGVEaXNjb3VudDogbnVtYmVyO1xuICBjb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZEVtYWlsUGF5bWVudENhbmNlbGxhdGlvblJTIHtcbiAgZW1haWw6IHN0cmluZztcbiAgc3R1ZGVudE5hbWU6IHN0cmluZztcbiAgcmVjZWlwdENvZGU6IG51bWJlcjtcbiAgY2FuY2VsbGF0aW9uRGF0ZTogc3RyaW5nO1xuICBhbW91bnQ6IG51bWJlcjtcbiAgY29uY2VwdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50Q29ycmVsYXRpdmVScSB7XG4gIHRva2VuOnN0cmluZztcbiAgdHlwZV9jYXRlZ29yeTogbnVtYmVyO1xuICBzdGFydF9kYXRlOiBEYXRlO1xuICBlbmRfZGF0ZTogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudENvcnJlbGF0aXZlUnF7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiBudW1iZXIgfCBudWxsO1xuICBmaW5pc2hfZGF0ZTogRGF0ZTtcbiAgc3RhcnRfZGF0ZTogRGF0ZTtcbiAgdG9rZW46IHN0cmluZztcbiAgdHlwZV9jYXRlZ29yeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5HYXRld2F5UGF5bWVudFJlY29yZFJxIHtcbiAgY29kOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVwZGF0ZUVwYXljb1BheW1lbnRScXtcbiAgcmVmX3ZhbGlkYXRpb246IHN0cmluZztcbiAgcGF5bWVudF9yZWY6ICAgIHN0cmluZztcbiAgeF9yZWZfcGF5Y286ICAgIG51bWJlcjtcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZztcbiAgc3RhdHVzX2NvZGU6ICAgIG51bWJlcjtcbiAgc3RhdHVzX25hbWU6ICAgIHN0cmluZztcbiAgYW1vdW50OiAgICAgICAgIG51bWJlcjtcbiAgdHlwZV9wYXltZW50OiAgIHN0cmluZztcbiAgYmFua19uYW1lOiAgICAgIHN0cmluZztcbiAgZXBheWNvX3BpbjogICAgIHN0cmluZztcbiAgY3VycmVuY3lfY29kZTogIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRXBheWNvUGF5bWVudFVwZGF0ZVJzIHtcbiAgZ2F0ZVBheW1lbnQ6IElHYXRlUGF5bWVudFJzO1xuICBzZWxmTWFuYWc6ICAgSVNlbGZNYW5hZ1JzO1xuICBlcGFCaWxsbDogICAgSUVwYUJpbGxsUnM7XG4gIHVwZFVzZXI6ICAgICBJVXBkVXNlclJzIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRXBhQmlsbGxScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9yZWY6ICAgICAgICAgc3RyaW5nO1xuICBhbW91bnQ6ICAgICAgICAgICAgICBudW1iZXI7XG4gIGVwYXljb19iYW5rOiAgICAgICAgIHN0cmluZztcbiAgZXBheWNvX3BheW1lbnRfdHlwZTogc3RyaW5nO1xuICBlcGF5Y29fcGluOiAgICAgICAgICBzdHJpbmc7XG4gIGVwYXljb19zdGF0dXM6ICAgICAgIHN0cmluZztcbiAgZXBheWNvX3JlZjogICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYXRlUGF5bWVudFJzIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfc2VydmljZTogbnVtYmVyO1xuICBjb2Q6ICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6ICBudW1iZXI7XG4gIHBheW1lbnRfcmVmOiAgICAgc3RyaW5nO1xuICBlcGF5Y29fcmVmOiAgICAgIHN0cmluZztcbiAgZXBheWNvX3N0YXR1czogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGZNYW5hZ1JzIHtcbiAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlOiAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZWxlY3Rpb246IG51bWJlcjtcbiAgcGF5bWVudF9yZWY6ICAgICAgIHN0cmluZztcbiAgZXBheWNvX3JlZjogICAgICAgIHN0cmluZztcbiAgbmVlZF9wYXk6ICAgICAgICAgIG51bWJlcjtcbiAgaXNfcGF5OiAgICAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBkVXNlclJzIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgbnVsbDtcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBudWxsO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIERhdGU7XG4gIGNpdHk6ICAgICAgICAgICAgIG51bWJlcjtcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbiAgZm9vdHByaW50OiAgICAgICAgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudHNCYWxhbmNlUnEge1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9jb2RlOiAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9tb2RhbGl0eTogbnVtYmVyO1xuICBjb3Vyc2Vfc3RhdHVzOiAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICBJRW5nbGlzaExldmVsUnFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudHNCYWxhbmNlUnMge1xuICBjb3Vyc2VDb2RlOiAgICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBFbmdsaXNoTGV2ZWw6ICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICBTdGFydERhdGU6ICAgICAgICAgICAgICAgICAgICAgRGF0ZTtcbiAgRmluaXNoRGF0ZTogICAgICAgICAgICAgICAgICAgIERhdGU7XG4gIENvdXJzZVR5cGU6ICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIENvdXJzZU1vZGFsaXR5OiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIENvdXJzZVJlbm92YXRpb246ICAgICAgICAgICAgICBzdHJpbmc7XG4gIHRvdGFsX3N0dWRlbnQ6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIEFjdGl2ZVN0dWRlbnRzOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIFN0dWRlbnRzU3VzcGVuZGVkUGF5OiAgICAgICAgICBudW1iZXI7XG4gIEZyb3plblN0dWRlbnRzOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIFdpdGhkcmF3blN0dWRlbnRzOiAgICAgICAgICAgICBudW1iZXI7XG4gIHNjaG9sYXJzaGlwU3R1ZGVudHM6ICAgICAgICAgICBJU2Nob2xhcnNoaXBTdHVkZW50UnNbXTtcbiAgc3R1ZGVudHNXaXRoQ2FzaFBheW1lbnRzOiAgICAgIG51bWJlcjtcbiAgc3R1ZGVudHNXaXRoQ3JlZGl0UGF5bWVudHM6ICAgIG51bWJlcjtcbiAgc3R1ZGVudHNXaXRoU2Nob2xhcnNoaXBzOiAgICAgIG51bWJlcjtcbiAgbHVtcFN1bVBheW1lbnRzVG9SZWNlaXZlZDogICAgIG51bWJlcjtcbiAgbHVtcFN1bVBhaWQ6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgb3ZlcmR1ZUx1bXBTdW06ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgbHVtcFN1bVJlY2VpdmFibGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbG9zc0x1bXBTdW1QYXltZW50c1RvUmVjZWl2ZWQ6IG51bWJlcjtcbiAgb3ZlcmFsbFRvdGFsTG9zc09mUGF1c2VkOiAgICAgIG51bWJlcjtcbiAgb3ZlcmFsbFRvdGFsTG9zc09mUmV0aXJlZXM6ICAgIG51bWJlcjtcbiAgbG9zc0x1bXBTdW1QYWlkOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgU3R1ZGVudHNBY3RpdmU6ICAgICAgICAgICAgICAgIElTdHVkZW50c1BheVJzO1xuICBTdHVkZW50c1N1c3BlbmRlZFBheW1lbnQ6ICAgICAgSVN0dWRlbnRzUGF5UnM7XG4gIFN0dWRlbnRzUGF1c2VkUHJvY2VzczogICAgICAgICBJU3R1ZGVudHNQYXlScztcbiAgU3R1ZGVudHNSZXRpcmVkOiAgICAgICAgICAgICAgIElTdHVkZW50c1BheVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50c1BheVJzIHtcbiAgY291bnQ6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgdG90YWxfb3Zlckluc3RhbGxtZW50czogIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X2V4cGVjdGVkOiAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X3BhaWQ6ICAgICAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X3JlY2VpdmFibGU6IG51bWJlcjtcbiAgdG90YWxfYW1vdW50X292ZXJkdWU6ICAgIG51bWJlcjtcbiAgZGF0YTogICAgICAgICAgICAgICAgICAgIElTdHVkZW50c0FjdGl2ZVJzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0dWRlbnRzQWN0aXZlUnMge1xuICBjb2RfY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgbnVtYmVyO1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgc3RyaW5nO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIElQYXltZW50c01hZGVScztcbiAgcHJldmlvc19jb3Vyc2U6ICAgICAgIG51bGwgfCBudW1iZXI7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRzTWFkZVJzIHtcbiAgbWFkZV9wYXltZW50czogICAgICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNjaG9sYXJzaGlwU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGFyZW50OiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcGFpZDogICAgICAgICAgICAgIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElFbGVjdHJvbmljSW52b2ljZVJTIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZTogRGF0ZSB8IG51bGw7XG4gIGVuZF9kYXRlOiBEYXRlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgcGFnZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogbnVtYmVyO1xuICBtZXNzYWdlOiBJTWVzc2FnZVJxO1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsRGF0YVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50QmlsbEZ1bGxEYXRhUnMge1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsUnNbXTtcbiAgcGFnaW5hdGlvbjogSVBhZ2luYXRpb25Scztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudEJpbGxGdWxsUnMge1xuICBwYXltZW50X2JpbGxfY29kZTogbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiBudW1iZXI7XG4gIGJhbmtfbmFtZTogc3RyaW5nO1xuICBnZW5lcmF0ZWRfZm9yOiBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogbnVtYmVyO1xuICBjb21tb25fZXhwZW5zZXM6IG51bWJlcjtcbiAgdG90YWxfYW1vdW50OiBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6IG51bWJlcjtcbiAgZGlzY291bnQ6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcGF5ZXJfZG9jdW1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgcGF5bWVudF9yZWZlcmVuY2U6IHN0cmluZyB8IG51bGw7XG4gIHBheW1lbnRfZGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgb2JzZXJ2YXRpb246IHN0cmluZyB8IG51bGw7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIG1hbnVhbF9yZWNlaXB0OiBzdHJpbmcgfCBudWxsO1xuICBjb3JyZWxhdGl2ZTogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfY29kZTogbnVtYmVyIHwgbnVsbDtcbiAgZWxlY3Ryb25pY19pbnZvaWNlOiBzdHJpbmcgfCBudWxsO1xuICBwYXltZW50X2JpbGxfY3JlYXRlZF9hdDogc3RyaW5nO1xuICBwYXltZW50X2JpbGxfdXBkYXRlZF9hdDogc3RyaW5nO1xuXG4gIC8vIENhbXBvcyBkZSB0cmFuc2ZlcnNcbiAgdHJhbnNmZXJfYW1vdW50OiBudW1iZXIgfCBudWxsO1xuICBpbml0aWFsX2Ftb3VudDogbnVtYmVyIHwgbnVsbDtcbiAgdHJhbnNmZXJfYmFua19uYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0cmFuc2Zlcl9kYXRlOiBzdHJpbmcgfCBudWxsO1xuICByZWZlcmVuY2VfbnVtYmVyOiBzdHJpbmcgfCBudWxsO1xuICB0cmFuc2Zlcl9zdGF0dXM6IHN0cmluZyB8IG51bGw7XG4gIHRyYW5zZmVyX2NyZWF0ZWRfYnk6IG51bWJlciB8IG51bGw7XG4gIHRyYW5zZmVyX3VwZGF0ZWRfYnk6IG51bWJlciB8IG51bGw7XG4gIGltYWdlX3VybDogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfY3JlYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfdXBkYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcblxuICAvLyBDYW1wb3MgZGUgcGF5ZXIgKHVzZXIpXG4gIHBheWVyX2NvZGU6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZV91c2VyOiBzdHJpbmc7XG4gIHBheWVyX2xhc3RfbmFtZTogc3RyaW5nO1xuICBwYXllcl9lbWFpbDogc3RyaW5nO1xuICBwYXllcl9yb2xlOiBudW1iZXI7XG4gIHBheWVyX3Bob25lOiBzdHJpbmc7XG4gIHBheWVyX2NyZWF0ZWRfYXQ6IHN0cmluZztcblxuICAvLyBDYW1wb3MgZGUgY3JlYXRvciAodXNlcilcbiAgY3JlYXRvcl9jb2RlOiBudW1iZXI7XG4gIGNyZWF0b3JfbmFtZTogc3RyaW5nO1xuICBjcmVhdG9yX2xhc3RfbmFtZTogc3RyaW5nO1xuICBjcmVhdG9yX2VtYWlsOiBzdHJpbmc7XG4gIGNyZWF0b3Jfcm9sZTogbnVtYmVyO1xuICBjcmVhdG9yX3Bob25lOiBzdHJpbmc7XG4gIGNyZWF0b3JfY3JlYXRlZF9hdDogc3RyaW5nO1xuXG4gIC8vIENhbXBvcyBkZSBjb2RcbiAgY29kX2NvZGU6IG51bWJlcjtcbiAgY291cnNlOiBudW1iZXI7XG4gIGNvdXJzZV90eXBlOiBudW1iZXI7XG4gIGFncmVlbWVudDogbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiBudW1iZXI7XG4gIHN0dWRlbnQ6IG51bWJlcjtcbiAgY29kX3BhcmVudDogbnVtYmVyIHwgbnVsbDtcbiAgYWRpdGlvbmFsX2luZm9ybWF0aW9uOiBudW1iZXI7XG4gIGFkdmlzZXI6IG51bWJlcjtcbiAgY29kX3N0YXR1czogbnVtYmVyO1xuICBjb2RfcHJpY2U6IG51bWJlciB8IG51bGw7XG4gIGNvZF9wYWlkOiBudW1iZXI7XG4gIGNvZF9jcmVhdGVkX2F0OiBzdHJpbmc7XG4gIGNvZF91cGRhdGVkX2F0OiBzdHJpbmc7XG5cbiAgLy8gQ2FtcG9zIGRlIHBhcmVudFxuICBwYXJlbnRfY29kZTogbnVtYmVyIHwgbnVsbDtcbiAgcGFyZW50X25hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBhcmVudF9sYXN0X25hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBhcmVudF9pZF9jYXJkOiBzdHJpbmcgfCBudWxsO1xuICBwYXJlbnRfcGhvbmU6IHN0cmluZyB8IG51bGw7XG4gIG9jY3VwYXRpb246IHN0cmluZyB8IG51bGw7XG4gIG9mZmljZV9hZHJyZXNzOiBzdHJpbmcgfCBudWxsO1xuICBwYXJlbnRfY3JlYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgcGFyZW50X3VwZGF0ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8vIFBhZ2luYWNpw7NuXG5leHBvcnQgaW50ZXJmYWNlIElQYWdpbmF0aW9uUnMge1xuICB0b3RhbDogbnVtYmVyO1xuICBwZXJfcGFnZTogbnVtYmVyO1xuICBjdXJyZW50X3BhZ2U6IG51bWJlcjtcbiAgbGFzdF9wYWdlOiBudW1iZXI7XG4gIGZyb206IG51bWJlcjtcbiAgdG86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUGF5bWVudEJpbGxScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHJlZmVyZW5jZV9udW1iZXI/OiBzdHJpbmc7XG4gIHBheWVyX25hbWU/OiBzdHJpbmc7XG4gIGVsZWN0cm9uaWNfaW52b2ljZT86IHN0cmluZztcbiAgLy9wYXltZW50X2JpbGxfY29kZT86IG51bWJlcjtcbiAgcGF5bWVudF9iaWxsX2NvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlYXJjaFBheW1lbnRCaWxsUnMge1xuICBpcF9hcHBsaWNhbnQ6IHN0cmluZztcbiAgc3RhdHVzOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9O1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsRGF0YVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHZXRTdW1tYXJ5QnlDb29yZGluYXRvclJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZT86IHN0cmluZztcbiAgZW5kX2RhdGU/OiBzdHJpbmc7XG4gIGdyYWNlX3BlcmlvZF9kYXlzPzogbnVtYmVyO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFkZE5ld1F1b3RhV2l0aENvbW1lbnRzUnEge1xuICB0b2tlbjogICAgICAgICAgc3RyaW5nO1xuICBjb2Q6ICAgICAgICAgICAgbnVtYmVyO1xuICBmZWVfbnVtYmVyOiAgICAgbnVtYmVyO1xuICB2YWx1ZUFtb3VudDogICAgbnVtYmVyO1xuICB0aW1lbHlfZGF0ZTogICAgc3RyaW5nO1xuICBvYnNlcnZhdGlvbjogICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxIHtcbiAgdG9rZW46ICAgICAgICAgIHN0cmluZztcbiAgY29kX3BheW1lbnQ6ICAgIG51bWJlcjtcbiAgb2JzZXJ2YXRpb246ICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kaWZ5UXVvdGFEYXRhV2l0aENvbW1lbnRzUnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgY29kOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIHRpbWVseV9kYXRlOiAgICAgICAgc3RyaW5nO1xuICBvYnNlcnZhdGlvbjogICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdEluc3RhbGxtZW50QW1vdW5XaXRoQ29tbWVudHNScSB7XG4gIHRva2VuOiAgICAgICAgICAgICAgc3RyaW5nO1xuICBjb2RfcGF5bWVudDogICAgICAgIG51bWJlcjtcbiAgdmFsdWVfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIG9ic2VydmF0aW9uOiAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzUGF5bWVudENvZFdpdGhDb21tZW50c1JzIHtcbiAgICBjb2RwYXltZW50OiBJQ29kcGF5bWVudFByb2Nlc3NQYXltZW50UnM7XG4gICAgaGlzdG9yeTogICAgSUhpc3RvcnlQcm9jZXNzUGF5bWVudFJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2RwYXltZW50UHJvY2Vzc1BheW1lbnRScyB7XG4gICAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgICBjb2Q6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICAgIHRpbWVseV9kYXRlOiAgICAgICBEYXRlO1xuICAgIGFtb3VudDogICAgICAgICAgICBudW1iZXI7XG4gICAgZmVlX251bWJlcjogICAgICAgIG51bWJlcjtcbiAgICBzdGF0dXM6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHVwZGF0ZWRfYW1vdW50X2J5OiBudW1iZXI7XG4gICAgdXBkYXRlZF9ieTogICAgICAgIG51bWJlcjtcbiAgICBkZWxldGVkX2F0OiAgICAgICAgbnVsbCB8IERhdGU7XG4gICAgdXBkYXRlZF9hdDogICAgICAgIERhdGU7XG4gICAgY3JlYXRlZF9hdDogICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhpc3RvcnlQcm9jZXNzUGF5bWVudFJzIHtcbiAgICBjb2RfcGF5bWVudDogbnVtYmVyO1xuICAgIG9ic2VydmF0aW9uOiBzdHJpbmc7XG4gICAgc3RhdHVzOiAgICAgIG51bWJlcjtcbiAgICBwcm9jZXNzOiAgICAgbnVtYmVyO1xuICAgIHByb2R1Y2VkX2J5OiBudW1iZXI7XG4gICAgY29kZTogICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICB1c2VyX2NvZGU6ICAgbnVtYmVyO1xuICAgIHN0YXJ0X2RhdGU6ICBzdHJpbmc7XG4gICAgZW5kX2RhdGU6ICAgIHN0cmluZztcbiAgICBjb3Vyc2VfY29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScyB7XG4gICAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gICAgc3RhdHVzOiAgICAgICBudW1iZXI7XG4gICAgbWVzc2FnZTogICAgICBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0TWVzc2FnZTtcbiAgICBkYXRhOiAgICAgICAgIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRNZXNzYWdlIHtcbiAgICBjb2RlOiAgICBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnREYXRhIHtcbiAgICBmaWx0ZXJzOiAgICAgICAgICAgICAgSUNvdXJzZVBheW1lbnRSYW5nZVJlcG9ydEZpbHRlcnM7XG4gICAgc3VtbWFyeV9ieV9jb3Vyc2U6ICAgIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRTdW1tYXJ5W107XG4gICAgY29kX2RldGFpbF9ieV9jb3Vyc2U6IElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRDb2REZXRhaWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0RmlsdGVycyB7XG4gICAgdXNlcl9jb2RlOiAgIG51bWJlcjtcbiAgICBjb3Vyc2VfY29kZTogbnVtYmVyO1xuICAgIHN0YXJ0X2RhdGU6ICBzdHJpbmc7XG4gICAgZW5kX2RhdGU6ICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0U3VtbWFyeSB7XG4gICAgY291cnNlX2NvZGU6ICAgICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICBjb2RfY291bnRfc3RhdHVzX2xlXzM6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHRvdGFsX2Ftb3VudF90b19jb2xsZWN0X2luX3JhbmdlOiBudW1iZXI7XG4gICAgdG90YWxfaW5zdGFsbG1lbnRzX2luX3JhbmdlOiAgICAgIG51bWJlcjtcbiAgICBwYWlkX2luc3RhbGxtZW50c19pbl9yYW5nZTogICAgICAgc3RyaW5nO1xuICAgIHVucGFpZF9pbnN0YWxsbWVudHNfaW5fcmFuZ2U6ICAgICBzdHJpbmc7XG4gICAgcGFpZF9pbnN0YWxsbWVudHNfYW1vdW50X2luX3JhbmdlOiAgIG51bWJlcjtcbiAgICB1bnBhaWRfaW5zdGFsbG1lbnRzX2Ftb3VudF9pbl9yYW5nZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRDb2REZXRhaWwge1xuICAgIGNvZF9jb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gICAgY29kX3N0YXR1czogICAgICAgICAgIG51bWJlcjtcbiAgICBjb2RfcHJpY2U6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHN0dWRlbnRfY29kZTogICAgICAgICBudW1iZXI7XG4gICAgZG9jdW1lbnQ6ICAgICAgICAgICAgIHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiAgICAgICAgICAgc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gICAgaW5zdGFsbG1lbnRzX2luX3JhbmdlOiBudW1iZXI7XG4gICAgdG90YWxfYW1vdW50X2luX3JhbmdlOiBudW1iZXI7XG4gICAgcGF5bWVudF9kYXRlczogICAgICAgIHN0cmluZztcbn1cbiJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvbW9kZWxzL2J1ZGdldC9idWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFdmVudENvdXJzZVJxIH0gZnJvbSBcIi4uL2NsYXNzcm9vbS9jbGFzc3Jvb20tcnEubW9kZWxcIjtcbmltcG9ydCB7IENvdXJzZVR5cGVDUnEgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZS1ycS5tb2RlbFwiO1xuaW1wb3J0IHsgRW5nbGlzaF9MZXZlbHMgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZXMubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBnZXRkaXNjb3VudEFsbFJxe1xuICB0b2tlbjpzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ291cG9uIHtcbiAgY29kZT86ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfcmVmOiAgICAgICAgICAgc3RyaW5nO1xuICBuYW1lOiAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIHR5cGU6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfdHlwZTogICAgICAgICAgc3RyaW5nO1xuICBwZXJjZW50YWdlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICAgICAgIERhdGU7XG4gIGVuZF9kYXRlOiAgICAgICAgICAgICAgIERhdGU7XG4gIHN0YXRlOiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZGVzY3JpcHRpb246ICAgICAgICAgICAgc3RyaW5nO1xuICBkaXNjb3VudF9hY2FkZW1pY19wbGFuOiBEaXNjb3VudEFjYWRlbWljUGxhbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50QWNhZGVtaWNQbGFuIHtcbiAgY29kZTogIG51bWJlcjtcbiAgbmFtZTogIHN0cmluZztcblxufVxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3VudFJxe1xuICB0b2tlbjpzdHJpbmc7XG4gIGRpc2NvdW50X3JlZjpzdHJpbmc7XG4gIG5hbWU6c3RyaW5nO1xuICB0eXBlOm51bWJlcjtcbiAgZGlzY291bnRfdHlwZTpudW1iZXI7XG4gIHBlcmNlbnRhZ2U6bnVtYmVyO1xuICBzdGFydF9kYXRlOkRhdGU7XG4gIGVuZF9kYXRlOkRhdGU7XG4gIHN0YXRlOm51bWJlcjtcbiAgZGVzY3JpcHRpb246c3RyaW5nO1xuICBwbGFuOm51bWJlcltdO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXNjb3VudFVwZGF0ZVJxe1xuICB0b2tlbjpzdHJpbmc7XG4gIGNvZGU/Om51bWJlcjtcbiAgc3RhcnRfZGF0ZTpEYXRlO1xuICBlbmRfZGF0ZTpEYXRlO1xuICBzdGF0ZTpudW1iZXI7XG4gIGRlc2NyaXB0aW9uOnN0cmluZztcbiAgcGxhbjpudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ291cG9ue1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURpc2NvdW50e1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVN0YXRle1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGVudHtcbiAgbmFtZTogc3RyaW5nO1xuICBkb2N1bWVudDogbnVtYmVyO1xuICBwaG9uZTpudW1iZXI7XG4gIHBsYW46IHN0cmluZztcbiAgc3RhdGU6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGV7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQbGFue1xuICBjb2RlPzpudW1iZXI7XG4gIG5hbWU/OnN0cmluZztcbn1cblxuLy8vLy8vLy8vLy8vLy9cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkFsbENvdXJzZXdhbGxldHtcbiAgdG9rZW46c3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsbENvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogICAgICAgbnVtYmVyO1xuICBtZXNzYWdlOiAgICAgIElNZXNzYWdlUnE7XG4gIGRhdGE6ICAgICAgICAgSUNvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvdXJzZVdhbGxldEJ5Q29vZGluYXRvclJzIHtcbiAgY291cnNlX3dhbGxldF9jb2RlOiAgICAgICAgbnVtYmVyO1xuICB1c2VyX2NvZGU6ICAgICAgICAgICAgICAgICBJVXNlckNvZGVScTtcbiAgY291cnNlX2NvZGU6ICAgICAgICAgICAgICAgSUNvdXJzZUNvZGVScTtcbiAgY291cnNlX3dhbGxldF9zdGF0dXNfY29kZTogSUNvdXJzZVdhbGxldFN0YXR1c0NvZGVScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQ29kZVJxIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9zY2hlZHVsZTogc3RyaW5nW107XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIENvdXJzZVR5cGVDUnE7XG4gIHRvX3N0YXJ0OiAgICAgICAgRGF0ZTtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgIERhdGU7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBtb3JlX2RheXM6ICAgICAgIG51bWJlciB8IG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgc3RyaW5nO1xuICBhZ3JlZW1lbnQ6ICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBJQ291cnNlTW9kYWxpdHlScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlTW9kYWxpdHlScSB7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VXYWxsZXRTdGF0dXNDb2RlUnEge1xuICBjb2RlOiAgICAgICAgIG51bWJlcjtcbiAgc3RhdHVzOiAgICAgICBzdHJpbmc7XG4gIGNvbG9yX3N0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyQ29kZVJxIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgICAgIHN0cmluZztcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBEYXRlIHwgbnVsbDtcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6ICAgICBudW1iZXI7XG4gIGlkX2NhcmQ6ICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNZXNzYWdlUnEge1xuICBjb2RlOiAgICBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUFzc2lnblJlcXVlc3RScXtcbiAgdG9rZW46IHN0cmluZztcbiAgdXNlckNvZGU6IG51bWJlcjtcbiAgY29kZUNvdXJzZTogbnVtYmVyIHwgbnVsbDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpbkF2YWlsYWJsZUNvdXJzZVJzIHtcbiAgdG9rZW46ICAgICAgc3RyaW5nO1xuICBjb2RfY29kZTogICBudW1iZXI7XG4gIG5hbWVfZXZlbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGxDb3Vyc2VBdmFpbGFibGVCeVN0dWRlbnRScyB7XG4gIGlwX2FwcGxpY2FudDogc3RyaW5nO1xuICBzdGF0dXM6ICAgICAgIG51bWJlcjtcbiAgbWVzc2FnZTogICAgICBJTWVzc2FnZVJxO1xuICBkYXRhOiAgICAgICAgIElBdmFpbGFibGVDb3Vyc2VzUnE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF2YWlsYWJsZUNvdXJzZXNScSB7XG4gIGF2YWlsYWJsZUNvdXJzZXM6IElDb3Vyc2VBdmFpbGFibGVScVtdIHwgYW55W107XG4gIG92ZXJkdWU6ICAgICAgICAgIElPdmVyZHVlUnEgfCBhbnlbXTtcbiAgdW5pdEFkdmFuY2U6ICAgICAgYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQXZhaWxhYmxlUnEge1xuICBudW1iZXJDbGFzZXM6IG51bWJlcjtcbiAgY3VycmVudEV2ZW50OiBJRXZlbnRDb3Vyc2VScTtcbiAgY291cnNlRGF0YTogICBJQ291cnNlRGF0YU5hbWVzUnE7XG4gIGNsYXNzcm9vbTogICAgSUNsYXNzcm9vbUVsZW1lbnRScVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGFzc3Jvb21FbGVtZW50UnEge1xuICBjbGFzc3Jvb206ICBJQ2xhc3Nyb29tQ2xhc3Nyb29tUnE7XG4gIHRpbWVfc3RhcnQ6IHN0cmluZztcbiAgdGltZV9lbmQ6ICAgc3RyaW5nO1xuICBkYXlzOiAgICAgICBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xhc3Nyb29tQ2xhc3Nyb29tUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogbnVtYmVyO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgaWRfY2FsZW5kYXI6ICAgICBzdHJpbmc7XG4gIGFkcmVzczogICAgICAgICAgc3RyaW5nO1xuICB1cGRhdGVkX2F0OiAgICAgIERhdGU7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlRGF0YU5hbWVzUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBudW1iZXI7XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIHN0cmluZztcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3ZlcmR1ZVJxIHtcbiAgY29kZVN0dWRlbnQ6ICAgICBudW1iZXI7XG4gIG51bUR1ZXM6ICAgICAgICAgbnVtYmVyO1xuICBuYW1lU3R1ZGVudDogICAgIHN0cmluZztcbiAgbGFzdG5hbWVTdHVkZW50OiBzdHJpbmc7XG4gIGRvY3VtZW50U3R1ZGVudDogc3RyaW5nO1xuICBkdWVBbW91bnQ6ICAgICAgIG51bWJlcjtcbiAgY29sb3JEYXk6ICAgICAgICBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0Q29kQnlQYXltZW50UGxhblJxIHtcbiAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgc3R1ZGVudENvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBkYXRlQW1vdW50Q29kUGF5bWVudHNScSB7XG4gIHRva2VuOiAgICAgICAgICBzdHJpbmc7XG4gIHZhbHVlQW1vdW50OiAgICBudW1iZXI7XG4gIGNvZGVDb2RQYXltZW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvZFN0dWRlbnRScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2U6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3R5cGU6ICAgICAgICAgICBudW1iZXI7XG4gIGFncmVlbWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiAgICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudDogICAgICAgICAgICAgICBJU3R1ZGVudFJzO1xuICBwYXJlbnQ6ICAgICAgICAgICAgICAgIG51bWJlciB8IG51bGw7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIHJvbGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgcGhvbmVfaW5kaWNhdGl2ZTogbnVtYmVyO1xuICBwaG9uZV9udW1iZXI6ICAgICBzdHJpbmc7XG4gIGdlbmRlcjogICAgICAgICAgIG51bWJlcjtcbiAgYmlydGhkYXRlOiAgICAgICAgRGF0ZTtcbiAgY2l0eTogICAgICAgICAgICAgbnVtYmVyO1xuICBpZF9jYXJkX3R5cGU6ICAgICBudW1iZXI7XG4gIGlkX2NhcmQ6ICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJUGFyYW1zVXBkYXRlRGF0ZUNvZFBheW1lbnRzUnEge1xuICB0b2tlbjogICAgICBzdHJpbmc7XG4gIFBheW1lbkRhdGU6IERhdGU7XG4gIGNvZGVDb2Q6ICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FuY2VsU3R1ZGVudEZlZVBheW1lbnRScSB7XG4gIHRva2VuOiAgICAgICAgICAgc3RyaW5nO1xuICBxdW90YXNfYWZmZWN0ZWQ6IElRdW90YXNBZmZlY3RlZFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1b3Rhc0FmZmVjdGVkUnEge1xuICBjb2RfY29kZTogICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgIG51bWJlcjtcbiAgcmVjZWlwdF9jb2RlOiAgICAgbnVtYmVyO1xuICBxdW90YV9jb2RlOiAgICAgICBudW1iZXI7XG4gIGNyZWRpdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgY3JlZGl0X2Ftb3VudDogICAgbnVtYmVyO1xuICBmZWVfbnVtYmVyOiAgICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgIG51bWJlcjtcbiAgdHJhbnNhY3Rpb25fdHlwZTogbnVtYmVyO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50c0J5R3JvdXBpbmdDb2RScyB7XG4gIGNvZF9jb2RlOiAgICAgICAgICBudW1iZXI7XG4gIHJlY2VpcHRfY29kZTogICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgICBudW1iZXI7XG4gIGFtb3VudF9wYXk6ICAgICAgICBudW1iZXI7XG4gIGRpc2NvdW50X3BheTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfY29kZTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfbmFtZTogICAgICBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICBzdHJpbmc7XG4gIGRhdGVfcGF5OiAgICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxTdHVkZW50UmVjZWlwdFJxIHtcbiAgdG9rZW46ICAgICAgICAgICBzdHJpbmc7XG4gIHF1b3Rhc19hZmZlY3RlZDogSVF1b3Rhc0FmZmVjdGVkUnFbXSB8IG51bGw7XG4gIHJlY2VpcHQgICAgICAgIDogbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxIHtcbiAgdG9rZW46ICAgICAgICAgICAgICBzdHJpbmc7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiAgbnVtYmVyO1xuICBzdGFydF9kYXRlOiAgICAgICAgIERhdGUgfCBudWxsO1xuICBmaW5pc2hfZGF0ZTogICAgICAgIERhdGUgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnEge1xuICB0b2tlbjogICAgICAgICAgICAgc3RyaW5nO1xuICBjb2RlX3R5cGVfY29uc3VsdDogbnVtYmVyO1xuICBzdGFydF9kYXRlOiAgICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICAgIERhdGU7XG4gIHVzZXJfY29kZTogICAgICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScyB7XG4gIHBheW1lbnRzOiAgICAgICAgICAgICAgIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnNbXTtcbiAgdG90YWxfYW1vdW50X2J5X21ldGhvZDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJzIHtcbiAgcGF5bWVudF9tZXRob2Q6ICAgIG51bWJlcjtcbiAgY29kX2NvZGU6ICAgICAgICAgIG51bWJlciB8IG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICBudW1iZXIgfCBudWxsO1xuICByZWNlaXB0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBzdHVkZW50X2NvZGU6ICAgICAgbnVtYmVyO1xuICBhbW91bnRfcGF5OiAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF9wYXk6ICAgICAgbnVtYmVyO1xuICBjb25jZXB0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBjb25jZXB0X25hbWU6ICAgICAgc3RyaW5nO1xuICBpbnZvaWNlX2NhbmNlbGxlZDogbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgICAgICAgc3RyaW5nO1xuICBkYXRlX3BheTogICAgICAgICAgRGF0ZTtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3RhbENhc2hSZWNlaXB0c0J5RGF0ZUFuZFVzZXJScyB7XG4gIHBheW1lbnRzOiAgICAgICAgICAgIElQYXltZW50QmlsbEdyYXBoUnNbXTtcbiAgdG90YWxfYnlfbWV0aG9kOiAgICAgSVRvdGFsQnlNZXRob2RSc1tdO1xuICBudW1iZXJfdHJhbnNhY3Rpb25zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRCaWxsR3JhcGhScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZXJ2aWNlczogICBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiAgICAgbnVtYmVyO1xuICBiYW5rOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogICAgICBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogICAgICAgbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogICAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiAgICAgbnVtYmVyO1xuICBvdXRzdGFuZGluZ19hbW91bnQ6IG51bWJlcjtcbiAgcG9zaXRpdmVfYW1vdW50OiAgICBudW1iZXI7XG4gIGRpc2NvdW50OiAgICAgICAgICAgbnVtYmVyO1xuICBwYXllcl9uYW1lOiAgICAgICAgIHN0cmluZztcbiAgcGF5ZXJfZG9jdW1lbnQ6ICAgICBzdHJpbmc7XG4gIGFjYWRlbWljX3BsYW46ICAgICAgbnVtYmVyO1xuICBwYXltZW50X3JlZmVyZW5jZTogIG51bGwgfCBzdHJpbmc7XG4gIHBheW1lbnRfZGF0ZTogICAgICAgRGF0ZSB8IG51bGw7XG4gIG9ic2VydmF0aW9uOiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgaW52b2ljZV9jYW5jZWxsZWQ6ICBudW1iZXI7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVG90YWxCeU1ldGhvZFJzIHtcbiAgY29kZTogICBudW1iZXI7XG4gIG5hbWU6ICAgc3RyaW5nO1xuICBhbW91bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEge1xuICB0b2tlbjogICAgICAgICBzdHJpbmc7XG4gIG1vZGFsaXR5OiAgICAgIG51bWJlcjtcbiAgY291cnNlX3N0YXR1czogbnVtYmVyO1xuICBjb29yZGluYXRvcjogICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6IElFbmdsaXNoTGV2ZWxScVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbmdsaXNoTGV2ZWxScSB7XG4gIGNvZGU6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVDb21tb25FeHBlbnNlcyAge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxICB7XG4gIHRva2VuOiAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfY29kZTogIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnMge1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIG51bWJlcjtcbiAgcHJldmlvc19jb3Vyc2U6ICAgICAgIG51bGwgfCBudW1iZXI7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGRhdGFDb3Vyc2U6ICAgICAgICBJRnVsZGF0YUNvdXJzZVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdXRzdGFuZGluZ1BheW1lbnRzUnMge1xuICBvdXRzdGFuZGluZ19wYXltZW50czogbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUGF5bWVudHNScyB7XG4gIE92ZXJkdWVfcGF5bWVudHM6ICAgIG51bWJlcjtcbiAgbnVtYmVyX2luc3RhbGxtZW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGdWxkYXRhQ291cnNlUnMge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBzdHJpbmdbXTtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgSUNvdXJzZVR5cGVDbHVBbmRUaGVScztcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IElDb3Vyc2VNb2RhbGl0eVJxO1xuICBpc19yZW5vdmF0aW9uOiAgIG51bWJlcjtcbiAgaXNfZnJvbTogICAgICAgICBudWxsO1xuICBpc19jbHViOiAgICAgICAgIG51bWJlcjtcbiAgaXNfdmlzaWJsZTogICAgICBudW1iZXI7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlVHlwZUNsdUFuZFRoZVJzIHtcbiAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgbmFtZTogICAgICAgICAgICAgIHN0cmluZztcbiAgbGFiZWw6ICAgICAgICAgICAgIHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiAgICAgIG51bWJlcjtcbiAgbnVtYmVyX2NsYXNzX2NsdWI6IG51bWJlcjtcbiAgYWNhZGVtaWNfcGxhbjogICAgIHN0cmluZztcbiAgdGhlb3J5X2NsYXNzZXM6ICAgIG51bWJlcjtcbiAgY2x1Yl9jbGFzc2VzOiAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5QnlDb2RScSAge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgY291cnNlX2NvZGU6ICBudW1iZXI7XG4gIGNvZF9jb2RlOiAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZlBhcmFtUnEgIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIHVzZXI6ICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZlBhcmFtUnMge1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgc3RyaW5nO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIG51bWJlcjtcbiAgcHJldmlvdXNfY291cnNlOiAgICAgIG51bGw7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxkYXRhQ291cnNlOiAgICAgICBJQWxsQ291cnNlc1ZpZXdlZFJzO1xuICBjdXJyZW50X2NvZDogICAgICAgICAgSUN1cnJlbnRDb2RScztcbiAgYWxsX2NvdXJzZXNfdmlld2VkOiAgIElBbGxDb3Vyc2VzVmlld2VkUnNbXTtcbiAgdXNlcl93YWxsZXQ6ICAgICAgICAgIElVc2VyV2FsbGV0UnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsbENvdXJzZXNWaWV3ZWRScyB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IHN0cmluZ1tdO1xuICB0ZWFjaGVyOiAgICAgICAgIHN0cmluZztcbiAgY291cnNlX3R5cGU6ICAgICBJQ291cnNlVHlwZUNsdUFuZFRoZVJzO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogSUNvdXJzZU1vZGFsaXR5UnE7XG4gIGlzX3Jlbm92YXRpb246ICAgbnVtYmVyO1xuICBpc19mcm9tOiAgICAgICAgIG51bGw7XG4gIGlzX2NsdWI6ICAgICAgICAgbnVtYmVyO1xuICBpc192aXNpYmxlOiAgICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdD86ICAgICBEYXRlO1xuICBjcmVhdGVkX2F0OiAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUN1cnJlbnRDb2RScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2U6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3R5cGU6ICAgICAgICAgICBudW1iZXI7XG4gIGFncmVlbWVudDogICAgICAgICAgICAgbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiAgICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudDogICAgICAgICAgICAgICBudW1iZXI7XG4gIHBhcmVudDogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBhZGl0aW9uYWxfaW5mb3JtYXRpb246IG51bWJlcjtcbiAgYWR2aXNlcjogICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9zdGF0dXM6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcHJpY2U6ICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3BhaWQ6ICAgICAgICAgICAgICBudW1iZXI7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgICAgICAgRGF0ZTtcbiAgY3JlYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdXRzdGFuZGluZ1BheW1lbnRzUnMge1xuICBvdXRzdGFuZGluZ19wYXltZW50czogbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUGF5bWVudHNScyB7XG4gIE92ZXJkdWVfcGF5bWVudHM6ICAgIG51bWJlcjtcbiAgbnVtYmVyX2luc3RhbGxtZW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyV2FsbGV0UnMge1xuICB1c2VyX2NvZGU6ICAgIG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgaXNfdmlzaWJsZTogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBheW1lbnRCaWxsRWdyZXNzUnEge1xuICBwYXltZW50X21ldGhvZDogbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiBudW1iZXI7XG4gIGJhbms6IG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogbnVtYmVyO1xuICBnZW5lcmF0ZWRfYnk6IHN0cmluZztcbiAgdG90YWxfYW1vdW50OiBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6IG51bWJlcjtcbiAgZGlzY291bnQ6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZT86IHN0cmluZztcbiAgcGF5ZXJfZG9jdW1lbnQ/OiBudW1iZXI7XG4gIGNvZGVBY2FkZW1pY19wbGFuOiBudW1iZXI7XG4gIG9ic2VydmF0aW9uOiBzdHJpbmc7XG4gIHJlZl9wYXltZW50PzpzdHJpbmc7XG4gIGRhdGVfcGF5bWVudDpEYXRlO1xuICBjb21tb25fZXhwZW5zZXM6IG51bWJlcjtcbiAgdHlwZV9tb3ZlbWVudHM6bnVtYmVyO1xuICBtYW51YWxfcmVjZWlwdDpudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNhc2hDbG9zaW5nUnEge1xuICB0b2tlbjpzdHJpbmdcbiAgfVxuZXhwb3J0IGludGVyZmFjZSBJbmZvQ2FzaENsb3NpbmdScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGNvZGU6IG51bWJlcjtcbiAgY29kZV91c2VyOm51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWNhc2hDbG9zaW5nRGF0ZVJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZTogc3RyaW5nO1xuICBmaW5pc2hfZGF0ZTogc3RyaW5nO1xuICBjb2RlX3VzZXI6bnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgSVBheW1lbnRXYWxsZXRScyB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2FudGlkYWQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdEYXRhUnMge1xuICB0b3RhbEluY29tZTogbnVtYmVyO1xuICB0b3RhbEVncmVzczogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kSW5jb21lSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50TWV0aG9kRWdyZXNzSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50V2FsbGV0RWdyZXNzSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xuICBwYXltZW50V2FsbGV0SW5jb21lSW5mbzogSVBheW1lbnRXYWxsZXRSc1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbmNvbWVzQW5kRWdyZXNzUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBjb2RlX3R5cGVfY29uc3VsdDpudW1iZXI7XG4gIGNvZGVfdHlwZV9tb3ZlbWVudDpudW1iZXI7XG4gIHN0YXJ0X2RhdGU/OnN0cmluZztcbiAgZmluaXNoX2RhdGU/OnN0cmluZztcbiAgdXNlcl9jb2RlOm51bWJlcjtcbiAgfVxuXG5cblxuZXhwb3J0IGludGVyZmFjZSBJT2JhdGluQmFsYWNlc0J5Q29vZGluYXRvclJxe1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXI7XG4gIGNvdXJzZV9zdGF0dXM6ICAgbnVtYmVyO1xuICB1c2VyX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICBFbmdsaXNoX0xldmVsc1tdO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGVuZF9kYXRlOiAgICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlUnF7XG4gIHRva2VuOiAgICAgICAgICAgc3RyaW5nO1xuICB1c2VyX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBlbmRfZGF0ZTogICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJzIHtcbiAgaW5jb21lOiAgIFJlc3BvbnNlUGF5O1xuICBleHBlbnNlczogUmVzcG9uc2VQYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VQYXkge1xuICBsaXN0UGF5bWVudDogICBJTGlzdFBheW1lbnRSc1tdO1xuICBzdW1CeU1ldGhvZDogICBJU3VtQnlNZXRob2RQYXlSc1tdO1xuICB0b3RhbEFtb3VudDogICBudW1iZXI7XG4gIGRhdGVDb25zdWx0OiAgIElEYXRlQ29uc3VsdFJzO1xuICB1c2VyQ29uc3VsdGVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVDb25zdWx0UnMge1xuICBzdGFydERhdGU6IERhdGU7XG4gIGVuZERhdGU6ICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGlzdFBheW1lbnRScyB7XG4gIHBheW1lbnRfY29kZTogICAgICAgbnVtYmVyO1xuICBtZXRob2RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbWV0aG9kX2NvZGU6ICAgICAgICBudW1iZXI7XG4gIHNlcnZpY2U6ICAgICAgICAgICAgc3RyaW5nO1xuICB3YWxsZXQ6ICAgICAgICAgICAgIHN0cmluZztcbiAgYmFuazogICAgICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxuYW1lX3N0dWRlbnQ6ICAgc3RyaW5nO1xuICBmdWxsbmFtZV91c2VyOiAgICAgIHN0cmluZztcbiAgdG90YWxfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiAgICAgbnVtYmVyO1xuICBvdXRzdGFuZGluZ19hbW91bnQ6IG51bWJlcjtcbiAgcG9zaXRpdmVfYW1vdW50OiAgICBudW1iZXI7XG4gIGRpc2NvdW50OiAgICAgICAgICAgbnVtYmVyO1xuICBmYXRoZXJfbmFtZTogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIHBhdGhlcl9kb2N1bWVudDogICAgbnVsbCB8IHN0cmluZztcbiAgYWNhZGVtaWNfcGxhbjogICAgICBudW1iZXI7XG4gIHJlZmVyZW5lY19wYXltZW50OiAgbnVsbCB8IHN0cmluZztcbiAgY3JlYXRlX2RhdGU6ICAgICAgICBEYXRlO1xuICBvYnNlcnZhdGlvbjogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdW1CeU1ldGhvZFBheVJzIHtcbiAgTWV0b2RvX3BhZ29fY29kZTogbnVtYmVyO1xuICBNZXRvZG9fcGFnbzogICAgICBzdHJpbmc7XG4gIFRvdGFsX3Bvcl9tZXRvZG86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudHNNYWRlQnlEYXRlc1JzIHtcbiAgYW1vdW50Q2FuY2VsOiAgICAgICAgICBudW1iZXI7XG4gIGNvZENvZGU6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjcmVhdGlvbl9kYXRlOiAgICAgICAgIERhdGU7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZXJ2aWNlczogICAgICBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiAgICAgICAgbnVtYmVyO1xuICBiYW5rOiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2ZvcjogICAgICAgICBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogICAgICAgICAgbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogICAgICAgIG51bWJlcjtcbiAgY29tbW9uX2V4cGVuc2VzOiAgICAgICBudW1iZXI7XG4gIHRvdGFsX2Ftb3VudDogICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X2Ftb3VudDogICAgICAgIG51bWJlcjtcbiAgb3V0c3RhbmRpbmdfYW1vdW50OiAgICBudW1iZXI7XG4gIHBvc2l0aXZlX2Ftb3VudDogICAgICAgbnVtYmVyO1xuICBkaXNjb3VudDogICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5ZXJfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBheWVyX2RvY3VtZW50OiAgICAgICAgc3RyaW5nO1xuICBhY2FkZW1pY19wbGFuOiAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9yZWZlcmVuY2U6ICAgICBudWxsIHwgc3RyaW5nO1xuICBwYXltZW50X2RhdGU6ICAgICAgICAgIERhdGUgfCBudWxsO1xuICBvYnNlcnZhdGlvbjogICAgICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiAgICAgbnVtYmVyO1xuICBtYW51YWxfcmVjZWlwdDogICAgICAgIG51bGwgfCBzdHJpbmc7XG4gIGNvZF9jb3Vyc2U6ICAgICAgICAgICAgbnVtYmVyO1xuICBwYXltZW50X21ldGhvZF9uYW1lOiAgIHN0cmluZztcbiAgcGF5bWVudF9zZXJ2aWNlc19uYW1lOiBzdHJpbmc7XG4gIHBheW1lbnRfd2FsbGV0X25hbWU6ICAgc3RyaW5nO1xuICBiYW5rX25hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgZnVsbG5hbWVfZmF0aGVyczogICAgICBudWxsIHwgc3RyaW5nO1xuICBnZW5lcmF0ZWRfZm9yX25hbWU6ICAgIHN0cmluZztcbiAgZ2VuZXJhdGVkX2J5X25hbWU6ICAgICBzdHJpbmc7XG4gIHR5cGVfbW92ZW1lbnRzX25hbWU6ICAgc3RyaW5nO1xuICBhY2FkZW1pY19wbGFuX25hbWU6ICAgIHN0cmluZztcbiAgdXNlcl93YWxsZXQ6ICAgICAgICAgICBJVXNlcldhbGxldFJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyV2FsbGV0UnMge1xuICB1c2VyX2NvZGU6ICAgIG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICBzdHJpbmc7XG4gIGVtYWlsX2lwdDogICAgc3RyaW5nO1xuICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgaXNfdmlzaWJsZTogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZEVtYWlsUGF5bWVudCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWVTdHVkZW50OiBzdHJpbmc7XG4gIHBob25lU3R1ZGVudDogc3RyaW5nO1xuICBwYXltZW50RGF0ZTogc3RyaW5nO1xuICBhY2FkZW1pY1BsYW46IHN0cmluZztcbiAgcGF5ZXJEb2N1bWVudDogc3RyaW5nO1xuICB0b3RhbEFtb3VudDogbnVtYmVyO1xuICBwYXltZW50QW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nQW1vdW50OiBudW1iZXI7XG4gIGRpc2NvdW50PzogbnVtYmVyO1xuICBwYXltZW50TWV0aG9kOiBzdHJpbmc7XG4gIGJhbms/OiBudW1iZXI7XG4gIG9ic2VydmF0aW9uPzogc3RyaW5nO1xuICBjb2Rlc1JlZmVyczogbnVtYmVyW107XG4gIGNvZGVEaXNjb3VudDogbnVtYmVyO1xuICBjb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZEVtYWlsUGF5bWVudENhbmNlbGxhdGlvblJTIHtcbiAgZW1haWw6IHN0cmluZztcbiAgc3R1ZGVudE5hbWU6IHN0cmluZztcbiAgcmVjZWlwdENvZGU6IG51bWJlcjtcbiAgY2FuY2VsbGF0aW9uRGF0ZTogc3RyaW5nO1xuICBhbW91bnQ6IG51bWJlcjtcbiAgY29uY2VwdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50Q29ycmVsYXRpdmVScSB7XG4gIHRva2VuOnN0cmluZztcbiAgdHlwZV9jYXRlZ29yeTogbnVtYmVyO1xuICBzdGFydF9kYXRlOiBEYXRlO1xuICBlbmRfZGF0ZTogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudENvcnJlbGF0aXZlUnF7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiBudW1iZXIgfCBudWxsO1xuICBmaW5pc2hfZGF0ZTogRGF0ZTtcbiAgc3RhcnRfZGF0ZTogRGF0ZTtcbiAgdG9rZW46IHN0cmluZztcbiAgdHlwZV9jYXRlZ29yeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5HYXRld2F5UGF5bWVudFJlY29yZFJxIHtcbiAgY29kOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVwZGF0ZUVwYXljb1BheW1lbnRScXtcbiAgcmVmX3ZhbGlkYXRpb246IHN0cmluZztcbiAgcGF5bWVudF9yZWY6ICAgIHN0cmluZztcbiAgeF9yZWZfcGF5Y286ICAgIG51bWJlcjtcbiAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZztcbiAgc3RhdHVzX2NvZGU6ICAgIG51bWJlcjtcbiAgc3RhdHVzX25hbWU6ICAgIHN0cmluZztcbiAgYW1vdW50OiAgICAgICAgIG51bWJlcjtcbiAgdHlwZV9wYXltZW50OiAgIHN0cmluZztcbiAgYmFua19uYW1lOiAgICAgIHN0cmluZztcbiAgZXBheWNvX3BpbjogICAgIHN0cmluZztcbiAgY3VycmVuY3lfY29kZTogIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRXBheWNvUGF5bWVudFVwZGF0ZVJzIHtcbiAgZ2F0ZVBheW1lbnQ6IElHYXRlUGF5bWVudFJzO1xuICBzZWxmTWFuYWc6ICAgSVNlbGZNYW5hZ1JzO1xuICBlcGFCaWxsbDogICAgSUVwYUJpbGxsUnM7XG4gIHVwZFVzZXI6ICAgICBJVXBkVXNlclJzIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRXBhQmlsbGxScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9yZWY6ICAgICAgICAgc3RyaW5nO1xuICBhbW91bnQ6ICAgICAgICAgICAgICBudW1iZXI7XG4gIGVwYXljb19iYW5rOiAgICAgICAgIHN0cmluZztcbiAgZXBheWNvX3BheW1lbnRfdHlwZTogc3RyaW5nO1xuICBlcGF5Y29fcGluOiAgICAgICAgICBzdHJpbmc7XG4gIGVwYXljb19zdGF0dXM6ICAgICAgIHN0cmluZztcbiAgZXBheWNvX3JlZjogICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYXRlUGF5bWVudFJzIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfc2VydmljZTogbnVtYmVyO1xuICBjb2Q6ICAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6ICBudW1iZXI7XG4gIHBheW1lbnRfcmVmOiAgICAgc3RyaW5nO1xuICBlcGF5Y29fcmVmOiAgICAgIHN0cmluZztcbiAgZXBheWNvX3N0YXR1czogICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGZNYW5hZ1JzIHtcbiAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlOiAgICAgICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9zZWxlY3Rpb246IG51bWJlcjtcbiAgcGF5bWVudF9yZWY6ICAgICAgIHN0cmluZztcbiAgZXBheWNvX3JlZjogICAgICAgIHN0cmluZztcbiAgbmVlZF9wYXk6ICAgICAgICAgIG51bWJlcjtcbiAgaXNfcGF5OiAgICAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBkVXNlclJzIHtcbiAgY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGxhc3RfbmFtZTogICAgICAgIHN0cmluZztcbiAgbmlja19uYW1lOiAgICAgICAgbnVsbDtcbiAgZW1haWw6ICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbF9pcHQ6ICAgICAgICBudWxsO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIERhdGU7XG4gIGNpdHk6ICAgICAgICAgICAgIG51bWJlcjtcbiAgaWRfY2FyZF90eXBlOiAgICAgbnVtYmVyO1xuICBpZF9jYXJkOiAgICAgICAgICBzdHJpbmc7XG4gIHRva2VuOiAgICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9zdGF0dXM6ICAgICAgbnVtYmVyO1xuICBwYXNzd29yZF9jaGFuZ2U6ICBudW1iZXI7XG4gIHN0YXR1c19hc2luZzogICAgIG51bWJlcjtcbiAgZm9vdHByaW50OiAgICAgICAgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudHNCYWxhbmNlUnEge1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgdXNlcl9jb2RlOiAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9tb2RhbGl0eTogbnVtYmVyO1xuICBjb3Vyc2Vfc3RhdHVzOiAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICBJRW5nbGlzaExldmVsUnFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudHNCYWxhbmNlUnMge1xuICBjb3Vyc2VDb2RlOiAgICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBFbmdsaXNoTGV2ZWw6ICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICBTdGFydERhdGU6ICAgICAgICAgICAgICAgICAgICAgRGF0ZTtcbiAgRmluaXNoRGF0ZTogICAgICAgICAgICAgICAgICAgIERhdGU7XG4gIENvdXJzZVR5cGU6ICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIENvdXJzZU1vZGFsaXR5OiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIENvdXJzZVJlbm92YXRpb246ICAgICAgICAgICAgICBzdHJpbmc7XG4gIHRvdGFsX3N0dWRlbnQ6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIEFjdGl2ZVN0dWRlbnRzOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIFN0dWRlbnRzU3VzcGVuZGVkUGF5OiAgICAgICAgICBudW1iZXI7XG4gIEZyb3plblN0dWRlbnRzOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIFdpdGhkcmF3blN0dWRlbnRzOiAgICAgICAgICAgICBudW1iZXI7XG4gIHNjaG9sYXJzaGlwU3R1ZGVudHM6ICAgICAgICAgICBJU2Nob2xhcnNoaXBTdHVkZW50UnNbXTtcbiAgc3R1ZGVudHNXaXRoQ2FzaFBheW1lbnRzOiAgICAgIG51bWJlcjtcbiAgc3R1ZGVudHNXaXRoQ3JlZGl0UGF5bWVudHM6ICAgIG51bWJlcjtcbiAgc3R1ZGVudHNXaXRoU2Nob2xhcnNoaXBzOiAgICAgIG51bWJlcjtcbiAgbHVtcFN1bVBheW1lbnRzVG9SZWNlaXZlZDogICAgIG51bWJlcjtcbiAgbHVtcFN1bVBhaWQ6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgb3ZlcmR1ZUx1bXBTdW06ICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgbHVtcFN1bVJlY2VpdmFibGU6ICAgICAgICAgICAgIG51bWJlcjtcbiAgbG9zc0x1bXBTdW1QYXltZW50c1RvUmVjZWl2ZWQ6IG51bWJlcjtcbiAgb3ZlcmFsbFRvdGFsTG9zc09mUGF1c2VkOiAgICAgIG51bWJlcjtcbiAgb3ZlcmFsbFRvdGFsTG9zc09mUmV0aXJlZXM6ICAgIG51bWJlcjtcbiAgbG9zc0x1bXBTdW1QYWlkOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgU3R1ZGVudHNBY3RpdmU6ICAgICAgICAgICAgICAgIElTdHVkZW50c1BheVJzO1xuICBTdHVkZW50c1N1c3BlbmRlZFBheW1lbnQ6ICAgICAgSVN0dWRlbnRzUGF5UnM7XG4gIFN0dWRlbnRzUGF1c2VkUHJvY2VzczogICAgICAgICBJU3R1ZGVudHNQYXlScztcbiAgU3R1ZGVudHNSZXRpcmVkOiAgICAgICAgICAgICAgIElTdHVkZW50c1BheVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50c1BheVJzIHtcbiAgY291bnQ6ICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgdG90YWxfb3Zlckluc3RhbGxtZW50czogIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X2V4cGVjdGVkOiAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X3BhaWQ6ICAgICAgIG51bWJlcjtcbiAgdG90YWxfYW1vdW50X3JlY2VpdmFibGU6IG51bWJlcjtcbiAgdG90YWxfYW1vdW50X292ZXJkdWU6ICAgIG51bWJlcjtcbiAgZGF0YTogICAgICAgICAgICAgICAgICAgIElTdHVkZW50c0FjdGl2ZVJzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0dWRlbnRzQWN0aXZlUnMge1xuICBjb2RfY29kZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgbnVtYmVyO1xuICBjb2RlOiAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkb2N1bWVudDogICAgICAgICAgICAgc3RyaW5nO1xuICBmdWxsX25hbWU6ICAgICAgICAgICAgc3RyaW5nO1xuICBwaG9uZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBlbWFpbDogICAgICAgICAgICAgICAgc3RyaW5nO1xuICBvdmVyZHVlX3BheW1lbnRzOiAgICAgSU92ZXJkdWVQYXltZW50c1JzO1xuICBvdXRzdGFuZGluZ19wYXltZW50czogSU91dHN0YW5kaW5nUGF5bWVudHNScztcbiAgcGF5bWVudHNfbWFkZTogICAgICAgIElQYXltZW50c01hZGVScztcbiAgcHJldmlvc19jb3Vyc2U6ICAgICAgIG51bGwgfCBudW1iZXI7XG4gIGNvbG9yX2R1ZTogICAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRzTWFkZVJzIHtcbiAgbWFkZV9wYXltZW50czogICAgICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNjaG9sYXJzaGlwU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGFyZW50OiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcGFpZDogICAgICAgICAgICAgIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElFbGVjdHJvbmljSW52b2ljZVJTIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZTogRGF0ZSB8IG51bGw7XG4gIGVuZF9kYXRlOiBEYXRlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgcGFnZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogbnVtYmVyO1xuICBtZXNzYWdlOiBJTWVzc2FnZVJxO1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsRGF0YVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50QmlsbEZ1bGxEYXRhUnMge1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsUnNbXTtcbiAgcGFnaW5hdGlvbjogSVBhZ2luYXRpb25Scztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudEJpbGxGdWxsUnMge1xuICBwYXltZW50X2JpbGxfY29kZTogbnVtYmVyO1xuICBwYXltZW50X21ldGhvZDogbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiBudW1iZXI7XG4gIHBheW1lbnRfd2FsbGV0OiBudW1iZXI7XG4gIGJhbmtfbmFtZTogc3RyaW5nO1xuICBnZW5lcmF0ZWRfZm9yOiBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czogbnVtYmVyO1xuICBjb21tb25fZXhwZW5zZXM6IG51bWJlcjtcbiAgdG90YWxfYW1vdW50OiBudW1iZXI7XG4gIHBheW1lbnRfYW1vdW50OiBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6IG51bWJlcjtcbiAgZGlzY291bnQ6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcGF5ZXJfZG9jdW1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgcGF5bWVudF9yZWZlcmVuY2U6IHN0cmluZyB8IG51bGw7XG4gIHBheW1lbnRfZGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgb2JzZXJ2YXRpb246IHN0cmluZyB8IG51bGw7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIG1hbnVhbF9yZWNlaXB0OiBzdHJpbmcgfCBudWxsO1xuICBjb3JyZWxhdGl2ZTogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfY29kZTogbnVtYmVyIHwgbnVsbDtcbiAgZWxlY3Ryb25pY19pbnZvaWNlOiBzdHJpbmcgfCBudWxsO1xuICBwYXltZW50X2JpbGxfY3JlYXRlZF9hdDogc3RyaW5nO1xuICBwYXltZW50X2JpbGxfdXBkYXRlZF9hdDogc3RyaW5nO1xuXG4gIC8vIENhbXBvcyBkZSB0cmFuc2ZlcnNcbiAgdHJhbnNmZXJfYW1vdW50OiBudW1iZXIgfCBudWxsO1xuICBpbml0aWFsX2Ftb3VudDogbnVtYmVyIHwgbnVsbDtcbiAgdHJhbnNmZXJfYmFua19uYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0cmFuc2Zlcl9kYXRlOiBzdHJpbmcgfCBudWxsO1xuICByZWZlcmVuY2VfbnVtYmVyOiBzdHJpbmcgfCBudWxsO1xuICB0cmFuc2Zlcl9zdGF0dXM6IHN0cmluZyB8IG51bGw7XG4gIHRyYW5zZmVyX2NyZWF0ZWRfYnk6IG51bWJlciB8IG51bGw7XG4gIHRyYW5zZmVyX3VwZGF0ZWRfYnk6IG51bWJlciB8IG51bGw7XG4gIGltYWdlX3VybDogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfY3JlYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgdHJhbnNmZXJfdXBkYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcblxuICAvLyBDYW1wb3MgZGUgcGF5ZXIgKHVzZXIpXG4gIHBheWVyX2NvZGU6IG51bWJlcjtcbiAgcGF5ZXJfbmFtZV91c2VyOiBzdHJpbmc7XG4gIHBheWVyX2xhc3RfbmFtZTogc3RyaW5nO1xuICBwYXllcl9lbWFpbDogc3RyaW5nO1xuICBwYXllcl9yb2xlOiBudW1iZXI7XG4gIHBheWVyX3Bob25lOiBzdHJpbmc7XG4gIHBheWVyX2NyZWF0ZWRfYXQ6IHN0cmluZztcblxuICAvLyBDYW1wb3MgZGUgY3JlYXRvciAodXNlcilcbiAgY3JlYXRvcl9jb2RlOiBudW1iZXI7XG4gIGNyZWF0b3JfbmFtZTogc3RyaW5nO1xuICBjcmVhdG9yX2xhc3RfbmFtZTogc3RyaW5nO1xuICBjcmVhdG9yX2VtYWlsOiBzdHJpbmc7XG4gIGNyZWF0b3Jfcm9sZTogbnVtYmVyO1xuICBjcmVhdG9yX3Bob25lOiBzdHJpbmc7XG4gIGNyZWF0b3JfY3JlYXRlZF9hdDogc3RyaW5nO1xuXG4gIC8vIENhbXBvcyBkZSBjb2RcbiAgY29kX2NvZGU6IG51bWJlcjtcbiAgY291cnNlOiBudW1iZXI7XG4gIGNvdXJzZV90eXBlOiBudW1iZXI7XG4gIGFncmVlbWVudDogbnVtYmVyO1xuICBlbmdsaXNoX2xldmVsOiBudW1iZXI7XG4gIHN0dWRlbnQ6IG51bWJlcjtcbiAgY29kX3BhcmVudDogbnVtYmVyIHwgbnVsbDtcbiAgYWRpdGlvbmFsX2luZm9ybWF0aW9uOiBudW1iZXI7XG4gIGFkdmlzZXI6IG51bWJlcjtcbiAgY29kX3N0YXR1czogbnVtYmVyO1xuICBjb2RfcHJpY2U6IG51bWJlciB8IG51bGw7XG4gIGNvZF9wYWlkOiBudW1iZXI7XG4gIGNvZF9jcmVhdGVkX2F0OiBzdHJpbmc7XG4gIGNvZF91cGRhdGVkX2F0OiBzdHJpbmc7XG5cbiAgLy8gQ2FtcG9zIGRlIHBhcmVudFxuICBwYXJlbnRfY29kZTogbnVtYmVyIHwgbnVsbDtcbiAgcGFyZW50X25hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBhcmVudF9sYXN0X25hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBhcmVudF9pZF9jYXJkOiBzdHJpbmcgfCBudWxsO1xuICBwYXJlbnRfcGhvbmU6IHN0cmluZyB8IG51bGw7XG4gIG9jY3VwYXRpb246IHN0cmluZyB8IG51bGw7XG4gIG9mZmljZV9hZHJyZXNzOiBzdHJpbmcgfCBudWxsO1xuICBwYXJlbnRfY3JlYXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgcGFyZW50X3VwZGF0ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8vIFBhZ2luYWNpw7NuXG5leHBvcnQgaW50ZXJmYWNlIElQYWdpbmF0aW9uUnMge1xuICB0b3RhbDogbnVtYmVyO1xuICBwZXJfcGFnZTogbnVtYmVyO1xuICBjdXJyZW50X3BhZ2U6IG51bWJlcjtcbiAgbGFzdF9wYWdlOiBudW1iZXI7XG4gIGZyb206IG51bWJlcjtcbiAgdG86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUGF5bWVudEJpbGxScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHJlZmVyZW5jZV9udW1iZXI/OiBzdHJpbmc7XG4gIHBheWVyX25hbWU/OiBzdHJpbmc7XG4gIGVsZWN0cm9uaWNfaW52b2ljZT86IHN0cmluZztcbiAgLy9wYXltZW50X2JpbGxfY29kZT86IG51bWJlcjtcbiAgcGF5bWVudF9iaWxsX2NvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlYXJjaFBheW1lbnRCaWxsUnMge1xuICBpcF9hcHBsaWNhbnQ6IHN0cmluZztcbiAgc3RhdHVzOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICB9O1xuICBkYXRhOiBJUGF5bWVudEJpbGxGdWxsRGF0YVJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHZXRTdW1tYXJ5QnlDb29yZGluYXRvclJxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgc3RhcnRfZGF0ZT86IHN0cmluZztcbiAgZW5kX2RhdGU/OiBzdHJpbmc7XG4gIGdyYWNlX3BlcmlvZF9kYXlzPzogbnVtYmVyO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFkZE5ld1F1b3RhV2l0aENvbW1lbnRzUnEge1xuICB0b2tlbjogICAgICAgICAgc3RyaW5nO1xuICBjb2Q6ICAgICAgICAgICAgbnVtYmVyO1xuICBmZWVfbnVtYmVyOiAgICAgbnVtYmVyO1xuICB2YWx1ZUFtb3VudDogICAgbnVtYmVyO1xuICB0aW1lbHlfZGF0ZTogICAgc3RyaW5nO1xuICBvYnNlcnZhdGlvbjogICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxIHtcbiAgdG9rZW46ICAgICAgICAgIHN0cmluZztcbiAgY29kX3BheW1lbnQ6ICAgIG51bWJlcjtcbiAgb2JzZXJ2YXRpb246ICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kaWZ5UXVvdGFEYXRhV2l0aENvbW1lbnRzUnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgY29kOiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIHRpbWVseV9kYXRlOiAgICAgICAgc3RyaW5nO1xuICBvYnNlcnZhdGlvbjogICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdEluc3RhbGxtZW50QW1vdW5XaXRoQ29tbWVudHNScSB7XG4gIHRva2VuOiAgICAgICAgICAgICAgc3RyaW5nO1xuICBjb2RfcGF5bWVudDogICAgICAgIG51bWJlcjtcbiAgdmFsdWVfYW1vdW50OiAgICAgICBudW1iZXI7XG4gIG9ic2VydmF0aW9uOiAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9jZXNzUGF5bWVudENvZFdpdGhDb21tZW50c1JzIHtcbiAgICBjb2RwYXltZW50OiBJQ29kcGF5bWVudFByb2Nlc3NQYXltZW50UnM7XG4gICAgaGlzdG9yeTogICAgSUhpc3RvcnlQcm9jZXNzUGF5bWVudFJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2RwYXltZW50UHJvY2Vzc1BheW1lbnRScyB7XG4gICAgY29kZTogICAgICAgICAgICAgIG51bWJlcjtcbiAgICBjb2Q6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICAgIHRpbWVseV9kYXRlOiAgICAgICBEYXRlO1xuICAgIGFtb3VudDogICAgICAgICAgICBudW1iZXI7XG4gICAgZmVlX251bWJlcjogICAgICAgIG51bWJlcjtcbiAgICBzdGF0dXM6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHVwZGF0ZWRfYW1vdW50X2J5OiBudW1iZXI7XG4gICAgdXBkYXRlZF9ieTogICAgICAgIG51bWJlcjtcbiAgICBkZWxldGVkX2F0OiAgICAgICAgbnVsbCB8IERhdGU7XG4gICAgdXBkYXRlZF9hdDogICAgICAgIERhdGU7XG4gICAgY3JlYXRlZF9hdDogICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhpc3RvcnlQcm9jZXNzUGF5bWVudFJzIHtcbiAgICBjb2RfcGF5bWVudDogbnVtYmVyO1xuICAgIG9ic2VydmF0aW9uOiBzdHJpbmc7XG4gICAgc3RhdHVzOiAgICAgIG51bWJlcjtcbiAgICBwcm9jZXNzOiAgICAgbnVtYmVyO1xuICAgIHByb2R1Y2VkX2J5OiBudW1iZXI7XG4gICAgY29kZTogICAgICAgIG51bWJlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScSB7XG4gICAgdG9rZW46ICAgICAgIHN0cmluZztcbiAgICB1c2VyX2NvZGU6ICAgbnVtYmVyO1xuICAgIHN0YXJ0X2RhdGU6ICBzdHJpbmc7XG4gICAgZW5kX2RhdGU6ICAgIHN0cmluZztcbiAgICBjb3Vyc2VfY29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScyB7XG4gICAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gICAgc3RhdHVzOiAgICAgICBudW1iZXI7XG4gICAgbWVzc2FnZTogICAgICBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0TWVzc2FnZTtcbiAgICBkYXRhOiAgICAgICAgIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRNZXNzYWdlIHtcbiAgICBjb2RlOiAgICBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnREYXRhIHtcbiAgICBmaWx0ZXJzOiAgICAgICAgICAgICAgSUNvdXJzZVBheW1lbnRSYW5nZVJlcG9ydEZpbHRlcnM7XG4gICAgc3VtbWFyeV9ieV9jb3Vyc2U6ICAgIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRTdW1tYXJ5W107XG4gICAgY29kX2RldGFpbF9ieV9jb3Vyc2U6IElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRDb2REZXRhaWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0RmlsdGVycyB7XG4gICAgdXNlcl9jb2RlOiAgIG51bWJlcjtcbiAgICBjb3Vyc2VfY29kZTogbnVtYmVyO1xuICAgIHN0YXJ0X2RhdGU6ICBzdHJpbmc7XG4gICAgZW5kX2RhdGU6ICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0U3VtbWFyeSB7XG4gICAgY291cnNlX2NvZGU6ICAgICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICBjb2RfY291bnRfc3RhdHVzX2xlXzM6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHRvdGFsX2Ftb3VudF90b19jb2xsZWN0X2luX3JhbmdlOiBudW1iZXI7XG4gICAgdG90YWxfaW5zdGFsbG1lbnRzX2luX3JhbmdlOiAgICAgIG51bWJlcjtcbiAgICBwYWlkX2luc3RhbGxtZW50c19pbl9yYW5nZTogICAgICAgc3RyaW5nO1xuICAgIHVucGFpZF9pbnN0YWxsbWVudHNfaW5fcmFuZ2U6ICAgICBzdHJpbmc7XG4gICAgcGFpZF9pbnN0YWxsbWVudHNfYW1vdW50X2luX3JhbmdlOiAgIG51bWJlcjtcbiAgICB1bnBhaWRfaW5zdGFsbG1lbnRzX2Ftb3VudF9pbl9yYW5nZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRDb2REZXRhaWwge1xuICAgIGNvZF9jb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gICAgY29kX3N0YXR1czogICAgICAgICAgIG51bWJlcjtcbiAgICBjb2RfcHJpY2U6ICAgICAgICAgICAgbnVtYmVyO1xuICAgIHN0dWRlbnRfY29kZTogICAgICAgICBudW1iZXI7XG4gICAgZG9jdW1lbnQ6ICAgICAgICAgICAgIHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiAgICAgICAgICAgc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gICAgaW5zdGFsbG1lbnRzX2luX3JhbmdlOiBudW1iZXI7XG4gICAgdG90YWxfYW1vdW50X2luX3JhbmdlOiBudW1iZXI7XG4gICAgcGF5bWVudF9kYXRlczogICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJb2J0YWluUGVuZGluZ0dhdGV3YXlQYXltZW50c0ZvclByb2Nlc3NpbmdScyB7XG4gICAgaXBfYXBwbGljYW50Pzogc3RyaW5nO1xuICAgIHN0YXR1cz86ICAgICAgIG51bWJlcjtcbiAgICBtZXNzYWdlPzogICAgICBJTWVzc2FnZVJxO1xuICAgIGRhdGE/OiAgICAgICAgIG9idGFpblBlbmRpbmdHYXRld2F5UGF5bWVudHNGb3JQcm9jZXNzaW5nUnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBvYnRhaW5QZW5kaW5nR2F0ZXdheVBheW1lbnRzRm9yUHJvY2Vzc2luZ1JzIHtcbiAgICBjb2RlPzogICAgICAgICAgICAgIG51bWJlcjtcbiAgICBjb2Q/OiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICB0aW1lbHlfZGF0ZT86ICAgICAgIERhdGU7XG4gICAgYW1vdW50PzogICAgICAgICAgICBudW1iZXI7XG4gICAgZmVlX251bWJlcj86ICAgICAgICBudW1iZXI7XG4gICAgc3RhdHVzPzogICAgICAgICAgICBudW1iZXI7XG4gICAgdXBkYXRlZF9hbW91bnRfYnk/OiBudW1iZXI7XG4gICAgdXBkYXRlZF9ieT86ICAgICAgICBudW1iZXIgfCBudWxsO1xuICAgIGRlbGV0ZWRfYXQ/OiAgICAgICAgbnVsbDtcbiAgICB1cGRhdGVkX2F0PzogICAgICAgIERhdGU7XG4gICAgY3JlYXRlZF9hdD86ICAgICAgICBEYXRlO1xuICAgIGRheVZlbmM/OiAgICAgICAgICAgbnVtYmVyO1xuICAgIGNvbG9yRGF5PzogICAgICAgICAgc3RyaW5nO1xufVxuIl19
|
|
@@ -575,6 +575,10 @@ export class BudgetService extends IPTGeneralService {
|
|
|
575
575
|
this.generateRequestParams(param);
|
|
576
576
|
return this.http.post(serviceUrl, this.httpOptions);
|
|
577
577
|
}
|
|
578
|
+
obtainPendingGatewayPaymentsForProcessing(codeStudent) {
|
|
579
|
+
let serviceUrl = this.SERVICE_URL + 'obtain/pending/gateway/payments/for/processing/' + codeStudent;
|
|
580
|
+
return this.http.get(serviceUrl);
|
|
581
|
+
}
|
|
578
582
|
}
|
|
579
583
|
BudgetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: BudgetService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
580
584
|
BudgetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: BudgetService, providedIn: 'root' });
|
|
@@ -584,4 +588,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
584
588
|
providedIn: 'root'
|
|
585
589
|
}]
|
|
586
590
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
587
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9idWRnZXQtc2VydmljZS9idWRnZXQtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFJbEQsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO1FBSWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFzQjtRQUNuQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUEyQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELGNBQWMsQ0FBQyxNQUFrQjtRQUMvQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO1FBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGNBQWMsQ0FBQyxN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O21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRkaXNjb3VudEFsbFJxLCBEaXNjb3VudFJxLCBEaXNjb3VudFVwZGF0ZVJxLCBJT2J0YWluQWxsQ291cnNld2FsbGV0LCBJQXNzaWduUmVxdWVzdFJxLCBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMsIElHZXRDb2RCeVBheW1lbnRQbGFuUnEsIElVcGRhdGVBbW91bnRDb2RQYXltZW50c1JxLCBJUGFyYW1zVXBkYXRlRGF0ZUNvZFBheW1lbnRzUnEsIElDYW5jZWxTdHVkZW50UmVjZWlwdFJxLCBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxLCBJUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJxLCBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEsIE5hbWVDb21tb25FeHBlbnNlcywgSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxLCBJT2J0YWluU3R1ZGVudFBheW1lbnRCeURpZmZQYXJhbVJxLCBJbmZvQ2FzaENsb3NpbmdScSwgSWNhc2hDbG9zaW5nRGF0ZVJxLCBJY2FzaENsb3NpbmdScSwgSXBheW1lbnRCaWxsRWdyZXNzUnEsIEluY29tZXNBbmRFZ3Jlc3NScSwgSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJxLCBJT2JhdGluQmFsYWNlc0J5Q29vZGluYXRvclJxLCBTZW5kRW1haWxQYXltZW50LFNlbmRFbWFpbFBheW1lbnRDYW5jZWxsYXRpb25SUywgSVBheW1lbnRDb3JyZWxhdGl2ZVJxLCBJT2J0YWluR2F0ZXdheVBheW1lbnRSZWNvcmRScSwgSVVwZGF0ZUVwYXljb1BheW1lbnRScSwgSUVsZWN0cm9uaWNJbnZvaWNlUlMsIElBY2NvdW50c0JhbGFuY2VScSwgSUdldEZ1bGxQYXltZW50SW5mb3JtYXRpb25ScSwgSUdldEZ1bGxQYXltZW50SW5mb3JtYXRpb25ScywgSVNlYXJjaFBheW1lbnRCaWxsUnEsIElTZWFyY2hQYXltZW50QmlsbFJzLCBJR2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3JScSwgSUFkZE5ld1F1b3RhV2l0aENvbW1lbnRzUnEsIElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxLCBJTW9kaWZ5UXVvdGFEYXRhV2l0aENvbW1lbnRzUnEsIElFZGl0SW5zdGFsbG1lbnRBbW91bldpdGhDb21tZW50c1JxLCBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0UnEsIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScyB9IGZyb20gJy4uLy4uL21vZGVscy9idWRnZXQvYnVkZ2V0Lm1vZGVsJztcbmltcG9ydCB7IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEsIElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JDb3Vyc2VScSwgSVBheW1lbnRPdmVyZHVlQnlDb29yZGluYXRvclJxLCBJUGF5bWVudFJlZmVyZW5jZVJxLCBJVHJhbnNmZXIsIElUcmFuc2ZlckFzc2lnbkltYWdlLCBJVHJhbnNmZXJDcmVhdGVScSwgSVRyYW5zZmVyRGVsZXRlUnEsIElUcmFuc2ZlckdldEFsbFJxLCBJVHJhbnNmZXJHZXRScSwgSVRyYW5zZmVyU2VhcmNoUnEsIElUcmFuc2ZlclNob3dJbWFnZVJxLCBJVHJhbnNmZXJTdGF0dXNVcGRhdGVScSwgSVRyYW5zZmVyVXBkYXRlUnEsIFBheW1lbnRCaWxsUnEsIFBheW1lbnRCaWxsUnEyLCBQcmljZUJ5VHlwZVNlcnZpY2VScSxJRGVsZXRlQ29kUGF5bWVudHNScSxJQ3JlYXRlQ29kUGF5bWVudHNScSwgSVRyYW5zZmVyU3RhdHVzVXBkYXRlUmVxdWVzdFJxLCBJVXBkYXRlRWxlY3Ryb25pY0ludm9pY2VScSwgSVZhbGlkYXRpb25PZlRyYW5zZmVyc0J5TnVtYmVyUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGF5bWVudC9wYXltZW50LXJxLm1vZGVsJztcbmltcG9ydCB7IElnZXRDb3Vyc2VzRmluaXNoQW5kdW5hc3NpZ25lZFJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlcG9ydHMvcmVwb3J0cy5tb2RlbCc7XG5pbXBvcnQgeyBJUFRHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UtZW52aXJvbWVudHMnO1xuaW1wb3J0IHsgSUNvZFBheW1lbnRScSB9IGZyb20gJy4uLy4uL21vZGVscy9jb2QvY29kLXJxLm1vZGVsJztcbmltcG9ydCB7IElDcmVhdGVUcmFuc2ZlclJxLCBJU2VhcmNoVHJhbnNmZXJScSwgSVVwZGF0ZVRyYW5zZmVyUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNmZXIvdHJhbnNmZXIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCdWRnZXRTZXJ2aWNlIGV4dGVuZHMgSVBUR2VuZXJhbFNlcnZpY2V7XG5cbiAgcHJpdmF0ZSBTRVJWSUNFX1VSTCA9ICdidWRnZXQvYXBpLyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlNFUlZJQ0VfVVJMID0gdGhpcy5iYXNlVXJsKCkgKyB0aGlzLlNFUlZJQ0VfVVJMO1xuICB9XG5cbiAgZ2V0QWxsRGlzY291bnQodXNlcjogZ2V0ZGlzY291bnRBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZGlzY291bnRzL2NvdXBvbi9hbGwnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIGNyZWF0ZURpc2NvdW50KHBhcmFtczogRGlzY291bnRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZGlzY291bnQvY291cG9uL2NyZWF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgdXBkYXRlRGlzY291bnQocGFyYW1zOiBEaXNjb3VudFVwZGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9kaXNjb3VudC9jb3Vwb24vdXBkYXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFBheW1lbnRTdHVkZW50c0J5Q29kZShjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvY29kL3N0dWRlbnQvYnkvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50V2FsbGV0QnlDYW1wdXMoY29kZUNhbXB1czogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvd2FsbGV0L2J5L2NhbXB1cy8nICsgY29kZUNhbXB1cztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHBheW1lbnRCaWxsRHVlcyhwYXJhbXM6IFBheW1lbnRCaWxsUnEyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvcmVnaXN0ZXIvZHVlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBwYXltZW50QmlsbFNlcnZpY2VzKHBhcmFtczogUGF5bWVudEJpbGxScTIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9yZWdpc3Rlci9zZXJ2aWNlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEFsbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcGF5bWVudC9iaWxsL2NhbmNlbGVkL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5Q29kZShjb2RlUGF5bWVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAgJ2dldC9wYXltZW50L2JpbGwvY2FuY2VsZWQvYnkvY29kZS8nICsgY29kZVBheW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5U3R1ZGVudChjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAgJ2dldC9wYXltZW50L2JpbGwvY2FuY2VsZWQvYnkvc3R1ZGVudC8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5UmVmZXJlbmNlKHJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC9jYW5jZWxlZC9ieS9yZWZlcmVuY2UvJyArIHJlZmVyZW5jZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG5cbiAgZ2V0UHJpY2VCeVR5cGVTZXJ2aWNlKHBhcmFtczogUHJpY2VCeVR5cGVTZXJ2aWNlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9wcmljZS9ieS90eXBlL3NlcnZpY2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluQ291cnNlc0J5Q29vcmRpbmF0b3IocGFyYW1zOiBJT2J0YWluQWxsQ291cnNld2FsbGV0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jb3Vyc2Uvd2FsbGV0L3VzZXIvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0V2FsbGV0QnlDb2RlVXNlciAoY29kZVVzZXI6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC93YWxsZXQvYnkvY29kZS91c2VyLycgKyBjb2RlVXNlcjtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEJ5V2FsbGV0Q29kZSAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi9wYXltZW50L2JpbGwvYnkvd2FsbGV0cy9ieS8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEluY29tZSAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC93YWxsZXRzL2NvZGUvZmlsdGVyL2luY29tZS8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEVncmVzcyAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC93YWxsZXRzL2NvZGUvZmlsdGVyL2VncmVzcy8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFBheW1lbnRPdmVyZHVlU3R1ZGVudCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICAnZ2V0L3BheW1lbnQvb3ZlcmR1ZS9hbGwvc3R1ZGVudCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXREYXlQYXltZW50T3ZlcmR1ZVN0dWRlbnQoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9kYXkvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50T3ZlcmR1ZUNvdXJzZUJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJUGF5bWVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvb3ZlcmR1ZS9jb3Vyc2UvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0UGF5bWVudE92ZXJkdWVTdHVkZW50QnlDb29yZGluYXRvcihwYXJhbXM6IElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29vZGluYXRvcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRQYXltZW50T3ZlcmR1ZVN0dWRlbnRCeUNvb3JkaW5hdG9yQW5kQ291cnNlQ29kZShwYXJhbXM6IElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JDb3Vyc2VScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29vZGluYXRvcmNvdXJzZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRPYnRhaW5Db2RTdHVkZW50QnlDb29yZGluYXRvcihwYXJhbXM6IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9jb2Qvc3R1bmRlbnQvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0Q291cnNlc0ZpbmlzaEFuZHVuYXNzaWduZWQocGFyYW1zOiBJZ2V0Q291cnNlc0ZpbmlzaEFuZHVuYXNzaWduZWRScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvdXJzZS9ieS91c2VyL2J1ZGdldCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICAvLyBBc3NpbmdDb3Vyc2UocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAvLyAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NvdXJzZS9ieS9jb2RlL3VzZXIvYnVkZ2V0L2Fzc2lnbic7XG4gIC8vICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIC8vIH1cbiAgQXNzaW5nQ291cnNlKHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2NvdXJzZS9hc3NpZ24vZGV0YWlsL2J5L2FkdmlzZXIvYnVkZ2V0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIEFzc2luZ0NvdXJzZXMocGFyYW1zOiBJQXNzaWduUmVxdWVzdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jb3Vyc2UvYnkvdXNlci9idWRnZXQvYXNzaWduJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkFsbEF2YWlsYWJsZUNvdXJzZXNCeVN0dWRlbnQocGFyYW1zOiBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvYXZhaWxhYmxlL2NvdXJzZXMvYnkvc3R1ZGVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5PYnNlcnZhdGlvbkJ5Q29kU3R1ZGVudChwYXJhbXM6IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9vYnNlcnZhcmlvbi9ieS9jb2Qvc3R1ZGV0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGFkbWluU3R1ZGVudEJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJRnVsbENvZFN0dWRlbnRPdmVyZHVlQnlDb29yZGluYXRvclJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9hZG1pbi9zdHVkZW50L2J5L2Nvb3JkaW5hdG9yJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENvZGJ5UGF5bWVudFBsYW5ScShwYXJhbXM6IElHZXRDb2RCeVBheW1lbnRQbGFuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9jb2Qvc3R1bmRlbnQvcGF5bWVudHMvYnkvY29kZS91c2VyJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIFVwZGF0ZUFtb3VudENvZFBheW1lbnRzKHBhcmFtczogSVVwZGF0ZUFtb3VudENvZFBheW1lbnRzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NoYW5nZS9hbW91bnQvY29kL3BheW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIFVwZGF0ZURhdGVDb2RQYXltZW50cyhwYXJhbXM6IElQYXJhbXNVcGRhdGVEYXRlQ29kUGF5bWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3B1dC9jaGFuZ2UvZGF0ZS9wYXltZW50L2NvZC9ieS9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIFVwZGF0ZURhdGVDb2RQYXltZW50c0ZvclBheW1lbnRQbGFuKHBhcmFtczogSVBhcmFtc1VwZGF0ZURhdGVDb2RQYXltZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jaGFuZ2UvZGF0ZS9wYXltZW50L2NvZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5QYXltZW50UmVjZWlwdEJ5Q29kZSAoY29kZVJlY2VpcHQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vcGF5bWVudC9yZWNlaXB0L2J5L2NvZGUvJyArIGNvZGVSZWNlaXB0O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudHNGb3JTdHVkZW50Q29kZSAoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vcGF5bWVudHMvZm9yL3N0dWRlbnQvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5TdHVkZW50UGF5bWVudHNCeUdyb3VwaW5nQ29kIChjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N0dWRlbnQvcGF5bWVudHMvYnkvZ3JvdXBpbmcvY29kLycgKyBjb2RlU3R1ZGVudDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblJlY2VpcHRCeUNvZGUgKGNvZGVSZWNlaXB0OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcmVjZWlwdC9ieS9jb2RlLycgKyBjb2RlUmVjZWlwdDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzRm9yUmVjZWlwdENvZGUgKGNvZGVTdHVkZW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvb2J0YWluL3BheW1lbnRzL2Zvci9yZWNlaXB0L2NvZGUvJyArIGNvZGVTdHVkZW50O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgY2FuZWxTdHVkZW50UmVjZWlwdChwYXJhbXM6IElDYW5jZWxTdHVkZW50UmVjZWlwdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jYW5jZWwvc3R1ZGVudC9yZWNlaXB0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENhbmNlbGxlZFJlY2VpcHRzQnlEYXRlKHBhcmFtczogSUNhbmNlbGxlZFJlY2VpcHRCeURhdGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY2FuY2VsbGVkL3JlY2VpcHRzL2J5L2RhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudHJlY2VpdmVkQnlVc2VyKHBhcmFtczogSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3BheW1lbnRzL3JlY2VpdmVkL2J5L3VzZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VG90YWxDYXNoUmVjZWlwdHNCeURhdGVBbmRVc2VyKHBhcmFtczogSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdG90YWwvY2FzaC9yZWNlaXB0cy9ieS9kYXRlL2FuZC91c2VyJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkNvdXJzZXNCeUNvb3JkQW5kRGlmZlBhcmFtKHBhcmFtczogSU9idGFpbkNvdXJzZUJ5Q29vZERpZmZQYXJhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2NvdXJzZS93YWxsZXQvYnkvY29vcmRpbmF0b3IvZGlmZmV0ZW50L3BhcmFtJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbENvbW1vbkV4cGVuc2VzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9jb21tb24vZXhwZW5zZXMvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuICBjcmVhdGVDb21tbW9uRXhwZW5zZXMocGFyYW06IE5hbWVDb21tb25FeHBlbnNlcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY29tbW9uL2V4cGVuc2VzL2NyZWF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBvYnRhaW5Db2RBbmRTdGF0dXNBcHByb3ZlZExldmVsQnlHcm91cChwYXJhbTogTmFtZUNvbW1vbkV4cGVuc2VzKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvc3RhdHVzL2FwcHJvdmVkL2J5L2dyb3VwJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluU3R1ZGVudFBheW1lbnRUcmFuc2FjdGlvbkhpc3RvcnlCeUNvdXJzZShwYXJhbTogSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvcGF5bWVudC90cmFuc2FjdGlvbi9oaXN0b3J5L2J5L2NvdXJzZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRUcmFuc2FjdGlvbkhpc3RvcnlCeUNvZChwYXJhbTogSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnQvdHJhbnNhY3Rpb24vaGlzdG9yeS9ieS9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZmVyZW50UGFyYW1ldGVyKHBhcmFtOiBJT2J0YWluU3R1ZGVudFBheW1lbnRCeURpZmZQYXJhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvcGF5bWVudC9ieS9kaWZmZXJlbnQvcGFyYW1ldGVycyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGNyZWF0ZUVncmVzcyhwYXJhbTogSXBheW1lbnRCaWxsRWdyZXNzUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL3JlZ2lzdGVyL2VncmVzcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRDYXRlZ29yeSgpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC90eXBlL3N1cHBsaWVyL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgY3JlYXRlQ2FzaENsb3NpbmcocGFyYW06IEljYXNoQ2xvc2luZ1JxKTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9jbG9zZS9jYXNoJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgc2VhcmNoQ29tbW9uRXhwZW5zZXMobmFtZTpzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsnZ2V0L3NlYXJjaC9jb21tb24vZXhwZW5zZXMvJyArIG5hbWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgZ2V0VXNlcnNDYXNoQ2xvc2luZygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9jbG9zZS9jYXNoL2J5L3VzZXInO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2FzaENsb3NpbmdEYXkoY29kZTpudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvZGF5L2NvZGV1c2VyLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldENhc2hDbG9zaW5nTW9udGgoY29kZTpudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvbW9udGgvY29kZXVzZXIvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgZ2V0Q2FzaENsb3NpbmdZZWFyKGNvZGU6bnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvY2xvc2UvY2FzaC9ieS95ZWFyL2NvZGV1c2VyLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldEluZm9DYXNoQ2xvc2luZ0J5Q29kZShwYXJhbTpJbmZvQ2FzaENsb3NpbmdScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvY29kZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENhc2hDbG9zaW5nRGF0ZShwYXJhbTpJY2FzaENsb3NpbmdEYXRlUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvZGF0ZS9yYW5nZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBleHBvcnRPYnRhaW5TdHVkZW50UGF5bWVudFRyYW5zYWN0aW9uSGlzdG9yeUJ5Q291cnNlKHBhcmFtOiBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2V4cG9ydC9leGNlbC9kYXRhL3BheW1lbnQvdHJhbnNhY3Rpb24vaGlzdG9yeS9ieS9jb3Vyc2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgZ2V0VG90YWxDYXNoSW5jb21lRWdyZXNzKHBhcmFtOiBJbmNvbWVzQW5kRWdyZXNzUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdG90YWwvY2FzaC9yZWNlaXB0cy9pbmNvbWVzL2VncmVzcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9iYXRpbkJhbGFjZXNCeUNvb2RpbmF0b3IocGFyYW1zOiBJQWNjb3VudHNCYWxhbmNlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdvYnRhaW4vYWNjb3VudHMvYW5kL2JhbGFuY2VzL2J5L2Nvb2RpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlKHBhcmFtczogSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2RldGFpbGVkL2luY29tZS9yZXBvcnQvYnkvYWR2aXNvcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRJbmNvbWVFeHBlbnNlSGlzdG9yeURhdGEocGFyYW1zOiBJT2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdleHBvcnQvaW5jb21lL2V4cGVuc2UvaGlzdG9yeS9kYXRhJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkFsbFBheW1lbnRCaWxsQ2FuY2VsZWRCeVN0dWRlbnQoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9hbGwvcGF5bWVudC9iaWxsL2NhbmNlbGxlZC9ieS9zdHVkZW50LycgKyBjb2RlU3R1ZGVudDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFBheW1lbnRJbmZvQnlSZWZlcmVuY2UocGFyYW1zOiBJUGF5bWVudFJlZmVyZW5jZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvYnkvcmVmZXJlbmNlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzQnlDb2QocGFyYW06SUNvZFBheW1lbnRScSk6T2JzZXJ2YWJsZTxhbnk+e1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3BheW1lbnRzL2J5L2NvZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzTWFkZUJ5RGF0ZXMocGFyYW1zOiBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnRzL21hZGUvYnkvZGF0ZXMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgc2VuZEVtYWlsUGF5bWVudChwYXJhbXM6IFNlbmRFbWFpbFBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3NlbmQvZW1haWwvcGF5bWVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZW5kRW1haWxQYXltZW50Q2FuY2VsbGF0aW9uKHBhcmFtczogU2VuZEVtYWlsUGF5bWVudENhbmNlbGxhdGlvblJTKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZW5kL2VtYWlsL3BheW1lbnQvY2FuY2VsbGF0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbn1cblxuICBnZXRBbGxUcmFuc2ZlcnMocGFyYW1zOiBJVHJhbnNmZXJHZXRBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvYWxsJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG5cbiAgZ2V0VHJhbnNmZXJCeUNvZGUocGFyYW1zOiBJVHJhbnNmZXJHZXRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvc3BlY2lmaWMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gY3JlYXRlVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJDcmVhdGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvY3JlYXRlJztcbiAgLy8gICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgLy8gfVxuXG4gIGNyZWF0ZVRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyQ3JlYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXJzL2NyZWF0ZSc7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW3Rva2VuXScsIHBhcmFtcy50b2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdHJhbnNmZXJfYW1vdW50XScsIHBhcmFtcy50cmFuc2Zlcl9hbW91bnQudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbYmFua19jb2RlXScsIHBhcmFtcy5iYW5rX2NvZGUudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdHJhbnNmZXJfZGF0ZV0nLCBwYXJhbXMudHJhbnNmZXJfZGF0ZSk7IC8vIGFob3JhIHN0cmluZ1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW3JlZmVyZW5jZV9udW1iZXJdJywgcGFyYW1zLnJlZmVyZW5jZV9udW1iZXIpO1xuXG5cbiAgICBpZiAocGFyYW1zLmltYWdlKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3BhcmFtc1tpbWFnZV0nLCBwYXJhbXMuaW1hZ2UsIHBhcmFtcy5pbWFnZS5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIGZvcm1EYXRhKTtcbiAgfVxuLypcbiAgc2hvd1RyYW5zZmVySW1hZ2UocGFyYW1zOiBJVHJhbnNmZXJTaG93SW1hZ2VScSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXIvc2hvdy1pbWFnZSc7XG4gICAgY29uc3QgYm9keSA9IHsgY29kZTogcGFyYW1zLmNvZGUgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxCbG9iPihzZXJ2aWNlVXJsLCBib2R5LCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgfSk7XG4gIH1cblxuICBhc3NpZ25JbWFnZVRvVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJBc3NpZ25JbWFnZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2Zlci9hc3NpZ24taW1hZ2UnO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCd0b2tlbicsIHBhcmFtcy50b2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb2RlJywgcGFyYW1zLmNvZGUudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdpbWFnZScsIHBhcmFtcy5pbWFnZSwgcGFyYW1zLmltYWdlLm5hbWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIGZvcm1EYXRhKTtcbiAgfSAgICovXG5cbiAgICBhc3NpZ25JbWFnZVRvVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJBc3NpZ25JbWFnZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL2Fzc2lnbi1pbWFnZSc7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdG9rZW5dJywgcGFyYW1zLnRva2VuKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW2NvZGVdJywgcGFyYW1zLmNvZGUudG9TdHJpbmcoKSk7XG4gICAgICBpZiAocGFyYW1zLmltYWdlKSB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaW1hZ2UnLCBwYXJhbXMuaW1hZ2UsIHBhcmFtcy5pbWFnZS5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCBmb3JtRGF0YSk7XG4gICAgfVxuXG4gICAgc2hvd1RyYW5zZmVySW1hZ2UocGFyYW1zOiBJVHJhbnNmZXJTaG93SW1hZ2VScSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEJsb2I+PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL3Nob3ctaW1hZ2UnO1xuICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgY29kZTogcGFyYW1zLmNvZGVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7XG4gICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgICB9KTtcbiAgICB9XG5cblxuXG4gIHVwZGF0ZVRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyVXBkYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXJzL3VwZGF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVUcmFuc2ZlclN0YXR1cyhwYXJhbXM6IElUcmFuc2ZlclN0YXR1c1VwZGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVycy91cGRhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZGVsZXRlVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJEZWxldGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvZGVsZXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHNlYXJjaFRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyU2VhcmNoUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXIvc2VhcmNoJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGV4cG9ydFBheW1lbnRDb3JyZWxhdGl2ZWVIaXN0b3J5RGF0YShwYXJhbTpJUGF5bWVudENvcnJlbGF0aXZlUnEpOk9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L3BheW1lbnRzL2NvcnJlbGF0aXZlL2hpc3RvcnkvZGF0YSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzTWFkZUJ5RmlsdGVyKHBhcmFtOiBJUGF5bWVudENvcnJlbGF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9wYXltZW50L2NvcnJlbGF0aXZlcy9ieS9maWx0ZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5HYXRld2F5UGF5bWVudFJlY29yZChwYXJhbTogSU9idGFpbkdhdGV3YXlQYXltZW50UmVjb3JkUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9nYXRld2F5L3BheW1lbnQvcmVjb3JkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZXBheWNvUGF5bWVudFVwZGF0ZShwYXJhbTogSVVwZGF0ZUVwYXljb1BheW1lbnRScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXBheWNvL3BheW1lbnQvdXBkYXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZXhwb3J0RWxlY3Ryb25pY0ludm9pY2VIaXN0b3J5RGF0YShwYXJhbTpJRWxlY3Ryb25pY0ludm9pY2VSUyk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2VsZWN0cm9uaWMvaW52b2ljZS9oaXN0b3J5L2RhdGEnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRBY2NvdW50c0FuZEJhbGFuY2VzQnlDb29kaW5hdG9yKHBhcmFtOklBY2NvdW50c0JhbGFuY2VScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2FjY291bnRzL2FuZC9iYWxhbmNlcy9ieS9jb29kaW5hdG9yJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgY3JlYXRlQ29kUGF5bWVudHMocGFyYW1zOiBJQ3JlYXRlQ29kUGF5bWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY3JlYXRlL2NvZC9wYXltZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBkZWxldGVDb2RQYXltZW50cyhwYXJhbXM6IElEZWxldGVDb2RQYXltZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9kZWxldGUvY29kL3BheW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG5cbiAgZ2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvbihwYXJhbXM6IElHZXRGdWxsUGF5bWVudEluZm9ybWF0aW9uUnEpOiBPYnNlcnZhYmxlPElHZXRGdWxsUGF5bWVudEluZm9ybWF0aW9uUnM+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9mdWxsLWluZm9ybWF0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJzPihzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVRyYW5zZmVyU3RhdHVzQnlDb2RlKHBhcmFtczogSVRyYW5zZmVyU3RhdHVzVXBkYXRlUmVxdWVzdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL3VwZGF0ZS1zdGF0dXMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlRWxlY3Ryb25pY0ludm9pY2UocGFyYW1zOiBJVXBkYXRlRWxlY3Ryb25pY0ludm9pY2VScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvdXBkYXRlLWVsZWN0cm9uaWMtaW52b2ljZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hQYXltZW50QmlsbChwYXJhbXM6IElTZWFyY2hQYXltZW50QmlsbFJxKTogT2JzZXJ2YWJsZTxJU2VhcmNoUGF5bWVudEJpbGxScz4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL3NlYXJjaC1pbmZvcm1hdGlvbic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFBheW1lbnRCaWxsUnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VmFsaWRhdGlvbk9mVHJhbnNmZXJzQnlOdW1iZXIocGFyYW1zOiBJVmFsaWRhdGlvbk9mVHJhbnNmZXJzQnlOdW1iZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3ZhbGlkYXRpb24vb2YvdHJhbnNmZXJzL2J5L251bWJlcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFBheW1lbnRCaWxsUnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJR2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3JScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N1bW1hcnkvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cblxuICBjcmVhdGVUcmFuc2ZlclZhbGlkYXRlKHBhcmFtczogSUNyZWF0ZVRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2NyZWF0ZS90cmFuc2Zlci92YWxpZGF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hUcmFuc2ZlckJ5UmVmZXJlbmNlKHBhcmFtczogSVNlYXJjaFRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC90cmFuc2Zlci9ieS9yZWZlcmVuY2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlVHJhbnNmZXJEYXRhKHBhcmFtczogSVVwZGF0ZVRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS90cmFuc2Zlci9kYXRhJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkxpc3RTdHVkZW50UGF5bWVudFN0YXR1cyhwYXJhbXM6IElPYnRhaW5Db3Vyc2VCeUNvb2REaWZmUGFyYW1ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2xpc3Qvc3R1ZGVudC9wYXltZW50L3N0YXR1cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRMaXN0U3R1ZGVudFBheW1lbnRTdGF0dXMocGFyYW1zOiBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2V4cG9ydC9zdHVkZW50L3BheW1lbnQvc3RhdHVzL2xpc3QvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudFBsYW5CeUNvZGVDb2QgKGNvZGVDb2Q6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnQvcGxhbi9ieS9jb2RlL2NvZC8nICsgY29kZUNvZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHJlY2VpdmVQYXltZW50c01hZGVUb0NvZCAoY29kZUNvZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdyZWNlaXZlL3BheW1lbnRzL21hZGUvdG8vY29kLycgKyBjb2RlQ29kO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgbmV3UmVnaXN0ZVBheW1lbnRCaWxsUHJlYXNzaWduZWRDb2QocGFyYW1zOiBQYXltZW50QmlsbFJxMik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ25ldy9yZWdpc3RlL3BheW1lbnQvYmlsbC9wcmVhc3NpZ25lZC9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgYWRkTmV3UXVvdGFXaXRoQ29tbWVudHMocGFyYW1zOiBJQWRkTmV3UXVvdGFXaXRoQ29tbWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2FkZC9uZXcvcXVvdGEvd2l0aC9jb21tZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBkZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50cyhwYXJhbXM6IElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZGVsZXRlL3F1b3RhL3JlY29yZC93aXRoL2NvbW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG1vZGlmeVF1b3RhRGF0YVdpdGhDb21tZW50cyhwYXJhbXM6IElNb2RpZnlRdW90YURhdGFXaXRoQ29tbWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ21vZGlmeS9xdW90YS9kYXRhL3dpdGgvY29tbWVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZWRpdEluc3RhbGxtZW50QW1vdW50V2l0aENvbW1lbnRzKHBhcmFtczogSUVkaXRJbnN0YWxsbWVudEFtb3VuV2l0aENvbW1lbnRzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdlZGl0L2luc3RhbGxtZW50L2Ftb3VudC93aXRoL2NvbW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHN0dWRlbnRQYXltZW50UGxhbkJ5Q29kIChjb2RlQ29kOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3N0dWRlbnQvcGF5bWVudC9wbGFuL2J5L2NvZC8nICsgY29kZUNvZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFBheW1lbnRzQnlNYWRlRXhwb3J0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2ZpbGUvZXhjZWwvcGF5bWVudHMvbWFkZS9ieS9kYXRlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hGb3JTdHVkZW50c0J5RGlmZmVyZW50UGFyYW1ldGVycyhwYXJhbTogSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC9mb3Ivc3R1ZGVudHMvYnkvZGlmZmVyZW50L3BhcmFtZXRlcnMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5Db3Vyc2VQYXltZW50UmFuZ2VSZXBvcnQocGFyYW06IElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScSk6IE9ic2VydmFibGU8SUNvdXJzZVBheW1lbnRSYW5nZVJlcG9ydFJzPiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2NvdXJzZS9wYXltZW50L3JhbmdlL3JlcG9ydCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0UnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbn1cblxuIl19
|
|
591
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9idWRnZXQtc2VydmljZS9idWRnZXQtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFJbEQsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO1FBSWxDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFzQjtRQUNuQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDJCQUEyQixDQUFDO1FBQ2hFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELGNBQWMsQ0FBQyxNQUFrQjtRQUMvQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO1FBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGNBQWMsQ0FBQyxN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VyxHQUFHLGlEQUFpRCxHQUFHLFdBQVcsQ0FBQztRQUNwRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OzBHQXhxQlUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRkaXNjb3VudEFsbFJxLCBEaXNjb3VudFJxLCBEaXNjb3VudFVwZGF0ZVJxLCBJT2J0YWluQWxsQ291cnNld2FsbGV0LCBJQXNzaWduUmVxdWVzdFJxLCBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMsIElHZXRDb2RCeVBheW1lbnRQbGFuUnEsIElVcGRhdGVBbW91bnRDb2RQYXltZW50c1JxLCBJUGFyYW1zVXBkYXRlRGF0ZUNvZFBheW1lbnRzUnEsIElDYW5jZWxTdHVkZW50UmVjZWlwdFJxLCBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxLCBJUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJxLCBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEsIE5hbWVDb21tb25FeHBlbnNlcywgSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxLCBJT2J0YWluU3R1ZGVudFBheW1lbnRCeURpZmZQYXJhbVJxLCBJbmZvQ2FzaENsb3NpbmdScSwgSWNhc2hDbG9zaW5nRGF0ZVJxLCBJY2FzaENsb3NpbmdScSwgSXBheW1lbnRCaWxsRWdyZXNzUnEsIEluY29tZXNBbmRFZ3Jlc3NScSwgSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJxLCBJT2JhdGluQmFsYWNlc0J5Q29vZGluYXRvclJxLCBTZW5kRW1haWxQYXltZW50LFNlbmRFbWFpbFBheW1lbnRDYW5jZWxsYXRpb25SUywgSVBheW1lbnRDb3JyZWxhdGl2ZVJxLCBJT2J0YWluR2F0ZXdheVBheW1lbnRSZWNvcmRScSwgSVVwZGF0ZUVwYXljb1BheW1lbnRScSwgSUVsZWN0cm9uaWNJbnZvaWNlUlMsIElBY2NvdW50c0JhbGFuY2VScSwgSUdldEZ1bGxQYXltZW50SW5mb3JtYXRpb25ScSwgSUdldEZ1bGxQYXltZW50SW5mb3JtYXRpb25ScywgSVNlYXJjaFBheW1lbnRCaWxsUnEsIElTZWFyY2hQYXltZW50QmlsbFJzLCBJR2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3JScSwgSUFkZE5ld1F1b3RhV2l0aENvbW1lbnRzUnEsIElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxLCBJTW9kaWZ5UXVvdGFEYXRhV2l0aENvbW1lbnRzUnEsIElFZGl0SW5zdGFsbG1lbnRBbW91bldpdGhDb21tZW50c1JxLCBJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0UnEsIElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScyB9IGZyb20gJy4uLy4uL21vZGVscy9idWRnZXQvYnVkZ2V0Lm1vZGVsJztcbmltcG9ydCB7IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEsIElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JDb3Vyc2VScSwgSVBheW1lbnRPdmVyZHVlQnlDb29yZGluYXRvclJxLCBJUGF5bWVudFJlZmVyZW5jZVJxLCBJVHJhbnNmZXIsIElUcmFuc2ZlckFzc2lnbkltYWdlLCBJVHJhbnNmZXJDcmVhdGVScSwgSVRyYW5zZmVyRGVsZXRlUnEsIElUcmFuc2ZlckdldEFsbFJxLCBJVHJhbnNmZXJHZXRScSwgSVRyYW5zZmVyU2VhcmNoUnEsIElUcmFuc2ZlclNob3dJbWFnZVJxLCBJVHJhbnNmZXJTdGF0dXNVcGRhdGVScSwgSVRyYW5zZmVyVXBkYXRlUnEsIFBheW1lbnRCaWxsUnEsIFBheW1lbnRCaWxsUnEyLCBQcmljZUJ5VHlwZVNlcnZpY2VScSxJRGVsZXRlQ29kUGF5bWVudHNScSxJQ3JlYXRlQ29kUGF5bWVudHNScSwgSVRyYW5zZmVyU3RhdHVzVXBkYXRlUmVxdWVzdFJxLCBJVXBkYXRlRWxlY3Ryb25pY0ludm9pY2VScSwgSVZhbGlkYXRpb25PZlRyYW5zZmVyc0J5TnVtYmVyUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGF5bWVudC9wYXltZW50LXJxLm1vZGVsJztcbmltcG9ydCB7IElnZXRDb3Vyc2VzRmluaXNoQW5kdW5hc3NpZ25lZFJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlcG9ydHMvcmVwb3J0cy5tb2RlbCc7XG5pbXBvcnQgeyBJUFRHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UtZW52aXJvbWVudHMnO1xuaW1wb3J0IHsgSUNvZFBheW1lbnRScSB9IGZyb20gJy4uLy4uL21vZGVscy9jb2QvY29kLXJxLm1vZGVsJztcbmltcG9ydCB7IElDcmVhdGVUcmFuc2ZlclJxLCBJU2VhcmNoVHJhbnNmZXJScSwgSVVwZGF0ZVRyYW5zZmVyUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNmZXIvdHJhbnNmZXIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCdWRnZXRTZXJ2aWNlIGV4dGVuZHMgSVBUR2VuZXJhbFNlcnZpY2V7XG5cbiAgcHJpdmF0ZSBTRVJWSUNFX1VSTCA9ICdidWRnZXQvYXBpLyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlNFUlZJQ0VfVVJMID0gdGhpcy5iYXNlVXJsKCkgKyB0aGlzLlNFUlZJQ0VfVVJMO1xuICB9XG5cbiAgZ2V0QWxsRGlzY291bnQodXNlcjogZ2V0ZGlzY291bnRBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZGlzY291bnRzL2NvdXBvbi9hbGwnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHVzZXIpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIGNyZWF0ZURpc2NvdW50KHBhcmFtczogRGlzY291bnRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvZGlzY291bnQvY291cG9uL2NyZWF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgdXBkYXRlRGlzY291bnQocGFyYW1zOiBEaXNjb3VudFVwZGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9kaXNjb3VudC9jb3Vwb24vdXBkYXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFBheW1lbnRTdHVkZW50c0J5Q29kZShjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvY29kL3N0dWRlbnQvYnkvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50V2FsbGV0QnlDYW1wdXMoY29kZUNhbXB1czogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvd2FsbGV0L2J5L2NhbXB1cy8nICsgY29kZUNhbXB1cztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHBheW1lbnRCaWxsRHVlcyhwYXJhbXM6IFBheW1lbnRCaWxsUnEyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvcmVnaXN0ZXIvZHVlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBwYXltZW50QmlsbFNlcnZpY2VzKHBhcmFtczogUGF5bWVudEJpbGxScTIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9yZWdpc3Rlci9zZXJ2aWNlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEFsbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcGF5bWVudC9iaWxsL2NhbmNlbGVkL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5Q29kZShjb2RlUGF5bWVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAgJ2dldC9wYXltZW50L2JpbGwvY2FuY2VsZWQvYnkvY29kZS8nICsgY29kZVBheW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5U3R1ZGVudChjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAgJ2dldC9wYXltZW50L2JpbGwvY2FuY2VsZWQvYnkvc3R1ZGVudC8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50QmlsbEJ5UmVmZXJlbmNlKHJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC9jYW5jZWxlZC9ieS9yZWZlcmVuY2UvJyArIHJlZmVyZW5jZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG5cbiAgZ2V0UHJpY2VCeVR5cGVTZXJ2aWNlKHBhcmFtczogUHJpY2VCeVR5cGVTZXJ2aWNlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9wcmljZS9ieS90eXBlL3NlcnZpY2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluQ291cnNlc0J5Q29vcmRpbmF0b3IocGFyYW1zOiBJT2J0YWluQWxsQ291cnNld2FsbGV0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jb3Vyc2Uvd2FsbGV0L3VzZXIvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0V2FsbGV0QnlDb2RlVXNlciAoY29kZVVzZXI6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC93YWxsZXQvYnkvY29kZS91c2VyLycgKyBjb2RlVXNlcjtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEJ5V2FsbGV0Q29kZSAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi9wYXltZW50L2JpbGwvYnkvd2FsbGV0cy9ieS8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEluY29tZSAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC93YWxsZXRzL2NvZGUvZmlsdGVyL2luY29tZS8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRwYXltZW50QmlsbEVncmVzcyAoY29kZVdhbGxldDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3BheW1lbnQvYmlsbC93YWxsZXRzL2NvZGUvZmlsdGVyL2VncmVzcy8nICsgY29kZVdhbGxldDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFBheW1lbnRPdmVyZHVlU3R1ZGVudCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICAnZ2V0L3BheW1lbnQvb3ZlcmR1ZS9hbGwvc3R1ZGVudCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXREYXlQYXltZW50T3ZlcmR1ZVN0dWRlbnQoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9kYXkvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cblxuICBnZXRQYXltZW50T3ZlcmR1ZUNvdXJzZUJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJUGF5bWVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvb3ZlcmR1ZS9jb3Vyc2UvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0UGF5bWVudE92ZXJkdWVTdHVkZW50QnlDb29yZGluYXRvcihwYXJhbXM6IElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29vZGluYXRvcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRQYXltZW50T3ZlcmR1ZVN0dWRlbnRCeUNvb3JkaW5hdG9yQW5kQ291cnNlQ29kZShwYXJhbXM6IElQYXltZW50T3ZlcmR1ZUJ5Q29vcmRpbmF0b3JDb3Vyc2VScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9vdmVyZHVlL3N0dWRlbnQvYnkvY29vZGluYXRvcmNvdXJzZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBnZXRPYnRhaW5Db2RTdHVkZW50QnlDb29yZGluYXRvcihwYXJhbXM6IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9jb2Qvc3R1bmRlbnQvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0Q291cnNlc0ZpbmlzaEFuZHVuYXNzaWduZWQocGFyYW1zOiBJZ2V0Q291cnNlc0ZpbmlzaEFuZHVuYXNzaWduZWRScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvdXJzZS9ieS91c2VyL2J1ZGdldCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICAvLyBBc3NpbmdDb3Vyc2UocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAvLyAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NvdXJzZS9ieS9jb2RlL3VzZXIvYnVkZ2V0L2Fzc2lnbic7XG4gIC8vICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIC8vIH1cbiAgQXNzaW5nQ291cnNlKHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2NvdXJzZS9hc3NpZ24vZGV0YWlsL2J5L2FkdmlzZXIvYnVkZ2V0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIEFzc2luZ0NvdXJzZXMocGFyYW1zOiBJQXNzaWduUmVxdWVzdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jb3Vyc2UvYnkvdXNlci9idWRnZXQvYXNzaWduJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkFsbEF2YWlsYWJsZUNvdXJzZXNCeVN0dWRlbnQocGFyYW1zOiBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9hbGwvYXZhaWxhYmxlL2NvdXJzZXMvYnkvc3R1ZGVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5PYnNlcnZhdGlvbkJ5Q29kU3R1ZGVudChwYXJhbXM6IElGdWxsQ29kU3R1ZGVudE92ZXJkdWVCeUNvb3JkaW5hdG9yUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9vYnNlcnZhcmlvbi9ieS9jb2Qvc3R1ZGV0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGFkbWluU3R1ZGVudEJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJRnVsbENvZFN0dWRlbnRPdmVyZHVlQnlDb29yZGluYXRvclJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9hZG1pbi9zdHVkZW50L2J5L2Nvb3JkaW5hdG9yJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENvZGJ5UGF5bWVudFBsYW5ScShwYXJhbXM6IElHZXRDb2RCeVBheW1lbnRQbGFuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9jb2Qvc3R1bmRlbnQvcGF5bWVudHMvYnkvY29kZS91c2VyJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIFVwZGF0ZUFtb3VudENvZFBheW1lbnRzKHBhcmFtczogSVVwZGF0ZUFtb3VudENvZFBheW1lbnRzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NoYW5nZS9hbW91bnQvY29kL3BheW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIFVwZGF0ZURhdGVDb2RQYXltZW50cyhwYXJhbXM6IElQYXJhbXNVcGRhdGVEYXRlQ29kUGF5bWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3B1dC9jaGFuZ2UvZGF0ZS9wYXltZW50L2NvZC9ieS9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG4gIFVwZGF0ZURhdGVDb2RQYXltZW50c0ZvclBheW1lbnRQbGFuKHBhcmFtczogSVBhcmFtc1VwZGF0ZURhdGVDb2RQYXltZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jaGFuZ2UvZGF0ZS9wYXltZW50L2NvZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5QYXltZW50UmVjZWlwdEJ5Q29kZSAoY29kZVJlY2VpcHQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vcGF5bWVudC9yZWNlaXB0L2J5L2NvZGUvJyArIGNvZGVSZWNlaXB0O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudHNGb3JTdHVkZW50Q29kZSAoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9vYnRhaW4vcGF5bWVudHMvZm9yL3N0dWRlbnQvY29kZS8nICsgY29kZVN0dWRlbnQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5TdHVkZW50UGF5bWVudHNCeUdyb3VwaW5nQ29kIChjb2RlU3R1ZGVudDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N0dWRlbnQvcGF5bWVudHMvYnkvZ3JvdXBpbmcvY29kLycgKyBjb2RlU3R1ZGVudDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblJlY2VpcHRCeUNvZGUgKGNvZGVSZWNlaXB0OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvcmVjZWlwdC9ieS9jb2RlLycgKyBjb2RlUmVjZWlwdDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzRm9yUmVjZWlwdENvZGUgKGNvZGVTdHVkZW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdnZXQvb2J0YWluL3BheW1lbnRzL2Zvci9yZWNlaXB0L2NvZGUvJyArIGNvZGVTdHVkZW50O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgY2FuZWxTdHVkZW50UmVjZWlwdChwYXJhbXM6IElDYW5jZWxTdHVkZW50UmVjZWlwdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9jYW5jZWwvc3R1ZGVudC9yZWNlaXB0JztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENhbmNlbGxlZFJlY2VpcHRzQnlEYXRlKHBhcmFtczogSUNhbmNlbGxlZFJlY2VpcHRCeURhdGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY2FuY2VsbGVkL3JlY2VpcHRzL2J5L2RhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudHJlY2VpdmVkQnlVc2VyKHBhcmFtczogSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3BheW1lbnRzL3JlY2VpdmVkL2J5L3VzZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VG90YWxDYXNoUmVjZWlwdHNCeURhdGVBbmRVc2VyKHBhcmFtczogSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdG90YWwvY2FzaC9yZWNlaXB0cy9ieS9kYXRlL2FuZC91c2VyJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkNvdXJzZXNCeUNvb3JkQW5kRGlmZlBhcmFtKHBhcmFtczogSU9idGFpbkNvdXJzZUJ5Q29vZERpZmZQYXJhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2NvdXJzZS93YWxsZXQvYnkvY29vcmRpbmF0b3IvZGlmZmV0ZW50L3BhcmFtJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEFsbENvbW1vbkV4cGVuc2VzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC9jb21tb24vZXhwZW5zZXMvYWxsJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuICBjcmVhdGVDb21tbW9uRXhwZW5zZXMocGFyYW06IE5hbWVDb21tb25FeHBlbnNlcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY29tbW9uL2V4cGVuc2VzL2NyZWF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBvYnRhaW5Db2RBbmRTdGF0dXNBcHByb3ZlZExldmVsQnlHcm91cChwYXJhbTogTmFtZUNvbW1vbkV4cGVuc2VzKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvc3RhdHVzL2FwcHJvdmVkL2J5L2dyb3VwJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluU3R1ZGVudFBheW1lbnRUcmFuc2FjdGlvbkhpc3RvcnlCeUNvdXJzZShwYXJhbTogSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvcGF5bWVudC90cmFuc2FjdGlvbi9oaXN0b3J5L2J5L2NvdXJzZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRUcmFuc2FjdGlvbkhpc3RvcnlCeUNvZChwYXJhbTogSU9idGFpblBheW1lbnRUcmFuSGlzdG9yeVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnQvdHJhbnNhY3Rpb24vaGlzdG9yeS9ieS9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5TdHVkZW50UGF5bWVudEJ5RGlmZmVyZW50UGFyYW1ldGVyKHBhcmFtOiBJT2J0YWluU3R1ZGVudFBheW1lbnRCeURpZmZQYXJhbVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3N0dWRlbnQvcGF5bWVudC9ieS9kaWZmZXJlbnQvcGFyYW1ldGVycyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGNyZWF0ZUVncmVzcyhwYXJhbTogSXBheW1lbnRCaWxsRWdyZXNzUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL3JlZ2lzdGVyL2VncmVzcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRDYXRlZ29yeSgpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2dldC90eXBlL3N1cHBsaWVyL2FsbCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgY3JlYXRlQ2FzaENsb3NpbmcocGFyYW06IEljYXNoQ2xvc2luZ1JxKTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9jbG9zZS9jYXNoJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgc2VhcmNoQ29tbW9uRXhwZW5zZXMobmFtZTpzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsnZ2V0L3NlYXJjaC9jb21tb24vZXhwZW5zZXMvJyArIG5hbWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgZ2V0VXNlcnNDYXNoQ2xvc2luZygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9jbG9zZS9jYXNoL2J5L3VzZXInO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgZ2V0Q2FzaENsb3NpbmdEYXkoY29kZTpudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvZGF5L2NvZGV1c2VyLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldENhc2hDbG9zaW5nTW9udGgoY29kZTpudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvbW9udGgvY29kZXVzZXIvJyArIGNvZGU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XG4gIH1cbiAgZ2V0Q2FzaENsb3NpbmdZZWFyKGNvZGU6bnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvY2xvc2UvY2FzaC9ieS95ZWFyL2NvZGV1c2VyLycgKyBjb2RlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG4gIGdldEluZm9DYXNoQ2xvc2luZ0J5Q29kZShwYXJhbTpJbmZvQ2FzaENsb3NpbmdScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvY29kZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldENhc2hDbG9zaW5nRGF0ZShwYXJhbTpJY2FzaENsb3NpbmdEYXRlUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL2Nsb3NlL2Nhc2gvYnkvZGF0ZS9yYW5nZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuICBleHBvcnRPYnRhaW5TdHVkZW50UGF5bWVudFRyYW5zYWN0aW9uSGlzdG9yeUJ5Q291cnNlKHBhcmFtOiBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2V4cG9ydC9leGNlbC9kYXRhL3BheW1lbnQvdHJhbnNhY3Rpb24vaGlzdG9yeS9ieS9jb3Vyc2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cbiAgZ2V0VG90YWxDYXNoSW5jb21lRWdyZXNzKHBhcmFtOiBJbmNvbWVzQW5kRWdyZXNzUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdG90YWwvY2FzaC9yZWNlaXB0cy9pbmNvbWVzL2VncmVzcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9iYXRpbkJhbGFjZXNCeUNvb2RpbmF0b3IocGFyYW1zOiBJQWNjb3VudHNCYWxhbmNlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdvYnRhaW4vYWNjb3VudHMvYW5kL2JhbGFuY2VzL2J5L2Nvb2RpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlKHBhcmFtczogSU9iYXRpbkRldGFpbGVkSW5jb21lQnlVc2VyQW5kRGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2RldGFpbGVkL2luY29tZS9yZXBvcnQvYnkvYWR2aXNvcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRJbmNvbWVFeHBlbnNlSGlzdG9yeURhdGEocGFyYW1zOiBJT2JhdGluRGV0YWlsZWRJbmNvbWVCeVVzZXJBbmREYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdleHBvcnQvaW5jb21lL2V4cGVuc2UvaGlzdG9yeS9kYXRhJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkFsbFBheW1lbnRCaWxsQ2FuY2VsZWRCeVN0dWRlbnQoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9hbGwvcGF5bWVudC9iaWxsL2NhbmNlbGxlZC9ieS9zdHVkZW50LycgKyBjb2RlU3R1ZGVudDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFBheW1lbnRJbmZvQnlSZWZlcmVuY2UocGFyYW1zOiBJUGF5bWVudFJlZmVyZW5jZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvYnkvcmVmZXJlbmNlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzQnlDb2QocGFyYW06SUNvZFBheW1lbnRScSk6T2JzZXJ2YWJsZTxhbnk+e1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3BheW1lbnRzL2J5L2NvZCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzTWFkZUJ5RGF0ZXMocGFyYW1zOiBJQ2FuY2VsbGVkUmVjZWlwdEJ5RGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnRzL21hZGUvYnkvZGF0ZXMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgc2VuZEVtYWlsUGF5bWVudChwYXJhbXM6IFNlbmRFbWFpbFBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3NlbmQvZW1haWwvcGF5bWVudCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZW5kRW1haWxQYXltZW50Q2FuY2VsbGF0aW9uKHBhcmFtczogU2VuZEVtYWlsUGF5bWVudENhbmNlbGxhdGlvblJTKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9zZW5kL2VtYWlsL3BheW1lbnQvY2FuY2VsbGF0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbn1cblxuICBnZXRBbGxUcmFuc2ZlcnMocGFyYW1zOiBJVHJhbnNmZXJHZXRBbGxScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvYWxsJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG5cbiAgZ2V0VHJhbnNmZXJCeUNvZGUocGFyYW1zOiBJVHJhbnNmZXJHZXRScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvc3BlY2lmaWMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgLy8gY3JlYXRlVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJDcmVhdGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvY3JlYXRlJztcbiAgLy8gICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgLy8gfVxuXG4gIGNyZWF0ZVRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyQ3JlYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXJzL2NyZWF0ZSc7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW3Rva2VuXScsIHBhcmFtcy50b2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdHJhbnNmZXJfYW1vdW50XScsIHBhcmFtcy50cmFuc2Zlcl9hbW91bnQudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbYmFua19jb2RlXScsIHBhcmFtcy5iYW5rX2NvZGUudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdHJhbnNmZXJfZGF0ZV0nLCBwYXJhbXMudHJhbnNmZXJfZGF0ZSk7IC8vIGFob3JhIHN0cmluZ1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW3JlZmVyZW5jZV9udW1iZXJdJywgcGFyYW1zLnJlZmVyZW5jZV9udW1iZXIpO1xuXG5cbiAgICBpZiAocGFyYW1zLmltYWdlKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3BhcmFtc1tpbWFnZV0nLCBwYXJhbXMuaW1hZ2UsIHBhcmFtcy5pbWFnZS5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIGZvcm1EYXRhKTtcbiAgfVxuLypcbiAgc2hvd1RyYW5zZmVySW1hZ2UocGFyYW1zOiBJVHJhbnNmZXJTaG93SW1hZ2VScSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXIvc2hvdy1pbWFnZSc7XG4gICAgY29uc3QgYm9keSA9IHsgY29kZTogcGFyYW1zLmNvZGUgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxCbG9iPihzZXJ2aWNlVXJsLCBib2R5LCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicsXG4gICAgfSk7XG4gIH1cblxuICBhc3NpZ25JbWFnZVRvVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJBc3NpZ25JbWFnZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2Zlci9hc3NpZ24taW1hZ2UnO1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCd0b2tlbicsIHBhcmFtcy50b2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb2RlJywgcGFyYW1zLmNvZGUudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdpbWFnZScsIHBhcmFtcy5pbWFnZSwgcGFyYW1zLmltYWdlLm5hbWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIGZvcm1EYXRhKTtcbiAgfSAgICovXG5cbiAgICBhc3NpZ25JbWFnZVRvVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJBc3NpZ25JbWFnZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL2Fzc2lnbi1pbWFnZSc7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNbdG9rZW5dJywgcGFyYW1zLnRva2VuKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zW2NvZGVdJywgcGFyYW1zLmNvZGUudG9TdHJpbmcoKSk7XG4gICAgICBpZiAocGFyYW1zLmltYWdlKSB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaW1hZ2UnLCBwYXJhbXMuaW1hZ2UsIHBhcmFtcy5pbWFnZS5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCBmb3JtRGF0YSk7XG4gICAgfVxuXG4gICAgc2hvd1RyYW5zZmVySW1hZ2UocGFyYW1zOiBJVHJhbnNmZXJTaG93SW1hZ2VScSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEJsb2I+PiB7XG4gICAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL3Nob3ctaW1hZ2UnO1xuICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgY29kZTogcGFyYW1zLmNvZGVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7XG4gICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgICB9KTtcbiAgICB9XG5cblxuXG4gIHVwZGF0ZVRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyVXBkYXRlUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXJzL3VwZGF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICB1cGRhdGVUcmFuc2ZlclN0YXR1cyhwYXJhbXM6IElUcmFuc2ZlclN0YXR1c1VwZGF0ZVJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVycy91cGRhdGUnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZGVsZXRlVHJhbnNmZXIocGFyYW1zOiBJVHJhbnNmZXJEZWxldGVScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC90cmFuc2ZlcnMvZGVsZXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHNlYXJjaFRyYW5zZmVyKHBhcmFtczogSVRyYW5zZmVyU2VhcmNoUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvdHJhbnNmZXIvc2VhcmNoJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGV4cG9ydFBheW1lbnRDb3JyZWxhdGl2ZWVIaXN0b3J5RGF0YShwYXJhbTpJUGF5bWVudENvcnJlbGF0aXZlUnEpOk9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L3BheW1lbnRzL2NvcnJlbGF0aXZlL2hpc3RvcnkvZGF0YSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpblBheW1lbnRzTWFkZUJ5RmlsdGVyKHBhcmFtOiBJUGF5bWVudENvcnJlbGF0aXZlUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9wYXltZW50L2NvcnJlbGF0aXZlcy9ieS9maWx0ZXInO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5HYXRld2F5UGF5bWVudFJlY29yZChwYXJhbTogSU9idGFpbkdhdGV3YXlQYXltZW50UmVjb3JkUnEpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9nYXRld2F5L3BheW1lbnQvcmVjb3JkJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZXBheWNvUGF5bWVudFVwZGF0ZShwYXJhbTogSVVwZGF0ZUVwYXljb1BheW1lbnRScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXBheWNvL3BheW1lbnQvdXBkYXRlJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZXhwb3J0RWxlY3Ryb25pY0ludm9pY2VIaXN0b3J5RGF0YShwYXJhbTpJRWxlY3Ryb25pY0ludm9pY2VSUyk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2VsZWN0cm9uaWMvaW52b2ljZS9oaXN0b3J5L2RhdGEnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRBY2NvdW50c0FuZEJhbGFuY2VzQnlDb29kaW5hdG9yKHBhcmFtOklBY2NvdW50c0JhbGFuY2VScSk6IE9ic2VydmFibGU8YW55PntcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2FjY291bnRzL2FuZC9iYWxhbmNlcy9ieS9jb29kaW5hdG9yJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgY3JlYXRlQ29kUGF5bWVudHMocGFyYW1zOiBJQ3JlYXRlQ29kUGF5bWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY3JlYXRlL2NvZC9wYXltZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBkZWxldGVDb2RQYXltZW50cyhwYXJhbXM6IElEZWxldGVDb2RQYXltZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9kZWxldGUvY29kL3BheW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG5cbiAgZ2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvbihwYXJhbXM6IElHZXRGdWxsUGF5bWVudEluZm9ybWF0aW9uUnEpOiBPYnNlcnZhYmxlPElHZXRGdWxsUGF5bWVudEluZm9ybWF0aW9uUnM+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3BheW1lbnQvYmlsbC9mdWxsLWluZm9ybWF0aW9uJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJR2V0RnVsbFBheW1lbnRJbmZvcm1hdGlvblJzPihzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZVRyYW5zZmVyU3RhdHVzQnlDb2RlKHBhcmFtczogSVRyYW5zZmVyU3RhdHVzVXBkYXRlUmVxdWVzdFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L3RyYW5zZmVyL3VwZGF0ZS1zdGF0dXMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlRWxlY3Ryb25pY0ludm9pY2UocGFyYW1zOiBJVXBkYXRlRWxlY3Ryb25pY0ludm9pY2VScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncG9zdC9wYXltZW50L2JpbGwvdXBkYXRlLWVsZWN0cm9uaWMtaW52b2ljZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hQYXltZW50QmlsbChwYXJhbXM6IElTZWFyY2hQYXltZW50QmlsbFJxKTogT2JzZXJ2YWJsZTxJU2VhcmNoUGF5bWVudEJpbGxScz4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvcGF5bWVudC9iaWxsL3NlYXJjaC1pbmZvcm1hdGlvbic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFBheW1lbnRCaWxsUnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0VmFsaWRhdGlvbk9mVHJhbnNmZXJzQnlOdW1iZXIocGFyYW1zOiBJVmFsaWRhdGlvbk9mVHJhbnNmZXJzQnlOdW1iZXJScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3ZhbGlkYXRpb24vb2YvdHJhbnNmZXJzL2J5L251bWJlcic7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFBheW1lbnRCaWxsUnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3IocGFyYW1zOiBJR2V0U3VtbWFyeUJ5Q29vcmRpbmF0b3JScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L3N1bW1hcnkvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cblxuICBjcmVhdGVUcmFuc2ZlclZhbGlkYXRlKHBhcmFtczogSUNyZWF0ZVRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2NyZWF0ZS90cmFuc2Zlci92YWxpZGF0ZSc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hUcmFuc2ZlckJ5UmVmZXJlbmNlKHBhcmFtczogSVNlYXJjaFRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC90cmFuc2Zlci9ieS9yZWZlcmVuY2UnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlVHJhbnNmZXJEYXRhKHBhcmFtczogSVVwZGF0ZVRyYW5zZmVyUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3VwZGF0ZS90cmFuc2Zlci9kYXRhJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG9idGFpbkxpc3RTdHVkZW50UGF5bWVudFN0YXR1cyhwYXJhbXM6IElPYnRhaW5Db3Vyc2VCeUNvb2REaWZmUGFyYW1ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL2xpc3Qvc3R1ZGVudC9wYXltZW50L3N0YXR1cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBleHBvcnRMaXN0U3R1ZGVudFBheW1lbnRTdGF0dXMocGFyYW1zOiBJT2J0YWluQ291cnNlQnlDb29kRGlmZlBhcmFtUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2V4cG9ydC9zdHVkZW50L3BheW1lbnQvc3RhdHVzL2xpc3QvYnkvY29vcmRpbmF0b3InO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGF5bWVudFBsYW5CeUNvZGVDb2QgKGNvZGVDb2Q6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnb2J0YWluL3BheW1lbnQvcGxhbi9ieS9jb2RlL2NvZC8nICsgY29kZUNvZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIHJlY2VpdmVQYXltZW50c01hZGVUb0NvZCAoY29kZUNvZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdyZWNlaXZlL3BheW1lbnRzL21hZGUvdG8vY29kLycgKyBjb2RlQ29kO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbiAgbmV3UmVnaXN0ZVBheW1lbnRCaWxsUHJlYXNzaWduZWRDb2QocGFyYW1zOiBQYXltZW50QmlsbFJxMik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ25ldy9yZWdpc3RlL3BheW1lbnQvYmlsbC9wcmVhc3NpZ25lZC9jb2QnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgYWRkTmV3UXVvdGFXaXRoQ29tbWVudHMocGFyYW1zOiBJQWRkTmV3UXVvdGFXaXRoQ29tbWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ2FkZC9uZXcvcXVvdGEvd2l0aC9jb21tZW50cyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBkZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50cyhwYXJhbXM6IElEZWxldGVRdW90YVJlY29yZFdpdGhDb21tZW50c1JxKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZGVsZXRlL3F1b3RhL3JlY29yZC93aXRoL2NvbW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIG1vZGlmeVF1b3RhRGF0YVdpdGhDb21tZW50cyhwYXJhbXM6IElNb2RpZnlRdW90YURhdGFXaXRoQ29tbWVudHNScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ21vZGlmeS9xdW90YS9kYXRhL3dpdGgvY29tbWVudHMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgZWRpdEluc3RhbGxtZW50QW1vdW50V2l0aENvbW1lbnRzKHBhcmFtczogSUVkaXRJbnN0YWxsbWVudEFtb3VuV2l0aENvbW1lbnRzUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdlZGl0L2luc3RhbGxtZW50L2Ftb3VudC93aXRoL2NvbW1lbnRzJztcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHN0dWRlbnRQYXltZW50UGxhbkJ5Q29kIChjb2RlQ29kOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3N0dWRlbnQvcGF5bWVudC9wbGFuL2J5L2NvZC8nICsgY29kZUNvZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChzZXJ2aWNlVXJsKTtcbiAgfVxuXG4gIGdldFBheW1lbnRzQnlNYWRlRXhwb3J0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZXhwb3J0L2ZpbGUvZXhjZWwvcGF5bWVudHMvbWFkZS9ieS9kYXRlcyc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBzZWFyY2hGb3JTdHVkZW50c0J5RGlmZmVyZW50UGFyYW1ldGVycyhwYXJhbTogSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3NlYXJjaC9mb3Ivc3R1ZGVudHMvYnkvZGlmZmVyZW50L3BhcmFtZXRlcnMnO1xuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHBhcmFtKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XG4gIH1cblxuICBvYnRhaW5Db3Vyc2VQYXltZW50UmFuZ2VSZXBvcnQocGFyYW06IElDb3Vyc2VQYXltZW50UmFuZ2VSZXBvcnRScSk6IE9ic2VydmFibGU8SUNvdXJzZVBheW1lbnRSYW5nZVJlcG9ydFJzPiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2NvdXJzZS9wYXltZW50L3JhbmdlL3JlcG9ydCc7XG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQ291cnNlUGF5bWVudFJhbmdlUmVwb3J0UnM+KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgb2J0YWluUGVuZGluZ0dhdGV3YXlQYXltZW50c0ZvclByb2Nlc3NpbmcoY29kZVN0dWRlbnQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ29idGFpbi9wZW5kaW5nL2dhdGV3YXkvcGF5bWVudHMvZm9yL3Byb2Nlc3NpbmcvJyArIGNvZGVTdHVkZW50O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHNlcnZpY2VVcmwpO1xuICB9XG5cbn1cblxuIl19
|