@creator.co/creatorco-prisma-client 1.0.20 → 1.0.21
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/edge.js +3 -3
- package/index.js +3 -3
- package/package.json +1 -1
- package/schema.prisma +2 -0
package/edge.js
CHANGED
|
@@ -1228,7 +1228,7 @@ const config = {
|
|
|
1228
1228
|
"value": "prisma-client-js"
|
|
1229
1229
|
},
|
|
1230
1230
|
"output": {
|
|
1231
|
-
"value": "/home/runner/github-runner-
|
|
1231
|
+
"value": "/home/runner/github-runner-H9ESHIpxz86Uy/creator-database/creator-database/client/creatorco/client",
|
|
1232
1232
|
"fromEnvVar": null
|
|
1233
1233
|
},
|
|
1234
1234
|
"config": {
|
|
@@ -1295,8 +1295,8 @@ const config = {
|
|
|
1295
1295
|
}
|
|
1296
1296
|
}
|
|
1297
1297
|
},
|
|
1298
|
-
"inlineSchema": "Z2VuZXJhdG9yIGVyZCB7CiAgcHJvdmlkZXIgICAgICAgICAgICAgICAgICA9ICJwcmlzbWEtZXJkLWdlbmVyYXRvciIKICBpbmNsdWRlUmVsYXRpb25Gcm9tRmllbGRzID0gdHJ1ZQogIG91dHB1dCA9ICIuLi8uLi9kb2NzL2NyZWF0b3Jjb19lcmQubWQiCn0KCmdlbmVyYXRvciBreXNlbHkgewogIHByb3ZpZGVyICAgICAgICAgPSAicHJpc21hLWt5c2VseSIKICBvdXRwdXQgICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28va3lzZWx5IgogIGZpbGVOYW1lICAgICAgICAgPSAidHlwZXMudHMiCiAgZW51bUZpbGVOYW1lICAgICA9ICJlbnVtcy50cyIKICByZWFkT25seUlkcyAgICAgID0gdHJ1ZQogIGpzb25UeXBlT3ZlcnJpZGUgPSBKc29uCn0KCmdlbmVyYXRvciBjbGllbnQgewogIHByb3ZpZGVyICAgICAgICA9ICJwcmlzbWEtY2xpZW50LWpzIgogIG91dHB1dCAgICAgICAgICA9ICIuLi8uLi9jbGllbnQvY3JlYXRvcmNvL2NsaWVudCIKICBwcmV2aWV3RmVhdHVyZXMgPSBbImZ1bGxUZXh0SW5kZXgiLCAiZnVsbFRleHRTZWFyY2giXQogIC8vIG1hY29zIChhcm0gb3IgeDg2KSwgbmF0aXZlLCBsaW51eCBhcm02NCBzc2wzLngsIHdpbmRvd3MKICBiaW5hcnlUYXJnZXRzICAgPSBbIm5hdGl2ZSIsICJkYXJ3aW4iLCAiZGFyd2luLWFybTY0IiwgImxpbnV4LWFybTY0LW9wZW5zc2wtMy4wLngiLCAid2luZG93cyIsICJkZWJpYW4tb3BlbnNzbC0zLjAueCIsICJsaW51eC1tdXNsLWFybTY0LW9wZW5zc2wtMy4wLngiLCAibGludXgtYXJtNjQtb3BlbnNzbC0xLjAueCJdCn0KCmRhdGFzb3VyY2UgZGIgewogIHByb3ZpZGVyID0gInBvc3RncmVzcWwiCiAgdXJsICAgICAgPSBlbnYoIkRBVEFCQVNFX1VSTCIpCn0KCm1vZGVsIFVzZXIgewogIGlkICAgICAgICAgICAgICAgICAgSW50ICAgICAgICAgICAgIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgcm9sZSAgICAgICAgICAgICAgICBTdHJpbmcKICBlbWFpbCAgICAgICAgICAgICAgIFN0cmluZz8gICAgICAgICBAdW5pcXVlCiAgcGFzc3dvcmQgICAgICAgICAgICBTdHJpbmc/CiAgcmVnaXN0ZXJlZCAgICAgICAgICBEYXRlVGltZSAgICAgICAgQGRlZmF1bHQobm93KCkpCiAgbGFzdExvZ2luRGF0ZSAgICAgICBEYXRlVGltZT8KICBmaXJzdE5hbWUgICAgICAgICAgIFN0cmluZz8KICBsYXN0TmFtZSAgICAgICAgICAgIFN0cmluZz8KICBwaG9uZSAgICAgICAgICAgICAgIFN0cmluZz8KICBwaG9uZUNvZGUgICAgICAgICAgIEludD8KICBwaG9uZVNob3J0ICAgICAgICAgIFN0cmluZz8KICBwcm9maWxlUGljVXJsICAgICAgIFN0cmluZz8gICAgICAgICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvcmdvdFBhc3N3b3JkS2V5ICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBhZmZpbGlhdGVTbHVnICAgICAgIFN0cmluZz8gICAgICAgICBAdW5pcXVlCiAgY2xvc2VkICAgICAgICAgICAgICBEYXRlVGltZT8KICBjbG9zZWRSZWFzb24gICAgICAgIFN0cmluZz8KICB1c2VyY29tTGFzdFN5bmNlZCAgIERhdGVUaW1lPyAgICAgICBAZGVmYXVsdChub3coKSkKICBleHRyYURhdGEgICAgICAgICAgIEpzb24gICAgICAgICAgICBAZGVmYXVsdCgie30iKQoKICByZWZlcnJlcklkIEludD8KCiAgcmVmZXJyZXIgICAgICAgICAgICBVc2VyPyAgICAgICAgICAgICAgICBAcmVsYXRpb24oIlJlZmVycmFscyIsIGZpZWxkczogW3JlZmVycmVySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHJlZmVycmVkVXNlcnMgICAgICAgVXNlcltdICAgICAgICAgICAgICAgQHJlbGF0aW9uKCJSZWZlcnJhbHMiKQogIGxvZ3MgICAgICAgICAgICAgICAgTG9nW10KICBjcmVhdG9yUHJvZmlsZSAgICAgIENyZWF0b3JQcm9maWxlPwogIGluc3RhZ3JhbVByb2ZpbGUgICAgSW5zdGFncmFtUHJvZmlsZT8KICB5b3V0dWJlUHJvZmlsZSAgICAgIFlvdXR1YmVQcm9maWxlPwogIHRpa3Rva1Byb2ZpbGUgICAgICAgVGlrdG9rUHJvZmlsZT8KICBmYWNlYm9va1Byb2ZpbGUgICAgIEZhY2Vib29rUHJvZmlsZT8KICB0d2l0dGVyUHJvZmlsZSAgICAgIFR3aXR0ZXJQcm9maWxlPwogIHR3aXRjaFByb2ZpbGUgICAgICAgVHdpdGNoUHJvZmlsZT8KICBicmFuZFByb2ZpbGVzICAgICAgIEJyYW5kVXNlclByb2ZpbGVbXQogIG9wdElucyAgICAgICAgICAgICAgT3B0SW5bXQogIGFzc2lnbmVkQnJhbmRzICAgICAgQnJhbmRbXQogIG1lc3NhZ2VzICAgICAgICAgICAgTWVzc2FnZVtdCiAgc29jaWFsUG9zdHMgICAgICAgICBTb2NpYWxQb3N0W10KICBwYXltZW50VHJhbnNhY3Rpb25zIFBheW1lbnRUcmFuc2FjdGlvbltdCiAgYWZmaWxpYXRlTGlua3MgICAgICBBZmZpbGlhdGVMaW5rW10KICBjYW1wYWlnblBpbnMgICAgICAgIENhbXBhaWduUGluW10KICBzb2NpYWxQcm9maWxlcyAgICAgIFNvY2lhbFByb2ZpbGVbXQogIHJha3V0ZW5BY3Rpdml0eSAgICAgUmFrdXRlbkFjdGl2aXR5W10KICBpbXBhY3RSYWRpdXNFdmVudHMgIEltcGFjdFJhZGl1c0V2ZW50W10KICAKICBAQGluZGV4KFtwaG9uZUNvZGUsIHBob25lXSkKICBAQG1hcCgidXNlciIpCiAgLy8gQEBmdWxsdGV4dChbZmlyc3ROYW1lLCBsYXN0TmFtZV0pCn0KCm1vZGVsIExvZyB7CiAgaWQgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCgogIHVzZXJJZCBJbnQ/CiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgZGF0YSBKc29uPwp9Cgptb2RlbCBDcmVhdG9yUHJvZmlsZSB7CiAgaWQgICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjb3VudHJ5ICAgICAgICAgIFN0cmluZz8KICByZWdpb24gICAgICAgICAgIFN0cmluZz8KICBiaXJ0aERhdGUgICAgICAgIERhdGVUaW1lPwogIGludGVyZXN0cyAgICAgICAgSnNvbj8gLy8gZGVwcmVjYXRlZAogIGdlbmRlciAgICAgICAgICAgU3RyaW5nPwogIHNoaXBwaW5nQWRkcmVzczEgU3RyaW5nPwogIHNoaXBwaW5nQWRkcmVzczIgU3RyaW5nPwogIHNoaXBwaW5nQ2l0eSAgICAgU3RyaW5nPwogIHNoaXBwaW5nUmVnaW9uICAgU3RyaW5nPwogIHNoaXBwaW5nQ291bnRyeSAgU3RyaW5nPwogIHNoaXBwaW5nUG9zdGNvZGUgU3RyaW5nPwogIHBoeWxsb1VzZXJJZCAgICAgU3RyaW5nPwogIHByb2ZpbGVTbHVnICAgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBwcm9maWxlU2V0dGluZ3MgIEpzb24/CiAgd2FsbGV0QWRkcmVzcyAgICBTdHJpbmc/ICAgQHVuaXF1ZQoKICBuaWNoZXMgQ3JlYXRvclRvQ2F0ZWdvcnlbXQoKICB1c2VySWQgSW50ICBAdW5pcXVlCiAgdXNlciAgIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHBoeWxsb1VzZXJJZCkKICBAQG1hcCgiY3JlYXRvcnByb2ZpbGUiKQp9Cgptb2RlbCBJbnN0YWdyYW1Qcm9maWxlIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgaW5zdGFncmFtSWQgU3RyaW5nPwoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBmdWxsTmFtZSAgICAgICAgICBTdHJpbmc/IEBkYi5WYXJDaGFyKDEwMjQpCiAgaXNCdXNpbmVzcyAgICAgICAgQm9vbGVhbj8KICBpc1ByaXZhdGUgICAgICAgICBCb29sZWFuPwogIGlzVmVyaWZpZWQgICAgICAgIEJvb2xlYW4/CiAgbWVkaWFDb3VudCAgICAgICAgSW50PwogIGZvbGxvd2luZ0NvdW50ICAgIEludD8KICB0b3RhbENvbW1lbnRzICAgICBJbnQ/CiAgdG90YWxMaWtlcyAgICAgICAgSW50PwogIGF2Z0NvbW1lbnRzICAgICAgIEZsb2F0PwogIGF2Z0xpa2VzICAgICAgICAgIEZsb2F0PwogIGJpbyAgICAgICAgICAgICAgIFN0cmluZz8KICBleHRlcm5hbFVybCAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBoYXNIaWdobGlnaHRSZWVscyBCb29sZWFuPwogIGNhdGVnb3J5ICAgICAgICAgIFN0cmluZz8KICBoYXNDbGlwcyAgICAgICAgICBCb29sZWFuPwogIGhhc0d1aWRlcyAgICAgICAgIEJvb2xlYW4/CiAgaGFzQ2hhbm5lbCAgICAgICAgQm9vbGVhbj8KICB0b3RhbElndHZWaWRlb3MgICBJbnQ/CiAgcHJvZmlsZVBpY1VybEhkICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpIC8vIERFUFJFQ0FURUQKICBsYXN0U3Rvcmllc1VwZGF0ZSBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICAgIEpzb24/CiAgcGh5bGxvRGF0YSAgIEpzb24/CiAgYXVkaWVuY2VEYXRhIEpzb24gICAgQGRlZmF1bHQoInt9IikKICB2aXNpYmlsaXR5ICAgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkICBJbnQ/ICAgQHVuaXF1ZQogIHVzZXIgICAgVXNlcj8gIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZElkIEludD8gICBAdW5pcXVlCiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleCh1c2VybmFtZSkKICBAQGluZGV4KGluc3RhZ3JhbUlkKQogIEBAbWFwKCJpbnN0YWdyYW1wcm9maWxlIikKfQoKbW9kZWwgVGlrdG9rUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGlrdG9rSWQgU3RyaW5nIEB1bmlxdWUKCiAgLy8gZmllbGRzIGNvbnNpc3RlbnQgYWNjcm9zcyBwcm9maWxlcwogIHVzZXJuYW1lICAgICAgU3RyaW5nPwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGhhbmRsZSAgICAgICAgIFN0cmluZz8KICBuaWNrbmFtZSAgICAgICBTdHJpbmc/CiAgZm9sbG93aW5nQ291bnQgSW50PwogIHRvdGFsQ29tbWVudHMgIEludD8KICB0b3RhbExpa2VzICAgICBJbnQ/CgogIGV4dHJhRGF0YSAgICBKc29uPwogIHBoeWxsb0RhdGEgICBKc29uPwogIGF1ZGllbmNlRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCiAgdmlzaWJpbGl0eSAgIFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCAgSW50PyAgIEB1bmlxdWUKICB1c2VyICAgIFVzZXI/ICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmRJZCBJbnQ/ICAgQHVuaXF1ZQogIGJyYW5kICAgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBtYXAoInRpa3Rva3Byb2ZpbGUiKQp9Cgptb2RlbCBZb3V0dWJlUHJvZmlsZSB7CiAgaWQgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHlvdXR1YmVJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBmb2xsb3dpbmdDb3VudCBJbnQ/CiAgZnVsbE5hbWUgICAgICAgU3RyaW5nPyAgQGRiLlZhckNoYXIoMTAyNCkKICBpc1ZlcmlmaWVkICAgICBCb29sZWFuPwogIHN1YnNjcmliZXJzICAgIEludD8KICBkZXNjcmlwdGlvbiAgICBTdHJpbmc/ICBAZGIuVGV4dAogIGNvdW50cnkgICAgICAgIFN0cmluZz8KICB0b3RhbFZpZXdzICAgICBJbnQ/CiAgdG90YWxWaWRlb3MgICAgSW50PwoKICBleHRyYURhdGEgICAgSnNvbj8KICBwaHlsbG9EYXRhICAgSnNvbj8KICBhdWRpZW5jZURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKQogIHZpc2liaWxpdHkgICBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgIEludD8gICBAdW5pcXVlCiAgdXNlciAgICBVc2VyPyAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGJyYW5kSWQgSW50PyAgIEB1bmlxdWUKICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAbWFwKCJ5b3V0dWJlcHJvZmlsZSIpCn0KCm1vZGVsIFR3aXRjaFByb2ZpbGUgewogIGlkICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR3aXRjaElkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoInR3aXRjaHByb2ZpbGUiKQp9Cgptb2RlbCBGYWNlYm9va1Byb2ZpbGUgewogIGlkICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgZmFjZWJvb2tJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcgICAgQHVuaXF1ZQogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGV4dHJhRGF0YSAgSnNvbj8KICBwaHlsbG9EYXRhIEpzb24/CiAgdmlzaWJpbGl0eSBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgSW50PyAgQHVuaXF1ZQogIHVzZXIgICBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAbWFwKCJmYWNlYm9va3Byb2ZpbGUiKQp9Cgptb2RlbCBUd2l0dGVyUHJvZmlsZSB7CiAgaWQgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR3aXR0ZXJJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcgICAgQHVuaXF1ZQogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGV4dHJhRGF0YSAgSnNvbj8KICBwaHlsbG9EYXRhIEpzb24/CiAgdmlzaWJpbGl0eSBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgSW50PyAgQHVuaXF1ZQogIHVzZXIgICBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAbWFwKCJ0d2l0dGVycHJvZmlsZSIpCn0KCm1vZGVsIEJyYW5kVXNlclByb2ZpbGUgewogIGlkICAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXNlcklkICBJbnQKICBicmFuZElkIEludAoKICB1c2VyICBVc2VyICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmQgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbdXNlcklkXSkKICBAQGluZGV4KFticmFuZElkXSkKCiAgQEBtYXAoImJyYW5kdXNlcnByb2ZpbGUiKQp9Cgptb2RlbCBCcmFuZCB7CiAgaWQgICAgICAgICAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbmFtZSAgICAgICAgICAgICAgICAgICAgU3RyaW5nCiAgZGVzY3JpcHRpb24gICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgd2Vic2l0ZSAgICAgICAgICAgICAgICAgU3RyaW5nCiAgbW9udGhseUNvbnRhY3RzICAgICAgICAgSW50PwogIG1vbnRobHlSZXBvcnRzICAgICAgICAgIEludD8KICBsYXN0Q29udGFjdERpc3RyaWJ1dGlvbiBEYXRlVGltZT8KICBsb2dvVXJsICAgICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBhZmZpbGlhdGVCYXNlVXJsICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBhZmZpbGlhdGVDb21taXNzaW9uICAgICBGbG9hdD8KICBleHRyYURhdGEgICAgICAgICAgICAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKCiAgc3BlY2lhbGlzdElkICAgICAgICBJbnQ/CiAgZGVkaWNhdGVkU3BlY2lhbGlzdCBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbc3BlY2lhbGlzdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBpbnN0YWdyYW1Qcm9maWxlICAgICBJbnN0YWdyYW1Qcm9maWxlPwogIHlvdXR1YmVQcm9maWxlICAgICAgIFlvdXR1YmVQcm9maWxlPwogIHRpa3Rva1Byb2ZpbGUgICAgICAgIFRpa3Rva1Byb2ZpbGU/CiAgY2FtcGFpZ25zICAgICAgICAgICAgQ2FtcGFpZ25bXQogIGJyYW5kVXNlcnMgICAgICAgICAgIEJyYW5kVXNlclByb2ZpbGVbXQogIHNlYXJjaENvbnRhY3RzICAgICAgIFNlYXJjaENvbnRhY3RzW10KICByZXBvcnRDcmVkaXRzICAgICAgICBSZXBvcnRDcmVkaXRzW10KICBjYXRlZ29yaWVzICAgICAgICAgICBCcmFuZFRvQ2F0ZWdvcnlbXQogIHBheW1lbnRUcmFuc2FjdGlvbnMgIFBheW1lbnRUcmFuc2FjdGlvbltdCiAgc2F2ZWRmaWxlcyAgICAgICAgICAgU2F2ZWRGaWxlW10KICBjcmVhdG9yTGlzdHMgICAgICAgICBDcmVhdG9yTGlzdFtdCiAgYWZmaWxpYXRlTGlua3MgICAgICAgQnJhbmRBZmZpbGlhdGVMaW5rW10KICBtZXNzYWdlVGVtcGxhdGUgICAgICBNZXNzYWdlVGVtcGxhdGVbXQogIGVtYWlsVGVtcGxhdGVzICAgICAgIEVtYWlsVGVtcGxhdGVbXQogIHNvY2lhbExpc3RlbmluZ0xpc3RzIFNvY2lhbExpc3RlbmluZ0xpc3RbXQogIGNhbXBhaWduSW52aXRlcyAgICAgIENhbXBhaWduSW52aXRlW10KICBpbWFnZXMgICAgICAgICAgICAgICBCcmFuZFRvSW1hZ2VbXQogIGNyZWF0b3JzZWFyY2hmaWx0ZXIgIENyZWF0b3JTZWFyY2hGaWx0ZXJbXQogIHNlcXVlbmNlcyAgICAgICAgICAgIFNlcXVlbmNlW10KICBpbXBhY3RSYWRpdXNFdmVudHMgICBJbXBhY3RSYWRpdXNFdmVudFtdCgogIC8vIGZvciBhZ2VuY2llcwogIHBhcmVudEJyYW5kSWQgICAgICAgSW50PwogIHBhcmVudEJyYW5kICAgICAgICAgQnJhbmQ/IEByZWxhdGlvbigiQ2hpbGRCcmFuZHMiLCBmaWVsZHM6IFtwYXJlbnRCcmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjaGlsZEJyYW5kcyAgICAgICAgIEJyYW5kW10gQHJlbGF0aW9uKCJDaGlsZEJyYW5kcyIpCiAgLy8gZ2VuZXJhdGVkIChmb3Igc2VhcmNoKQogIHNlYXJjaE5hbWUgICAgICAgICAgU3RyaW5nPyBAZGVmYXVsdChkYmdlbmVyYXRlZCgpKQoKICBAQG1hcCgiYnJhbmQiKQp9Cgptb2RlbCBTZWFyY2hDb250YWN0cyB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgIFN0cmluZwogIHByZXZRdHkgICAgRmxvYXQKICBjaGFuZ2VRdHkgIEZsb2F0CiAgY3VycmVudFF0eSBGbG9hdAogIGNyZWF0ZWQgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQoKICBwcmV2UXR5UG9zdElkIEludD8gICAgICAgICAgICBAdW5pcXVlCiAgcHJldlF0eVBvc3QgICBTZWFyY2hDb250YWN0cz8gQHJlbGF0aW9uKCJwcmV2U2VhcmNoUXR5UG9zdElkIiwgZmllbGRzOiBbcHJldlF0eVBvc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbmV4dFF0eVBvc3QgICBTZWFyY2hDb250YWN0cz8gQHJlbGF0aW9uKCJwcmV2U2VhcmNoUXR5UG9zdElkIikKCiAgYnJhbmRJZCBJbnQKICBicmFuZCAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlYXJjaGNvbnRhY3RzIikKfQoKbW9kZWwgUmVwb3J0Q3JlZGl0cyB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgIFN0cmluZwogIHByZXZRdHkgICAgRmxvYXQKICBjaGFuZ2VRdHkgIEZsb2F0CiAgY3VycmVudFF0eSBGbG9hdAogIGNyZWF0ZWQgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQoKICBwcmV2UXR5UG9zdElkIEludD8gICAgICAgICAgIEB1bmlxdWUKICBwcmV2UXR5UG9zdCAgIFJlcG9ydENyZWRpdHM/IEByZWxhdGlvbigicHJldlJlcG9ydHNRdHlQb3N0SWQiLCBmaWVsZHM6IFtwcmV2UXR5UG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBuZXh0UXR5UG9zdCAgIFJlcG9ydENyZWRpdHM/IEByZWxhdGlvbigicHJldlJlcG9ydHNRdHlQb3N0SWQiKQoKICBicmFuZElkIEludAogIGJyYW5kICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgicmVwb3J0Y3JlZGl0cyIpCn0KCm1vZGVsIEJyYW5kVG9JbWFnZSB7CiAgaWQgICAgICAgICAgSW50ICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICBicmFuZElkICAgICBJbnQKICB0eXBlICAgICAgICBTdHJpbmcKCiAgYnJhbmQgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2l6ZXMgICAgICAgQnJhbmRJbWFnZVtdCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJicmFuZHRvaW1hZ2UiKQp9Cgptb2RlbCBCcmFuZFRvQ2F0ZWdvcnkgewogIGJyYW5kSWQgICAgSW50CiAgY2F0ZWdvcnlJZCBJbnQKCiAgY2FtcGFpZ24gQnJhbmQgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYXRlZ29yeSBDYXRlZ29yeSBAcmVsYXRpb24oZmllbGRzOiBbY2F0ZWdvcnlJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW2JyYW5kSWQsIGNhdGVnb3J5SWRdKQogIEBAbWFwKCJicmFuZHRvY2F0ZWdvcnkiKQp9Cgptb2RlbCBDcmVhdG9yVG9DYXRlZ29yeSB7CiAgY3JlYXRvclByb2ZpbGVJZCBJbnQKICBjYXRlZ29yeUlkICAgICAgIEludAoKICBjcmVhdG9yUHJvZmlsZSBDcmVhdG9yUHJvZmlsZSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvclByb2ZpbGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhdGVnb3J5ICAgICAgIENhdGVnb3J5ICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjYXRlZ29yeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbY3JlYXRvclByb2ZpbGVJZCwgY2F0ZWdvcnlJZF0pCn0KCm1vZGVsIENoYXQgewogIGlkICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICAgICAgIERhdGVUaW1lPyBAZGVmYXVsdChub3coKSkKICBjb252ZXJzYXRpb25JZCBTdHJpbmc/ICAgQHVuaXF1ZQogIG1ldGFEYXRhICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBvcHRJbklkIEludD8gQHVuaXF1ZQoKICBvcHRJbiAgICBPcHRJbj8gICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG1lc3NhZ2VzIE1lc3NhZ2VbXQoKICBAQG1hcCgiY2hhdCIpCn0KCm1vZGVsIE1lc3NhZ2UgewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCiAgc2VuZGVyICAgICBTdHJpbmcKICBjb250ZW50ICAgIFN0cmluZyAgICBAZGIuVGV4dAogIHJlYWQgICAgICAgQm9vbGVhbiAgIEBkZWZhdWx0KGZhbHNlKQogIHR5cGUgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJ0ZXh0IikKICBtZXNzYWdlU2lkIFN0cmluZz8KCiAgdXNlcklkIEludD8KICBjaGF0SWQgSW50CgogIHVzZXIgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY2hhdCBDaGF0ICBAcmVsYXRpb24oZmllbGRzOiBbY2hhdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2NoYXRJZF0pCiAgQEBtYXAoIm1lc3NhZ2UiKQp9Cgptb2RlbCBDYW1wYWlnbiB7CiAgaWQgICAgICAgICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgICAgICAgICAgICBTdHJpbmcKICBzbHVnICAgICAgICAgICAgICAgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBzdGF0dXMgICAgICAgICAgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJkcmFmdCIpIC8vIGRyYWZ0LCBwYXVzZWQsIHBlbmRpbmcsIHByaXZhdGUsIHB1Ymxpc2gsIHRyYXNoCiAgZGF0ZSAgICAgICAgICAgICAgICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBwdWJsaXNoRGF0ZSAgICAgICAgICAgRGF0ZVRpbWU/CiAgZGVzY3JpcHRpb24gICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHByb2R1Y3REZXNjcmlwdGlvbiAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwcml6ZURlc2NyaXB0aW9uICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgc3RyYXRlZ3kgICAgICAgICAgICAgIFN0cmluZz8gICBAZGVmYXVsdCgic2hvdXRvdXQiKQogIHNvY2lhbENoYW5uZWwgICAgICAgICBTdHJpbmc/CiAgc29jaWFsQ2hhbm5lbHMgICAgICAgIEpzb24/CiAgZmFjZWJvb2tSZWFjaCAgICAgICAgIEludD8KICBmYWNlYm9va0VuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgaW5zdGFncmFtUmVhY2ggICAgICAgIEludD8KICBpbnN0YWdyYW1FbmdhZ2VtZW50ICAgRmxvYXQ/CiAgeW91dHViZVJlYWNoICAgICAgICAgIEludD8KICB5b3V0dWJlRW5nYWdlbWVudCAgICAgRmxvYXQ/CiAgdHdpdHRlclJlYWNoICAgICAgICAgIEludD8KICB0d2l0dGVyRW5nYWdlbWVudCAgICAgRmxvYXQ/CiAgdGlrdG9rUmVhY2ggICAgICAgICAgIEludD8KICB0aWt0b2tFbmdhZ2VtZW50ICAgICAgRmxvYXQ/CiAgdHdpdGNoUmVhY2ggICAgICAgICAgIEludD8KICB0d2l0Y2hFbmdhZ2VtZW50ICAgICAgRmxvYXQ/CiAgcXVhbnRpdHkgICAgICAgICAgICAgIEludCAgICAgICBAZGVmYXVsdCgwKQogIGhvbGRDb3N0ICAgICAgICAgICAgICBGbG9hdD8KICB2YWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQ/CiAgcGFpZEFtb3VudCAgICAgICAgICAgIEZsb2F0PwogIG1pbkFnZSAgICAgICAgICAgICAgICBJbnQ/CiAgbWF4QWdlICAgICAgICAgICAgICAgIEludD8KICB2aXN1YWxzICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcGhvdG9UYWdzICAgICAgICAgICAgIEpzb24/CiAgaGFzaHRhZ3MgICAgICAgICAgICAgIEpzb24/CiAgc3RvcnlIYXNodGFncyAgICAgICAgIEpzb24/CiAgc3RvcnlNZW50aW9ucyAgICAgICAgIEpzb24/CiAgY2FwdGlvbiAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHBhc3N3b3JkICAgICAgICAgICAgICBTdHJpbmc/CiAgY29udGVudEZvcm1hdHMgICAgICAgIEpzb24/CiAgcGFpZENhbXBhaWduICAgICAgICAgIEJvb2xlYW4/CiAgbWluUGFpZEFtb3VudCAgICAgICAgIEZsb2F0PwogIG1heFBhaWRBbW91bnQgICAgICAgICBGbG9hdD8KICBwYXltZW50VHlwZSAgICAgICAgICAgU3RyaW5nPwogIG1vbnRobHlBY3RpdmF0ZWRHb2FsICBJbnQ/IC8vIFJlZHVuZGFudC9EZXByZWNhdGVkCiAgZXhwZWN0ZWRPcHRJbnMgICAgICAgIEludD8gLy8gUmVkdW5kYW50L0RlcHJlY2F0ZWQKICBnb2FsQWN0aXZhdGlvbnMgICAgICAgRmxvYXQ/CiAgZ29hbE9wdElucyAgICAgICAgICAgIEZsb2F0PwogIHJlcXVpcmVzU2hpcHBpbmcgICAgICBCb29sZWFuPwogIGRpc2FibGVRdWFsaWZpY2F0aW9ucyBCb29sZWFuPwogIGRpc2FibGVBY3RpdmF0aW9ucyAgICBCb29sZWFuPwogIGFmZmlsaWF0ZUxpbmtQYXRoICAgICBTdHJpbmc/CiAgbWV0YURhdGEgICAgICAgICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBzdGVwcyAgICAgICAgQ2FtcGFpZ25TdGVwW10KICBjYXRlZ29yaWVzICAgQ2FtcGFpZ25Ub0NhdGVnb3J5W10KICBvcHRJbnMgICAgICAgT3B0SW5bXQogIGltYWdlcyAgICAgICBDYW1wYWlnblRvSW1hZ2VbXQogIHZhcmlhYmxlcyAgICBWYXJpYWJsZVtdCiAgY291bnRyaWVzICAgIENhbXBhaWduVG9Db3VudHJ5W10KICBjYW1wYWlnblBpbnMgQ2FtcGFpZ25QaW5bXQogIHNvY2lhbFBvc3RzICBTb2NpYWxQb3N0W10KICBjYW1wYWlnbkludml0ZXMgQ2FtcGFpZ25JbnZpdGVbXQoKICBicmFuZElkICAgICAgSW50CiAgYnJhbmQgICAgICAgIEJyYW5kICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjcmVhdG9yTGlzdHMgQ3JlYXRvckxpc3RbXQogIG9wdEluVmlld3MgICBPcHRJblZpZXdbXQogIHNlcXVlbmNlcyAgICBTZXF1ZW5jZVtdCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJjYW1wYWlnbiIpCn0KCm1vZGVsIENhbXBhaWduUGluIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHVzZXJJZCAgICAgSW50CiAgY2FtcGFpZ25JZCBJbnQKICBjcmVhdGVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBub3RpZmllZCAgIERhdGVUaW1lPwoKICB1c2VyICAgICBVc2VyICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbdXNlcklkXSkKCiAgQEBtYXAoImNhbXBhaWducGluIikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0ltYWdlIHsKICBpZCAgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNhbXBhaWduSWQgSW50CiAgdHlwZSAgICAgICBTdHJpbmcKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2l6ZXMgSW1hZ2VbXQoKICBAQG1hcCgiY2FtcGFpZ250b2ltYWdlIikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0NhdGVnb3J5IHsKICBjYW1wYWlnbklkIEludAogIGNhdGVnb3J5SWQgSW50CgogIGNhbXBhaWduIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2F0ZWdvcnkgQ2F0ZWdvcnkgQHJlbGF0aW9uKGZpZWxkczogW2NhdGVnb3J5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjYW1wYWlnbklkLCBjYXRlZ29yeUlkXSkKICBAQG1hcCgiY2FtcGFpZ250b2NhdGVnb3J5IikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0NvdW50cnkgewogIGNhbXBhaWduSWQgSW50CiAgY291bnRyeUlkICBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjb3VudHJ5ICBDb3VudHJ5ICBAcmVsYXRpb24oZmllbGRzOiBbY291bnRyeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbY2FtcGFpZ25JZCwgY291bnRyeUlkXSkKICBAQG1hcCgiY2FtcGFpZ250b2NvdW50cnkiKQp9Cgptb2RlbCBWYXJpYWJsZSB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgIFN0cmluZwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBtZXRhRGF0YSAgICBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNhbXBhaWduSWQgSW50CgogIGNhbXBhaWduIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIG9wdGlvbnMgICAgICAgIFZhcmlhYmxlT3B0aW9uW10KICBvcHRJblZhcmlhYmxlcyBPcHRJblZhcmlhYmxlW10KfQoKbW9kZWwgVmFyaWFibGVPcHRpb24gewogIGlkICAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgICAgICBTdHJpbmcKICBkZXNjcmlwdGlvbiBTdHJpbmc/IEBkYi5UZXh0CiAgbWV0YURhdGEgICAgSnNvbiAgICBAZGVmYXVsdCgie30iKQoKICB2YXJpYWJsZUlkIEludAoKICB2YXJpYWJsZSBWYXJpYWJsZSBAcmVsYXRpb24oZmllbGRzOiBbdmFyaWFibGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBvcHRJblZhcmlhYmxlcyBPcHRJblZhcmlhYmxlW10KfQoKbW9kZWwgU3RlcCB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNsdWcgICAgICAgIFN0cmluZyAgQHVuaXF1ZQogIHRpdGxlICAgICAgIFN0cmluZz8KICBkZXNjcmlwdGlvbiBTdHJpbmc/IEBkYi5UZXh0CiAgZGF0YSAgICAgICAgSnNvbj8KCiAgY2FtcGFpZ25TdGVwcyBDYW1wYWlnblN0ZXBbXQoKICBAQG1hcCgic3RlcCIpCn0KCm1vZGVsIENhbXBhaWduU3RlcCB7CiAgaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50IEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgcGxhY2VtZW50ICAgICAgICAgICAgICAgICAgICAgSW50CiAgc3RlcFNldHRpbmdzICAgICAgICAgICAgICAgICAgSnNvbj8KICBhY3Rpb25lZSAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc/CiAgaW5zdHJ1Y3Rpb25zICAgICAgICAgICAgICAgICAgU3RyaW5nPyBAZGIuVGV4dAogIGN1c3RvbVN0ZXBUaXRsZSAgICAgICAgICAgICAgIFN0cmluZz8KICBjdXN0b21Gb3JtICAgICAgICAgICAgICAgICAgICBKc29uPwogIG1ldGFEYXRhICAgICAgICAgICAgICAgICAgICAgIEpzb24gQGRlZmF1bHQoInt9IikKICBjYW1wYWlnbklkICAgIEludAogIHN0ZXBJZCAgICAgICAgSW50PwoKICBjYW1wYWlnbiAgICAgIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc3RlcCAgICAgICAgICBTdGVwPyAgICBAcmVsYXRpb24oZmllbGRzOiBbc3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjdXJyZW50T3B0SW5zIE9wdEluW10KCiAgb3B0SW5TdGVwcyBPcHRJblN0ZXBbXQoKICBAQGluZGV4KFtjYW1wYWlnbklkXSkKCiAgQEBtYXAoImNhbXBhaWduc3RlcCIpCn0KCm1vZGVsIE9wdEluU3RlcCB7CiAgaWQgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvbXBsZXRlZCBEYXRlVGltZT8KICBkYXRhICAgICAgSnNvbj8KCiAgb3B0SW5JZCAgICAgICAgSW50CiAgY2FtcGFpZ25TdGVwSWQgSW50CiAgc29jaWFsUG9zdElkICAgSW50PyAvLyB0ZW1wb3JhcnkgZm9yIG1vdmluZyBzaG91dG91dERhdGEgdG8gc29jaWFsUG9zdHMKCiAgb3B0SW4gICAgICAgIE9wdEluICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduU3RlcCBDYW1wYWlnblN0ZXAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduU3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW29wdEluSWRdKQogIEBAaW5kZXgoW2NhbXBhaWduU3RlcElkXSkKICBAQG1hcCgib3B0aW5zdGVwIikKfQoKbW9kZWwgQ2F0ZWdvcnkgewogIGlkICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNsdWcgIFN0cmluZyBAdW5pcXVlCiAgdGl0bGUgU3RyaW5nCgogIGNhbXBhaWducyBDYW1wYWlnblRvQ2F0ZWdvcnlbXQogIGJyYW5kcyAgICBCcmFuZFRvQ2F0ZWdvcnlbXQogIGNyZWF0b3JzICBDcmVhdG9yVG9DYXRlZ29yeVtdCgogIEBAbWFwKCJjYXRlZ29yeSIpCn0KCm1vZGVsIE9wdEluIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc3RhdHVzICAgICAgICAgIFN0cmluZyAgICBAZGVmYXVsdCgicGVuZGluZyIpCiAgY3JlYXRlZCAgICAgICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBhY3RpdmF0ZWQgICAgICAgRGF0ZVRpbWU/CiAgY29tcGxldGVkICAgICAgIERhdGVUaW1lPwogIGNhbmNlbGxlZCAgICAgICBEYXRlVGltZT8KICBjYW5jZWxsZWREYXRhICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgY2FuY2VsUmVxdWVzdGVkIERhdGVUaW1lPwogIHJlaW52aXRlZCAgICAgICBEYXRlVGltZT8KICBzZWVuICAgICAgICAgICAgQm9vbGVhbiAgIEBkZWZhdWx0KGZhbHNlKQogIGluc3RydWN0aW9ucyAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwYXltZW50QW1vdW50ICAgRmxvYXQ/CiAgcGF5bWVudFN0YXR1cyAgIFN0cmluZyAgICBAZGVmYXVsdCgicGVuZGluZyIpIC8vIGRlcHJhY2F0ZWQgLS0gcmVmZXIgdG8gdHJvbGxleSBwYXltZW50IHRhYmxlCiAgZXh0cmFEYXRhICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgICAgICAgIEludAogIGNhbXBhaWduSWQgICAgSW50CiAgY3VycmVudFN0ZXBJZCBJbnQ/CgogIHVzZXIgICAgICAgIFVzZXIgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduICAgIENhbXBhaWduICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjdXJyZW50U3RlcCBDYW1wYWlnblN0ZXA/IEByZWxhdGlvbihmaWVsZHM6IFtjdXJyZW50U3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgdmFyaWFibGVzICBPcHRJblZhcmlhYmxlW10KICBvcHRJblN0ZXBzIE9wdEluU3RlcFtdCiAgY2hhdCAgICAgICBDaGF0PwogIGNhbXBhaWduSW52aXRlcyBDYW1wYWlnbkludml0ZVtdCiAgdHJvbGxleVBheW1lbnRzIFRyb2xsZXlQYXltZW50W10KICBhZmZpbGlhdGVDbGlja3MgQWZmaWxpYXRlQ2xpY2tbXQoKICBAQGluZGV4KFt1c2VySWRdKQogIEBAaW5kZXgoW2NhbXBhaWduSWRdKQogIEBAbWFwKCJvcHRpbiIpCn0KCm1vZGVsIFRyb2xsZXlQYXltZW50IHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICAgICAgICAgICAgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBwYXltZW50SWQgICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgQHVuaXF1ZQogIHR5cGUgICAgICAgICAgICAgIHRyb2xsZXlQYXltZW50VHlwZT8KICBzdGF0dXMgICAgICAgICAgICB0cm9sbGV5UGF5bWVudFN0YXR1cwogIG9wdEluSWQgICAgICAgICAgIEludD8KICBwYXltZW50QW1vdW50ICAgICBJbnQKICBtZXRhRGF0YSAgICAgICAgICBKc29uICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQoInt9IikKCiAgb3B0SW4gICAgICAgICAgICAgT3B0SW4/ICAgICAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczpbaWRdKQp9CgplbnVtIHRyb2xsZXlQYXltZW50VHlwZSB7CiAgb3B0SW4KICB0aXAKICBhZmZpbGlhdGUKfQoKZW51bSB0cm9sbGV5UGF5bWVudFN0YXR1cyB7CiAgcGVuZGluZwogIHByb2Nlc3NpbmcKICBwcm9jZXNzZWQKICBmYWlsZWQKICByZXR1cm5lZAp9CgoKbW9kZWwgT3B0SW5WYXJpYWJsZSB7CiAgaWQgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCgogIG9wdEluSWQgICAgICAgICAgSW50CiAgdmFyaWFibGVJZCAgICAgICBJbnQKICBzZWxlY3RlZE9wdGlvbklkIEludAoKICBvcHRJbiAgICAgICAgICBPcHRJbiAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHZhcmlhYmxlICAgICAgIFZhcmlhYmxlICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt2YXJpYWJsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc2VsZWN0ZWRPcHRpb24gVmFyaWFibGVPcHRpb24gQHJlbGF0aW9uKGZpZWxkczogW3NlbGVjdGVkT3B0aW9uSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbb3B0SW5JZF0pCn0KCm1vZGVsIFNvY2lhbFBvc3QgewogIGlkICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHBoeWxsb0lkICAgIFN0cmluZz8gICBAdW5pcXVlCiAgbWV0YURhdGEgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgZGF0YSAgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpIC8vIERFUFJFQ0FURUQsIFVTRSBtZXRhRGF0YSBpbnN0ZWFkLCBzZWVtcyB0byBiZSBhbiBlcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIHRoaXMgZmllbGQsIHByb2FiYWJseSBkdWUgdG8gdGFibGUgc2l6ZQogIGxhc3RGZXRjaGVkIERhdGVUaW1lPwogIGxhc3RXZWJob29rIERhdGVUaW1lPwoKICAvLyBCQVNJQyBJTkZPCiAgcG9zdGVkICAgICAgICAgICAgIERhdGVUaW1lPwogIHRpdGxlICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBkZXNjcmlwdGlvbiAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgdXJsICAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHVybFBhdGggICAgICAgICAgICBTdHJpbmc/ICAgQHVuaXF1ZSAvLyBUaGlzIGlzIGhlcmUgc28gd2UgaGF2ZSBzb21lIGV4dGVybmFsIGlkZW50aWZpZXIgdG8gcXVpY2tseSBzZWFyY2ggYnkKICBmb3JtYXQgICAgICAgICAgICAgU3RyaW5nPwogIHR5cGUgICAgICAgICAgICAgICBTdHJpbmc/CiAgcGxhdGZvcm0gICAgICAgICAgIFN0cmluZz8KICB2aXNpYmlsaXR5ICAgICAgICAgU3RyaW5nPwogIGlzU3BvbnNvcmVkICAgICAgICBCb29sZWFuPwogIGhhc0NvbGxhYm9yYXRvcnMgICBCb29sZWFuPwogIGlzT3duZWRCeVVzZXIgICAgICBCb29sZWFuPwogIC8vIE1FVFJJQ1MKICB2aWV3cyAgICAgICAgICAgICAgSW50PwogIGltcHJlc3Npb25zICAgICAgICBJbnQ/CiAgaW1wcmVzc2lvbnNPcmdhbmljIEludD8KICBpbXByZXNzaW9uc1BhaWQgICAgSW50PwogIHJlYWNoICAgICAgICAgICAgICBJbnQ/CiAgcmVhY2hPcmdhbmljICAgICAgIEludD8KICByZWFjaFBhaWQgICAgICAgICAgSW50PwogIHdhdGNoSG91cnMgICAgICAgICBGbG9hdD8KICAvLyBFTkdBR0VNRU5UIE1FVFJJQ1MKICBsaWtlcyAgICAgICAgICAgICAgSW50PwogIGRpc2xpa2VzICAgICAgICAgICBJbnQ/CiAgY29tbWVudHMgICAgICAgICAgIEludD8KICBzYXZlcyAgICAgICAgICAgICAgSW50PwogIHNoYXJlcyAgICAgICAgICAgICBJbnQ/CgogIHVzZXJJZCAgICAgSW50PwogIGNhbXBhaWduSWQgSW50PwoKICB1c2VyICAgICBVc2VyPyAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY2FtcGFpZ24gQ2FtcGFpZ24/ICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBsaXN0cyAgICBMaXN0VG9Tb2NpYWxQb3N0W10KCiAgQEBpbmRleChjYW1wYWlnbklkKQogIEBAaW5kZXgodXNlcklkKQogIEBAaW5kZXgocG9zdGVkKQoKICBAQG1hcCgic29jaWFscG9zdCIpCn0KCm1vZGVsIEltYWdlIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXJsICAgICAgICAgICAgIFN0cmluZyBAZGIuVmFyQ2hhcigyMDgzKQogIHNpemUgICAgICAgICAgICBTdHJpbmcKICBjYW1wYWlnbkltYWdlSWQgSW50CgogIGNhbXBhaWduSW1hZ2UgQ2FtcGFpZ25Ub0ltYWdlIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbkltYWdlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoImltYWdlIikKfQoKbW9kZWwgQnJhbmRJbWFnZSB7CiAgaWQgICAgICAgICAgICAgIEludCAgIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgdXJsICAgICAgICAgICAgIFN0cmluZyBAZGIuVmFyQ2hhcigyMDgzKQogIHNpemUgICAgICAgICAgICBTdHJpbmcKICBicmFuZEltYWdlSWQgICAgSW50CgogIGJyYW5kSW1hZ2UgICAgICBCcmFuZFRvSW1hZ2UgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSW1hZ2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFticmFuZEltYWdlSWRdKQogIEBAbWFwKCJicmFuZGltYWdlIikKfQoKbW9kZWwgQ291bnRyeSB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvdW50cnlDb2RlIFN0cmluZyAgQHVuaXF1ZSBAZGIuVmFyQ2hhcigyKQogIGNvdW50cnlOYW1lIFN0cmluZyAgQGRiLlZhckNoYXIoNTAwKQogIHRlbGVDb2RlICAgIFN0cmluZyAgQGRiLlZhckNoYXIoMTApCiAgc3RhdGVzICAgICAgU3RhdGVbXQoKICBjYW1wYWlnbnMgQ2FtcGFpZ25Ub0NvdW50cnlbXQoKICBAQG1hcCgiY291bnRyeSIpCn0KCm1vZGVsIFN0YXRlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY291bnRyeUlkIEludAogIHN0YXRlQ29kZSBTdHJpbmcgQGRiLlZhckNoYXIoNTApCiAgc3RhdGVOYW1lIFN0cmluZyBAZGIuVmFyQ2hhcig1MDApCgogIGNvdW50cnkgQ291bnRyeSBAcmVsYXRpb24oZmllbGRzOiBbY291bnRyeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInN0YXRlIikKfQoKbW9kZWwgUGF5bWVudFRyYW5zYWN0aW9uIHsKICBpZCAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBhbW91bnQgICAgRmxvYXQKICBiYWxhbmNlICAgRmxvYXQKICB0eXBlICAgICAgU3RyaW5nCiAgZGF0ZSAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIG5vdGVzICAgICBTdHJpbmc/ICBAZGIuVGV4dAogIG1ldGFEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGFjY291bnRJZCBJbnQKCiAgYnJhbmRJZCAgICAgICAgICAgSW50PwogIGNyZWF0b3JJZCAgICAgICAgIEludD8KICBwcmV2VHJhbnNhY3Rpb25JZCBJbnQ/IEB1bmlxdWUKCiAgYnJhbmQgICAgICAgICAgIEJyYW5kPyAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3IgICAgICAgICBVc2VyPyAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9ySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHByZXZUcmFuc2FjdGlvbiBQYXltZW50VHJhbnNhY3Rpb24/IEByZWxhdGlvbigiVHJhbnNhY3Rpb25IaXN0b3J5IiwgZmllbGRzOiBbcHJldlRyYW5zYWN0aW9uSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG5leHRUcmFuc2FjdGlvbiBQYXltZW50VHJhbnNhY3Rpb24/IEByZWxhdGlvbigiVHJhbnNhY3Rpb25IaXN0b3J5IikKCiAgQEBpbmRleChbYWNjb3VudElkXSkKfQoKbW9kZWwgQnJhbmRBZmZpbGlhdGVMaW5rIHsKICBpZCAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGRlc2NyaXB0aW9uIFN0cmluZz8KICB1cmxQYXRoICAgICBTdHJpbmcKICBjb21taXNzaW9uICBGbG9hdCAgICBAZGVmYXVsdCgwLjIpCiAgbWV0YURhdGEgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgYnJhbmRJZCAgICAgICAgSW50CiAgYWZmaWxpYXRlTGlua3MgQWZmaWxpYXRlTGlua1tdCgogIGJyYW5kIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpbmRleChbYnJhbmRJZF0pCn0KCm1vZGVsIEFmZmlsaWF0ZUxpbmsgewogIGlkICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgbWV0YURhdGEgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgdXNlcklkICAgICAgICAgICAgICAgSW50CiAgYnJhbmRBZmZpbGlhdGVMaW5rSWQgSW50CiAgYWZmaWxpYXRlQ2xpY2tzICAgICAgQWZmaWxpYXRlQ2xpY2tbXQoKICBhZmZpbGlhdGUgICAgICAgICAgVXNlciAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGJyYW5kQWZmaWxpYXRlTGluayBCcmFuZEFmZmlsaWF0ZUxpbmsgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kQWZmaWxpYXRlTGlua0lkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgQWZmaWxpYXRlQ2xpY2sgewogIGlkICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICB2aXNpdG9ySXAgU3RyaW5nPwogIG9wdEluSWQgIEludAogIG1ldGFEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBhZmZpbGlhdGVMaW5rSWQgSW50CgogIG9wdGluICAgICAgICAgIE9wdEluICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBhZmZpbGlhdGVMaW5rICBBZmZpbGlhdGVMaW5rICAgIEByZWxhdGlvbihmaWVsZHM6IFthZmZpbGlhdGVMaW5rSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGFmZmlsaWF0ZUV2ZW50IEFmZmlsaWF0ZUV2ZW50W10KfQoKbW9kZWwgQWZmaWxpYXRlRXZlbnQgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgZXZlbnQgICAgICAgICAgICAgU3RyaW5nIC8vIGNsaWNrLCBwdXJjaGFzZSwgZXRjLgogIGNyZWF0ZWQgICAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIHZpc2l0b3JJcCAgICAgICAgIFN0cmluZz8KICB1cmxQYXRoICAgICAgICAgICBTdHJpbmc/CiAgcmV2ZW51ZSAgICAgICAgICAgRmxvYXQ/CiAgY29tbWlzc2lvbkFtb3VudCAgRmxvYXQ/CiAgY29tbWlzc2lvblBlcmNlbnQgRmxvYXQ/CiAgbWV0YURhdGEgICAgICAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgYWZmaWxpYXRlQ2xpY2tJZCBJbnQKCiAgYWZmaWxpYXRlQ2xpY2sgQWZmaWxpYXRlQ2xpY2s/IEByZWxhdGlvbihmaWVsZHM6IFthZmZpbGlhdGVDbGlja0lkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgU2F2ZWRGaWxlIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgIFN0cmluZz8KICB0eXBlICAgICAgU3RyaW5nPyAvLyBhdWRpZW5jZS1yZXBvcnQsIHNlYXJjaC1leHBvcnQsIGNhbXBhaWduLWludml0ZQogIHVybCAgICAgICBTdHJpbmc/CiAgc2F2ZWREYXRlIERhdGVUaW1lPwogIG1ldGFEYXRhICBKc29uPyAgICAgQGRlZmF1bHQoInt9IikKCiAgYnJhbmRJZCBJbnQ/CiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2F2ZWRmaWxlIikKfQoKbW9kZWwgQ2FtcGFpZ25JbnZpdGUgewogIGlkICAgICAgICAgICAgICAgIEludCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpIEBpZAogIHNvY2lhbFByb2ZpbGVJZCAgIEludD8KICBicmFuZElkICAgICAgICAgICBJbnQKICBjYW1wYWlnbklkICAgICAgICBJbnQ/CiAgb3B0SW5JZCAgICAgICAgICAgSW50PyBAdW5pcXVlCiAgY29kZSAgICAgICAgICAgICAgU3RyaW5nPyBAdW5pcXVlCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZGVjbGluZURhdGUgICAgICBEYXRlVGltZT8KICBkZWNsaW5lUmVhc29uICAgIFN0cmluZz8gIEBkYi5UZXh0CgogIG1ldGFEYXRhICAgICAgICAgIEpzb24/IEBkZWZhdWx0KCJ7fSIpCgogIGJyYW5kICAgICAgICAgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gICAgICAgICAgQ2FtcGFpZ24/IEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBzb2NpYWxQcm9maWxlICAgICBTb2NpYWxQcm9maWxlPyBAcmVsYXRpb24oZmllbGRzOiBbc29jaWFsUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBvcHRJbiAgICAgICAgICAgICBPcHRJbj8gQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KFtzb2NpYWxQcm9maWxlSWRdKQp9Cgptb2RlbCBDcmVhdG9yTGlzdCB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBicmFuZElkICAgIEludAogIGNhbXBhaWduSWQgSW50PwogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGFyY2hpdmVkICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICBTdHJpbmcKICBtZXRhRGF0YSAgIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBjcmVhdG9ycyAgQ3JlYXRvckxpc3RJdGVtW10KICBicmFuZCAgICAgQnJhbmQgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiAgQ2FtcGFpZ24/ICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNlcXVlbmNlcyBTZXF1ZW5jZVtdCgogIEBAbWFwKCJjcmVhdG9ybGlzdCIpCn0KCm1vZGVsIENyZWF0b3JMaXN0SXRlbSB7CiAgaWQgICAgICAgICAgICAgIEludCBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNvY2lhbFByb2ZpbGVJZCBJbnQKICBjcmVhdG9yTGlzdElkICAgSW50CgogIHNhdmVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBpbnZpdGVkICBEYXRlVGltZT8KICB0YWdzICAgICBKc29uPwogIGZlZWRiYWNrIFN0cmluZz8gICBAZGIuVGV4dAogIGFyY2hpdmVkIERhdGVUaW1lPwogIG1ldGFEYXRhIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBjcmVhdG9yTGlzdCAgIENyZWF0b3JMaXN0ICAgIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc29jaWFsUHJvZmlsZSBTb2NpYWxQcm9maWxlPyBAcmVsYXRpb24oZmllbGRzOiBbc29jaWFsUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIHNlcXVlbmNlT3V0Ym91bmRFbWFpbHMgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCiAgc2VxdWVuY2VJbmJvdW5kRW1haWxzICAgU2VxdWVuY2VJbmJvdW5kRW1haWxbXQogIHNlcXVlbmNlSW1hcENoZWNrcG9pbnRzIFNlcXVlbmNlSW1hcENoZWNrcG9pbnRbXQoKICBAQGluZGV4KFtjcmVhdG9yTGlzdElkXSkKICBAQG1hcCgiY3JlYXRvcmxpc3RpdGVtIikKfQoKbW9kZWwgU29jaWFsUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNvY2lhbElkIFN0cmluZz8gQHVuaXF1ZSAvLyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGNhbiBuZXZlciBvdmVybGFwIGFjcm9zcyBtdWx0aXBsZSBwbGF0Zm9ybXMsIHdlIHNob3VsZCBhcHBlbmQgdGhlIHBsYXRmb3JtIHRvIHRoZSBiZWdpbm5pbmcgdG8gZW5zdXJlIGl04oCZcyBhbHdheXMgdW5pcXVlCiAgdXNlcklkICAgSW50PyAvLyByZWdpc3RlcmVkIHVzZXIgaWQsIGlmIGF2YWlsYWJsZQoKICAvLyBzb2NpYWwgZGF0YQogIHBsYXRmb3JtICAgICAgU3RyaW5nCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICBmdWxsbmFtZSAgICAgIFN0cmluZz8gIEBkYi5WYXJDaGFyKDEwMjQpCiAgcHJvZmlsZVVybCAgICBTdHJpbmc/CiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICBAZGIuVmFyQ2hhcigyMDgzKSAvLyBuZWVkIHRvIHNwZWNpZnkgbGVuZ3RoLCBkZWZhdWx0IHNpemUgaXMgdG9vIHNtYWxsCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBhdmdWaWV3cyAgICAgIEludD8KICB2ZXJpZmllZCAgICAgIEJvb2xlYW4/CiAgbWV0YURhdGEgICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGF1ZGllbmNlRGF0YSAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKICBwaHlsbG9EYXRhICAgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0ZWQgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHVwZGF0ZWQgRGF0ZVRpbWU/CgogIGNyZWF0b3JMaXN0SXRlbXMgIENyZWF0b3JMaXN0SXRlbVtdCiAgY2FtcGFpZ25JbnZpdGVzICAgQ2FtcGFpZ25JbnZpdGVbXQogIHVzZXIgICAgICAgICAgICAgIFVzZXI/ICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAaW5kZXgodXNlcklkKQogIEBAbWFwKCJzb2NpYWxwcm9maWxlIikKfQoKbW9kZWwgTWVzc2FnZVRlbXBsYXRlIHsKICBpZCAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbGFiZWwgICAgU3RyaW5nPwogIHRlbXBsYXRlIFN0cmluZyAgQGRiLlRleHQKICBicmFuZElkICBJbnQ/CiAgYnJhbmQgICAgQnJhbmQ/ICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbWV0YURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKSAvLyB0byBzYXZlIGFueSBhZGRpdGlvbmFsIGRhdGEgc3VjaCBhcyB1c2VyIGRlZmluZWQgdmFyaWFibGVzCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJtZXNzYWdldGVtcGxhdGUiKQp9Cgptb2RlbCBFbWFpbFRlbXBsYXRlIHsKICBpZCAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsYWJlbCAgICAgIFN0cmluZz8KICBzdWJqZWN0ICAgIFN0cmluZz8KICB0ZW1wbGF0ZSAgIFN0cmluZyAgQGRiLlRleHQKICBicmFuZElkICAgIEludD8KCiAgYnJhbmQgICAgICBCcmFuZD8gIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBtZXRhRGF0YSAgIEpzb24gICAgQGRlZmF1bHQoInt9IikgLy8gdG8gc2F2ZSBhbnkgYWRkaXRpb25hbCBkYXRhIHN1Y2ggYXMgdXNlciBkZWZpbmVkIHZhcmlhYmxlcwoKICBzZXF1ZW5jZVN0ZXBzICAgU2VxdWVuY2VTdGVwW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCn0KCm1vZGVsIFNvY2lhbExpc3RlbmluZ0xpc3QgewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgYnJhbmRJZCAgICBJbnQKICBjYW1wYWlnbklkIEludD8gICAgICBAdW5pcXVlIC8vIG9wdGlvbmFsbHkgbGlua2VkIHRvIGEgY2FtcGFpZ24KICBjcmVhdGVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkICAgIERhdGVUaW1lPwogIHRpdGxlICAgICAgU3RyaW5nCiAgcG9zdFR5cGUgICBTdHJpbmcgLy8gc3BvbnNvcmVkIHBvc3RzLCB0b3AgcG9zdHMsIG9yIHJlY2VudCBwb3N0cwogIGZpbHRlcnMgICAgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpIC8vIGZpbHRlcnMgdG8gc2VhcmNoIHBvc3RzIGJ5IChsb2NhdGlvbiwgZGF0ZSwgaGFzaHRhZ3MsIG1lbnRpb25zLCBldGMuKQoKICBsYXN0RmV0Y2hlZCBEYXRlVGltZT8gLy8gbGFzdCB0aW1lIHBvc3RzIHdlcmUgZmV0Y2hlZAoKICBicmFuZCBCcmFuZCAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBwb3N0cyBMaXN0VG9Tb2NpYWxQb3N0W10KCiAgQEBtYXAoInNvY2lhbGxpc3RlbmluZ2xpc3QiKQp9Cgptb2RlbCBMaXN0VG9Tb2NpYWxQb3N0IHsKICBpZCAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbGlzdElkIEludAogIHBvc3RJZCBJbnQKCiAgbGlzdCAgICAgICBTb2NpYWxMaXN0ZW5pbmdMaXN0IEByZWxhdGlvbihmaWVsZHM6IFtsaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzb2NpYWxQb3N0IFNvY2lhbFBvc3QgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3Bvc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFtsaXN0SWQsIHBvc3RJZF0pCiAgQEBpbmRleChbcG9zdElkXSkKICBAQG1hcCgibGlzdHRvc29jaWFscG9zdCIpCn0KCm1vZGVsIE9wdEluVmlldyB7CiAgaWQgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgIFN0cmluZwogIGZpbHRlcnMgSnNvbiAgIEBkZWZhdWx0KCJ7fSIpCgogIGNhbXBhaWduSWQgSW50PwogIGNhbXBhaWduICAgQ2FtcGFpZ24/IEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoIm9wdGludmlldyIpCn0KCm1vZGVsIFJha3V0ZW5BY3Rpdml0eSB7CiAgaWQgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgb3JkZXJJZCAgICAgIFN0cmluZz8KICBtZXRhRGF0YSAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKICBjcmVhdGVkICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY2xpY2tzICAgICAgIEludD8KICBvcmRlcnMgICAgICAgSW50PwogIHNhbGVzICAgICAgICBGbG9hdD8KICBjb21taXNzaW9uICAgRmxvYXQ/CiAgYWR2ZXJ0aXNlcklkIEludD8KCiAgdXNlcklkIEludAoKICB1c2VyIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJyYWt1dGVuYWN0aXZpdHkiKQp9Cm1vZGVsIEltcGFjdFJhZGl1c0V2ZW50IHsKICBpZCAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgICAgU3RyaW5nICAvLyBhY3Rpb24vY2xpY2sKICBjcmVhdGVkICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgYW1vdW50ICAgICAgIEZsb2F0PwogIGNvbW1pc3Npb24gICBGbG9hdD8KICBtZXRhRGF0YSAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgdXNlcklkIEludAogIGJyYW5kSWQgSW50PwoKICB1c2VyIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmQgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgQ3JlYXRvclNlYXJjaEZpbHRlciB7CiAgaWQgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGJyYW5kSWQgICBJbnQKICB0aXRsZSAgICAgU3RyaW5nCiAgZmlsdGVycyAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQogIGNyZWF0ZWRBdCBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZEF0IERhdGVUaW1lPwogIGJyYW5kICAgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIEBAbWFwKCJjcmVhdG9yc2VhcmNoZmlsdGVyIikKfQoKbW9kZWwgU2VxdWVuY2UgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY2FtcGFpZ25JZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJZCAgICAgSW50CiAgdGl0bGUgICAgICAgICAgICAgU3RyaW5nICAgQGRiLlZhckNoYXIoMjU1KQogIGNyZWF0ZWRBdCAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGNvbXBsZXRlZCAgICAgICAgIEJvb2xlYW4gIEBkZWZhdWx0KGZhbHNlKQogIGJyYW5kSWQgICAgICAgICAgIEludAogIGVuYWJsZWQgICAgICAgICAgIEJvb2xlYW4gIEBkZWZhdWx0KGZhbHNlKQoKICBjYW1wYWlnbiAgICAgICAgICBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3QgICAgICAgQ3JlYXRvckxpc3QgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGJyYW5kICAgICAgICAgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgc3RlcHMgICAgICAgICAgICAgU2VxdWVuY2VTdGVwW10KICBvdXRib3VuZEVtYWlscyAgICBTZXF1ZW5jZU91dGJvdW5kRW1haWxbXQogIGluYm91bmRFbWFpbHMgICAgIFNlcXVlbmNlSW5ib3VuZEVtYWlsW10KICBpbWFwQ2hlY2twb2ludHMgICBTZXF1ZW5jZUltYXBDaGVja3BvaW50W10KCiAgQEBtYXAoInNlcXVlbmNlIikKfQoKbW9kZWwgU2VxdWVuY2VTdGVwIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0ZWRBdCAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGVtYWlsVGVtcGxhdGVJZCAgIEludAogIGRheXNBZnRlclByZXZpb3VzIEludAogIG9yZGVyICAgICAgICAgICAgIEludAogIHN0ZXBJZCAgICAgICAgICAgIEludAoKICBzZXF1ZW5jZSAgICAgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGVtYWlsVGVtcGxhdGUgICAgIEVtYWlsVGVtcGxhdGUgQHJlbGF0aW9uKGZpZWxkczogW2VtYWlsVGVtcGxhdGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIG91dGJvdW5kRW1haWxzICBTZXF1ZW5jZU91dGJvdW5kRW1haWxbXQoKICBAQG1hcCgic2VxdWVuY2VzdGVwIikKfQoKbW9kZWwgU2VxdWVuY2VPdXRib3VuZEVtYWlsIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0b3JMaXN0SXRlbUlkIEludAogIHNlcXVlbmNlU3RlcElkICAgIEludAogIHNlbnRBdCAgICAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQoKICBzZXF1ZW5jZSAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdCAgIENyZWF0b3JMaXN0SXRlbSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJdGVtSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNlcXVlbmNlU3RlcCAgU2VxdWVuY2VTdGVwIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZVN0ZXBJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJzZXF1ZW5jZW91dGJvdW5kZW1haWwiKQp9Cgptb2RlbCBTZXF1ZW5jZUluYm91bmRFbWFpbCB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBzZXF1ZW5jZUlkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdEl0ZW1JZCBJbnQKICByZWNlaXZlZEF0ICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBtc2dIYXNoICAgICAgICAgICBTdHJpbmcKCiAgc2VxdWVuY2UgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3RJZCBDcmVhdG9yTGlzdEl0ZW0gQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SXRlbUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlcXVlbmNlaW5ib3VuZGVtYWlsIikKfQoKbW9kZWwgU2VxdWVuY2VJbWFwQ2hlY2twb2ludCB7CiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJdGVtSWQgSW50CiAgbGFzdFJlYWRNc2dEYXRlICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCgogIHNlcXVlbmNlICAgICAgU2VxdWVuY2UgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3JMaXN0SWQgQ3JlYXRvckxpc3RJdGVtIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdEl0ZW1JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW3NlcXVlbmNlSWQsIGNyZWF0b3JMaXN0SXRlbUlkXSkKICBAQG1hcCgic2VxdWVuY2VpbWFwY2hlY2twb2ludCIpCn0=",
|
|
1299
|
-
"inlineSchemaHash": "
|
|
1298
|
+
"inlineSchema": "Z2VuZXJhdG9yIGVyZCB7CiAgcHJvdmlkZXIgICAgICAgICAgICAgICAgICA9ICJwcmlzbWEtZXJkLWdlbmVyYXRvciIKICBpbmNsdWRlUmVsYXRpb25Gcm9tRmllbGRzID0gdHJ1ZQogIG91dHB1dCA9ICIuLi8uLi9kb2NzL2NyZWF0b3Jjb19lcmQubWQiCn0KCmdlbmVyYXRvciBreXNlbHkgewogIHByb3ZpZGVyICAgICAgICAgPSAicHJpc21hLWt5c2VseSIKICBvdXRwdXQgICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28va3lzZWx5IgogIGZpbGVOYW1lICAgICAgICAgPSAidHlwZXMudHMiCiAgZW51bUZpbGVOYW1lICAgICA9ICJlbnVtcy50cyIKICByZWFkT25seUlkcyAgICAgID0gdHJ1ZQogIGNhbWVsQ2FzZSAgICAgICAgPSB0cnVlCiAganNvblR5cGVPdmVycmlkZSA9IEpzb24KICBwcmV2aWV3RmVhdHVyZXMgPSBbIm11bHRpU2NoZW1hIl0KfQoKZ2VuZXJhdG9yIGNsaWVudCB7CiAgcHJvdmlkZXIgICAgICAgID0gInByaXNtYS1jbGllbnQtanMiCiAgb3V0cHV0ICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28vY2xpZW50IgogIHByZXZpZXdGZWF0dXJlcyA9IFsiZnVsbFRleHRJbmRleCIsICJmdWxsVGV4dFNlYXJjaCJdCiAgLy8gbWFjb3MgKGFybSBvciB4ODYpLCBuYXRpdmUsIGxpbnV4IGFybTY0IHNzbDMueCwgd2luZG93cwogIGJpbmFyeVRhcmdldHMgICA9IFsibmF0aXZlIiwgImRhcndpbiIsICJkYXJ3aW4tYXJtNjQiLCAibGludXgtYXJtNjQtb3BlbnNzbC0zLjAueCIsICJ3aW5kb3dzIiwgImRlYmlhbi1vcGVuc3NsLTMuMC54IiwgImxpbnV4LW11c2wtYXJtNjQtb3BlbnNzbC0zLjAueCIsICJsaW51eC1hcm02NC1vcGVuc3NsLTEuMC54Il0KfQoKZGF0YXNvdXJjZSBkYiB7CiAgcHJvdmlkZXIgPSAicG9zdGdyZXNxbCIKICB1cmwgICAgICA9IGVudigiREFUQUJBU0VfVVJMIikKfQoKbW9kZWwgVXNlciB7CiAgaWQgICAgICAgICAgICAgICAgICBJbnQgICAgICAgICAgICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICByb2xlICAgICAgICAgICAgICAgIFN0cmluZwogIGVtYWlsICAgICAgICAgICAgICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBwYXNzd29yZCAgICAgICAgICAgIFN0cmluZz8KICByZWdpc3RlcmVkICAgICAgICAgIERhdGVUaW1lICAgICAgICBAZGVmYXVsdChub3coKSkKICBsYXN0TG9naW5EYXRlICAgICAgIERhdGVUaW1lPwogIGZpcnN0TmFtZSAgICAgICAgICAgU3RyaW5nPwogIGxhc3ROYW1lICAgICAgICAgICAgU3RyaW5nPwogIHBob25lICAgICAgICAgICAgICAgU3RyaW5nPwogIHBob25lQ29kZSAgICAgICAgICAgSW50PwogIHBob25lU2hvcnQgICAgICAgICAgU3RyaW5nPwogIHByb2ZpbGVQaWNVcmwgICAgICAgU3RyaW5nPyAgICAgICAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9yZ290UGFzc3dvcmRLZXkgICBTdHJpbmc/ICAgICAgICAgQHVuaXF1ZQogIGFmZmlsaWF0ZVNsdWcgICAgICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBjbG9zZWQgICAgICAgICAgICAgIERhdGVUaW1lPwogIGNsb3NlZFJlYXNvbiAgICAgICAgU3RyaW5nPwogIHVzZXJjb21MYXN0U3luY2VkICAgRGF0ZVRpbWU/ICAgICAgIEBkZWZhdWx0KG5vdygpKQogIGV4dHJhRGF0YSAgICAgICAgICAgSnNvbiAgICAgICAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHJlZmVycmVySWQgSW50PwoKICByZWZlcnJlciAgICAgICAgICAgIFVzZXI/ICAgICAgICAgICAgICAgIEByZWxhdGlvbigiUmVmZXJyYWxzIiwgZmllbGRzOiBbcmVmZXJyZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgcmVmZXJyZWRVc2VycyAgICAgICBVc2VyW10gICAgICAgICAgICAgICBAcmVsYXRpb24oIlJlZmVycmFscyIpCiAgbG9ncyAgICAgICAgICAgICAgICBMb2dbXQogIGNyZWF0b3JQcm9maWxlICAgICAgQ3JlYXRvclByb2ZpbGU/CiAgaW5zdGFncmFtUHJvZmlsZSAgICBJbnN0YWdyYW1Qcm9maWxlPwogIHlvdXR1YmVQcm9maWxlICAgICAgWW91dHViZVByb2ZpbGU/CiAgdGlrdG9rUHJvZmlsZSAgICAgICBUaWt0b2tQcm9maWxlPwogIGZhY2Vib29rUHJvZmlsZSAgICAgRmFjZWJvb2tQcm9maWxlPwogIHR3aXR0ZXJQcm9maWxlICAgICAgVHdpdHRlclByb2ZpbGU/CiAgdHdpdGNoUHJvZmlsZSAgICAgICBUd2l0Y2hQcm9maWxlPwogIGJyYW5kUHJvZmlsZXMgICAgICAgQnJhbmRVc2VyUHJvZmlsZVtdCiAgb3B0SW5zICAgICAgICAgICAgICBPcHRJbltdCiAgYXNzaWduZWRCcmFuZHMgICAgICBCcmFuZFtdCiAgbWVzc2FnZXMgICAgICAgICAgICBNZXNzYWdlW10KICBzb2NpYWxQb3N0cyAgICAgICAgIFNvY2lhbFBvc3RbXQogIHBheW1lbnRUcmFuc2FjdGlvbnMgUGF5bWVudFRyYW5zYWN0aW9uW10KICBhZmZpbGlhdGVMaW5rcyAgICAgIEFmZmlsaWF0ZUxpbmtbXQogIGNhbXBhaWduUGlucyAgICAgICAgQ2FtcGFpZ25QaW5bXQogIHNvY2lhbFByb2ZpbGVzICAgICAgU29jaWFsUHJvZmlsZVtdCiAgcmFrdXRlbkFjdGl2aXR5ICAgICBSYWt1dGVuQWN0aXZpdHlbXQogIGltcGFjdFJhZGl1c0V2ZW50cyAgSW1wYWN0UmFkaXVzRXZlbnRbXQogIAogIEBAaW5kZXgoW3Bob25lQ29kZSwgcGhvbmVdKQogIEBAbWFwKCJ1c2VyIikKICAvLyBAQGZ1bGx0ZXh0KFtmaXJzdE5hbWUsIGxhc3ROYW1lXSkKfQoKbW9kZWwgTG9nIHsKICBpZCBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCiAgdXNlcklkIEludD8KICB1c2VyICAgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBkYXRhIEpzb24/Cn0KCm1vZGVsIENyZWF0b3JQcm9maWxlIHsKICBpZCAgICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvdW50cnkgICAgICAgICAgU3RyaW5nPwogIHJlZ2lvbiAgICAgICAgICAgU3RyaW5nPwogIGJpcnRoRGF0ZSAgICAgICAgRGF0ZVRpbWU/CiAgaW50ZXJlc3RzICAgICAgICBKc29uPyAvLyBkZXByZWNhdGVkCiAgZ2VuZGVyICAgICAgICAgICBTdHJpbmc/CiAgc2hpcHBpbmdBZGRyZXNzMSBTdHJpbmc/CiAgc2hpcHBpbmdBZGRyZXNzMiBTdHJpbmc/CiAgc2hpcHBpbmdDaXR5ICAgICBTdHJpbmc/CiAgc2hpcHBpbmdSZWdpb24gICBTdHJpbmc/CiAgc2hpcHBpbmdDb3VudHJ5ICBTdHJpbmc/CiAgc2hpcHBpbmdQb3N0Y29kZSBTdHJpbmc/CiAgcGh5bGxvVXNlcklkICAgICBTdHJpbmc/CiAgcHJvZmlsZVNsdWcgICAgICBTdHJpbmc/ICAgQHVuaXF1ZQogIHByb2ZpbGVTZXR0aW5ncyAgSnNvbj8KICB3YWxsZXRBZGRyZXNzICAgIFN0cmluZz8gICBAdW5pcXVlCgogIG5pY2hlcyBDcmVhdG9yVG9DYXRlZ29yeVtdCgogIHVzZXJJZCBJbnQgIEB1bmlxdWUKICB1c2VyICAgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgocGh5bGxvVXNlcklkKQogIEBAbWFwKCJjcmVhdG9ycHJvZmlsZSIpCn0KCm1vZGVsIEluc3RhZ3JhbVByb2ZpbGUgewogIGlkICAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBpbnN0YWdyYW1JZCBTdHJpbmc/CgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGZ1bGxOYW1lICAgICAgICAgIFN0cmluZz8gQGRiLlZhckNoYXIoMTAyNCkKICBpc0J1c2luZXNzICAgICAgICBCb29sZWFuPwogIGlzUHJpdmF0ZSAgICAgICAgIEJvb2xlYW4/CiAgaXNWZXJpZmllZCAgICAgICAgQm9vbGVhbj8KICBtZWRpYUNvdW50ICAgICAgICBJbnQ/CiAgZm9sbG93aW5nQ291bnQgICAgSW50PwogIHRvdGFsQ29tbWVudHMgICAgIEludD8KICB0b3RhbExpa2VzICAgICAgICBJbnQ/CiAgYXZnQ29tbWVudHMgICAgICAgRmxvYXQ/CiAgYXZnTGlrZXMgICAgICAgICAgRmxvYXQ/CiAgYmlvICAgICAgICAgICAgICAgU3RyaW5nPwogIGV4dGVybmFsVXJsICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGhhc0hpZ2hsaWdodFJlZWxzIEJvb2xlYW4/CiAgY2F0ZWdvcnkgICAgICAgICAgU3RyaW5nPwogIGhhc0NsaXBzICAgICAgICAgIEJvb2xlYW4/CiAgaGFzR3VpZGVzICAgICAgICAgQm9vbGVhbj8KICBoYXNDaGFubmVsICAgICAgICBCb29sZWFuPwogIHRvdGFsSWd0dlZpZGVvcyAgIEludD8KICBwcm9maWxlUGljVXJsSGQgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykgLy8gREVQUkVDQVRFRAogIGxhc3RTdG9yaWVzVXBkYXRlIERhdGVUaW1lPwoKICBleHRyYURhdGEgICAgSnNvbj8KICBwaHlsbG9EYXRhICAgSnNvbj8KICBhdWRpZW5jZURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKQogIHZpc2liaWxpdHkgICBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgIEludD8gICBAdW5pcXVlCiAgdXNlciAgICBVc2VyPyAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGJyYW5kSWQgSW50PyAgIEB1bmlxdWUKICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAaW5kZXgoaW5zdGFncmFtSWQpCiAgQEBtYXAoImluc3RhZ3JhbXByb2ZpbGUiKQp9Cgptb2RlbCBUaWt0b2tQcm9maWxlIHsKICBpZCAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aWt0b2tJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmc/CiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgaGFuZGxlICAgICAgICAgU3RyaW5nPwogIG5pY2tuYW1lICAgICAgIFN0cmluZz8KICBmb2xsb3dpbmdDb3VudCBJbnQ/CiAgdG90YWxDb21tZW50cyAgSW50PwogIHRvdGFsTGlrZXMgICAgIEludD8KCiAgZXh0cmFEYXRhICAgIEpzb24/CiAgcGh5bGxvRGF0YSAgIEpzb24/CiAgYXVkaWVuY2VEYXRhIEpzb24gICAgQGRlZmF1bHQoInt9IikKICB2aXNpYmlsaXR5ICAgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkICBJbnQ/ICAgQHVuaXF1ZQogIHVzZXIgICAgVXNlcj8gIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZElkIEludD8gICBAdW5pcXVlCiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleCh1c2VybmFtZSkKICBAQG1hcCgidGlrdG9rcHJvZmlsZSIpCn0KCm1vZGVsIFlvdXR1YmVQcm9maWxlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgeW91dHViZUlkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGZvbGxvd2luZ0NvdW50IEludD8KICBmdWxsTmFtZSAgICAgICBTdHJpbmc/ICBAZGIuVmFyQ2hhcigxMDI0KQogIGlzVmVyaWZpZWQgICAgIEJvb2xlYW4/CiAgc3Vic2NyaWJlcnMgICAgSW50PwogIGRlc2NyaXB0aW9uICAgIFN0cmluZz8gIEBkYi5UZXh0CiAgY291bnRyeSAgICAgICAgU3RyaW5nPwogIHRvdGFsVmlld3MgICAgIEludD8KICB0b3RhbFZpZGVvcyAgICBJbnQ/CgogIGV4dHJhRGF0YSAgICBKc29uPwogIHBoeWxsb0RhdGEgICBKc29uPwogIGF1ZGllbmNlRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCiAgdmlzaWJpbGl0eSAgIFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCAgSW50PyAgIEB1bmlxdWUKICB1c2VyICAgIFVzZXI/ICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmRJZCBJbnQ/ICAgQHVuaXF1ZQogIGJyYW5kICAgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBtYXAoInlvdXR1YmVwcm9maWxlIikKfQoKbW9kZWwgVHdpdGNoUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdHdpdGNoSWQgU3RyaW5nIEB1bmlxdWUKCiAgLy8gZmllbGRzIGNvbnNpc3RlbnQgYWNjcm9zcyBwcm9maWxlcwogIHVzZXJuYW1lICAgICAgU3RyaW5nICAgIEB1bmlxdWUKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBleHRyYURhdGEgIEpzb24/CiAgcGh5bGxvRGF0YSBKc29uPwogIHZpc2liaWxpdHkgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkIEludD8gIEB1bmlxdWUKICB1c2VyICAgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQG1hcCgidHdpdGNocHJvZmlsZSIpCn0KCm1vZGVsIEZhY2Vib29rUHJvZmlsZSB7CiAgaWQgICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBmYWNlYm9va0lkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoImZhY2Vib29rcHJvZmlsZSIpCn0KCm1vZGVsIFR3aXR0ZXJQcm9maWxlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdHdpdHRlcklkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoInR3aXR0ZXJwcm9maWxlIikKfQoKbW9kZWwgQnJhbmRVc2VyUHJvZmlsZSB7CiAgaWQgICAgICBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB1c2VySWQgIEludAogIGJyYW5kSWQgSW50CgogIHVzZXIgIFVzZXIgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZCBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFt1c2VySWRdKQogIEBAaW5kZXgoW2JyYW5kSWRdKQoKICBAQG1hcCgiYnJhbmR1c2VycHJvZmlsZSIpCn0KCm1vZGVsIEJyYW5kIHsKICBpZCAgICAgICAgICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBuYW1lICAgICAgICAgICAgICAgICAgICBTdHJpbmcKICBkZXNjcmlwdGlvbiAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICB3ZWJzaXRlICAgICAgICAgICAgICAgICBTdHJpbmcKICBtb250aGx5Q29udGFjdHMgICAgICAgICBJbnQ/CiAgbW9udGhseVJlcG9ydHMgICAgICAgICAgSW50PwogIGxhc3RDb250YWN0RGlzdHJpYnV0aW9uIERhdGVUaW1lPwogIGxvZ29VcmwgICAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGFmZmlsaWF0ZUJhc2VVcmwgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGFmZmlsaWF0ZUNvbW1pc3Npb24gICAgIEZsb2F0PwogIGV4dHJhRGF0YSAgICAgICAgICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBzcGVjaWFsaXN0SWQgICAgICAgIEludD8KICBkZWRpY2F0ZWRTcGVjaWFsaXN0IFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFtzcGVjaWFsaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGluc3RhZ3JhbVByb2ZpbGUgICAgIEluc3RhZ3JhbVByb2ZpbGU/CiAgeW91dHViZVByb2ZpbGUgICAgICAgWW91dHViZVByb2ZpbGU/CiAgdGlrdG9rUHJvZmlsZSAgICAgICAgVGlrdG9rUHJvZmlsZT8KICBjYW1wYWlnbnMgICAgICAgICAgICBDYW1wYWlnbltdCiAgYnJhbmRVc2VycyAgICAgICAgICAgQnJhbmRVc2VyUHJvZmlsZVtdCiAgc2VhcmNoQ29udGFjdHMgICAgICAgU2VhcmNoQ29udGFjdHNbXQogIHJlcG9ydENyZWRpdHMgICAgICAgIFJlcG9ydENyZWRpdHNbXQogIGNhdGVnb3JpZXMgICAgICAgICAgIEJyYW5kVG9DYXRlZ29yeVtdCiAgcGF5bWVudFRyYW5zYWN0aW9ucyAgUGF5bWVudFRyYW5zYWN0aW9uW10KICBzYXZlZGZpbGVzICAgICAgICAgICBTYXZlZEZpbGVbXQogIGNyZWF0b3JMaXN0cyAgICAgICAgIENyZWF0b3JMaXN0W10KICBhZmZpbGlhdGVMaW5rcyAgICAgICBCcmFuZEFmZmlsaWF0ZUxpbmtbXQogIG1lc3NhZ2VUZW1wbGF0ZSAgICAgIE1lc3NhZ2VUZW1wbGF0ZVtdCiAgZW1haWxUZW1wbGF0ZXMgICAgICAgRW1haWxUZW1wbGF0ZVtdCiAgc29jaWFsTGlzdGVuaW5nTGlzdHMgU29jaWFsTGlzdGVuaW5nTGlzdFtdCiAgY2FtcGFpZ25JbnZpdGVzICAgICAgQ2FtcGFpZ25JbnZpdGVbXQogIGltYWdlcyAgICAgICAgICAgICAgIEJyYW5kVG9JbWFnZVtdCiAgY3JlYXRvcnNlYXJjaGZpbHRlciAgQ3JlYXRvclNlYXJjaEZpbHRlcltdCiAgc2VxdWVuY2VzICAgICAgICAgICAgU2VxdWVuY2VbXQogIGltcGFjdFJhZGl1c0V2ZW50cyAgIEltcGFjdFJhZGl1c0V2ZW50W10KCiAgLy8gZm9yIGFnZW5jaWVzCiAgcGFyZW50QnJhbmRJZCAgICAgICBJbnQ/CiAgcGFyZW50QnJhbmQgICAgICAgICBCcmFuZD8gQHJlbGF0aW9uKCJDaGlsZEJyYW5kcyIsIGZpZWxkczogW3BhcmVudEJyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNoaWxkQnJhbmRzICAgICAgICAgQnJhbmRbXSBAcmVsYXRpb24oIkNoaWxkQnJhbmRzIikKICAvLyBnZW5lcmF0ZWQgKGZvciBzZWFyY2gpCiAgc2VhcmNoTmFtZSAgICAgICAgICBTdHJpbmc/IEBkZWZhdWx0KGRiZ2VuZXJhdGVkKCkpCgogIEBAbWFwKCJicmFuZCIpCn0KCm1vZGVsIFNlYXJjaENvbnRhY3RzIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgU3RyaW5nCiAgcHJldlF0eSAgICBGbG9hdAogIGNoYW5nZVF0eSAgRmxvYXQKICBjdXJyZW50UXR5IEZsb2F0CiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCgogIHByZXZRdHlQb3N0SWQgSW50PyAgICAgICAgICAgIEB1bmlxdWUKICBwcmV2UXR5UG9zdCAgIFNlYXJjaENvbnRhY3RzPyBAcmVsYXRpb24oInByZXZTZWFyY2hRdHlQb3N0SWQiLCBmaWVsZHM6IFtwcmV2UXR5UG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBuZXh0UXR5UG9zdCAgIFNlYXJjaENvbnRhY3RzPyBAcmVsYXRpb24oInByZXZTZWFyY2hRdHlQb3N0SWQiKQoKICBicmFuZElkIEludAogIGJyYW5kICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2VhcmNoY29udGFjdHMiKQp9Cgptb2RlbCBSZXBvcnRDcmVkaXRzIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgU3RyaW5nCiAgcHJldlF0eSAgICBGbG9hdAogIGNoYW5nZVF0eSAgRmxvYXQKICBjdXJyZW50UXR5IEZsb2F0CiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCgogIHByZXZRdHlQb3N0SWQgSW50PyAgICAgICAgICAgQHVuaXF1ZQogIHByZXZRdHlQb3N0ICAgUmVwb3J0Q3JlZGl0cz8gQHJlbGF0aW9uKCJwcmV2UmVwb3J0c1F0eVBvc3RJZCIsIGZpZWxkczogW3ByZXZRdHlQb3N0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG5leHRRdHlQb3N0ICAgUmVwb3J0Q3JlZGl0cz8gQHJlbGF0aW9uKCJwcmV2UmVwb3J0c1F0eVBvc3RJZCIpCgogIGJyYW5kSWQgSW50CiAgYnJhbmQgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJyZXBvcnRjcmVkaXRzIikKfQoKbW9kZWwgQnJhbmRUb0ltYWdlIHsKICBpZCAgICAgICAgICBJbnQgICBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpIEBpZAogIGJyYW5kSWQgICAgIEludAogIHR5cGUgICAgICAgIFN0cmluZwoKICBicmFuZCAgICAgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBzaXplcyAgICAgICBCcmFuZEltYWdlW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoImJyYW5kdG9pbWFnZSIpCn0KCm1vZGVsIEJyYW5kVG9DYXRlZ29yeSB7CiAgYnJhbmRJZCAgICBJbnQKICBjYXRlZ29yeUlkIEludAoKICBjYW1wYWlnbiBCcmFuZCAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhdGVnb3J5IENhdGVnb3J5IEByZWxhdGlvbihmaWVsZHM6IFtjYXRlZ29yeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbYnJhbmRJZCwgY2F0ZWdvcnlJZF0pCiAgQEBtYXAoImJyYW5kdG9jYXRlZ29yeSIpCn0KCm1vZGVsIENyZWF0b3JUb0NhdGVnb3J5IHsKICBjcmVhdG9yUHJvZmlsZUlkIEludAogIGNhdGVnb3J5SWQgICAgICAgSW50CgogIGNyZWF0b3JQcm9maWxlIENyZWF0b3JQcm9maWxlIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2F0ZWdvcnkgICAgICAgQ2F0ZWdvcnkgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhdGVnb3J5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjcmVhdG9yUHJvZmlsZUlkLCBjYXRlZ29yeUlkXSkKfQoKbW9kZWwgQ2hhdCB7CiAgaWQgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICAgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQogIGNvbnZlcnNhdGlvbklkIFN0cmluZz8gICBAdW5pcXVlCiAgbWV0YURhdGEgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIG9wdEluSWQgSW50PyBAdW5pcXVlCgogIG9wdEluICAgIE9wdEluPyAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbWVzc2FnZXMgTWVzc2FnZVtdCgogIEBAbWFwKCJjaGF0IikKfQoKbW9kZWwgTWVzc2FnZSB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjcmVhdGVkICAgIERhdGVUaW1lPyBAZGVmYXVsdChub3coKSkKICBzZW5kZXIgICAgIFN0cmluZwogIGNvbnRlbnQgICAgU3RyaW5nICAgIEBkYi5UZXh0CiAgcmVhZCAgICAgICBCb29sZWFuICAgQGRlZmF1bHQoZmFsc2UpCiAgdHlwZSAgICAgICBTdHJpbmcgICAgQGRlZmF1bHQoInRleHQiKQogIG1lc3NhZ2VTaWQgU3RyaW5nPwoKICB1c2VySWQgSW50PwogIGNoYXRJZCBJbnQKCiAgdXNlciBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjaGF0IENoYXQgIEByZWxhdGlvbihmaWVsZHM6IFtjaGF0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbY2hhdElkXSkKICBAQG1hcCgibWVzc2FnZSIpCn0KCm1vZGVsIENhbXBhaWduIHsKICBpZCAgICAgICAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgICAgICAgICAgICAgIFN0cmluZwogIHNsdWcgICAgICAgICAgICAgICAgICBTdHJpbmc/ICAgQHVuaXF1ZQogIHN0YXR1cyAgICAgICAgICAgICAgICBTdHJpbmcgICAgQGRlZmF1bHQoImRyYWZ0IikgLy8gZHJhZnQsIHBhdXNlZCwgcGVuZGluZywgcHJpdmF0ZSwgcHVibGlzaCwgdHJhc2gKICBkYXRlICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHB1Ymxpc2hEYXRlICAgICAgICAgICBEYXRlVGltZT8KICBkZXNjcmlwdGlvbiAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcHJvZHVjdERlc2NyaXB0aW9uICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHByaXplRGVzY3JpcHRpb24gICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBzdHJhdGVneSAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkZWZhdWx0KCJzaG91dG91dCIpCiAgc29jaWFsQ2hhbm5lbCAgICAgICAgIFN0cmluZz8KICBzb2NpYWxDaGFubmVscyAgICAgICAgSnNvbj8KICBmYWNlYm9va1JlYWNoICAgICAgICAgSW50PwogIGZhY2Vib29rRW5nYWdlbWVudCAgICBGbG9hdD8KICBpbnN0YWdyYW1SZWFjaCAgICAgICAgSW50PwogIGluc3RhZ3JhbUVuZ2FnZW1lbnQgICBGbG9hdD8KICB5b3V0dWJlUmVhY2ggICAgICAgICAgSW50PwogIHlvdXR1YmVFbmdhZ2VtZW50ICAgICBGbG9hdD8KICB0d2l0dGVyUmVhY2ggICAgICAgICAgSW50PwogIHR3aXR0ZXJFbmdhZ2VtZW50ICAgICBGbG9hdD8KICB0aWt0b2tSZWFjaCAgICAgICAgICAgSW50PwogIHRpa3Rva0VuZ2FnZW1lbnQgICAgICBGbG9hdD8KICB0d2l0Y2hSZWFjaCAgICAgICAgICAgSW50PwogIHR3aXRjaEVuZ2FnZW1lbnQgICAgICBGbG9hdD8KICBxdWFudGl0eSAgICAgICAgICAgICAgSW50ICAgICAgIEBkZWZhdWx0KDApCiAgaG9sZENvc3QgICAgICAgICAgICAgIEZsb2F0PwogIHZhbHVlICAgICAgICAgICAgICAgICBGbG9hdD8KICBwYWlkQW1vdW50ICAgICAgICAgICAgRmxvYXQ/CiAgbWluQWdlICAgICAgICAgICAgICAgIEludD8KICBtYXhBZ2UgICAgICAgICAgICAgICAgSW50PwogIHZpc3VhbHMgICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwaG90b1RhZ3MgICAgICAgICAgICAgSnNvbj8KICBoYXNodGFncyAgICAgICAgICAgICAgSnNvbj8KICBzdG9yeUhhc2h0YWdzICAgICAgICAgSnNvbj8KICBzdG9yeU1lbnRpb25zICAgICAgICAgSnNvbj8KICBjYXB0aW9uICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcGFzc3dvcmQgICAgICAgICAgICAgIFN0cmluZz8KICBjb250ZW50Rm9ybWF0cyAgICAgICAgSnNvbj8KICBwYWlkQ2FtcGFpZ24gICAgICAgICAgQm9vbGVhbj8KICBtaW5QYWlkQW1vdW50ICAgICAgICAgRmxvYXQ/CiAgbWF4UGFpZEFtb3VudCAgICAgICAgIEZsb2F0PwogIHBheW1lbnRUeXBlICAgICAgICAgICBTdHJpbmc/CiAgbW9udGhseUFjdGl2YXRlZEdvYWwgIEludD8gLy8gUmVkdW5kYW50L0RlcHJlY2F0ZWQKICBleHBlY3RlZE9wdElucyAgICAgICAgSW50PyAvLyBSZWR1bmRhbnQvRGVwcmVjYXRlZAogIGdvYWxBY3RpdmF0aW9ucyAgICAgICBGbG9hdD8KICBnb2FsT3B0SW5zICAgICAgICAgICAgRmxvYXQ/CiAgcmVxdWlyZXNTaGlwcGluZyAgICAgIEJvb2xlYW4/CiAgZGlzYWJsZVF1YWxpZmljYXRpb25zIEJvb2xlYW4/CiAgZGlzYWJsZUFjdGl2YXRpb25zICAgIEJvb2xlYW4/CiAgYWZmaWxpYXRlTGlua1BhdGggICAgIFN0cmluZz8KICBtZXRhRGF0YSAgICAgICAgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHN0ZXBzICAgICAgICBDYW1wYWlnblN0ZXBbXQogIGNhdGVnb3JpZXMgICBDYW1wYWlnblRvQ2F0ZWdvcnlbXQogIG9wdElucyAgICAgICBPcHRJbltdCiAgaW1hZ2VzICAgICAgIENhbXBhaWduVG9JbWFnZVtdCiAgdmFyaWFibGVzICAgIFZhcmlhYmxlW10KICBjb3VudHJpZXMgICAgQ2FtcGFpZ25Ub0NvdW50cnlbXQogIGNhbXBhaWduUGlucyBDYW1wYWlnblBpbltdCiAgc29jaWFsUG9zdHMgIFNvY2lhbFBvc3RbXQogIGNhbXBhaWduSW52aXRlcyBDYW1wYWlnbkludml0ZVtdCgogIGJyYW5kSWQgICAgICBJbnQKICBicmFuZCAgICAgICAgQnJhbmQgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNyZWF0b3JMaXN0cyBDcmVhdG9yTGlzdFtdCiAgb3B0SW5WaWV3cyAgIE9wdEluVmlld1tdCiAgc2VxdWVuY2VzICAgIFNlcXVlbmNlW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoImNhbXBhaWduIikKfQoKbW9kZWwgQ2FtcGFpZ25QaW4gewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXNlcklkICAgICBJbnQKICBjYW1wYWlnbklkIEludAogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIG5vdGlmaWVkICAgRGF0ZVRpbWU/CgogIHVzZXIgICAgIFVzZXIgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFt1c2VySWRdKQoKICBAQG1hcCgiY2FtcGFpZ25waW4iKQp9Cgptb2RlbCBDYW1wYWlnblRvSW1hZ2UgewogIGlkICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY2FtcGFpZ25JZCBJbnQKICB0eXBlICAgICAgIFN0cmluZwoKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBzaXplcyBJbWFnZVtdCgogIEBAbWFwKCJjYW1wYWlnbnRvaW1hZ2UiKQp9Cgptb2RlbCBDYW1wYWlnblRvQ2F0ZWdvcnkgewogIGNhbXBhaWduSWQgSW50CiAgY2F0ZWdvcnlJZCBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYXRlZ29yeSBDYXRlZ29yeSBAcmVsYXRpb24oZmllbGRzOiBbY2F0ZWdvcnlJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW2NhbXBhaWduSWQsIGNhdGVnb3J5SWRdKQogIEBAbWFwKCJjYW1wYWlnbnRvY2F0ZWdvcnkiKQp9Cgptb2RlbCBDYW1wYWlnblRvQ291bnRyeSB7CiAgY2FtcGFpZ25JZCBJbnQKICBjb3VudHJ5SWQgIEludAoKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNvdW50cnkgIENvdW50cnkgIEByZWxhdGlvbihmaWVsZHM6IFtjb3VudHJ5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjYW1wYWlnbklkLCBjb3VudHJ5SWRdKQogIEBAbWFwKCJjYW1wYWlnbnRvY291bnRyeSIpCn0KCm1vZGVsIFZhcmlhYmxlIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgICAgU3RyaW5nCiAgZGVzY3JpcHRpb24gU3RyaW5nPyBAZGIuVGV4dAogIG1ldGFEYXRhICAgIEpzb24gICAgQGRlZmF1bHQoInt9IikKCiAgY2FtcGFpZ25JZCBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgb3B0aW9ucyAgICAgICAgVmFyaWFibGVPcHRpb25bXQogIG9wdEluVmFyaWFibGVzIE9wdEluVmFyaWFibGVbXQp9Cgptb2RlbCBWYXJpYWJsZU9wdGlvbiB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgIFN0cmluZwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBtZXRhRGF0YSAgICBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCgogIHZhcmlhYmxlSWQgSW50CgogIHZhcmlhYmxlIFZhcmlhYmxlIEByZWxhdGlvbihmaWVsZHM6IFt2YXJpYWJsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIG9wdEluVmFyaWFibGVzIE9wdEluVmFyaWFibGVbXQp9Cgptb2RlbCBTdGVwIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2x1ZyAgICAgICAgU3RyaW5nICBAdW5pcXVlCiAgdGl0bGUgICAgICAgU3RyaW5nPwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBkYXRhICAgICAgICBKc29uPwoKICBjYW1wYWlnblN0ZXBzIENhbXBhaWduU3RlcFtdCgogIEBAbWFwKCJzdGVwIikKfQoKbW9kZWwgQ2FtcGFpZ25TdGVwIHsKICBpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICBwbGFjZW1lbnQgICAgICAgICAgICAgICAgICAgICBJbnQKICBzdGVwU2V0dGluZ3MgICAgICAgICAgICAgICAgICBKc29uPwogIGFjdGlvbmVlICAgICAgICAgICAgICAgICAgICAgIFN0cmluZz8KICBpbnN0cnVjdGlvbnMgICAgICAgICAgICAgICAgICBTdHJpbmc/IEBkYi5UZXh0CiAgY3VzdG9tU3RlcFRpdGxlICAgICAgICAgICAgICAgU3RyaW5nPwogIGN1c3RvbUZvcm0gICAgICAgICAgICAgICAgICAgIEpzb24/CiAgbWV0YURhdGEgICAgICAgICAgICAgICAgICAgICAgSnNvbiBAZGVmYXVsdCgie30iKQogIGNhbXBhaWduSWQgICAgSW50CiAgc3RlcElkICAgICAgICBJbnQ/CgogIGNhbXBhaWduICAgICAgQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzdGVwICAgICAgICAgIFN0ZXA/ICAgIEByZWxhdGlvbihmaWVsZHM6IFtzdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGN1cnJlbnRPcHRJbnMgT3B0SW5bXQoKICBvcHRJblN0ZXBzIE9wdEluU3RlcFtdCgogIEBAaW5kZXgoW2NhbXBhaWduSWRdKQoKICBAQG1hcCgiY2FtcGFpZ25zdGVwIikKfQoKbW9kZWwgT3B0SW5TdGVwIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY29tcGxldGVkIERhdGVUaW1lPwogIGRhdGEgICAgICBKc29uPwoKICBvcHRJbklkICAgICAgICBJbnQKICBjYW1wYWlnblN0ZXBJZCBJbnQKICBzb2NpYWxQb3N0SWQgICBJbnQ/IC8vIHRlbXBvcmFyeSBmb3IgbW92aW5nIHNob3V0b3V0RGF0YSB0byBzb2NpYWxQb3N0cwoKICBvcHRJbiAgICAgICAgT3B0SW4gICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ25TdGVwIENhbXBhaWduU3RlcCBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25TdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbb3B0SW5JZF0pCiAgQEBpbmRleChbY2FtcGFpZ25TdGVwSWRdKQogIEBAbWFwKCJvcHRpbnN0ZXAiKQp9Cgptb2RlbCBDYXRlZ29yeSB7CiAgaWQgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2x1ZyAgU3RyaW5nIEB1bmlxdWUKICB0aXRsZSBTdHJpbmcKCiAgY2FtcGFpZ25zIENhbXBhaWduVG9DYXRlZ29yeVtdCiAgYnJhbmRzICAgIEJyYW5kVG9DYXRlZ29yeVtdCiAgY3JlYXRvcnMgIENyZWF0b3JUb0NhdGVnb3J5W10KCiAgQEBtYXAoImNhdGVnb3J5IikKfQoKbW9kZWwgT3B0SW4gewogIGlkICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBzdGF0dXMgICAgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJwZW5kaW5nIikKICBjcmVhdGVkICAgICAgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGFjdGl2YXRlZCAgICAgICBEYXRlVGltZT8KICBjb21wbGV0ZWQgICAgICAgRGF0ZVRpbWU/CiAgY2FuY2VsbGVkICAgICAgIERhdGVUaW1lPwogIGNhbmNlbGxlZERhdGEgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKICBjYW5jZWxSZXF1ZXN0ZWQgRGF0ZVRpbWU/CiAgcmVpbnZpdGVkICAgICAgIERhdGVUaW1lPwogIHNlZW4gICAgICAgICAgICBCb29sZWFuICAgQGRlZmF1bHQoZmFsc2UpCiAgaW5zdHJ1Y3Rpb25zICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHBheW1lbnRBbW91bnQgICBGbG9hdD8KICBwYXltZW50U3RhdHVzICAgU3RyaW5nICAgIEBkZWZhdWx0KCJwZW5kaW5nIikgLy8gZGVwcmFjYXRlZCAtLSByZWZlciB0byB0cm9sbGV5IHBheW1lbnQgdGFibGUKICBleHRyYURhdGEgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHVzZXJJZCAgICAgICAgSW50CiAgY2FtcGFpZ25JZCAgICBJbnQKICBjdXJyZW50U3RlcElkIEludD8KCiAgdXNlciAgICAgICAgVXNlciAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gICAgQ2FtcGFpZ24gICAgICBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGN1cnJlbnRTdGVwIENhbXBhaWduU3RlcD8gQHJlbGF0aW9uKGZpZWxkczogW2N1cnJlbnRTdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICB2YXJpYWJsZXMgIE9wdEluVmFyaWFibGVbXQogIG9wdEluU3RlcHMgT3B0SW5TdGVwW10KICBjaGF0ICAgICAgIENoYXQ/CiAgY2FtcGFpZ25JbnZpdGVzIENhbXBhaWduSW52aXRlW10KICB0cm9sbGV5UGF5bWVudHMgVHJvbGxleVBheW1lbnRbXQogIGFmZmlsaWF0ZUNsaWNrcyBBZmZpbGlhdGVDbGlja1tdCgogIEBAaW5kZXgoW3VzZXJJZF0pCiAgQEBpbmRleChbY2FtcGFpZ25JZF0pCiAgQEBtYXAoIm9wdGluIikKfQoKbW9kZWwgVHJvbGxleVBheW1lbnQgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgICAgICAgICAgICAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHBheW1lbnRJZCAgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgICAgICBAdW5pcXVlCiAgdHlwZSAgICAgICAgICAgICAgdHJvbGxleVBheW1lbnRUeXBlPwogIHN0YXR1cyAgICAgICAgICAgIHRyb2xsZXlQYXltZW50U3RhdHVzCiAgb3B0SW5JZCAgICAgICAgICAgSW50PwogIHBheW1lbnRBbW91bnQgICAgIEludAogIG1ldGFEYXRhICAgICAgICAgIEpzb24gICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCgie30iKQoKICBvcHRJbiAgICAgICAgICAgICBPcHRJbj8gICAgICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOltpZF0pCn0KCmVudW0gdHJvbGxleVBheW1lbnRUeXBlIHsKICBvcHRJbgogIHRpcAogIGFmZmlsaWF0ZQp9CgplbnVtIHRyb2xsZXlQYXltZW50U3RhdHVzIHsKICBwZW5kaW5nCiAgcHJvY2Vzc2luZwogIHByb2Nlc3NlZAogIGZhaWxlZAogIHJldHVybmVkCn0KCgptb2RlbCBPcHRJblZhcmlhYmxlIHsKICBpZCBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCiAgb3B0SW5JZCAgICAgICAgICBJbnQKICB2YXJpYWJsZUlkICAgICAgIEludAogIHNlbGVjdGVkT3B0aW9uSWQgSW50CgogIG9wdEluICAgICAgICAgIE9wdEluICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgdmFyaWFibGUgICAgICAgVmFyaWFibGUgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3ZhcmlhYmxlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzZWxlY3RlZE9wdGlvbiBWYXJpYWJsZU9wdGlvbiBAcmVsYXRpb24oZmllbGRzOiBbc2VsZWN0ZWRPcHRpb25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFtvcHRJbklkXSkKfQoKbW9kZWwgU29jaWFsUG9zdCB7CiAgaWQgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgcGh5bGxvSWQgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBtZXRhRGF0YSAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKICBkYXRhICAgICAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikgLy8gREVQUkVDQVRFRCwgVVNFIG1ldGFEYXRhIGluc3RlYWQsIHNlZW1zIHRvIGJlIGFuIGVycm9yIHdoZW4gYXR0ZW1wdGluZyB0byByZW1vdmUgdGhpcyBmaWVsZCwgcHJvYWJhYmx5IGR1ZSB0byB0YWJsZSBzaXplCiAgbGFzdEZldGNoZWQgRGF0ZVRpbWU/CiAgbGFzdFdlYmhvb2sgRGF0ZVRpbWU/CgogIC8vIEJBU0lDIElORk8KICBwb3N0ZWQgICAgICAgICAgICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIGRlc2NyaXB0aW9uICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICB1cmwgICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgdXJsUGF0aCAgICAgICAgICAgIFN0cmluZz8gICBAdW5pcXVlIC8vIFRoaXMgaXMgaGVyZSBzbyB3ZSBoYXZlIHNvbWUgZXh0ZXJuYWwgaWRlbnRpZmllciB0byBxdWlja2x5IHNlYXJjaCBieQogIGZvcm1hdCAgICAgICAgICAgICBTdHJpbmc/CiAgdHlwZSAgICAgICAgICAgICAgIFN0cmluZz8KICBwbGF0Zm9ybSAgICAgICAgICAgU3RyaW5nPwogIHZpc2liaWxpdHkgICAgICAgICBTdHJpbmc/CiAgaXNTcG9uc29yZWQgICAgICAgIEJvb2xlYW4/CiAgaGFzQ29sbGFib3JhdG9ycyAgIEJvb2xlYW4/CiAgaXNPd25lZEJ5VXNlciAgICAgIEJvb2xlYW4/CiAgLy8gTUVUUklDUwogIHZpZXdzICAgICAgICAgICAgICBJbnQ/CiAgaW1wcmVzc2lvbnMgICAgICAgIEludD8KICBpbXByZXNzaW9uc09yZ2FuaWMgSW50PwogIGltcHJlc3Npb25zUGFpZCAgICBJbnQ/CiAgcmVhY2ggICAgICAgICAgICAgIEludD8KICByZWFjaE9yZ2FuaWMgICAgICAgSW50PwogIHJlYWNoUGFpZCAgICAgICAgICBJbnQ/CiAgd2F0Y2hIb3VycyAgICAgICAgIEZsb2F0PwogIC8vIEVOR0FHRU1FTlQgTUVUUklDUwogIGxpa2VzICAgICAgICAgICAgICBJbnQ/CiAgZGlzbGlrZXMgICAgICAgICAgIEludD8KICBjb21tZW50cyAgICAgICAgICAgSW50PwogIHNhdmVzICAgICAgICAgICAgICBJbnQ/CiAgc2hhcmVzICAgICAgICAgICAgIEludD8KCiAgdXNlcklkICAgICBJbnQ/CiAgY2FtcGFpZ25JZCBJbnQ/CgogIHVzZXIgICAgIFVzZXI/ICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjYW1wYWlnbiBDYW1wYWlnbj8gICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGxpc3RzICAgIExpc3RUb1NvY2lhbFBvc3RbXQoKICBAQGluZGV4KGNhbXBhaWduSWQpCiAgQEBpbmRleCh1c2VySWQpCiAgQEBpbmRleChwb3N0ZWQpCgogIEBAbWFwKCJzb2NpYWxwb3N0IikKfQoKbW9kZWwgSW1hZ2UgewogIGlkICAgICAgICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB1cmwgICAgICAgICAgICAgU3RyaW5nIEBkYi5WYXJDaGFyKDIwODMpCiAgc2l6ZSAgICAgICAgICAgIFN0cmluZwogIGNhbXBhaWduSW1hZ2VJZCBJbnQKCiAgY2FtcGFpZ25JbWFnZSBDYW1wYWlnblRvSW1hZ2UgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSW1hZ2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQG1hcCgiaW1hZ2UiKQp9Cgptb2RlbCBCcmFuZEltYWdlIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICB1cmwgICAgICAgICAgICAgU3RyaW5nIEBkYi5WYXJDaGFyKDIwODMpCiAgc2l6ZSAgICAgICAgICAgIFN0cmluZwogIGJyYW5kSW1hZ2VJZCAgICBJbnQKCiAgYnJhbmRJbWFnZSAgICAgIEJyYW5kVG9JbWFnZSBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJbWFnZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2JyYW5kSW1hZ2VJZF0pCiAgQEBtYXAoImJyYW5kaW1hZ2UiKQp9Cgptb2RlbCBDb3VudHJ5IHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY291bnRyeUNvZGUgU3RyaW5nICBAdW5pcXVlIEBkYi5WYXJDaGFyKDIpCiAgY291bnRyeU5hbWUgU3RyaW5nICBAZGIuVmFyQ2hhcig1MDApCiAgdGVsZUNvZGUgICAgU3RyaW5nICBAZGIuVmFyQ2hhcigxMCkKICBzdGF0ZXMgICAgICBTdGF0ZVtdCgogIGNhbXBhaWducyBDYW1wYWlnblRvQ291bnRyeVtdCgogIEBAbWFwKCJjb3VudHJ5IikKfQoKbW9kZWwgU3RhdGUgewogIGlkICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjb3VudHJ5SWQgSW50CiAgc3RhdGVDb2RlIFN0cmluZyBAZGIuVmFyQ2hhcig1MCkKICBzdGF0ZU5hbWUgU3RyaW5nIEBkYi5WYXJDaGFyKDUwMCkKCiAgY291bnRyeSBDb3VudHJ5IEByZWxhdGlvbihmaWVsZHM6IFtjb3VudHJ5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic3RhdGUiKQp9Cgptb2RlbCBQYXltZW50VHJhbnNhY3Rpb24gewogIGlkICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGFtb3VudCAgICBGbG9hdAogIGJhbGFuY2UgICBGbG9hdAogIHR5cGUgICAgICBTdHJpbmcKICBkYXRlICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgbm90ZXMgICAgIFN0cmluZz8gIEBkYi5UZXh0CiAgbWV0YURhdGEgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCiAgYWNjb3VudElkIEludAoKICBicmFuZElkICAgICAgICAgICBJbnQ/CiAgY3JlYXRvcklkICAgICAgICAgSW50PwogIHByZXZUcmFuc2FjdGlvbklkIEludD8gQHVuaXF1ZQoKICBicmFuZCAgICAgICAgICAgQnJhbmQ/ICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvciAgICAgICAgIFVzZXI/ICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgcHJldlRyYW5zYWN0aW9uIFBheW1lbnRUcmFuc2FjdGlvbj8gQHJlbGF0aW9uKCJUcmFuc2FjdGlvbkhpc3RvcnkiLCBmaWVsZHM6IFtwcmV2VHJhbnNhY3Rpb25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbmV4dFRyYW5zYWN0aW9uIFBheW1lbnRUcmFuc2FjdGlvbj8gQHJlbGF0aW9uKCJUcmFuc2FjdGlvbkhpc3RvcnkiKQoKICBAQGluZGV4KFthY2NvdW50SWRdKQp9Cgptb2RlbCBCcmFuZEFmZmlsaWF0ZUxpbmsgewogIGlkICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZGVzY3JpcHRpb24gU3RyaW5nPwogIHVybFBhdGggICAgIFN0cmluZwogIGNvbW1pc3Npb24gIEZsb2F0ICAgIEBkZWZhdWx0KDAuMikKICBtZXRhRGF0YSAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBicmFuZElkICAgICAgICBJbnQKICBhZmZpbGlhdGVMaW5rcyBBZmZpbGlhdGVMaW5rW10KCiAgYnJhbmQgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KFticmFuZElkXSkKfQoKbW9kZWwgQWZmaWxpYXRlTGluayB7CiAgaWQgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjcmVhdGVkICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBtZXRhRGF0YSBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgICAgICAgICAgICAgICBJbnQKICBicmFuZEFmZmlsaWF0ZUxpbmtJZCBJbnQKICBhZmZpbGlhdGVDbGlja3MgICAgICBBZmZpbGlhdGVDbGlja1tdCgogIGFmZmlsaWF0ZSAgICAgICAgICBVc2VyICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmRBZmZpbGlhdGVMaW5rIEJyYW5kQWZmaWxpYXRlTGluayBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRBZmZpbGlhdGVMaW5rSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBBZmZpbGlhdGVDbGljayB7CiAgaWQgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIHZpc2l0b3JJcCBTdHJpbmc/CiAgb3B0SW5JZCAgSW50CiAgbWV0YURhdGEgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGFmZmlsaWF0ZUxpbmtJZCBJbnQKCiAgb3B0aW4gICAgICAgICAgT3B0SW4gICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGFmZmlsaWF0ZUxpbmsgIEFmZmlsaWF0ZUxpbmsgICAgQHJlbGF0aW9uKGZpZWxkczogW2FmZmlsaWF0ZUxpbmtJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYWZmaWxpYXRlRXZlbnQgQWZmaWxpYXRlRXZlbnRbXQp9Cgptb2RlbCBBZmZpbGlhdGVFdmVudCB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBldmVudCAgICAgICAgICAgICBTdHJpbmcgLy8gY2xpY2ssIHB1cmNoYXNlLCBldGMuCiAgY3JlYXRlZCAgICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgdmlzaXRvcklwICAgICAgICAgU3RyaW5nPwogIHVybFBhdGggICAgICAgICAgIFN0cmluZz8KICByZXZlbnVlICAgICAgICAgICBGbG9hdD8KICBjb21taXNzaW9uQW1vdW50ICBGbG9hdD8KICBjb21taXNzaW9uUGVyY2VudCBGbG9hdD8KICBtZXRhRGF0YSAgICAgICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBhZmZpbGlhdGVDbGlja0lkIEludAoKICBhZmZpbGlhdGVDbGljayBBZmZpbGlhdGVDbGljaz8gQHJlbGF0aW9uKGZpZWxkczogW2FmZmlsaWF0ZUNsaWNrSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBTYXZlZEZpbGUgewogIGlkICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgICAgU3RyaW5nPwogIHR5cGUgICAgICBTdHJpbmc/IC8vIGF1ZGllbmNlLXJlcG9ydCwgc2VhcmNoLWV4cG9ydCwgY2FtcGFpZ24taW52aXRlCiAgdXJsICAgICAgIFN0cmluZz8KICBzYXZlZERhdGUgRGF0ZVRpbWU/CiAgbWV0YURhdGEgIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBicmFuZElkIEludD8KICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJzYXZlZGZpbGUiKQp9Cgptb2RlbCBDYW1wYWlnbkludml0ZSB7CiAgaWQgICAgICAgICAgICAgICAgSW50IEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgc29jaWFsUHJvZmlsZUlkICAgSW50PwogIGJyYW5kSWQgICAgICAgICAgIEludAogIGNhbXBhaWduSWQgICAgICAgIEludD8KICBvcHRJbklkICAgICAgICAgICBJbnQ/IEB1bmlxdWUKICBjb2RlICAgICAgICAgICAgICBTdHJpbmc/IEB1bmlxdWUKICBjcmVhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBkZWNsaW5lRGF0ZSAgICAgIERhdGVUaW1lPwogIGRlY2xpbmVSZWFzb24gICAgU3RyaW5nPyAgQGRiLlRleHQKCiAgbWV0YURhdGEgICAgICAgICAgSnNvbj8gQGRlZmF1bHQoInt9IikKCiAgYnJhbmQgICAgICAgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiAgICAgICAgICBDYW1wYWlnbj8gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNvY2lhbFByb2ZpbGUgICAgIFNvY2lhbFByb2ZpbGU/IEByZWxhdGlvbihmaWVsZHM6IFtzb2NpYWxQcm9maWxlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG9wdEluICAgICAgICAgICAgIE9wdEluPyBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaW5kZXgoW3NvY2lhbFByb2ZpbGVJZF0pCn0KCm1vZGVsIENyZWF0b3JMaXN0IHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGJyYW5kSWQgICAgSW50CiAgY2FtcGFpZ25JZCBJbnQ/CiAgY3JlYXRlZCAgICBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgYXJjaGl2ZWQgICBEYXRlVGltZT8KICB0aXRsZSAgICAgIFN0cmluZwogIG1ldGFEYXRhICAgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0b3JzICBDcmVhdG9yTGlzdEl0ZW1bXQogIGJyYW5kICAgICBCcmFuZCAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduICBDYW1wYWlnbj8gICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgc2VxdWVuY2VzIFNlcXVlbmNlW10KCiAgQEBtYXAoImNyZWF0b3JsaXN0IikKfQoKbW9kZWwgQ3JlYXRvckxpc3RJdGVtIHsKICBpZCAgICAgICAgICAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc29jaWFsUHJvZmlsZUlkIEludAogIGNyZWF0b3JMaXN0SWQgICBJbnQKCiAgc2F2ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGludml0ZWQgIERhdGVUaW1lPwogIHRhZ3MgICAgIEpzb24/CiAgZmVlZGJhY2sgU3RyaW5nPyAgIEBkYi5UZXh0CiAgYXJjaGl2ZWQgRGF0ZVRpbWU/CiAgbWV0YURhdGEgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0b3JMaXN0ICAgQ3JlYXRvckxpc3QgICAgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzb2NpYWxQcm9maWxlIFNvY2lhbFByb2ZpbGU/IEByZWxhdGlvbihmaWVsZHM6IFtzb2NpYWxQcm9maWxlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2VxdWVuY2VPdXRib3VuZEVtYWlscyAgU2VxdWVuY2VPdXRib3VuZEVtYWlsW10KICBzZXF1ZW5jZUluYm91bmRFbWFpbHMgICBTZXF1ZW5jZUluYm91bmRFbWFpbFtdCiAgc2VxdWVuY2VJbWFwQ2hlY2twb2ludHMgU2VxdWVuY2VJbWFwQ2hlY2twb2ludFtdCgogIEBAaW5kZXgoW2NyZWF0b3JMaXN0SWRdKQogIEBAbWFwKCJjcmVhdG9ybGlzdGl0ZW0iKQp9Cgptb2RlbCBTb2NpYWxQcm9maWxlIHsKICBpZCAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc29jaWFsSWQgU3RyaW5nPyBAdW5pcXVlIC8vIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2FuIG5ldmVyIG92ZXJsYXAgYWNyb3NzIG11bHRpcGxlIHBsYXRmb3Jtcywgd2Ugc2hvdWxkIGFwcGVuZCB0aGUgcGxhdGZvcm0gdG8gdGhlIGJlZ2lubmluZyB0byBlbnN1cmUgaXTigJlzIGFsd2F5cyB1bmlxdWUKICB1c2VySWQgICBJbnQ/IC8vIHJlZ2lzdGVyZWQgdXNlciBpZCwgaWYgYXZhaWxhYmxlCgogIC8vIHNvY2lhbCBkYXRhCiAgcGxhdGZvcm0gICAgICBTdHJpbmcKICB1c2VybmFtZSAgICAgIFN0cmluZwogIGZ1bGxuYW1lICAgICAgU3RyaW5nPyAgQGRiLlZhckNoYXIoMTAyNCkKICBwcm9maWxlVXJsICAgIFN0cmluZz8KICBwcm9maWxlUGljVXJsIFN0cmluZz8gIEBkYi5WYXJDaGFyKDIwODMpIC8vIG5lZWQgdG8gc3BlY2lmeSBsZW5ndGgsIGRlZmF1bHQgc2l6ZSBpcyB0b28gc21hbGwKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGF2Z1ZpZXdzICAgICAgSW50PwogIHZlcmlmaWVkICAgICAgQm9vbGVhbj8KICBtZXRhRGF0YSAgICAgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCiAgYXVkaWVuY2VEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIHBoeWxsb0RhdGEgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgY3JlYXRlZCBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZCBEYXRlVGltZT8KCiAgY3JlYXRvckxpc3RJdGVtcyAgQ3JlYXRvckxpc3RJdGVtW10KICBjYW1wYWlnbkludml0ZXMgICBDYW1wYWlnbkludml0ZVtdCiAgdXNlciAgICAgICAgICAgICAgVXNlcj8gICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBpbmRleCh1c2VySWQpCiAgQEBtYXAoInNvY2lhbHByb2ZpbGUiKQp9Cgptb2RlbCBNZXNzYWdlVGVtcGxhdGUgewogIGlkICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsYWJlbCAgICBTdHJpbmc/CiAgdGVtcGxhdGUgU3RyaW5nICBAZGIuVGV4dAogIGJyYW5kSWQgIEludD8KICBicmFuZCAgICBCcmFuZD8gIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBtZXRhRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpIC8vIHRvIHNhdmUgYW55IGFkZGl0aW9uYWwgZGF0YSBzdWNoIGFzIHVzZXIgZGVmaW5lZCB2YXJpYWJsZXMKCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoIm1lc3NhZ2V0ZW1wbGF0ZSIpCn0KCm1vZGVsIEVtYWlsVGVtcGxhdGUgewogIGlkICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGxhYmVsICAgICAgU3RyaW5nPwogIHN1YmplY3QgICAgU3RyaW5nPwogIHRlbXBsYXRlICAgU3RyaW5nICBAZGIuVGV4dAogIGJyYW5kSWQgICAgSW50PwoKICBicmFuZCAgICAgIEJyYW5kPyAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG1ldGFEYXRhICAgSnNvbiAgICBAZGVmYXVsdCgie30iKSAvLyB0byBzYXZlIGFueSBhZGRpdGlvbmFsIGRhdGEgc3VjaCBhcyB1c2VyIGRlZmluZWQgdmFyaWFibGVzCgogIHNlcXVlbmNlU3RlcHMgICBTZXF1ZW5jZVN0ZXBbXQoKICBAQGluZGV4KFticmFuZElkXSkKfQoKbW9kZWwgU29jaWFsTGlzdGVuaW5nTGlzdCB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBicmFuZElkICAgIEludAogIGNhbXBhaWduSWQgSW50PyAgICAgIEB1bmlxdWUgLy8gb3B0aW9uYWxseSBsaW5rZWQgdG8gYSBjYW1wYWlnbgogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHVwZGF0ZWQgICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICBTdHJpbmcKICBwb3N0VHlwZSAgIFN0cmluZyAvLyBzcG9uc29yZWQgcG9zdHMsIHRvcCBwb3N0cywgb3IgcmVjZW50IHBvc3RzCiAgZmlsdGVycyAgICBKc29uPyAgICAgQGRlZmF1bHQoInt9IikgLy8gZmlsdGVycyB0byBzZWFyY2ggcG9zdHMgYnkgKGxvY2F0aW9uLCBkYXRlLCBoYXNodGFncywgbWVudGlvbnMsIGV0Yy4pCgogIGxhc3RGZXRjaGVkIERhdGVUaW1lPyAvLyBsYXN0IHRpbWUgcG9zdHMgd2VyZSBmZXRjaGVkCgogIGJyYW5kIEJyYW5kICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHBvc3RzIExpc3RUb1NvY2lhbFBvc3RbXQoKICBAQG1hcCgic29jaWFsbGlzdGVuaW5nbGlzdCIpCn0KCm1vZGVsIExpc3RUb1NvY2lhbFBvc3QgewogIGlkICAgICBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsaXN0SWQgSW50CiAgcG9zdElkIEludAoKICBsaXN0ICAgICAgIFNvY2lhbExpc3RlbmluZ0xpc3QgQHJlbGF0aW9uKGZpZWxkczogW2xpc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHNvY2lhbFBvc3QgU29jaWFsUG9zdCAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbcG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2xpc3RJZCwgcG9zdElkXSkKICBAQGluZGV4KFtwb3N0SWRdKQogIEBAbWFwKCJsaXN0dG9zb2NpYWxwb3N0IikKfQoKbW9kZWwgT3B0SW5WaWV3IHsKICBpZCAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgU3RyaW5nCiAgZmlsdGVycyBKc29uICAgQGRlZmF1bHQoInt9IikKCiAgY2FtcGFpZ25JZCBJbnQ/CiAgY2FtcGFpZ24gICBDYW1wYWlnbj8gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgib3B0aW52aWV3IikKfQoKbW9kZWwgUmFrdXRlbkFjdGl2aXR5IHsKICBpZCAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBvcmRlcklkICAgICAgU3RyaW5nPwogIG1ldGFEYXRhICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGNyZWF0ZWQgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBjbGlja3MgICAgICAgSW50PwogIG9yZGVycyAgICAgICBJbnQ/CiAgc2FsZXMgICAgICAgIEZsb2F0PwogIGNvbW1pc3Npb24gICBGbG9hdD8KICBhZHZlcnRpc2VySWQgSW50PwoKICB1c2VySWQgSW50CgogIHVzZXIgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInJha3V0ZW5hY3Rpdml0eSIpCn0KbW9kZWwgSW1wYWN0UmFkaXVzRXZlbnQgewogIGlkICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgICBTdHJpbmcgIC8vIGFjdGlvbi9jbGljawogIGNyZWF0ZWQgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBhbW91bnQgICAgICAgRmxvYXQ/CiAgY29tbWlzc2lvbiAgIEZsb2F0PwogIG1ldGFEYXRhICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgSW50CiAgYnJhbmRJZCBJbnQ/CgogIHVzZXIgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBicmFuZCBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBDcmVhdG9yU2VhcmNoRmlsdGVyIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgYnJhbmRJZCAgIEludAogIHRpdGxlICAgICBTdHJpbmcKICBmaWx0ZXJzICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgY3JlYXRlZEF0IERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkQXQgRGF0ZVRpbWU/CiAgYnJhbmQgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgQEBtYXAoImNyZWF0b3JzZWFyY2hmaWx0ZXIiKQp9Cgptb2RlbCBTZXF1ZW5jZSB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjYW1wYWlnbklkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdElkICAgICBJbnQKICB0aXRsZSAgICAgICAgICAgICBTdHJpbmcgICBAZGIuVmFyQ2hhcigyNTUpCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY29tcGxldGVkICAgICAgICAgQm9vbGVhbiAgQGRlZmF1bHQoZmFsc2UpCiAgYnJhbmRJZCAgICAgICAgICAgSW50CiAgZW5hYmxlZCAgICAgICAgICAgQm9vbGVhbiAgQGRlZmF1bHQoZmFsc2UpCgogIGNhbXBhaWduICAgICAgICAgIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdCAgICAgICBDcmVhdG9yTGlzdCBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmQgICAgICAgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBzdGVwcyAgICAgICAgICAgICBTZXF1ZW5jZVN0ZXBbXQogIG91dGJvdW5kRW1haWxzICAgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCiAgaW5ib3VuZEVtYWlscyAgICAgU2VxdWVuY2VJbmJvdW5kRW1haWxbXQogIGltYXBDaGVja3BvaW50cyAgIFNlcXVlbmNlSW1hcENoZWNrcG9pbnRbXQoKICBAQG1hcCgic2VxdWVuY2UiKQp9Cgptb2RlbCBTZXF1ZW5jZVN0ZXAgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZW1haWxUZW1wbGF0ZUlkICAgSW50CiAgZGF5c0FmdGVyUHJldmlvdXMgSW50CiAgb3JkZXIgICAgICAgICAgICAgSW50CiAgc3RlcElkICAgICAgICAgICAgSW50CgogIHNlcXVlbmNlICAgICAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgZW1haWxUZW1wbGF0ZSAgICAgRW1haWxUZW1wbGF0ZSBAcmVsYXRpb24oZmllbGRzOiBbZW1haWxUZW1wbGF0ZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgb3V0Ym91bmRFbWFpbHMgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCgogIEBAbWFwKCJzZXF1ZW5jZXN0ZXAiKQp9Cgptb2RlbCBTZXF1ZW5jZU91dGJvdW5kRW1haWwgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJdGVtSWQgSW50CiAgc2VxdWVuY2VTdGVwSWQgICAgSW50CiAgc2VudEF0ICAgICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCgogIHNlcXVlbmNlICAgICAgU2VxdWVuY2UgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3JMaXN0ICAgQ3JlYXRvckxpc3RJdGVtIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdEl0ZW1JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgc2VxdWVuY2VTdGVwICBTZXF1ZW5jZVN0ZXAgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlU3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlcXVlbmNlb3V0Ym91bmRlbWFpbCIpCn0KCm1vZGVsIFNlcXVlbmNlSW5ib3VuZEVtYWlsIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0b3JMaXN0SXRlbUlkIEludAogIHJlY2VpdmVkQXQgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIG1zZ0hhc2ggICAgICAgICAgIFN0cmluZwoKICBzZXF1ZW5jZSAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdElkIENyZWF0b3JMaXN0SXRlbSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJdGVtSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2VxdWVuY2VpbmJvdW5kZW1haWwiKQp9Cgptb2RlbCBTZXF1ZW5jZUltYXBDaGVja3BvaW50IHsKICBzZXF1ZW5jZUlkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdEl0ZW1JZCBJbnQKICBsYXN0UmVhZE1zZ0RhdGUgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBjcmVhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKCiAgc2VxdWVuY2UgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3RJZCBDcmVhdG9yTGlzdEl0ZW0gQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SXRlbUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbc2VxdWVuY2VJZCwgY3JlYXRvckxpc3RJdGVtSWRdKQogIEBAbWFwKCJzZXF1ZW5jZWltYXBjaGVja3BvaW50IikKfQ==",
|
|
1299
|
+
"inlineSchemaHash": "932d3948a47a76776dc5feb3e72bf99562c4ea94173cf7e064c609a27cb24f26",
|
|
1300
1300
|
"noEngine": false
|
|
1301
1301
|
}
|
|
1302
1302
|
config.dirname = '/'
|
package/index.js
CHANGED
|
@@ -1229,7 +1229,7 @@ const config = {
|
|
|
1229
1229
|
"value": "prisma-client-js"
|
|
1230
1230
|
},
|
|
1231
1231
|
"output": {
|
|
1232
|
-
"value": "/home/runner/github-runner-
|
|
1232
|
+
"value": "/home/runner/github-runner-H9ESHIpxz86Uy/creator-database/creator-database/client/creatorco/client",
|
|
1233
1233
|
"fromEnvVar": null
|
|
1234
1234
|
},
|
|
1235
1235
|
"config": {
|
|
@@ -1296,8 +1296,8 @@ const config = {
|
|
|
1296
1296
|
}
|
|
1297
1297
|
}
|
|
1298
1298
|
},
|
|
1299
|
-
"inlineSchema": "Z2VuZXJhdG9yIGVyZCB7CiAgcHJvdmlkZXIgICAgICAgICAgICAgICAgICA9ICJwcmlzbWEtZXJkLWdlbmVyYXRvciIKICBpbmNsdWRlUmVsYXRpb25Gcm9tRmllbGRzID0gdHJ1ZQogIG91dHB1dCA9ICIuLi8uLi9kb2NzL2NyZWF0b3Jjb19lcmQubWQiCn0KCmdlbmVyYXRvciBreXNlbHkgewogIHByb3ZpZGVyICAgICAgICAgPSAicHJpc21hLWt5c2VseSIKICBvdXRwdXQgICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28va3lzZWx5IgogIGZpbGVOYW1lICAgICAgICAgPSAidHlwZXMudHMiCiAgZW51bUZpbGVOYW1lICAgICA9ICJlbnVtcy50cyIKICByZWFkT25seUlkcyAgICAgID0gdHJ1ZQogIGpzb25UeXBlT3ZlcnJpZGUgPSBKc29uCn0KCmdlbmVyYXRvciBjbGllbnQgewogIHByb3ZpZGVyICAgICAgICA9ICJwcmlzbWEtY2xpZW50LWpzIgogIG91dHB1dCAgICAgICAgICA9ICIuLi8uLi9jbGllbnQvY3JlYXRvcmNvL2NsaWVudCIKICBwcmV2aWV3RmVhdHVyZXMgPSBbImZ1bGxUZXh0SW5kZXgiLCAiZnVsbFRleHRTZWFyY2giXQogIC8vIG1hY29zIChhcm0gb3IgeDg2KSwgbmF0aXZlLCBsaW51eCBhcm02NCBzc2wzLngsIHdpbmRvd3MKICBiaW5hcnlUYXJnZXRzICAgPSBbIm5hdGl2ZSIsICJkYXJ3aW4iLCAiZGFyd2luLWFybTY0IiwgImxpbnV4LWFybTY0LW9wZW5zc2wtMy4wLngiLCAid2luZG93cyIsICJkZWJpYW4tb3BlbnNzbC0zLjAueCIsICJsaW51eC1tdXNsLWFybTY0LW9wZW5zc2wtMy4wLngiLCAibGludXgtYXJtNjQtb3BlbnNzbC0xLjAueCJdCn0KCmRhdGFzb3VyY2UgZGIgewogIHByb3ZpZGVyID0gInBvc3RncmVzcWwiCiAgdXJsICAgICAgPSBlbnYoIkRBVEFCQVNFX1VSTCIpCn0KCm1vZGVsIFVzZXIgewogIGlkICAgICAgICAgICAgICAgICAgSW50ICAgICAgICAgICAgIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgcm9sZSAgICAgICAgICAgICAgICBTdHJpbmcKICBlbWFpbCAgICAgICAgICAgICAgIFN0cmluZz8gICAgICAgICBAdW5pcXVlCiAgcGFzc3dvcmQgICAgICAgICAgICBTdHJpbmc/CiAgcmVnaXN0ZXJlZCAgICAgICAgICBEYXRlVGltZSAgICAgICAgQGRlZmF1bHQobm93KCkpCiAgbGFzdExvZ2luRGF0ZSAgICAgICBEYXRlVGltZT8KICBmaXJzdE5hbWUgICAgICAgICAgIFN0cmluZz8KICBsYXN0TmFtZSAgICAgICAgICAgIFN0cmluZz8KICBwaG9uZSAgICAgICAgICAgICAgIFN0cmluZz8KICBwaG9uZUNvZGUgICAgICAgICAgIEludD8KICBwaG9uZVNob3J0ICAgICAgICAgIFN0cmluZz8KICBwcm9maWxlUGljVXJsICAgICAgIFN0cmluZz8gICAgICAgICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvcmdvdFBhc3N3b3JkS2V5ICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBhZmZpbGlhdGVTbHVnICAgICAgIFN0cmluZz8gICAgICAgICBAdW5pcXVlCiAgY2xvc2VkICAgICAgICAgICAgICBEYXRlVGltZT8KICBjbG9zZWRSZWFzb24gICAgICAgIFN0cmluZz8KICB1c2VyY29tTGFzdFN5bmNlZCAgIERhdGVUaW1lPyAgICAgICBAZGVmYXVsdChub3coKSkKICBleHRyYURhdGEgICAgICAgICAgIEpzb24gICAgICAgICAgICBAZGVmYXVsdCgie30iKQoKICByZWZlcnJlcklkIEludD8KCiAgcmVmZXJyZXIgICAgICAgICAgICBVc2VyPyAgICAgICAgICAgICAgICBAcmVsYXRpb24oIlJlZmVycmFscyIsIGZpZWxkczogW3JlZmVycmVySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHJlZmVycmVkVXNlcnMgICAgICAgVXNlcltdICAgICAgICAgICAgICAgQHJlbGF0aW9uKCJSZWZlcnJhbHMiKQogIGxvZ3MgICAgICAgICAgICAgICAgTG9nW10KICBjcmVhdG9yUHJvZmlsZSAgICAgIENyZWF0b3JQcm9maWxlPwogIGluc3RhZ3JhbVByb2ZpbGUgICAgSW5zdGFncmFtUHJvZmlsZT8KICB5b3V0dWJlUHJvZmlsZSAgICAgIFlvdXR1YmVQcm9maWxlPwogIHRpa3Rva1Byb2ZpbGUgICAgICAgVGlrdG9rUHJvZmlsZT8KICBmYWNlYm9va1Byb2ZpbGUgICAgIEZhY2Vib29rUHJvZmlsZT8KICB0d2l0dGVyUHJvZmlsZSAgICAgIFR3aXR0ZXJQcm9maWxlPwogIHR3aXRjaFByb2ZpbGUgICAgICAgVHdpdGNoUHJvZmlsZT8KICBicmFuZFByb2ZpbGVzICAgICAgIEJyYW5kVXNlclByb2ZpbGVbXQogIG9wdElucyAgICAgICAgICAgICAgT3B0SW5bXQogIGFzc2lnbmVkQnJhbmRzICAgICAgQnJhbmRbXQogIG1lc3NhZ2VzICAgICAgICAgICAgTWVzc2FnZVtdCiAgc29jaWFsUG9zdHMgICAgICAgICBTb2NpYWxQb3N0W10KICBwYXltZW50VHJhbnNhY3Rpb25zIFBheW1lbnRUcmFuc2FjdGlvbltdCiAgYWZmaWxpYXRlTGlua3MgICAgICBBZmZpbGlhdGVMaW5rW10KICBjYW1wYWlnblBpbnMgICAgICAgIENhbXBhaWduUGluW10KICBzb2NpYWxQcm9maWxlcyAgICAgIFNvY2lhbFByb2ZpbGVbXQogIHJha3V0ZW5BY3Rpdml0eSAgICAgUmFrdXRlbkFjdGl2aXR5W10KICBpbXBhY3RSYWRpdXNFdmVudHMgIEltcGFjdFJhZGl1c0V2ZW50W10KICAKICBAQGluZGV4KFtwaG9uZUNvZGUsIHBob25lXSkKICBAQG1hcCgidXNlciIpCiAgLy8gQEBmdWxsdGV4dChbZmlyc3ROYW1lLCBsYXN0TmFtZV0pCn0KCm1vZGVsIExvZyB7CiAgaWQgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCgogIHVzZXJJZCBJbnQ/CiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgZGF0YSBKc29uPwp9Cgptb2RlbCBDcmVhdG9yUHJvZmlsZSB7CiAgaWQgICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjb3VudHJ5ICAgICAgICAgIFN0cmluZz8KICByZWdpb24gICAgICAgICAgIFN0cmluZz8KICBiaXJ0aERhdGUgICAgICAgIERhdGVUaW1lPwogIGludGVyZXN0cyAgICAgICAgSnNvbj8gLy8gZGVwcmVjYXRlZAogIGdlbmRlciAgICAgICAgICAgU3RyaW5nPwogIHNoaXBwaW5nQWRkcmVzczEgU3RyaW5nPwogIHNoaXBwaW5nQWRkcmVzczIgU3RyaW5nPwogIHNoaXBwaW5nQ2l0eSAgICAgU3RyaW5nPwogIHNoaXBwaW5nUmVnaW9uICAgU3RyaW5nPwogIHNoaXBwaW5nQ291bnRyeSAgU3RyaW5nPwogIHNoaXBwaW5nUG9zdGNvZGUgU3RyaW5nPwogIHBoeWxsb1VzZXJJZCAgICAgU3RyaW5nPwogIHByb2ZpbGVTbHVnICAgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBwcm9maWxlU2V0dGluZ3MgIEpzb24/CiAgd2FsbGV0QWRkcmVzcyAgICBTdHJpbmc/ICAgQHVuaXF1ZQoKICBuaWNoZXMgQ3JlYXRvclRvQ2F0ZWdvcnlbXQoKICB1c2VySWQgSW50ICBAdW5pcXVlCiAgdXNlciAgIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHBoeWxsb1VzZXJJZCkKICBAQG1hcCgiY3JlYXRvcnByb2ZpbGUiKQp9Cgptb2RlbCBJbnN0YWdyYW1Qcm9maWxlIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgaW5zdGFncmFtSWQgU3RyaW5nPwoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBmdWxsTmFtZSAgICAgICAgICBTdHJpbmc/IEBkYi5WYXJDaGFyKDEwMjQpCiAgaXNCdXNpbmVzcyAgICAgICAgQm9vbGVhbj8KICBpc1ByaXZhdGUgICAgICAgICBCb29sZWFuPwogIGlzVmVyaWZpZWQgICAgICAgIEJvb2xlYW4/CiAgbWVkaWFDb3VudCAgICAgICAgSW50PwogIGZvbGxvd2luZ0NvdW50ICAgIEludD8KICB0b3RhbENvbW1lbnRzICAgICBJbnQ/CiAgdG90YWxMaWtlcyAgICAgICAgSW50PwogIGF2Z0NvbW1lbnRzICAgICAgIEZsb2F0PwogIGF2Z0xpa2VzICAgICAgICAgIEZsb2F0PwogIGJpbyAgICAgICAgICAgICAgIFN0cmluZz8KICBleHRlcm5hbFVybCAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBoYXNIaWdobGlnaHRSZWVscyBCb29sZWFuPwogIGNhdGVnb3J5ICAgICAgICAgIFN0cmluZz8KICBoYXNDbGlwcyAgICAgICAgICBCb29sZWFuPwogIGhhc0d1aWRlcyAgICAgICAgIEJvb2xlYW4/CiAgaGFzQ2hhbm5lbCAgICAgICAgQm9vbGVhbj8KICB0b3RhbElndHZWaWRlb3MgICBJbnQ/CiAgcHJvZmlsZVBpY1VybEhkICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpIC8vIERFUFJFQ0FURUQKICBsYXN0U3Rvcmllc1VwZGF0ZSBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICAgIEpzb24/CiAgcGh5bGxvRGF0YSAgIEpzb24/CiAgYXVkaWVuY2VEYXRhIEpzb24gICAgQGRlZmF1bHQoInt9IikKICB2aXNpYmlsaXR5ICAgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkICBJbnQ/ICAgQHVuaXF1ZQogIHVzZXIgICAgVXNlcj8gIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZElkIEludD8gICBAdW5pcXVlCiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleCh1c2VybmFtZSkKICBAQGluZGV4KGluc3RhZ3JhbUlkKQogIEBAbWFwKCJpbnN0YWdyYW1wcm9maWxlIikKfQoKbW9kZWwgVGlrdG9rUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGlrdG9rSWQgU3RyaW5nIEB1bmlxdWUKCiAgLy8gZmllbGRzIGNvbnNpc3RlbnQgYWNjcm9zcyBwcm9maWxlcwogIHVzZXJuYW1lICAgICAgU3RyaW5nPwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGhhbmRsZSAgICAgICAgIFN0cmluZz8KICBuaWNrbmFtZSAgICAgICBTdHJpbmc/CiAgZm9sbG93aW5nQ291bnQgSW50PwogIHRvdGFsQ29tbWVudHMgIEludD8KICB0b3RhbExpa2VzICAgICBJbnQ/CgogIGV4dHJhRGF0YSAgICBKc29uPwogIHBoeWxsb0RhdGEgICBKc29uPwogIGF1ZGllbmNlRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCiAgdmlzaWJpbGl0eSAgIFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCAgSW50PyAgIEB1bmlxdWUKICB1c2VyICAgIFVzZXI/ICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmRJZCBJbnQ/ICAgQHVuaXF1ZQogIGJyYW5kICAgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBtYXAoInRpa3Rva3Byb2ZpbGUiKQp9Cgptb2RlbCBZb3V0dWJlUHJvZmlsZSB7CiAgaWQgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHlvdXR1YmVJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBmb2xsb3dpbmdDb3VudCBJbnQ/CiAgZnVsbE5hbWUgICAgICAgU3RyaW5nPyAgQGRiLlZhckNoYXIoMTAyNCkKICBpc1ZlcmlmaWVkICAgICBCb29sZWFuPwogIHN1YnNjcmliZXJzICAgIEludD8KICBkZXNjcmlwdGlvbiAgICBTdHJpbmc/ICBAZGIuVGV4dAogIGNvdW50cnkgICAgICAgIFN0cmluZz8KICB0b3RhbFZpZXdzICAgICBJbnQ/CiAgdG90YWxWaWRlb3MgICAgSW50PwoKICBleHRyYURhdGEgICAgSnNvbj8KICBwaHlsbG9EYXRhICAgSnNvbj8KICBhdWRpZW5jZURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKQogIHZpc2liaWxpdHkgICBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgIEludD8gICBAdW5pcXVlCiAgdXNlciAgICBVc2VyPyAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGJyYW5kSWQgSW50PyAgIEB1bmlxdWUKICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAbWFwKCJ5b3V0dWJlcHJvZmlsZSIpCn0KCm1vZGVsIFR3aXRjaFByb2ZpbGUgewogIGlkICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR3aXRjaElkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoInR3aXRjaHByb2ZpbGUiKQp9Cgptb2RlbCBGYWNlYm9va1Byb2ZpbGUgewogIGlkICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgZmFjZWJvb2tJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcgICAgQHVuaXF1ZQogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGV4dHJhRGF0YSAgSnNvbj8KICBwaHlsbG9EYXRhIEpzb24/CiAgdmlzaWJpbGl0eSBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgSW50PyAgQHVuaXF1ZQogIHVzZXIgICBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAbWFwKCJmYWNlYm9va3Byb2ZpbGUiKQp9Cgptb2RlbCBUd2l0dGVyUHJvZmlsZSB7CiAgaWQgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR3aXR0ZXJJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmcgICAgQHVuaXF1ZQogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGV4dHJhRGF0YSAgSnNvbj8KICBwaHlsbG9EYXRhIEpzb24/CiAgdmlzaWJpbGl0eSBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgSW50PyAgQHVuaXF1ZQogIHVzZXIgICBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAbWFwKCJ0d2l0dGVycHJvZmlsZSIpCn0KCm1vZGVsIEJyYW5kVXNlclByb2ZpbGUgewogIGlkICAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXNlcklkICBJbnQKICBicmFuZElkIEludAoKICB1c2VyICBVc2VyICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmQgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbdXNlcklkXSkKICBAQGluZGV4KFticmFuZElkXSkKCiAgQEBtYXAoImJyYW5kdXNlcnByb2ZpbGUiKQp9Cgptb2RlbCBCcmFuZCB7CiAgaWQgICAgICAgICAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbmFtZSAgICAgICAgICAgICAgICAgICAgU3RyaW5nCiAgZGVzY3JpcHRpb24gICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgd2Vic2l0ZSAgICAgICAgICAgICAgICAgU3RyaW5nCiAgbW9udGhseUNvbnRhY3RzICAgICAgICAgSW50PwogIG1vbnRobHlSZXBvcnRzICAgICAgICAgIEludD8KICBsYXN0Q29udGFjdERpc3RyaWJ1dGlvbiBEYXRlVGltZT8KICBsb2dvVXJsICAgICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBhZmZpbGlhdGVCYXNlVXJsICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBhZmZpbGlhdGVDb21taXNzaW9uICAgICBGbG9hdD8KICBleHRyYURhdGEgICAgICAgICAgICAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKCiAgc3BlY2lhbGlzdElkICAgICAgICBJbnQ/CiAgZGVkaWNhdGVkU3BlY2lhbGlzdCBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbc3BlY2lhbGlzdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBpbnN0YWdyYW1Qcm9maWxlICAgICBJbnN0YWdyYW1Qcm9maWxlPwogIHlvdXR1YmVQcm9maWxlICAgICAgIFlvdXR1YmVQcm9maWxlPwogIHRpa3Rva1Byb2ZpbGUgICAgICAgIFRpa3Rva1Byb2ZpbGU/CiAgY2FtcGFpZ25zICAgICAgICAgICAgQ2FtcGFpZ25bXQogIGJyYW5kVXNlcnMgICAgICAgICAgIEJyYW5kVXNlclByb2ZpbGVbXQogIHNlYXJjaENvbnRhY3RzICAgICAgIFNlYXJjaENvbnRhY3RzW10KICByZXBvcnRDcmVkaXRzICAgICAgICBSZXBvcnRDcmVkaXRzW10KICBjYXRlZ29yaWVzICAgICAgICAgICBCcmFuZFRvQ2F0ZWdvcnlbXQogIHBheW1lbnRUcmFuc2FjdGlvbnMgIFBheW1lbnRUcmFuc2FjdGlvbltdCiAgc2F2ZWRmaWxlcyAgICAgICAgICAgU2F2ZWRGaWxlW10KICBjcmVhdG9yTGlzdHMgICAgICAgICBDcmVhdG9yTGlzdFtdCiAgYWZmaWxpYXRlTGlua3MgICAgICAgQnJhbmRBZmZpbGlhdGVMaW5rW10KICBtZXNzYWdlVGVtcGxhdGUgICAgICBNZXNzYWdlVGVtcGxhdGVbXQogIGVtYWlsVGVtcGxhdGVzICAgICAgIEVtYWlsVGVtcGxhdGVbXQogIHNvY2lhbExpc3RlbmluZ0xpc3RzIFNvY2lhbExpc3RlbmluZ0xpc3RbXQogIGNhbXBhaWduSW52aXRlcyAgICAgIENhbXBhaWduSW52aXRlW10KICBpbWFnZXMgICAgICAgICAgICAgICBCcmFuZFRvSW1hZ2VbXQogIGNyZWF0b3JzZWFyY2hmaWx0ZXIgIENyZWF0b3JTZWFyY2hGaWx0ZXJbXQogIHNlcXVlbmNlcyAgICAgICAgICAgIFNlcXVlbmNlW10KICBpbXBhY3RSYWRpdXNFdmVudHMgICBJbXBhY3RSYWRpdXNFdmVudFtdCgogIC8vIGZvciBhZ2VuY2llcwogIHBhcmVudEJyYW5kSWQgICAgICAgSW50PwogIHBhcmVudEJyYW5kICAgICAgICAgQnJhbmQ/IEByZWxhdGlvbigiQ2hpbGRCcmFuZHMiLCBmaWVsZHM6IFtwYXJlbnRCcmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjaGlsZEJyYW5kcyAgICAgICAgIEJyYW5kW10gQHJlbGF0aW9uKCJDaGlsZEJyYW5kcyIpCiAgLy8gZ2VuZXJhdGVkIChmb3Igc2VhcmNoKQogIHNlYXJjaE5hbWUgICAgICAgICAgU3RyaW5nPyBAZGVmYXVsdChkYmdlbmVyYXRlZCgpKQoKICBAQG1hcCgiYnJhbmQiKQp9Cgptb2RlbCBTZWFyY2hDb250YWN0cyB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgIFN0cmluZwogIHByZXZRdHkgICAgRmxvYXQKICBjaGFuZ2VRdHkgIEZsb2F0CiAgY3VycmVudFF0eSBGbG9hdAogIGNyZWF0ZWQgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQoKICBwcmV2UXR5UG9zdElkIEludD8gICAgICAgICAgICBAdW5pcXVlCiAgcHJldlF0eVBvc3QgICBTZWFyY2hDb250YWN0cz8gQHJlbGF0aW9uKCJwcmV2U2VhcmNoUXR5UG9zdElkIiwgZmllbGRzOiBbcHJldlF0eVBvc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbmV4dFF0eVBvc3QgICBTZWFyY2hDb250YWN0cz8gQHJlbGF0aW9uKCJwcmV2U2VhcmNoUXR5UG9zdElkIikKCiAgYnJhbmRJZCBJbnQKICBicmFuZCAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlYXJjaGNvbnRhY3RzIikKfQoKbW9kZWwgUmVwb3J0Q3JlZGl0cyB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgIFN0cmluZwogIHByZXZRdHkgICAgRmxvYXQKICBjaGFuZ2VRdHkgIEZsb2F0CiAgY3VycmVudFF0eSBGbG9hdAogIGNyZWF0ZWQgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQoKICBwcmV2UXR5UG9zdElkIEludD8gICAgICAgICAgIEB1bmlxdWUKICBwcmV2UXR5UG9zdCAgIFJlcG9ydENyZWRpdHM/IEByZWxhdGlvbigicHJldlJlcG9ydHNRdHlQb3N0SWQiLCBmaWVsZHM6IFtwcmV2UXR5UG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBuZXh0UXR5UG9zdCAgIFJlcG9ydENyZWRpdHM/IEByZWxhdGlvbigicHJldlJlcG9ydHNRdHlQb3N0SWQiKQoKICBicmFuZElkIEludAogIGJyYW5kICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgicmVwb3J0Y3JlZGl0cyIpCn0KCm1vZGVsIEJyYW5kVG9JbWFnZSB7CiAgaWQgICAgICAgICAgSW50ICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICBicmFuZElkICAgICBJbnQKICB0eXBlICAgICAgICBTdHJpbmcKCiAgYnJhbmQgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2l6ZXMgICAgICAgQnJhbmRJbWFnZVtdCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJicmFuZHRvaW1hZ2UiKQp9Cgptb2RlbCBCcmFuZFRvQ2F0ZWdvcnkgewogIGJyYW5kSWQgICAgSW50CiAgY2F0ZWdvcnlJZCBJbnQKCiAgY2FtcGFpZ24gQnJhbmQgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYXRlZ29yeSBDYXRlZ29yeSBAcmVsYXRpb24oZmllbGRzOiBbY2F0ZWdvcnlJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW2JyYW5kSWQsIGNhdGVnb3J5SWRdKQogIEBAbWFwKCJicmFuZHRvY2F0ZWdvcnkiKQp9Cgptb2RlbCBDcmVhdG9yVG9DYXRlZ29yeSB7CiAgY3JlYXRvclByb2ZpbGVJZCBJbnQKICBjYXRlZ29yeUlkICAgICAgIEludAoKICBjcmVhdG9yUHJvZmlsZSBDcmVhdG9yUHJvZmlsZSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvclByb2ZpbGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhdGVnb3J5ICAgICAgIENhdGVnb3J5ICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjYXRlZ29yeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbY3JlYXRvclByb2ZpbGVJZCwgY2F0ZWdvcnlJZF0pCn0KCm1vZGVsIENoYXQgewogIGlkICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICAgICAgIERhdGVUaW1lPyBAZGVmYXVsdChub3coKSkKICBjb252ZXJzYXRpb25JZCBTdHJpbmc/ICAgQHVuaXF1ZQogIG1ldGFEYXRhICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBvcHRJbklkIEludD8gQHVuaXF1ZQoKICBvcHRJbiAgICBPcHRJbj8gICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG1lc3NhZ2VzIE1lc3NhZ2VbXQoKICBAQG1hcCgiY2hhdCIpCn0KCm1vZGVsIE1lc3NhZ2UgewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCiAgc2VuZGVyICAgICBTdHJpbmcKICBjb250ZW50ICAgIFN0cmluZyAgICBAZGIuVGV4dAogIHJlYWQgICAgICAgQm9vbGVhbiAgIEBkZWZhdWx0KGZhbHNlKQogIHR5cGUgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJ0ZXh0IikKICBtZXNzYWdlU2lkIFN0cmluZz8KCiAgdXNlcklkIEludD8KICBjaGF0SWQgSW50CgogIHVzZXIgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY2hhdCBDaGF0ICBAcmVsYXRpb24oZmllbGRzOiBbY2hhdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2NoYXRJZF0pCiAgQEBtYXAoIm1lc3NhZ2UiKQp9Cgptb2RlbCBDYW1wYWlnbiB7CiAgaWQgICAgICAgICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgICAgICAgICAgICBTdHJpbmcKICBzbHVnICAgICAgICAgICAgICAgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBzdGF0dXMgICAgICAgICAgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJkcmFmdCIpIC8vIGRyYWZ0LCBwYXVzZWQsIHBlbmRpbmcsIHByaXZhdGUsIHB1Ymxpc2gsIHRyYXNoCiAgZGF0ZSAgICAgICAgICAgICAgICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBwdWJsaXNoRGF0ZSAgICAgICAgICAgRGF0ZVRpbWU/CiAgZGVzY3JpcHRpb24gICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHByb2R1Y3REZXNjcmlwdGlvbiAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwcml6ZURlc2NyaXB0aW9uICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgc3RyYXRlZ3kgICAgICAgICAgICAgIFN0cmluZz8gICBAZGVmYXVsdCgic2hvdXRvdXQiKQogIHNvY2lhbENoYW5uZWwgICAgICAgICBTdHJpbmc/CiAgc29jaWFsQ2hhbm5lbHMgICAgICAgIEpzb24/CiAgZmFjZWJvb2tSZWFjaCAgICAgICAgIEludD8KICBmYWNlYm9va0VuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgaW5zdGFncmFtUmVhY2ggICAgICAgIEludD8KICBpbnN0YWdyYW1FbmdhZ2VtZW50ICAgRmxvYXQ/CiAgeW91dHViZVJlYWNoICAgICAgICAgIEludD8KICB5b3V0dWJlRW5nYWdlbWVudCAgICAgRmxvYXQ/CiAgdHdpdHRlclJlYWNoICAgICAgICAgIEludD8KICB0d2l0dGVyRW5nYWdlbWVudCAgICAgRmxvYXQ/CiAgdGlrdG9rUmVhY2ggICAgICAgICAgIEludD8KICB0aWt0b2tFbmdhZ2VtZW50ICAgICAgRmxvYXQ/CiAgdHdpdGNoUmVhY2ggICAgICAgICAgIEludD8KICB0d2l0Y2hFbmdhZ2VtZW50ICAgICAgRmxvYXQ/CiAgcXVhbnRpdHkgICAgICAgICAgICAgIEludCAgICAgICBAZGVmYXVsdCgwKQogIGhvbGRDb3N0ICAgICAgICAgICAgICBGbG9hdD8KICB2YWx1ZSAgICAgICAgICAgICAgICAgRmxvYXQ/CiAgcGFpZEFtb3VudCAgICAgICAgICAgIEZsb2F0PwogIG1pbkFnZSAgICAgICAgICAgICAgICBJbnQ/CiAgbWF4QWdlICAgICAgICAgICAgICAgIEludD8KICB2aXN1YWxzICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcGhvdG9UYWdzICAgICAgICAgICAgIEpzb24/CiAgaGFzaHRhZ3MgICAgICAgICAgICAgIEpzb24/CiAgc3RvcnlIYXNodGFncyAgICAgICAgIEpzb24/CiAgc3RvcnlNZW50aW9ucyAgICAgICAgIEpzb24/CiAgY2FwdGlvbiAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHBhc3N3b3JkICAgICAgICAgICAgICBTdHJpbmc/CiAgY29udGVudEZvcm1hdHMgICAgICAgIEpzb24/CiAgcGFpZENhbXBhaWduICAgICAgICAgIEJvb2xlYW4/CiAgbWluUGFpZEFtb3VudCAgICAgICAgIEZsb2F0PwogIG1heFBhaWRBbW91bnQgICAgICAgICBGbG9hdD8KICBwYXltZW50VHlwZSAgICAgICAgICAgU3RyaW5nPwogIG1vbnRobHlBY3RpdmF0ZWRHb2FsICBJbnQ/IC8vIFJlZHVuZGFudC9EZXByZWNhdGVkCiAgZXhwZWN0ZWRPcHRJbnMgICAgICAgIEludD8gLy8gUmVkdW5kYW50L0RlcHJlY2F0ZWQKICBnb2FsQWN0aXZhdGlvbnMgICAgICAgRmxvYXQ/CiAgZ29hbE9wdElucyAgICAgICAgICAgIEZsb2F0PwogIHJlcXVpcmVzU2hpcHBpbmcgICAgICBCb29sZWFuPwogIGRpc2FibGVRdWFsaWZpY2F0aW9ucyBCb29sZWFuPwogIGRpc2FibGVBY3RpdmF0aW9ucyAgICBCb29sZWFuPwogIGFmZmlsaWF0ZUxpbmtQYXRoICAgICBTdHJpbmc/CiAgbWV0YURhdGEgICAgICAgICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBzdGVwcyAgICAgICAgQ2FtcGFpZ25TdGVwW10KICBjYXRlZ29yaWVzICAgQ2FtcGFpZ25Ub0NhdGVnb3J5W10KICBvcHRJbnMgICAgICAgT3B0SW5bXQogIGltYWdlcyAgICAgICBDYW1wYWlnblRvSW1hZ2VbXQogIHZhcmlhYmxlcyAgICBWYXJpYWJsZVtdCiAgY291bnRyaWVzICAgIENhbXBhaWduVG9Db3VudHJ5W10KICBjYW1wYWlnblBpbnMgQ2FtcGFpZ25QaW5bXQogIHNvY2lhbFBvc3RzICBTb2NpYWxQb3N0W10KICBjYW1wYWlnbkludml0ZXMgQ2FtcGFpZ25JbnZpdGVbXQoKICBicmFuZElkICAgICAgSW50CiAgYnJhbmQgICAgICAgIEJyYW5kICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjcmVhdG9yTGlzdHMgQ3JlYXRvckxpc3RbXQogIG9wdEluVmlld3MgICBPcHRJblZpZXdbXQogIHNlcXVlbmNlcyAgICBTZXF1ZW5jZVtdCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJjYW1wYWlnbiIpCn0KCm1vZGVsIENhbXBhaWduUGluIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHVzZXJJZCAgICAgSW50CiAgY2FtcGFpZ25JZCBJbnQKICBjcmVhdGVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBub3RpZmllZCAgIERhdGVUaW1lPwoKICB1c2VyICAgICBVc2VyICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbdXNlcklkXSkKCiAgQEBtYXAoImNhbXBhaWducGluIikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0ltYWdlIHsKICBpZCAgICAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNhbXBhaWduSWQgSW50CiAgdHlwZSAgICAgICBTdHJpbmcKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2l6ZXMgSW1hZ2VbXQoKICBAQG1hcCgiY2FtcGFpZ250b2ltYWdlIikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0NhdGVnb3J5IHsKICBjYW1wYWlnbklkIEludAogIGNhdGVnb3J5SWQgSW50CgogIGNhbXBhaWduIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2F0ZWdvcnkgQ2F0ZWdvcnkgQHJlbGF0aW9uKGZpZWxkczogW2NhdGVnb3J5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjYW1wYWlnbklkLCBjYXRlZ29yeUlkXSkKICBAQG1hcCgiY2FtcGFpZ250b2NhdGVnb3J5IikKfQoKbW9kZWwgQ2FtcGFpZ25Ub0NvdW50cnkgewogIGNhbXBhaWduSWQgSW50CiAgY291bnRyeUlkICBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjb3VudHJ5ICBDb3VudHJ5ICBAcmVsYXRpb24oZmllbGRzOiBbY291bnRyeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbY2FtcGFpZ25JZCwgY291bnRyeUlkXSkKICBAQG1hcCgiY2FtcGFpZ250b2NvdW50cnkiKQp9Cgptb2RlbCBWYXJpYWJsZSB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgIFN0cmluZwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBtZXRhRGF0YSAgICBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNhbXBhaWduSWQgSW50CgogIGNhbXBhaWduIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIG9wdGlvbnMgICAgICAgIFZhcmlhYmxlT3B0aW9uW10KICBvcHRJblZhcmlhYmxlcyBPcHRJblZhcmlhYmxlW10KfQoKbW9kZWwgVmFyaWFibGVPcHRpb24gewogIGlkICAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgICAgICBTdHJpbmcKICBkZXNjcmlwdGlvbiBTdHJpbmc/IEBkYi5UZXh0CiAgbWV0YURhdGEgICAgSnNvbiAgICBAZGVmYXVsdCgie30iKQoKICB2YXJpYWJsZUlkIEludAoKICB2YXJpYWJsZSBWYXJpYWJsZSBAcmVsYXRpb24oZmllbGRzOiBbdmFyaWFibGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBvcHRJblZhcmlhYmxlcyBPcHRJblZhcmlhYmxlW10KfQoKbW9kZWwgU3RlcCB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNsdWcgICAgICAgIFN0cmluZyAgQHVuaXF1ZQogIHRpdGxlICAgICAgIFN0cmluZz8KICBkZXNjcmlwdGlvbiBTdHJpbmc/IEBkYi5UZXh0CiAgZGF0YSAgICAgICAgSnNvbj8KCiAgY2FtcGFpZ25TdGVwcyBDYW1wYWlnblN0ZXBbXQoKICBAQG1hcCgic3RlcCIpCn0KCm1vZGVsIENhbXBhaWduU3RlcCB7CiAgaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50IEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgcGxhY2VtZW50ICAgICAgICAgICAgICAgICAgICAgSW50CiAgc3RlcFNldHRpbmdzICAgICAgICAgICAgICAgICAgSnNvbj8KICBhY3Rpb25lZSAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc/CiAgaW5zdHJ1Y3Rpb25zICAgICAgICAgICAgICAgICAgU3RyaW5nPyBAZGIuVGV4dAogIGN1c3RvbVN0ZXBUaXRsZSAgICAgICAgICAgICAgIFN0cmluZz8KICBjdXN0b21Gb3JtICAgICAgICAgICAgICAgICAgICBKc29uPwogIG1ldGFEYXRhICAgICAgICAgICAgICAgICAgICAgIEpzb24gQGRlZmF1bHQoInt9IikKICBjYW1wYWlnbklkICAgIEludAogIHN0ZXBJZCAgICAgICAgSW50PwoKICBjYW1wYWlnbiAgICAgIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc3RlcCAgICAgICAgICBTdGVwPyAgICBAcmVsYXRpb24oZmllbGRzOiBbc3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjdXJyZW50T3B0SW5zIE9wdEluW10KCiAgb3B0SW5TdGVwcyBPcHRJblN0ZXBbXQoKICBAQGluZGV4KFtjYW1wYWlnbklkXSkKCiAgQEBtYXAoImNhbXBhaWduc3RlcCIpCn0KCm1vZGVsIE9wdEluU3RlcCB7CiAgaWQgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvbXBsZXRlZCBEYXRlVGltZT8KICBkYXRhICAgICAgSnNvbj8KCiAgb3B0SW5JZCAgICAgICAgSW50CiAgY2FtcGFpZ25TdGVwSWQgSW50CiAgc29jaWFsUG9zdElkICAgSW50PyAvLyB0ZW1wb3JhcnkgZm9yIG1vdmluZyBzaG91dG91dERhdGEgdG8gc29jaWFsUG9zdHMKCiAgb3B0SW4gICAgICAgIE9wdEluICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduU3RlcCBDYW1wYWlnblN0ZXAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduU3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW29wdEluSWRdKQogIEBAaW5kZXgoW2NhbXBhaWduU3RlcElkXSkKICBAQG1hcCgib3B0aW5zdGVwIikKfQoKbW9kZWwgQ2F0ZWdvcnkgewogIGlkICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNsdWcgIFN0cmluZyBAdW5pcXVlCiAgdGl0bGUgU3RyaW5nCgogIGNhbXBhaWducyBDYW1wYWlnblRvQ2F0ZWdvcnlbXQogIGJyYW5kcyAgICBCcmFuZFRvQ2F0ZWdvcnlbXQogIGNyZWF0b3JzICBDcmVhdG9yVG9DYXRlZ29yeVtdCgogIEBAbWFwKCJjYXRlZ29yeSIpCn0KCm1vZGVsIE9wdEluIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc3RhdHVzICAgICAgICAgIFN0cmluZyAgICBAZGVmYXVsdCgicGVuZGluZyIpCiAgY3JlYXRlZCAgICAgICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBhY3RpdmF0ZWQgICAgICAgRGF0ZVRpbWU/CiAgY29tcGxldGVkICAgICAgIERhdGVUaW1lPwogIGNhbmNlbGxlZCAgICAgICBEYXRlVGltZT8KICBjYW5jZWxsZWREYXRhICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgY2FuY2VsUmVxdWVzdGVkIERhdGVUaW1lPwogIHJlaW52aXRlZCAgICAgICBEYXRlVGltZT8KICBzZWVuICAgICAgICAgICAgQm9vbGVhbiAgIEBkZWZhdWx0KGZhbHNlKQogIGluc3RydWN0aW9ucyAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwYXltZW50QW1vdW50ICAgRmxvYXQ/CiAgcGF5bWVudFN0YXR1cyAgIFN0cmluZyAgICBAZGVmYXVsdCgicGVuZGluZyIpIC8vIGRlcHJhY2F0ZWQgLS0gcmVmZXIgdG8gdHJvbGxleSBwYXltZW50IHRhYmxlCiAgZXh0cmFEYXRhICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgICAgICAgIEludAogIGNhbXBhaWduSWQgICAgSW50CiAgY3VycmVudFN0ZXBJZCBJbnQ/CgogIHVzZXIgICAgICAgIFVzZXIgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduICAgIENhbXBhaWduICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjdXJyZW50U3RlcCBDYW1wYWlnblN0ZXA/IEByZWxhdGlvbihmaWVsZHM6IFtjdXJyZW50U3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgdmFyaWFibGVzICBPcHRJblZhcmlhYmxlW10KICBvcHRJblN0ZXBzIE9wdEluU3RlcFtdCiAgY2hhdCAgICAgICBDaGF0PwogIGNhbXBhaWduSW52aXRlcyBDYW1wYWlnbkludml0ZVtdCiAgdHJvbGxleVBheW1lbnRzIFRyb2xsZXlQYXltZW50W10KICBhZmZpbGlhdGVDbGlja3MgQWZmaWxpYXRlQ2xpY2tbXQoKICBAQGluZGV4KFt1c2VySWRdKQogIEBAaW5kZXgoW2NhbXBhaWduSWRdKQogIEBAbWFwKCJvcHRpbiIpCn0KCm1vZGVsIFRyb2xsZXlQYXltZW50IHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICAgICAgICAgICAgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBwYXltZW50SWQgICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgQHVuaXF1ZQogIHR5cGUgICAgICAgICAgICAgIHRyb2xsZXlQYXltZW50VHlwZT8KICBzdGF0dXMgICAgICAgICAgICB0cm9sbGV5UGF5bWVudFN0YXR1cwogIG9wdEluSWQgICAgICAgICAgIEludD8KICBwYXltZW50QW1vdW50ICAgICBJbnQKICBtZXRhRGF0YSAgICAgICAgICBKc29uICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQoInt9IikKCiAgb3B0SW4gICAgICAgICAgICAgT3B0SW4/ICAgICAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczpbaWRdKQp9CgplbnVtIHRyb2xsZXlQYXltZW50VHlwZSB7CiAgb3B0SW4KICB0aXAKICBhZmZpbGlhdGUKfQoKZW51bSB0cm9sbGV5UGF5bWVudFN0YXR1cyB7CiAgcGVuZGluZwogIHByb2Nlc3NpbmcKICBwcm9jZXNzZWQKICBmYWlsZWQKICByZXR1cm5lZAp9CgoKbW9kZWwgT3B0SW5WYXJpYWJsZSB7CiAgaWQgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCgogIG9wdEluSWQgICAgICAgICAgSW50CiAgdmFyaWFibGVJZCAgICAgICBJbnQKICBzZWxlY3RlZE9wdGlvbklkIEludAoKICBvcHRJbiAgICAgICAgICBPcHRJbiAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHZhcmlhYmxlICAgICAgIFZhcmlhYmxlICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt2YXJpYWJsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc2VsZWN0ZWRPcHRpb24gVmFyaWFibGVPcHRpb24gQHJlbGF0aW9uKGZpZWxkczogW3NlbGVjdGVkT3B0aW9uSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbb3B0SW5JZF0pCn0KCm1vZGVsIFNvY2lhbFBvc3QgewogIGlkICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHBoeWxsb0lkICAgIFN0cmluZz8gICBAdW5pcXVlCiAgbWV0YURhdGEgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgZGF0YSAgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpIC8vIERFUFJFQ0FURUQsIFVTRSBtZXRhRGF0YSBpbnN0ZWFkLCBzZWVtcyB0byBiZSBhbiBlcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIHRoaXMgZmllbGQsIHByb2FiYWJseSBkdWUgdG8gdGFibGUgc2l6ZQogIGxhc3RGZXRjaGVkIERhdGVUaW1lPwogIGxhc3RXZWJob29rIERhdGVUaW1lPwoKICAvLyBCQVNJQyBJTkZPCiAgcG9zdGVkICAgICAgICAgICAgIERhdGVUaW1lPwogIHRpdGxlICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBkZXNjcmlwdGlvbiAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgdXJsICAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHVybFBhdGggICAgICAgICAgICBTdHJpbmc/ICAgQHVuaXF1ZSAvLyBUaGlzIGlzIGhlcmUgc28gd2UgaGF2ZSBzb21lIGV4dGVybmFsIGlkZW50aWZpZXIgdG8gcXVpY2tseSBzZWFyY2ggYnkKICBmb3JtYXQgICAgICAgICAgICAgU3RyaW5nPwogIHR5cGUgICAgICAgICAgICAgICBTdHJpbmc/CiAgcGxhdGZvcm0gICAgICAgICAgIFN0cmluZz8KICB2aXNpYmlsaXR5ICAgICAgICAgU3RyaW5nPwogIGlzU3BvbnNvcmVkICAgICAgICBCb29sZWFuPwogIGhhc0NvbGxhYm9yYXRvcnMgICBCb29sZWFuPwogIGlzT3duZWRCeVVzZXIgICAgICBCb29sZWFuPwogIC8vIE1FVFJJQ1MKICB2aWV3cyAgICAgICAgICAgICAgSW50PwogIGltcHJlc3Npb25zICAgICAgICBJbnQ/CiAgaW1wcmVzc2lvbnNPcmdhbmljIEludD8KICBpbXByZXNzaW9uc1BhaWQgICAgSW50PwogIHJlYWNoICAgICAgICAgICAgICBJbnQ/CiAgcmVhY2hPcmdhbmljICAgICAgIEludD8KICByZWFjaFBhaWQgICAgICAgICAgSW50PwogIHdhdGNoSG91cnMgICAgICAgICBGbG9hdD8KICAvLyBFTkdBR0VNRU5UIE1FVFJJQ1MKICBsaWtlcyAgICAgICAgICAgICAgSW50PwogIGRpc2xpa2VzICAgICAgICAgICBJbnQ/CiAgY29tbWVudHMgICAgICAgICAgIEludD8KICBzYXZlcyAgICAgICAgICAgICAgSW50PwogIHNoYXJlcyAgICAgICAgICAgICBJbnQ/CgogIHVzZXJJZCAgICAgSW50PwogIGNhbXBhaWduSWQgSW50PwoKICB1c2VyICAgICBVc2VyPyAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY2FtcGFpZ24gQ2FtcGFpZ24/ICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBsaXN0cyAgICBMaXN0VG9Tb2NpYWxQb3N0W10KCiAgQEBpbmRleChjYW1wYWlnbklkKQogIEBAaW5kZXgodXNlcklkKQogIEBAaW5kZXgocG9zdGVkKQoKICBAQG1hcCgic29jaWFscG9zdCIpCn0KCm1vZGVsIEltYWdlIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXJsICAgICAgICAgICAgIFN0cmluZyBAZGIuVmFyQ2hhcigyMDgzKQogIHNpemUgICAgICAgICAgICBTdHJpbmcKICBjYW1wYWlnbkltYWdlSWQgSW50CgogIGNhbXBhaWduSW1hZ2UgQ2FtcGFpZ25Ub0ltYWdlIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbkltYWdlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoImltYWdlIikKfQoKbW9kZWwgQnJhbmRJbWFnZSB7CiAgaWQgICAgICAgICAgICAgIEludCAgIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgdXJsICAgICAgICAgICAgIFN0cmluZyBAZGIuVmFyQ2hhcigyMDgzKQogIHNpemUgICAgICAgICAgICBTdHJpbmcKICBicmFuZEltYWdlSWQgICAgSW50CgogIGJyYW5kSW1hZ2UgICAgICBCcmFuZFRvSW1hZ2UgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSW1hZ2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFticmFuZEltYWdlSWRdKQogIEBAbWFwKCJicmFuZGltYWdlIikKfQoKbW9kZWwgQ291bnRyeSB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvdW50cnlDb2RlIFN0cmluZyAgQHVuaXF1ZSBAZGIuVmFyQ2hhcigyKQogIGNvdW50cnlOYW1lIFN0cmluZyAgQGRiLlZhckNoYXIoNTAwKQogIHRlbGVDb2RlICAgIFN0cmluZyAgQGRiLlZhckNoYXIoMTApCiAgc3RhdGVzICAgICAgU3RhdGVbXQoKICBjYW1wYWlnbnMgQ2FtcGFpZ25Ub0NvdW50cnlbXQoKICBAQG1hcCgiY291bnRyeSIpCn0KCm1vZGVsIFN0YXRlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY291bnRyeUlkIEludAogIHN0YXRlQ29kZSBTdHJpbmcgQGRiLlZhckNoYXIoNTApCiAgc3RhdGVOYW1lIFN0cmluZyBAZGIuVmFyQ2hhcig1MDApCgogIGNvdW50cnkgQ291bnRyeSBAcmVsYXRpb24oZmllbGRzOiBbY291bnRyeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInN0YXRlIikKfQoKbW9kZWwgUGF5bWVudFRyYW5zYWN0aW9uIHsKICBpZCAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBhbW91bnQgICAgRmxvYXQKICBiYWxhbmNlICAgRmxvYXQKICB0eXBlICAgICAgU3RyaW5nCiAgZGF0ZSAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIG5vdGVzICAgICBTdHJpbmc/ICBAZGIuVGV4dAogIG1ldGFEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGFjY291bnRJZCBJbnQKCiAgYnJhbmRJZCAgICAgICAgICAgSW50PwogIGNyZWF0b3JJZCAgICAgICAgIEludD8KICBwcmV2VHJhbnNhY3Rpb25JZCBJbnQ/IEB1bmlxdWUKCiAgYnJhbmQgICAgICAgICAgIEJyYW5kPyAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3IgICAgICAgICBVc2VyPyAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9ySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHByZXZUcmFuc2FjdGlvbiBQYXltZW50VHJhbnNhY3Rpb24/IEByZWxhdGlvbigiVHJhbnNhY3Rpb25IaXN0b3J5IiwgZmllbGRzOiBbcHJldlRyYW5zYWN0aW9uSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG5leHRUcmFuc2FjdGlvbiBQYXltZW50VHJhbnNhY3Rpb24/IEByZWxhdGlvbigiVHJhbnNhY3Rpb25IaXN0b3J5IikKCiAgQEBpbmRleChbYWNjb3VudElkXSkKfQoKbW9kZWwgQnJhbmRBZmZpbGlhdGVMaW5rIHsKICBpZCAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGRlc2NyaXB0aW9uIFN0cmluZz8KICB1cmxQYXRoICAgICBTdHJpbmcKICBjb21taXNzaW9uICBGbG9hdCAgICBAZGVmYXVsdCgwLjIpCiAgbWV0YURhdGEgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgYnJhbmRJZCAgICAgICAgSW50CiAgYWZmaWxpYXRlTGlua3MgQWZmaWxpYXRlTGlua1tdCgogIGJyYW5kIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpbmRleChbYnJhbmRJZF0pCn0KCm1vZGVsIEFmZmlsaWF0ZUxpbmsgewogIGlkICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgbWV0YURhdGEgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgdXNlcklkICAgICAgICAgICAgICAgSW50CiAgYnJhbmRBZmZpbGlhdGVMaW5rSWQgSW50CiAgYWZmaWxpYXRlQ2xpY2tzICAgICAgQWZmaWxpYXRlQ2xpY2tbXQoKICBhZmZpbGlhdGUgICAgICAgICAgVXNlciAgICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGJyYW5kQWZmaWxpYXRlTGluayBCcmFuZEFmZmlsaWF0ZUxpbmsgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kQWZmaWxpYXRlTGlua0lkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgQWZmaWxpYXRlQ2xpY2sgewogIGlkICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNyZWF0ZWQgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICB2aXNpdG9ySXAgU3RyaW5nPwogIG9wdEluSWQgIEludAogIG1ldGFEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBhZmZpbGlhdGVMaW5rSWQgSW50CgogIG9wdGluICAgICAgICAgIE9wdEluICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBhZmZpbGlhdGVMaW5rICBBZmZpbGlhdGVMaW5rICAgIEByZWxhdGlvbihmaWVsZHM6IFthZmZpbGlhdGVMaW5rSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGFmZmlsaWF0ZUV2ZW50IEFmZmlsaWF0ZUV2ZW50W10KfQoKbW9kZWwgQWZmaWxpYXRlRXZlbnQgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgZXZlbnQgICAgICAgICAgICAgU3RyaW5nIC8vIGNsaWNrLCBwdXJjaGFzZSwgZXRjLgogIGNyZWF0ZWQgICAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIHZpc2l0b3JJcCAgICAgICAgIFN0cmluZz8KICB1cmxQYXRoICAgICAgICAgICBTdHJpbmc/CiAgcmV2ZW51ZSAgICAgICAgICAgRmxvYXQ/CiAgY29tbWlzc2lvbkFtb3VudCAgRmxvYXQ/CiAgY29tbWlzc2lvblBlcmNlbnQgRmxvYXQ/CiAgbWV0YURhdGEgICAgICAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgYWZmaWxpYXRlQ2xpY2tJZCBJbnQKCiAgYWZmaWxpYXRlQ2xpY2sgQWZmaWxpYXRlQ2xpY2s/IEByZWxhdGlvbihmaWVsZHM6IFthZmZpbGlhdGVDbGlja0lkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgU2F2ZWRGaWxlIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgIFN0cmluZz8KICB0eXBlICAgICAgU3RyaW5nPyAvLyBhdWRpZW5jZS1yZXBvcnQsIHNlYXJjaC1leHBvcnQsIGNhbXBhaWduLWludml0ZQogIHVybCAgICAgICBTdHJpbmc/CiAgc2F2ZWREYXRlIERhdGVUaW1lPwogIG1ldGFEYXRhICBKc29uPyAgICAgQGRlZmF1bHQoInt9IikKCiAgYnJhbmRJZCBJbnQ/CiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2F2ZWRmaWxlIikKfQoKbW9kZWwgQ2FtcGFpZ25JbnZpdGUgewogIGlkICAgICAgICAgICAgICAgIEludCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpIEBpZAogIHNvY2lhbFByb2ZpbGVJZCAgIEludD8KICBicmFuZElkICAgICAgICAgICBJbnQKICBjYW1wYWlnbklkICAgICAgICBJbnQ/CiAgb3B0SW5JZCAgICAgICAgICAgSW50PyBAdW5pcXVlCiAgY29kZSAgICAgICAgICAgICAgU3RyaW5nPyBAdW5pcXVlCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZGVjbGluZURhdGUgICAgICBEYXRlVGltZT8KICBkZWNsaW5lUmVhc29uICAgIFN0cmluZz8gIEBkYi5UZXh0CgogIG1ldGFEYXRhICAgICAgICAgIEpzb24/IEBkZWZhdWx0KCJ7fSIpCgogIGJyYW5kICAgICAgICAgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gICAgICAgICAgQ2FtcGFpZ24/IEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBzb2NpYWxQcm9maWxlICAgICBTb2NpYWxQcm9maWxlPyBAcmVsYXRpb24oZmllbGRzOiBbc29jaWFsUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBvcHRJbiAgICAgICAgICAgICBPcHRJbj8gQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KFtzb2NpYWxQcm9maWxlSWRdKQp9Cgptb2RlbCBDcmVhdG9yTGlzdCB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBicmFuZElkICAgIEludAogIGNhbXBhaWduSWQgSW50PwogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGFyY2hpdmVkICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICBTdHJpbmcKICBtZXRhRGF0YSAgIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBjcmVhdG9ycyAgQ3JlYXRvckxpc3RJdGVtW10KICBicmFuZCAgICAgQnJhbmQgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiAgQ2FtcGFpZ24/ICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNlcXVlbmNlcyBTZXF1ZW5jZVtdCgogIEBAbWFwKCJjcmVhdG9ybGlzdCIpCn0KCm1vZGVsIENyZWF0b3JMaXN0SXRlbSB7CiAgaWQgICAgICAgICAgICAgIEludCBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNvY2lhbFByb2ZpbGVJZCBJbnQKICBjcmVhdG9yTGlzdElkICAgSW50CgogIHNhdmVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICBpbnZpdGVkICBEYXRlVGltZT8KICB0YWdzICAgICBKc29uPwogIGZlZWRiYWNrIFN0cmluZz8gICBAZGIuVGV4dAogIGFyY2hpdmVkIERhdGVUaW1lPwogIG1ldGFEYXRhIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBjcmVhdG9yTGlzdCAgIENyZWF0b3JMaXN0ICAgIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgc29jaWFsUHJvZmlsZSBTb2NpYWxQcm9maWxlPyBAcmVsYXRpb24oZmllbGRzOiBbc29jaWFsUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIHNlcXVlbmNlT3V0Ym91bmRFbWFpbHMgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCiAgc2VxdWVuY2VJbmJvdW5kRW1haWxzICAgU2VxdWVuY2VJbmJvdW5kRW1haWxbXQogIHNlcXVlbmNlSW1hcENoZWNrcG9pbnRzIFNlcXVlbmNlSW1hcENoZWNrcG9pbnRbXQoKICBAQGluZGV4KFtjcmVhdG9yTGlzdElkXSkKICBAQG1hcCgiY3JlYXRvcmxpc3RpdGVtIikKfQoKbW9kZWwgU29jaWFsUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNvY2lhbElkIFN0cmluZz8gQHVuaXF1ZSAvLyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGNhbiBuZXZlciBvdmVybGFwIGFjcm9zcyBtdWx0aXBsZSBwbGF0Zm9ybXMsIHdlIHNob3VsZCBhcHBlbmQgdGhlIHBsYXRmb3JtIHRvIHRoZSBiZWdpbm5pbmcgdG8gZW5zdXJlIGl04oCZcyBhbHdheXMgdW5pcXVlCiAgdXNlcklkICAgSW50PyAvLyByZWdpc3RlcmVkIHVzZXIgaWQsIGlmIGF2YWlsYWJsZQoKICAvLyBzb2NpYWwgZGF0YQogIHBsYXRmb3JtICAgICAgU3RyaW5nCiAgdXNlcm5hbWUgICAgICBTdHJpbmcKICBmdWxsbmFtZSAgICAgIFN0cmluZz8gIEBkYi5WYXJDaGFyKDEwMjQpCiAgcHJvZmlsZVVybCAgICBTdHJpbmc/CiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICBAZGIuVmFyQ2hhcigyMDgzKSAvLyBuZWVkIHRvIHNwZWNpZnkgbGVuZ3RoLCBkZWZhdWx0IHNpemUgaXMgdG9vIHNtYWxsCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBhdmdWaWV3cyAgICAgIEludD8KICB2ZXJpZmllZCAgICAgIEJvb2xlYW4/CiAgbWV0YURhdGEgICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGF1ZGllbmNlRGF0YSAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKICBwaHlsbG9EYXRhICAgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0ZWQgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHVwZGF0ZWQgRGF0ZVRpbWU/CgogIGNyZWF0b3JMaXN0SXRlbXMgIENyZWF0b3JMaXN0SXRlbVtdCiAgY2FtcGFpZ25JbnZpdGVzICAgQ2FtcGFpZ25JbnZpdGVbXQogIHVzZXIgICAgICAgICAgICAgIFVzZXI/ICAgICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAaW5kZXgodXNlcklkKQogIEBAbWFwKCJzb2NpYWxwcm9maWxlIikKfQoKbW9kZWwgTWVzc2FnZVRlbXBsYXRlIHsKICBpZCAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbGFiZWwgICAgU3RyaW5nPwogIHRlbXBsYXRlIFN0cmluZyAgQGRiLlRleHQKICBicmFuZElkICBJbnQ/CiAgYnJhbmQgICAgQnJhbmQ/ICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbWV0YURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKSAvLyB0byBzYXZlIGFueSBhZGRpdGlvbmFsIGRhdGEgc3VjaCBhcyB1c2VyIGRlZmluZWQgdmFyaWFibGVzCgogIEBAaW5kZXgoW2JyYW5kSWRdKQogIEBAbWFwKCJtZXNzYWdldGVtcGxhdGUiKQp9Cgptb2RlbCBFbWFpbFRlbXBsYXRlIHsKICBpZCAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsYWJlbCAgICAgIFN0cmluZz8KICBzdWJqZWN0ICAgIFN0cmluZz8KICB0ZW1wbGF0ZSAgIFN0cmluZyAgQGRiLlRleHQKICBicmFuZElkICAgIEludD8KCiAgYnJhbmQgICAgICBCcmFuZD8gIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBtZXRhRGF0YSAgIEpzb24gICAgQGRlZmF1bHQoInt9IikgLy8gdG8gc2F2ZSBhbnkgYWRkaXRpb25hbCBkYXRhIHN1Y2ggYXMgdXNlciBkZWZpbmVkIHZhcmlhYmxlcwoKICBzZXF1ZW5jZVN0ZXBzICAgU2VxdWVuY2VTdGVwW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCn0KCm1vZGVsIFNvY2lhbExpc3RlbmluZ0xpc3QgewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgYnJhbmRJZCAgICBJbnQKICBjYW1wYWlnbklkIEludD8gICAgICBAdW5pcXVlIC8vIG9wdGlvbmFsbHkgbGlua2VkIHRvIGEgY2FtcGFpZ24KICBjcmVhdGVkICAgIERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkICAgIERhdGVUaW1lPwogIHRpdGxlICAgICAgU3RyaW5nCiAgcG9zdFR5cGUgICBTdHJpbmcgLy8gc3BvbnNvcmVkIHBvc3RzLCB0b3AgcG9zdHMsIG9yIHJlY2VudCBwb3N0cwogIGZpbHRlcnMgICAgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpIC8vIGZpbHRlcnMgdG8gc2VhcmNoIHBvc3RzIGJ5IChsb2NhdGlvbiwgZGF0ZSwgaGFzaHRhZ3MsIG1lbnRpb25zLCBldGMuKQoKICBsYXN0RmV0Y2hlZCBEYXRlVGltZT8gLy8gbGFzdCB0aW1lIHBvc3RzIHdlcmUgZmV0Y2hlZAoKICBicmFuZCBCcmFuZCAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBwb3N0cyBMaXN0VG9Tb2NpYWxQb3N0W10KCiAgQEBtYXAoInNvY2lhbGxpc3RlbmluZ2xpc3QiKQp9Cgptb2RlbCBMaXN0VG9Tb2NpYWxQb3N0IHsKICBpZCAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgbGlzdElkIEludAogIHBvc3RJZCBJbnQKCiAgbGlzdCAgICAgICBTb2NpYWxMaXN0ZW5pbmdMaXN0IEByZWxhdGlvbihmaWVsZHM6IFtsaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzb2NpYWxQb3N0IFNvY2lhbFBvc3QgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3Bvc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFtsaXN0SWQsIHBvc3RJZF0pCiAgQEBpbmRleChbcG9zdElkXSkKICBAQG1hcCgibGlzdHRvc29jaWFscG9zdCIpCn0KCm1vZGVsIE9wdEluVmlldyB7CiAgaWQgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgIFN0cmluZwogIGZpbHRlcnMgSnNvbiAgIEBkZWZhdWx0KCJ7fSIpCgogIGNhbXBhaWduSWQgSW50PwogIGNhbXBhaWduICAgQ2FtcGFpZ24/IEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoIm9wdGludmlldyIpCn0KCm1vZGVsIFJha3V0ZW5BY3Rpdml0eSB7CiAgaWQgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgb3JkZXJJZCAgICAgIFN0cmluZz8KICBtZXRhRGF0YSAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKICBjcmVhdGVkICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY2xpY2tzICAgICAgIEludD8KICBvcmRlcnMgICAgICAgSW50PwogIHNhbGVzICAgICAgICBGbG9hdD8KICBjb21taXNzaW9uICAgRmxvYXQ/CiAgYWR2ZXJ0aXNlcklkIEludD8KCiAgdXNlcklkIEludAoKICB1c2VyIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJyYWt1dGVuYWN0aXZpdHkiKQp9Cm1vZGVsIEltcGFjdFJhZGl1c0V2ZW50IHsKICBpZCAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0eXBlICAgICAgICAgU3RyaW5nICAvLyBhY3Rpb24vY2xpY2sKICBjcmVhdGVkICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgYW1vdW50ICAgICAgIEZsb2F0PwogIGNvbW1pc3Npb24gICBGbG9hdD8KICBtZXRhRGF0YSAgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgdXNlcklkIEludAogIGJyYW5kSWQgSW50PwoKICB1c2VyIFVzZXIgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmQgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKfQoKbW9kZWwgQ3JlYXRvclNlYXJjaEZpbHRlciB7CiAgaWQgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGJyYW5kSWQgICBJbnQKICB0aXRsZSAgICAgU3RyaW5nCiAgZmlsdGVycyAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQogIGNyZWF0ZWRBdCBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZEF0IERhdGVUaW1lPwogIGJyYW5kICAgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIEBAbWFwKCJjcmVhdG9yc2VhcmNoZmlsdGVyIikKfQoKbW9kZWwgU2VxdWVuY2UgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY2FtcGFpZ25JZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJZCAgICAgSW50CiAgdGl0bGUgICAgICAgICAgICAgU3RyaW5nICAgQGRiLlZhckNoYXIoMjU1KQogIGNyZWF0ZWRBdCAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGNvbXBsZXRlZCAgICAgICAgIEJvb2xlYW4gIEBkZWZhdWx0KGZhbHNlKQogIGJyYW5kSWQgICAgICAgICAgIEludAogIGVuYWJsZWQgICAgICAgICAgIEJvb2xlYW4gIEBkZWZhdWx0KGZhbHNlKQoKICBjYW1wYWlnbiAgICAgICAgICBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3QgICAgICAgQ3JlYXRvckxpc3QgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGJyYW5kICAgICAgICAgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgc3RlcHMgICAgICAgICAgICAgU2VxdWVuY2VTdGVwW10KICBvdXRib3VuZEVtYWlscyAgICBTZXF1ZW5jZU91dGJvdW5kRW1haWxbXQogIGluYm91bmRFbWFpbHMgICAgIFNlcXVlbmNlSW5ib3VuZEVtYWlsW10KICBpbWFwQ2hlY2twb2ludHMgICBTZXF1ZW5jZUltYXBDaGVja3BvaW50W10KCiAgQEBtYXAoInNlcXVlbmNlIikKfQoKbW9kZWwgU2VxdWVuY2VTdGVwIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0ZWRBdCAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIGVtYWlsVGVtcGxhdGVJZCAgIEludAogIGRheXNBZnRlclByZXZpb3VzIEludAogIG9yZGVyICAgICAgICAgICAgIEludAogIHN0ZXBJZCAgICAgICAgICAgIEludAoKICBzZXF1ZW5jZSAgICAgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGVtYWlsVGVtcGxhdGUgICAgIEVtYWlsVGVtcGxhdGUgQHJlbGF0aW9uKGZpZWxkczogW2VtYWlsVGVtcGxhdGVJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIG91dGJvdW5kRW1haWxzICBTZXF1ZW5jZU91dGJvdW5kRW1haWxbXQoKICBAQG1hcCgic2VxdWVuY2VzdGVwIikKfQoKbW9kZWwgU2VxdWVuY2VPdXRib3VuZEVtYWlsIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0b3JMaXN0SXRlbUlkIEludAogIHNlcXVlbmNlU3RlcElkICAgIEludAogIHNlbnRBdCAgICAgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQoKICBzZXF1ZW5jZSAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdCAgIENyZWF0b3JMaXN0SXRlbSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJdGVtSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNlcXVlbmNlU3RlcCAgU2VxdWVuY2VTdGVwIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZVN0ZXBJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJzZXF1ZW5jZW91dGJvdW5kZW1haWwiKQp9Cgptb2RlbCBTZXF1ZW5jZUluYm91bmRFbWFpbCB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBzZXF1ZW5jZUlkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdEl0ZW1JZCBJbnQKICByZWNlaXZlZEF0ICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBtc2dIYXNoICAgICAgICAgICBTdHJpbmcKCiAgc2VxdWVuY2UgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3RJZCBDcmVhdG9yTGlzdEl0ZW0gQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SXRlbUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlcXVlbmNlaW5ib3VuZGVtYWlsIikKfQoKbW9kZWwgU2VxdWVuY2VJbWFwQ2hlY2twb2ludCB7CiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJdGVtSWQgSW50CiAgbGFzdFJlYWRNc2dEYXRlICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCgogIHNlcXVlbmNlICAgICAgU2VxdWVuY2UgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3JMaXN0SWQgQ3JlYXRvckxpc3RJdGVtIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdEl0ZW1JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW3NlcXVlbmNlSWQsIGNyZWF0b3JMaXN0SXRlbUlkXSkKICBAQG1hcCgic2VxdWVuY2VpbWFwY2hlY2twb2ludCIpCn0=",
|
|
1300
|
-
"inlineSchemaHash": "
|
|
1299
|
+
"inlineSchema": "Z2VuZXJhdG9yIGVyZCB7CiAgcHJvdmlkZXIgICAgICAgICAgICAgICAgICA9ICJwcmlzbWEtZXJkLWdlbmVyYXRvciIKICBpbmNsdWRlUmVsYXRpb25Gcm9tRmllbGRzID0gdHJ1ZQogIG91dHB1dCA9ICIuLi8uLi9kb2NzL2NyZWF0b3Jjb19lcmQubWQiCn0KCmdlbmVyYXRvciBreXNlbHkgewogIHByb3ZpZGVyICAgICAgICAgPSAicHJpc21hLWt5c2VseSIKICBvdXRwdXQgICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28va3lzZWx5IgogIGZpbGVOYW1lICAgICAgICAgPSAidHlwZXMudHMiCiAgZW51bUZpbGVOYW1lICAgICA9ICJlbnVtcy50cyIKICByZWFkT25seUlkcyAgICAgID0gdHJ1ZQogIGNhbWVsQ2FzZSAgICAgICAgPSB0cnVlCiAganNvblR5cGVPdmVycmlkZSA9IEpzb24KICBwcmV2aWV3RmVhdHVyZXMgPSBbIm11bHRpU2NoZW1hIl0KfQoKZ2VuZXJhdG9yIGNsaWVudCB7CiAgcHJvdmlkZXIgICAgICAgID0gInByaXNtYS1jbGllbnQtanMiCiAgb3V0cHV0ICAgICAgICAgID0gIi4uLy4uL2NsaWVudC9jcmVhdG9yY28vY2xpZW50IgogIHByZXZpZXdGZWF0dXJlcyA9IFsiZnVsbFRleHRJbmRleCIsICJmdWxsVGV4dFNlYXJjaCJdCiAgLy8gbWFjb3MgKGFybSBvciB4ODYpLCBuYXRpdmUsIGxpbnV4IGFybTY0IHNzbDMueCwgd2luZG93cwogIGJpbmFyeVRhcmdldHMgICA9IFsibmF0aXZlIiwgImRhcndpbiIsICJkYXJ3aW4tYXJtNjQiLCAibGludXgtYXJtNjQtb3BlbnNzbC0zLjAueCIsICJ3aW5kb3dzIiwgImRlYmlhbi1vcGVuc3NsLTMuMC54IiwgImxpbnV4LW11c2wtYXJtNjQtb3BlbnNzbC0zLjAueCIsICJsaW51eC1hcm02NC1vcGVuc3NsLTEuMC54Il0KfQoKZGF0YXNvdXJjZSBkYiB7CiAgcHJvdmlkZXIgPSAicG9zdGdyZXNxbCIKICB1cmwgICAgICA9IGVudigiREFUQUJBU0VfVVJMIikKfQoKbW9kZWwgVXNlciB7CiAgaWQgICAgICAgICAgICAgICAgICBJbnQgICAgICAgICAgICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICByb2xlICAgICAgICAgICAgICAgIFN0cmluZwogIGVtYWlsICAgICAgICAgICAgICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBwYXNzd29yZCAgICAgICAgICAgIFN0cmluZz8KICByZWdpc3RlcmVkICAgICAgICAgIERhdGVUaW1lICAgICAgICBAZGVmYXVsdChub3coKSkKICBsYXN0TG9naW5EYXRlICAgICAgIERhdGVUaW1lPwogIGZpcnN0TmFtZSAgICAgICAgICAgU3RyaW5nPwogIGxhc3ROYW1lICAgICAgICAgICAgU3RyaW5nPwogIHBob25lICAgICAgICAgICAgICAgU3RyaW5nPwogIHBob25lQ29kZSAgICAgICAgICAgSW50PwogIHBob25lU2hvcnQgICAgICAgICAgU3RyaW5nPwogIHByb2ZpbGVQaWNVcmwgICAgICAgU3RyaW5nPyAgICAgICAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9yZ290UGFzc3dvcmRLZXkgICBTdHJpbmc/ICAgICAgICAgQHVuaXF1ZQogIGFmZmlsaWF0ZVNsdWcgICAgICAgU3RyaW5nPyAgICAgICAgIEB1bmlxdWUKICBjbG9zZWQgICAgICAgICAgICAgIERhdGVUaW1lPwogIGNsb3NlZFJlYXNvbiAgICAgICAgU3RyaW5nPwogIHVzZXJjb21MYXN0U3luY2VkICAgRGF0ZVRpbWU/ICAgICAgIEBkZWZhdWx0KG5vdygpKQogIGV4dHJhRGF0YSAgICAgICAgICAgSnNvbiAgICAgICAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHJlZmVycmVySWQgSW50PwoKICByZWZlcnJlciAgICAgICAgICAgIFVzZXI/ICAgICAgICAgICAgICAgIEByZWxhdGlvbigiUmVmZXJyYWxzIiwgZmllbGRzOiBbcmVmZXJyZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgcmVmZXJyZWRVc2VycyAgICAgICBVc2VyW10gICAgICAgICAgICAgICBAcmVsYXRpb24oIlJlZmVycmFscyIpCiAgbG9ncyAgICAgICAgICAgICAgICBMb2dbXQogIGNyZWF0b3JQcm9maWxlICAgICAgQ3JlYXRvclByb2ZpbGU/CiAgaW5zdGFncmFtUHJvZmlsZSAgICBJbnN0YWdyYW1Qcm9maWxlPwogIHlvdXR1YmVQcm9maWxlICAgICAgWW91dHViZVByb2ZpbGU/CiAgdGlrdG9rUHJvZmlsZSAgICAgICBUaWt0b2tQcm9maWxlPwogIGZhY2Vib29rUHJvZmlsZSAgICAgRmFjZWJvb2tQcm9maWxlPwogIHR3aXR0ZXJQcm9maWxlICAgICAgVHdpdHRlclByb2ZpbGU/CiAgdHdpdGNoUHJvZmlsZSAgICAgICBUd2l0Y2hQcm9maWxlPwogIGJyYW5kUHJvZmlsZXMgICAgICAgQnJhbmRVc2VyUHJvZmlsZVtdCiAgb3B0SW5zICAgICAgICAgICAgICBPcHRJbltdCiAgYXNzaWduZWRCcmFuZHMgICAgICBCcmFuZFtdCiAgbWVzc2FnZXMgICAgICAgICAgICBNZXNzYWdlW10KICBzb2NpYWxQb3N0cyAgICAgICAgIFNvY2lhbFBvc3RbXQogIHBheW1lbnRUcmFuc2FjdGlvbnMgUGF5bWVudFRyYW5zYWN0aW9uW10KICBhZmZpbGlhdGVMaW5rcyAgICAgIEFmZmlsaWF0ZUxpbmtbXQogIGNhbXBhaWduUGlucyAgICAgICAgQ2FtcGFpZ25QaW5bXQogIHNvY2lhbFByb2ZpbGVzICAgICAgU29jaWFsUHJvZmlsZVtdCiAgcmFrdXRlbkFjdGl2aXR5ICAgICBSYWt1dGVuQWN0aXZpdHlbXQogIGltcGFjdFJhZGl1c0V2ZW50cyAgSW1wYWN0UmFkaXVzRXZlbnRbXQogIAogIEBAaW5kZXgoW3Bob25lQ29kZSwgcGhvbmVdKQogIEBAbWFwKCJ1c2VyIikKICAvLyBAQGZ1bGx0ZXh0KFtmaXJzdE5hbWUsIGxhc3ROYW1lXSkKfQoKbW9kZWwgTG9nIHsKICBpZCBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCiAgdXNlcklkIEludD8KICB1c2VyICAgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBkYXRhIEpzb24/Cn0KCm1vZGVsIENyZWF0b3JQcm9maWxlIHsKICBpZCAgICAgICAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGNvdW50cnkgICAgICAgICAgU3RyaW5nPwogIHJlZ2lvbiAgICAgICAgICAgU3RyaW5nPwogIGJpcnRoRGF0ZSAgICAgICAgRGF0ZVRpbWU/CiAgaW50ZXJlc3RzICAgICAgICBKc29uPyAvLyBkZXByZWNhdGVkCiAgZ2VuZGVyICAgICAgICAgICBTdHJpbmc/CiAgc2hpcHBpbmdBZGRyZXNzMSBTdHJpbmc/CiAgc2hpcHBpbmdBZGRyZXNzMiBTdHJpbmc/CiAgc2hpcHBpbmdDaXR5ICAgICBTdHJpbmc/CiAgc2hpcHBpbmdSZWdpb24gICBTdHJpbmc/CiAgc2hpcHBpbmdDb3VudHJ5ICBTdHJpbmc/CiAgc2hpcHBpbmdQb3N0Y29kZSBTdHJpbmc/CiAgcGh5bGxvVXNlcklkICAgICBTdHJpbmc/CiAgcHJvZmlsZVNsdWcgICAgICBTdHJpbmc/ICAgQHVuaXF1ZQogIHByb2ZpbGVTZXR0aW5ncyAgSnNvbj8KICB3YWxsZXRBZGRyZXNzICAgIFN0cmluZz8gICBAdW5pcXVlCgogIG5pY2hlcyBDcmVhdG9yVG9DYXRlZ29yeVtdCgogIHVzZXJJZCBJbnQgIEB1bmlxdWUKICB1c2VyICAgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgocGh5bGxvVXNlcklkKQogIEBAbWFwKCJjcmVhdG9ycHJvZmlsZSIpCn0KCm1vZGVsIEluc3RhZ3JhbVByb2ZpbGUgewogIGlkICAgICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBpbnN0YWdyYW1JZCBTdHJpbmc/CgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGZ1bGxOYW1lICAgICAgICAgIFN0cmluZz8gQGRiLlZhckNoYXIoMTAyNCkKICBpc0J1c2luZXNzICAgICAgICBCb29sZWFuPwogIGlzUHJpdmF0ZSAgICAgICAgIEJvb2xlYW4/CiAgaXNWZXJpZmllZCAgICAgICAgQm9vbGVhbj8KICBtZWRpYUNvdW50ICAgICAgICBJbnQ/CiAgZm9sbG93aW5nQ291bnQgICAgSW50PwogIHRvdGFsQ29tbWVudHMgICAgIEludD8KICB0b3RhbExpa2VzICAgICAgICBJbnQ/CiAgYXZnQ29tbWVudHMgICAgICAgRmxvYXQ/CiAgYXZnTGlrZXMgICAgICAgICAgRmxvYXQ/CiAgYmlvICAgICAgICAgICAgICAgU3RyaW5nPwogIGV4dGVybmFsVXJsICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGhhc0hpZ2hsaWdodFJlZWxzIEJvb2xlYW4/CiAgY2F0ZWdvcnkgICAgICAgICAgU3RyaW5nPwogIGhhc0NsaXBzICAgICAgICAgIEJvb2xlYW4/CiAgaGFzR3VpZGVzICAgICAgICAgQm9vbGVhbj8KICBoYXNDaGFubmVsICAgICAgICBCb29sZWFuPwogIHRvdGFsSWd0dlZpZGVvcyAgIEludD8KICBwcm9maWxlUGljVXJsSGQgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykgLy8gREVQUkVDQVRFRAogIGxhc3RTdG9yaWVzVXBkYXRlIERhdGVUaW1lPwoKICBleHRyYURhdGEgICAgSnNvbj8KICBwaHlsbG9EYXRhICAgSnNvbj8KICBhdWRpZW5jZURhdGEgSnNvbiAgICBAZGVmYXVsdCgie30iKQogIHZpc2liaWxpdHkgICBTdHJpbmc/IEBkZWZhdWx0KCJwdWJsaWMiKQoKICB1c2VySWQgIEludD8gICBAdW5pcXVlCiAgdXNlciAgICBVc2VyPyAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGJyYW5kSWQgSW50PyAgIEB1bmlxdWUKICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KHVzZXJuYW1lKQogIEBAaW5kZXgoaW5zdGFncmFtSWQpCiAgQEBtYXAoImluc3RhZ3JhbXByb2ZpbGUiKQp9Cgptb2RlbCBUaWt0b2tQcm9maWxlIHsKICBpZCAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aWt0b2tJZCBTdHJpbmcgQHVuaXF1ZQoKICAvLyBmaWVsZHMgY29uc2lzdGVudCBhY2Nyb3NzIHByb2ZpbGVzCiAgdXNlcm5hbWUgICAgICBTdHJpbmc/CiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgaGFuZGxlICAgICAgICAgU3RyaW5nPwogIG5pY2tuYW1lICAgICAgIFN0cmluZz8KICBmb2xsb3dpbmdDb3VudCBJbnQ/CiAgdG90YWxDb21tZW50cyAgSW50PwogIHRvdGFsTGlrZXMgICAgIEludD8KCiAgZXh0cmFEYXRhICAgIEpzb24/CiAgcGh5bGxvRGF0YSAgIEpzb24/CiAgYXVkaWVuY2VEYXRhIEpzb24gICAgQGRlZmF1bHQoInt9IikKICB2aXNpYmlsaXR5ICAgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkICBJbnQ/ICAgQHVuaXF1ZQogIHVzZXIgICAgVXNlcj8gIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZElkIEludD8gICBAdW5pcXVlCiAgYnJhbmQgICBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleCh1c2VybmFtZSkKICBAQG1hcCgidGlrdG9rcHJvZmlsZSIpCn0KCm1vZGVsIFlvdXR1YmVQcm9maWxlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgeW91dHViZUlkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZwogIHVybCAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgcHJvZmlsZVBpY1VybCBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGxhc3RVcGRhdGVkICAgRGF0ZVRpbWU/CgogIGZvbGxvd2luZ0NvdW50IEludD8KICBmdWxsTmFtZSAgICAgICBTdHJpbmc/ICBAZGIuVmFyQ2hhcigxMDI0KQogIGlzVmVyaWZpZWQgICAgIEJvb2xlYW4/CiAgc3Vic2NyaWJlcnMgICAgSW50PwogIGRlc2NyaXB0aW9uICAgIFN0cmluZz8gIEBkYi5UZXh0CiAgY291bnRyeSAgICAgICAgU3RyaW5nPwogIHRvdGFsVmlld3MgICAgIEludD8KICB0b3RhbFZpZGVvcyAgICBJbnQ/CgogIGV4dHJhRGF0YSAgICBKc29uPwogIHBoeWxsb0RhdGEgICBKc29uPwogIGF1ZGllbmNlRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCiAgdmlzaWJpbGl0eSAgIFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCAgSW50PyAgIEB1bmlxdWUKICB1c2VyICAgIFVzZXI/ICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgYnJhbmRJZCBJbnQ/ICAgQHVuaXF1ZQogIGJyYW5kICAgQnJhbmQ/IEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBtYXAoInlvdXR1YmVwcm9maWxlIikKfQoKbW9kZWwgVHdpdGNoUHJvZmlsZSB7CiAgaWQgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdHdpdGNoSWQgU3RyaW5nIEB1bmlxdWUKCiAgLy8gZmllbGRzIGNvbnNpc3RlbnQgYWNjcm9zcyBwcm9maWxlcwogIHVzZXJuYW1lICAgICAgU3RyaW5nICAgIEB1bmlxdWUKICB1cmwgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIHByb2ZpbGVQaWNVcmwgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgZm9sbG93ZXJDb3VudCBJbnQ/CiAgZW5nYWdlbWVudCAgICBGbG9hdD8KICBsYXN0VXBkYXRlZCAgIERhdGVUaW1lPwoKICBleHRyYURhdGEgIEpzb24/CiAgcGh5bGxvRGF0YSBKc29uPwogIHZpc2liaWxpdHkgU3RyaW5nPyBAZGVmYXVsdCgicHVibGljIikKCiAgdXNlcklkIEludD8gIEB1bmlxdWUKICB1c2VyICAgVXNlcj8gQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQG1hcCgidHdpdGNocHJvZmlsZSIpCn0KCm1vZGVsIEZhY2Vib29rUHJvZmlsZSB7CiAgaWQgICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBmYWNlYm9va0lkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoImZhY2Vib29rcHJvZmlsZSIpCn0KCm1vZGVsIFR3aXR0ZXJQcm9maWxlIHsKICBpZCAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdHdpdHRlcklkIFN0cmluZyBAdW5pcXVlCgogIC8vIGZpZWxkcyBjb25zaXN0ZW50IGFjY3Jvc3MgcHJvZmlsZXMKICB1c2VybmFtZSAgICAgIFN0cmluZyAgICBAdW5pcXVlCiAgdXJsICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlZhckNoYXIoMjA4MykKICBwcm9maWxlUGljVXJsIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGZvbGxvd2VyQ291bnQgSW50PwogIGVuZ2FnZW1lbnQgICAgRmxvYXQ/CiAgbGFzdFVwZGF0ZWQgICBEYXRlVGltZT8KCiAgZXh0cmFEYXRhICBKc29uPwogIHBoeWxsb0RhdGEgSnNvbj8KICB2aXNpYmlsaXR5IFN0cmluZz8gQGRlZmF1bHQoInB1YmxpYyIpCgogIHVzZXJJZCBJbnQ/ICBAdW5pcXVlCiAgdXNlciAgIFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBtYXAoInR3aXR0ZXJwcm9maWxlIikKfQoKbW9kZWwgQnJhbmRVc2VyUHJvZmlsZSB7CiAgaWQgICAgICBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB1c2VySWQgIEludAogIGJyYW5kSWQgSW50CgogIHVzZXIgIFVzZXIgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBicmFuZCBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFt1c2VySWRdKQogIEBAaW5kZXgoW2JyYW5kSWRdKQoKICBAQG1hcCgiYnJhbmR1c2VycHJvZmlsZSIpCn0KCm1vZGVsIEJyYW5kIHsKICBpZCAgICAgICAgICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBuYW1lICAgICAgICAgICAgICAgICAgICBTdHJpbmcKICBkZXNjcmlwdGlvbiAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICB3ZWJzaXRlICAgICAgICAgICAgICAgICBTdHJpbmcKICBtb250aGx5Q29udGFjdHMgICAgICAgICBJbnQ/CiAgbW9udGhseVJlcG9ydHMgICAgICAgICAgSW50PwogIGxhc3RDb250YWN0RGlzdHJpYnV0aW9uIERhdGVUaW1lPwogIGxvZ29VcmwgICAgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGFmZmlsaWF0ZUJhc2VVcmwgICAgICAgIFN0cmluZz8gICBAZGIuVmFyQ2hhcigyMDgzKQogIGFmZmlsaWF0ZUNvbW1pc3Npb24gICAgIEZsb2F0PwogIGV4dHJhRGF0YSAgICAgICAgICAgICAgIEpzb24gICAgICBAZGVmYXVsdCgie30iKQoKICBzcGVjaWFsaXN0SWQgICAgICAgIEludD8KICBkZWRpY2F0ZWRTcGVjaWFsaXN0IFVzZXI/IEByZWxhdGlvbihmaWVsZHM6IFtzcGVjaWFsaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGluc3RhZ3JhbVByb2ZpbGUgICAgIEluc3RhZ3JhbVByb2ZpbGU/CiAgeW91dHViZVByb2ZpbGUgICAgICAgWW91dHViZVByb2ZpbGU/CiAgdGlrdG9rUHJvZmlsZSAgICAgICAgVGlrdG9rUHJvZmlsZT8KICBjYW1wYWlnbnMgICAgICAgICAgICBDYW1wYWlnbltdCiAgYnJhbmRVc2VycyAgICAgICAgICAgQnJhbmRVc2VyUHJvZmlsZVtdCiAgc2VhcmNoQ29udGFjdHMgICAgICAgU2VhcmNoQ29udGFjdHNbXQogIHJlcG9ydENyZWRpdHMgICAgICAgIFJlcG9ydENyZWRpdHNbXQogIGNhdGVnb3JpZXMgICAgICAgICAgIEJyYW5kVG9DYXRlZ29yeVtdCiAgcGF5bWVudFRyYW5zYWN0aW9ucyAgUGF5bWVudFRyYW5zYWN0aW9uW10KICBzYXZlZGZpbGVzICAgICAgICAgICBTYXZlZEZpbGVbXQogIGNyZWF0b3JMaXN0cyAgICAgICAgIENyZWF0b3JMaXN0W10KICBhZmZpbGlhdGVMaW5rcyAgICAgICBCcmFuZEFmZmlsaWF0ZUxpbmtbXQogIG1lc3NhZ2VUZW1wbGF0ZSAgICAgIE1lc3NhZ2VUZW1wbGF0ZVtdCiAgZW1haWxUZW1wbGF0ZXMgICAgICAgRW1haWxUZW1wbGF0ZVtdCiAgc29jaWFsTGlzdGVuaW5nTGlzdHMgU29jaWFsTGlzdGVuaW5nTGlzdFtdCiAgY2FtcGFpZ25JbnZpdGVzICAgICAgQ2FtcGFpZ25JbnZpdGVbXQogIGltYWdlcyAgICAgICAgICAgICAgIEJyYW5kVG9JbWFnZVtdCiAgY3JlYXRvcnNlYXJjaGZpbHRlciAgQ3JlYXRvclNlYXJjaEZpbHRlcltdCiAgc2VxdWVuY2VzICAgICAgICAgICAgU2VxdWVuY2VbXQogIGltcGFjdFJhZGl1c0V2ZW50cyAgIEltcGFjdFJhZGl1c0V2ZW50W10KCiAgLy8gZm9yIGFnZW5jaWVzCiAgcGFyZW50QnJhbmRJZCAgICAgICBJbnQ/CiAgcGFyZW50QnJhbmQgICAgICAgICBCcmFuZD8gQHJlbGF0aW9uKCJDaGlsZEJyYW5kcyIsIGZpZWxkczogW3BhcmVudEJyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNoaWxkQnJhbmRzICAgICAgICAgQnJhbmRbXSBAcmVsYXRpb24oIkNoaWxkQnJhbmRzIikKICAvLyBnZW5lcmF0ZWQgKGZvciBzZWFyY2gpCiAgc2VhcmNoTmFtZSAgICAgICAgICBTdHJpbmc/IEBkZWZhdWx0KGRiZ2VuZXJhdGVkKCkpCgogIEBAbWFwKCJicmFuZCIpCn0KCm1vZGVsIFNlYXJjaENvbnRhY3RzIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgU3RyaW5nCiAgcHJldlF0eSAgICBGbG9hdAogIGNoYW5nZVF0eSAgRmxvYXQKICBjdXJyZW50UXR5IEZsb2F0CiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCgogIHByZXZRdHlQb3N0SWQgSW50PyAgICAgICAgICAgIEB1bmlxdWUKICBwcmV2UXR5UG9zdCAgIFNlYXJjaENvbnRhY3RzPyBAcmVsYXRpb24oInByZXZTZWFyY2hRdHlQb3N0SWQiLCBmaWVsZHM6IFtwcmV2UXR5UG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBuZXh0UXR5UG9zdCAgIFNlYXJjaENvbnRhY3RzPyBAcmVsYXRpb24oInByZXZTZWFyY2hRdHlQb3N0SWQiKQoKICBicmFuZElkIEludAogIGJyYW5kICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2VhcmNoY29udGFjdHMiKQp9Cgptb2RlbCBSZXBvcnRDcmVkaXRzIHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgU3RyaW5nCiAgcHJldlF0eSAgICBGbG9hdAogIGNoYW5nZVF0eSAgRmxvYXQKICBjdXJyZW50UXR5IEZsb2F0CiAgY3JlYXRlZCAgICBEYXRlVGltZT8gQGRlZmF1bHQobm93KCkpCgogIHByZXZRdHlQb3N0SWQgSW50PyAgICAgICAgICAgQHVuaXF1ZQogIHByZXZRdHlQb3N0ICAgUmVwb3J0Q3JlZGl0cz8gQHJlbGF0aW9uKCJwcmV2UmVwb3J0c1F0eVBvc3RJZCIsIGZpZWxkczogW3ByZXZRdHlQb3N0SWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG5leHRRdHlQb3N0ICAgUmVwb3J0Q3JlZGl0cz8gQHJlbGF0aW9uKCJwcmV2UmVwb3J0c1F0eVBvc3RJZCIpCgogIGJyYW5kSWQgSW50CiAgYnJhbmQgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJyZXBvcnRjcmVkaXRzIikKfQoKbW9kZWwgQnJhbmRUb0ltYWdlIHsKICBpZCAgICAgICAgICBJbnQgICBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpIEBpZAogIGJyYW5kSWQgICAgIEludAogIHR5cGUgICAgICAgIFN0cmluZwoKICBicmFuZCAgICAgICBCcmFuZCBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBzaXplcyAgICAgICBCcmFuZEltYWdlW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoImJyYW5kdG9pbWFnZSIpCn0KCm1vZGVsIEJyYW5kVG9DYXRlZ29yeSB7CiAgYnJhbmRJZCAgICBJbnQKICBjYXRlZ29yeUlkIEludAoKICBjYW1wYWlnbiBCcmFuZCAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhdGVnb3J5IENhdGVnb3J5IEByZWxhdGlvbihmaWVsZHM6IFtjYXRlZ29yeUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbYnJhbmRJZCwgY2F0ZWdvcnlJZF0pCiAgQEBtYXAoImJyYW5kdG9jYXRlZ29yeSIpCn0KCm1vZGVsIENyZWF0b3JUb0NhdGVnb3J5IHsKICBjcmVhdG9yUHJvZmlsZUlkIEludAogIGNhdGVnb3J5SWQgICAgICAgSW50CgogIGNyZWF0b3JQcm9maWxlIENyZWF0b3JQcm9maWxlIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yUHJvZmlsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2F0ZWdvcnkgICAgICAgQ2F0ZWdvcnkgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhdGVnb3J5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjcmVhdG9yUHJvZmlsZUlkLCBjYXRlZ29yeUlkXSkKfQoKbW9kZWwgQ2hhdCB7CiAgaWQgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICAgICAgRGF0ZVRpbWU/IEBkZWZhdWx0KG5vdygpKQogIGNvbnZlcnNhdGlvbklkIFN0cmluZz8gICBAdW5pcXVlCiAgbWV0YURhdGEgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIG9wdEluSWQgSW50PyBAdW5pcXVlCgogIG9wdEluICAgIE9wdEluPyAgICBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbWVzc2FnZXMgTWVzc2FnZVtdCgogIEBAbWFwKCJjaGF0IikKfQoKbW9kZWwgTWVzc2FnZSB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjcmVhdGVkICAgIERhdGVUaW1lPyBAZGVmYXVsdChub3coKSkKICBzZW5kZXIgICAgIFN0cmluZwogIGNvbnRlbnQgICAgU3RyaW5nICAgIEBkYi5UZXh0CiAgcmVhZCAgICAgICBCb29sZWFuICAgQGRlZmF1bHQoZmFsc2UpCiAgdHlwZSAgICAgICBTdHJpbmcgICAgQGRlZmF1bHQoInRleHQiKQogIG1lc3NhZ2VTaWQgU3RyaW5nPwoKICB1c2VySWQgSW50PwogIGNoYXRJZCBJbnQKCiAgdXNlciBVc2VyPyBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjaGF0IENoYXQgIEByZWxhdGlvbihmaWVsZHM6IFtjaGF0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbY2hhdElkXSkKICBAQG1hcCgibWVzc2FnZSIpCn0KCm1vZGVsIENhbXBhaWduIHsKICBpZCAgICAgICAgICAgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgICAgICAgICAgICAgIFN0cmluZwogIHNsdWcgICAgICAgICAgICAgICAgICBTdHJpbmc/ICAgQHVuaXF1ZQogIHN0YXR1cyAgICAgICAgICAgICAgICBTdHJpbmcgICAgQGRlZmF1bHQoImRyYWZ0IikgLy8gZHJhZnQsIHBhdXNlZCwgcGVuZGluZywgcHJpdmF0ZSwgcHVibGlzaCwgdHJhc2gKICBkYXRlICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHB1Ymxpc2hEYXRlICAgICAgICAgICBEYXRlVGltZT8KICBkZXNjcmlwdGlvbiAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcHJvZHVjdERlc2NyaXB0aW9uICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHByaXplRGVzY3JpcHRpb24gICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBzdHJhdGVneSAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkZWZhdWx0KCJzaG91dG91dCIpCiAgc29jaWFsQ2hhbm5lbCAgICAgICAgIFN0cmluZz8KICBzb2NpYWxDaGFubmVscyAgICAgICAgSnNvbj8KICBmYWNlYm9va1JlYWNoICAgICAgICAgSW50PwogIGZhY2Vib29rRW5nYWdlbWVudCAgICBGbG9hdD8KICBpbnN0YWdyYW1SZWFjaCAgICAgICAgSW50PwogIGluc3RhZ3JhbUVuZ2FnZW1lbnQgICBGbG9hdD8KICB5b3V0dWJlUmVhY2ggICAgICAgICAgSW50PwogIHlvdXR1YmVFbmdhZ2VtZW50ICAgICBGbG9hdD8KICB0d2l0dGVyUmVhY2ggICAgICAgICAgSW50PwogIHR3aXR0ZXJFbmdhZ2VtZW50ICAgICBGbG9hdD8KICB0aWt0b2tSZWFjaCAgICAgICAgICAgSW50PwogIHRpa3Rva0VuZ2FnZW1lbnQgICAgICBGbG9hdD8KICB0d2l0Y2hSZWFjaCAgICAgICAgICAgSW50PwogIHR3aXRjaEVuZ2FnZW1lbnQgICAgICBGbG9hdD8KICBxdWFudGl0eSAgICAgICAgICAgICAgSW50ICAgICAgIEBkZWZhdWx0KDApCiAgaG9sZENvc3QgICAgICAgICAgICAgIEZsb2F0PwogIHZhbHVlICAgICAgICAgICAgICAgICBGbG9hdD8KICBwYWlkQW1vdW50ICAgICAgICAgICAgRmxvYXQ/CiAgbWluQWdlICAgICAgICAgICAgICAgIEludD8KICBtYXhBZ2UgICAgICAgICAgICAgICAgSW50PwogIHZpc3VhbHMgICAgICAgICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICBwaG90b1RhZ3MgICAgICAgICAgICAgSnNvbj8KICBoYXNodGFncyAgICAgICAgICAgICAgSnNvbj8KICBzdG9yeUhhc2h0YWdzICAgICAgICAgSnNvbj8KICBzdG9yeU1lbnRpb25zICAgICAgICAgSnNvbj8KICBjYXB0aW9uICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5UZXh0CiAgcGFzc3dvcmQgICAgICAgICAgICAgIFN0cmluZz8KICBjb250ZW50Rm9ybWF0cyAgICAgICAgSnNvbj8KICBwYWlkQ2FtcGFpZ24gICAgICAgICAgQm9vbGVhbj8KICBtaW5QYWlkQW1vdW50ICAgICAgICAgRmxvYXQ/CiAgbWF4UGFpZEFtb3VudCAgICAgICAgIEZsb2F0PwogIHBheW1lbnRUeXBlICAgICAgICAgICBTdHJpbmc/CiAgbW9udGhseUFjdGl2YXRlZEdvYWwgIEludD8gLy8gUmVkdW5kYW50L0RlcHJlY2F0ZWQKICBleHBlY3RlZE9wdElucyAgICAgICAgSW50PyAvLyBSZWR1bmRhbnQvRGVwcmVjYXRlZAogIGdvYWxBY3RpdmF0aW9ucyAgICAgICBGbG9hdD8KICBnb2FsT3B0SW5zICAgICAgICAgICAgRmxvYXQ/CiAgcmVxdWlyZXNTaGlwcGluZyAgICAgIEJvb2xlYW4/CiAgZGlzYWJsZVF1YWxpZmljYXRpb25zIEJvb2xlYW4/CiAgZGlzYWJsZUFjdGl2YXRpb25zICAgIEJvb2xlYW4/CiAgYWZmaWxpYXRlTGlua1BhdGggICAgIFN0cmluZz8KICBtZXRhRGF0YSAgICAgICAgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHN0ZXBzICAgICAgICBDYW1wYWlnblN0ZXBbXQogIGNhdGVnb3JpZXMgICBDYW1wYWlnblRvQ2F0ZWdvcnlbXQogIG9wdElucyAgICAgICBPcHRJbltdCiAgaW1hZ2VzICAgICAgIENhbXBhaWduVG9JbWFnZVtdCiAgdmFyaWFibGVzICAgIFZhcmlhYmxlW10KICBjb3VudHJpZXMgICAgQ2FtcGFpZ25Ub0NvdW50cnlbXQogIGNhbXBhaWduUGlucyBDYW1wYWlnblBpbltdCiAgc29jaWFsUG9zdHMgIFNvY2lhbFBvc3RbXQogIGNhbXBhaWduSW52aXRlcyBDYW1wYWlnbkludml0ZVtdCgogIGJyYW5kSWQgICAgICBJbnQKICBicmFuZCAgICAgICAgQnJhbmQgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNyZWF0b3JMaXN0cyBDcmVhdG9yTGlzdFtdCiAgb3B0SW5WaWV3cyAgIE9wdEluVmlld1tdCiAgc2VxdWVuY2VzICAgIFNlcXVlbmNlW10KCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoImNhbXBhaWduIikKfQoKbW9kZWwgQ2FtcGFpZ25QaW4gewogIGlkICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdXNlcklkICAgICBJbnQKICBjYW1wYWlnbklkIEludAogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIG5vdGlmaWVkICAgRGF0ZVRpbWU/CgogIHVzZXIgICAgIFVzZXIgICAgIEByZWxhdGlvbihmaWVsZHM6IFt1c2VySWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFt1c2VySWRdKQoKICBAQG1hcCgiY2FtcGFpZ25waW4iKQp9Cgptb2RlbCBDYW1wYWlnblRvSW1hZ2UgewogIGlkICAgICAgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY2FtcGFpZ25JZCBJbnQKICB0eXBlICAgICAgIFN0cmluZwoKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBzaXplcyBJbWFnZVtdCgogIEBAbWFwKCJjYW1wYWlnbnRvaW1hZ2UiKQp9Cgptb2RlbCBDYW1wYWlnblRvQ2F0ZWdvcnkgewogIGNhbXBhaWduSWQgSW50CiAgY2F0ZWdvcnlJZCBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYXRlZ29yeSBDYXRlZ29yeSBAcmVsYXRpb24oZmllbGRzOiBbY2F0ZWdvcnlJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaWQoW2NhbXBhaWduSWQsIGNhdGVnb3J5SWRdKQogIEBAbWFwKCJjYW1wYWlnbnRvY2F0ZWdvcnkiKQp9Cgptb2RlbCBDYW1wYWlnblRvQ291bnRyeSB7CiAgY2FtcGFpZ25JZCBJbnQKICBjb3VudHJ5SWQgIEludAoKICBjYW1wYWlnbiBDYW1wYWlnbiBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNvdW50cnkgIENvdW50cnkgIEByZWxhdGlvbihmaWVsZHM6IFtjb3VudHJ5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGlkKFtjYW1wYWlnbklkLCBjb3VudHJ5SWRdKQogIEBAbWFwKCJjYW1wYWlnbnRvY291bnRyeSIpCn0KCm1vZGVsIFZhcmlhYmxlIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgdGl0bGUgICAgICAgU3RyaW5nCiAgZGVzY3JpcHRpb24gU3RyaW5nPyBAZGIuVGV4dAogIG1ldGFEYXRhICAgIEpzb24gICAgQGRlZmF1bHQoInt9IikKCiAgY2FtcGFpZ25JZCBJbnQKCiAgY2FtcGFpZ24gQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgb3B0aW9ucyAgICAgICAgVmFyaWFibGVPcHRpb25bXQogIG9wdEluVmFyaWFibGVzIE9wdEluVmFyaWFibGVbXQp9Cgptb2RlbCBWYXJpYWJsZU9wdGlvbiB7CiAgaWQgICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgICAgIFN0cmluZwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBtZXRhRGF0YSAgICBKc29uICAgIEBkZWZhdWx0KCJ7fSIpCgogIHZhcmlhYmxlSWQgSW50CgogIHZhcmlhYmxlIFZhcmlhYmxlIEByZWxhdGlvbihmaWVsZHM6IFt2YXJpYWJsZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIG9wdEluVmFyaWFibGVzIE9wdEluVmFyaWFibGVbXQp9Cgptb2RlbCBTdGVwIHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2x1ZyAgICAgICAgU3RyaW5nICBAdW5pcXVlCiAgdGl0bGUgICAgICAgU3RyaW5nPwogIGRlc2NyaXB0aW9uIFN0cmluZz8gQGRiLlRleHQKICBkYXRhICAgICAgICBKc29uPwoKICBjYW1wYWlnblN0ZXBzIENhbXBhaWduU3RlcFtdCgogIEBAbWFwKCJzdGVwIikKfQoKbW9kZWwgQ2FtcGFpZ25TdGVwIHsKICBpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICBwbGFjZW1lbnQgICAgICAgICAgICAgICAgICAgICBJbnQKICBzdGVwU2V0dGluZ3MgICAgICAgICAgICAgICAgICBKc29uPwogIGFjdGlvbmVlICAgICAgICAgICAgICAgICAgICAgIFN0cmluZz8KICBpbnN0cnVjdGlvbnMgICAgICAgICAgICAgICAgICBTdHJpbmc/IEBkYi5UZXh0CiAgY3VzdG9tU3RlcFRpdGxlICAgICAgICAgICAgICAgU3RyaW5nPwogIGN1c3RvbUZvcm0gICAgICAgICAgICAgICAgICAgIEpzb24/CiAgbWV0YURhdGEgICAgICAgICAgICAgICAgICAgICAgSnNvbiBAZGVmYXVsdCgie30iKQogIGNhbXBhaWduSWQgICAgSW50CiAgc3RlcElkICAgICAgICBJbnQ/CgogIGNhbXBhaWduICAgICAgQ2FtcGFpZ24gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzdGVwICAgICAgICAgIFN0ZXA/ICAgIEByZWxhdGlvbihmaWVsZHM6IFtzdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGN1cnJlbnRPcHRJbnMgT3B0SW5bXQoKICBvcHRJblN0ZXBzIE9wdEluU3RlcFtdCgogIEBAaW5kZXgoW2NhbXBhaWduSWRdKQoKICBAQG1hcCgiY2FtcGFpZ25zdGVwIikKfQoKbW9kZWwgT3B0SW5TdGVwIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY29tcGxldGVkIERhdGVUaW1lPwogIGRhdGEgICAgICBKc29uPwoKICBvcHRJbklkICAgICAgICBJbnQKICBjYW1wYWlnblN0ZXBJZCBJbnQKICBzb2NpYWxQb3N0SWQgICBJbnQ/IC8vIHRlbXBvcmFyeSBmb3IgbW92aW5nIHNob3V0b3V0RGF0YSB0byBzb2NpYWxQb3N0cwoKICBvcHRJbiAgICAgICAgT3B0SW4gICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ25TdGVwIENhbXBhaWduU3RlcCBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25TdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgQEBpbmRleChbb3B0SW5JZF0pCiAgQEBpbmRleChbY2FtcGFpZ25TdGVwSWRdKQogIEBAbWFwKCJvcHRpbnN0ZXAiKQp9Cgptb2RlbCBDYXRlZ29yeSB7CiAgaWQgICAgSW50ICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2x1ZyAgU3RyaW5nIEB1bmlxdWUKICB0aXRsZSBTdHJpbmcKCiAgY2FtcGFpZ25zIENhbXBhaWduVG9DYXRlZ29yeVtdCiAgYnJhbmRzICAgIEJyYW5kVG9DYXRlZ29yeVtdCiAgY3JlYXRvcnMgIENyZWF0b3JUb0NhdGVnb3J5W10KCiAgQEBtYXAoImNhdGVnb3J5IikKfQoKbW9kZWwgT3B0SW4gewogIGlkICAgICAgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBzdGF0dXMgICAgICAgICAgU3RyaW5nICAgIEBkZWZhdWx0KCJwZW5kaW5nIikKICBjcmVhdGVkICAgICAgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGFjdGl2YXRlZCAgICAgICBEYXRlVGltZT8KICBjb21wbGV0ZWQgICAgICAgRGF0ZVRpbWU/CiAgY2FuY2VsbGVkICAgICAgIERhdGVUaW1lPwogIGNhbmNlbGxlZERhdGEgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKICBjYW5jZWxSZXF1ZXN0ZWQgRGF0ZVRpbWU/CiAgcmVpbnZpdGVkICAgICAgIERhdGVUaW1lPwogIHNlZW4gICAgICAgICAgICBCb29sZWFuICAgQGRlZmF1bHQoZmFsc2UpCiAgaW5zdHJ1Y3Rpb25zICAgIFN0cmluZz8gICBAZGIuVGV4dAogIHBheW1lbnRBbW91bnQgICBGbG9hdD8KICBwYXltZW50U3RhdHVzICAgU3RyaW5nICAgIEBkZWZhdWx0KCJwZW5kaW5nIikgLy8gZGVwcmFjYXRlZCAtLSByZWZlciB0byB0cm9sbGV5IHBheW1lbnQgdGFibGUKICBleHRyYURhdGEgICAgICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCgogIHVzZXJJZCAgICAgICAgSW50CiAgY2FtcGFpZ25JZCAgICBJbnQKICBjdXJyZW50U3RlcElkIEludD8KCiAgdXNlciAgICAgICAgVXNlciAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgY2FtcGFpZ24gICAgQ2FtcGFpZ24gICAgICBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGN1cnJlbnRTdGVwIENhbXBhaWduU3RlcD8gQHJlbGF0aW9uKGZpZWxkczogW2N1cnJlbnRTdGVwSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICB2YXJpYWJsZXMgIE9wdEluVmFyaWFibGVbXQogIG9wdEluU3RlcHMgT3B0SW5TdGVwW10KICBjaGF0ICAgICAgIENoYXQ/CiAgY2FtcGFpZ25JbnZpdGVzIENhbXBhaWduSW52aXRlW10KICB0cm9sbGV5UGF5bWVudHMgVHJvbGxleVBheW1lbnRbXQogIGFmZmlsaWF0ZUNsaWNrcyBBZmZpbGlhdGVDbGlja1tdCgogIEBAaW5kZXgoW3VzZXJJZF0pCiAgQEBpbmRleChbY2FtcGFpZ25JZF0pCiAgQEBtYXAoIm9wdGluIikKfQoKbW9kZWwgVHJvbGxleVBheW1lbnQgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgICAgICAgICAgICAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHBheW1lbnRJZCAgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgICAgICBAdW5pcXVlCiAgdHlwZSAgICAgICAgICAgICAgdHJvbGxleVBheW1lbnRUeXBlPwogIHN0YXR1cyAgICAgICAgICAgIHRyb2xsZXlQYXltZW50U3RhdHVzCiAgb3B0SW5JZCAgICAgICAgICAgSW50PwogIHBheW1lbnRBbW91bnQgICAgIEludAogIG1ldGFEYXRhICAgICAgICAgIEpzb24gICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCgie30iKQoKICBvcHRJbiAgICAgICAgICAgICBPcHRJbj8gICAgICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOltpZF0pCn0KCmVudW0gdHJvbGxleVBheW1lbnRUeXBlIHsKICBvcHRJbgogIHRpcAogIGFmZmlsaWF0ZQp9CgplbnVtIHRyb2xsZXlQYXltZW50U3RhdHVzIHsKICBwZW5kaW5nCiAgcHJvY2Vzc2luZwogIHByb2Nlc3NlZAogIGZhaWxlZAogIHJldHVybmVkCn0KCgptb2RlbCBPcHRJblZhcmlhYmxlIHsKICBpZCBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKCiAgb3B0SW5JZCAgICAgICAgICBJbnQKICB2YXJpYWJsZUlkICAgICAgIEludAogIHNlbGVjdGVkT3B0aW9uSWQgSW50CgogIG9wdEluICAgICAgICAgIE9wdEluICAgICAgICAgIEByZWxhdGlvbihmaWVsZHM6IFtvcHRJbklkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgdmFyaWFibGUgICAgICAgVmFyaWFibGUgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3ZhcmlhYmxlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzZWxlY3RlZE9wdGlvbiBWYXJpYWJsZU9wdGlvbiBAcmVsYXRpb24oZmllbGRzOiBbc2VsZWN0ZWRPcHRpb25JZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQGluZGV4KFtvcHRJbklkXSkKfQoKbW9kZWwgU29jaWFsUG9zdCB7CiAgaWQgICAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgcGh5bGxvSWQgICAgU3RyaW5nPyAgIEB1bmlxdWUKICBtZXRhRGF0YSAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikKICBkYXRhICAgICAgICBKc29uICAgICAgQGRlZmF1bHQoInt9IikgLy8gREVQUkVDQVRFRCwgVVNFIG1ldGFEYXRhIGluc3RlYWQsIHNlZW1zIHRvIGJlIGFuIGVycm9yIHdoZW4gYXR0ZW1wdGluZyB0byByZW1vdmUgdGhpcyBmaWVsZCwgcHJvYWJhYmx5IGR1ZSB0byB0YWJsZSBzaXplCiAgbGFzdEZldGNoZWQgRGF0ZVRpbWU/CiAgbGFzdFdlYmhvb2sgRGF0ZVRpbWU/CgogIC8vIEJBU0lDIElORk8KICBwb3N0ZWQgICAgICAgICAgICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICAgICAgICAgIFN0cmluZz8gICBAZGIuVGV4dAogIGRlc2NyaXB0aW9uICAgICAgICBTdHJpbmc/ICAgQGRiLlRleHQKICB1cmwgICAgICAgICAgICAgICAgU3RyaW5nPyAgIEBkYi5WYXJDaGFyKDIwODMpCiAgdXJsUGF0aCAgICAgICAgICAgIFN0cmluZz8gICBAdW5pcXVlIC8vIFRoaXMgaXMgaGVyZSBzbyB3ZSBoYXZlIHNvbWUgZXh0ZXJuYWwgaWRlbnRpZmllciB0byBxdWlja2x5IHNlYXJjaCBieQogIGZvcm1hdCAgICAgICAgICAgICBTdHJpbmc/CiAgdHlwZSAgICAgICAgICAgICAgIFN0cmluZz8KICBwbGF0Zm9ybSAgICAgICAgICAgU3RyaW5nPwogIHZpc2liaWxpdHkgICAgICAgICBTdHJpbmc/CiAgaXNTcG9uc29yZWQgICAgICAgIEJvb2xlYW4/CiAgaGFzQ29sbGFib3JhdG9ycyAgIEJvb2xlYW4/CiAgaXNPd25lZEJ5VXNlciAgICAgIEJvb2xlYW4/CiAgLy8gTUVUUklDUwogIHZpZXdzICAgICAgICAgICAgICBJbnQ/CiAgaW1wcmVzc2lvbnMgICAgICAgIEludD8KICBpbXByZXNzaW9uc09yZ2FuaWMgSW50PwogIGltcHJlc3Npb25zUGFpZCAgICBJbnQ/CiAgcmVhY2ggICAgICAgICAgICAgIEludD8KICByZWFjaE9yZ2FuaWMgICAgICAgSW50PwogIHJlYWNoUGFpZCAgICAgICAgICBJbnQ/CiAgd2F0Y2hIb3VycyAgICAgICAgIEZsb2F0PwogIC8vIEVOR0FHRU1FTlQgTUVUUklDUwogIGxpa2VzICAgICAgICAgICAgICBJbnQ/CiAgZGlzbGlrZXMgICAgICAgICAgIEludD8KICBjb21tZW50cyAgICAgICAgICAgSW50PwogIHNhdmVzICAgICAgICAgICAgICBJbnQ/CiAgc2hhcmVzICAgICAgICAgICAgIEludD8KCiAgdXNlcklkICAgICBJbnQ/CiAgY2FtcGFpZ25JZCBJbnQ/CgogIHVzZXIgICAgIFVzZXI/ICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjYW1wYWlnbiBDYW1wYWlnbj8gICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGxpc3RzICAgIExpc3RUb1NvY2lhbFBvc3RbXQoKICBAQGluZGV4KGNhbXBhaWduSWQpCiAgQEBpbmRleCh1c2VySWQpCiAgQEBpbmRleChwb3N0ZWQpCgogIEBAbWFwKCJzb2NpYWxwb3N0IikKfQoKbW9kZWwgSW1hZ2UgewogIGlkICAgICAgICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB1cmwgICAgICAgICAgICAgU3RyaW5nIEBkYi5WYXJDaGFyKDIwODMpCiAgc2l6ZSAgICAgICAgICAgIFN0cmluZwogIGNhbXBhaWduSW1hZ2VJZCBJbnQKCiAgY2FtcGFpZ25JbWFnZSBDYW1wYWlnblRvSW1hZ2UgQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSW1hZ2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQoKICBAQG1hcCgiaW1hZ2UiKQp9Cgptb2RlbCBCcmFuZEltYWdlIHsKICBpZCAgICAgICAgICAgICAgSW50ICAgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKSBAaWQKICB1cmwgICAgICAgICAgICAgU3RyaW5nIEBkYi5WYXJDaGFyKDIwODMpCiAgc2l6ZSAgICAgICAgICAgIFN0cmluZwogIGJyYW5kSW1hZ2VJZCAgICBJbnQKCiAgYnJhbmRJbWFnZSAgICAgIEJyYW5kVG9JbWFnZSBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJbWFnZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2JyYW5kSW1hZ2VJZF0pCiAgQEBtYXAoImJyYW5kaW1hZ2UiKQp9Cgptb2RlbCBDb3VudHJ5IHsKICBpZCAgICAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY291bnRyeUNvZGUgU3RyaW5nICBAdW5pcXVlIEBkYi5WYXJDaGFyKDIpCiAgY291bnRyeU5hbWUgU3RyaW5nICBAZGIuVmFyQ2hhcig1MDApCiAgdGVsZUNvZGUgICAgU3RyaW5nICBAZGIuVmFyQ2hhcigxMCkKICBzdGF0ZXMgICAgICBTdGF0ZVtdCgogIGNhbXBhaWducyBDYW1wYWlnblRvQ291bnRyeVtdCgogIEBAbWFwKCJjb3VudHJ5IikKfQoKbW9kZWwgU3RhdGUgewogIGlkICAgICAgICBJbnQgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjb3VudHJ5SWQgSW50CiAgc3RhdGVDb2RlIFN0cmluZyBAZGIuVmFyQ2hhcig1MCkKICBzdGF0ZU5hbWUgU3RyaW5nIEBkYi5WYXJDaGFyKDUwMCkKCiAgY291bnRyeSBDb3VudHJ5IEByZWxhdGlvbihmaWVsZHM6IFtjb3VudHJ5SWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic3RhdGUiKQp9Cgptb2RlbCBQYXltZW50VHJhbnNhY3Rpb24gewogIGlkICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGFtb3VudCAgICBGbG9hdAogIGJhbGFuY2UgICBGbG9hdAogIHR5cGUgICAgICBTdHJpbmcKICBkYXRlICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgbm90ZXMgICAgIFN0cmluZz8gIEBkYi5UZXh0CiAgbWV0YURhdGEgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCiAgYWNjb3VudElkIEludAoKICBicmFuZElkICAgICAgICAgICBJbnQ/CiAgY3JlYXRvcklkICAgICAgICAgSW50PwogIHByZXZUcmFuc2FjdGlvbklkIEludD8gQHVuaXF1ZQoKICBicmFuZCAgICAgICAgICAgQnJhbmQ/ICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvciAgICAgICAgIFVzZXI/ICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgcHJldlRyYW5zYWN0aW9uIFBheW1lbnRUcmFuc2FjdGlvbj8gQHJlbGF0aW9uKCJUcmFuc2FjdGlvbkhpc3RvcnkiLCBmaWVsZHM6IFtwcmV2VHJhbnNhY3Rpb25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgbmV4dFRyYW5zYWN0aW9uIFBheW1lbnRUcmFuc2FjdGlvbj8gQHJlbGF0aW9uKCJUcmFuc2FjdGlvbkhpc3RvcnkiKQoKICBAQGluZGV4KFthY2NvdW50SWRdKQp9Cgptb2RlbCBCcmFuZEFmZmlsaWF0ZUxpbmsgewogIGlkICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZGVzY3JpcHRpb24gU3RyaW5nPwogIHVybFBhdGggICAgIFN0cmluZwogIGNvbW1pc3Npb24gIEZsb2F0ICAgIEBkZWZhdWx0KDAuMikKICBtZXRhRGF0YSAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBicmFuZElkICAgICAgICBJbnQKICBhZmZpbGlhdGVMaW5rcyBBZmZpbGlhdGVMaW5rW10KCiAgYnJhbmQgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQGluZGV4KFticmFuZElkXSkKfQoKbW9kZWwgQWZmaWxpYXRlTGluayB7CiAgaWQgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjcmVhdGVkICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBtZXRhRGF0YSBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgICAgICAgICAgICAgICBJbnQKICBicmFuZEFmZmlsaWF0ZUxpbmtJZCBJbnQKICBhZmZpbGlhdGVDbGlja3MgICAgICBBZmZpbGlhdGVDbGlja1tdCgogIGFmZmlsaWF0ZSAgICAgICAgICBVc2VyICAgICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmRBZmZpbGlhdGVMaW5rIEJyYW5kQWZmaWxpYXRlTGluayBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRBZmZpbGlhdGVMaW5rSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBBZmZpbGlhdGVDbGljayB7CiAgaWQgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgY3JlYXRlZCAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIHZpc2l0b3JJcCBTdHJpbmc/CiAgb3B0SW5JZCAgSW50CiAgbWV0YURhdGEgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGFmZmlsaWF0ZUxpbmtJZCBJbnQKCiAgb3B0aW4gICAgICAgICAgT3B0SW4gICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW29wdEluSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGFmZmlsaWF0ZUxpbmsgIEFmZmlsaWF0ZUxpbmsgICAgQHJlbGF0aW9uKGZpZWxkczogW2FmZmlsaWF0ZUxpbmtJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYWZmaWxpYXRlRXZlbnQgQWZmaWxpYXRlRXZlbnRbXQp9Cgptb2RlbCBBZmZpbGlhdGVFdmVudCB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBldmVudCAgICAgICAgICAgICBTdHJpbmcgLy8gY2xpY2ssIHB1cmNoYXNlLCBldGMuCiAgY3JlYXRlZCAgICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgdmlzaXRvcklwICAgICAgICAgU3RyaW5nPwogIHVybFBhdGggICAgICAgICAgIFN0cmluZz8KICByZXZlbnVlICAgICAgICAgICBGbG9hdD8KICBjb21taXNzaW9uQW1vdW50ICBGbG9hdD8KICBjb21taXNzaW9uUGVyY2VudCBGbG9hdD8KICBtZXRhRGF0YSAgICAgICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICBhZmZpbGlhdGVDbGlja0lkIEludAoKICBhZmZpbGlhdGVDbGljayBBZmZpbGlhdGVDbGljaz8gQHJlbGF0aW9uKGZpZWxkczogW2FmZmlsaWF0ZUNsaWNrSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBTYXZlZEZpbGUgewogIGlkICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICB0aXRsZSAgICAgU3RyaW5nPwogIHR5cGUgICAgICBTdHJpbmc/IC8vIGF1ZGllbmNlLXJlcG9ydCwgc2VhcmNoLWV4cG9ydCwgY2FtcGFpZ24taW52aXRlCiAgdXJsICAgICAgIFN0cmluZz8KICBzYXZlZERhdGUgRGF0ZVRpbWU/CiAgbWV0YURhdGEgIEpzb24/ICAgICBAZGVmYXVsdCgie30iKQoKICBicmFuZElkIEludD8KICBicmFuZCAgIEJyYW5kPyBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAbWFwKCJzYXZlZGZpbGUiKQp9Cgptb2RlbCBDYW1wYWlnbkludml0ZSB7CiAgaWQgICAgICAgICAgICAgICAgSW50IEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkgQGlkCiAgc29jaWFsUHJvZmlsZUlkICAgSW50PwogIGJyYW5kSWQgICAgICAgICAgIEludAogIGNhbXBhaWduSWQgICAgICAgIEludD8KICBvcHRJbklkICAgICAgICAgICBJbnQ/IEB1bmlxdWUKICBjb2RlICAgICAgICAgICAgICBTdHJpbmc/IEB1bmlxdWUKICBjcmVhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBkZWNsaW5lRGF0ZSAgICAgIERhdGVUaW1lPwogIGRlY2xpbmVSZWFzb24gICAgU3RyaW5nPyAgQGRiLlRleHQKCiAgbWV0YURhdGEgICAgICAgICAgSnNvbj8gQGRlZmF1bHQoInt9IikKCiAgYnJhbmQgICAgICAgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBjYW1wYWlnbiAgICAgICAgICBDYW1wYWlnbj8gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIHNvY2lhbFByb2ZpbGUgICAgIFNvY2lhbFByb2ZpbGU/IEByZWxhdGlvbihmaWVsZHM6IFtzb2NpYWxQcm9maWxlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG9wdEluICAgICAgICAgICAgIE9wdEluPyBAcmVsYXRpb24oZmllbGRzOiBbb3B0SW5JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaW5kZXgoW3NvY2lhbFByb2ZpbGVJZF0pCn0KCm1vZGVsIENyZWF0b3JMaXN0IHsKICBpZCAgICAgICAgIEludCAgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGJyYW5kSWQgICAgSW50CiAgY2FtcGFpZ25JZCBJbnQ/CiAgY3JlYXRlZCAgICBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgYXJjaGl2ZWQgICBEYXRlVGltZT8KICB0aXRsZSAgICAgIFN0cmluZwogIG1ldGFEYXRhICAgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0b3JzICBDcmVhdG9yTGlzdEl0ZW1bXQogIGJyYW5kICAgICBCcmFuZCAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIGNhbXBhaWduICBDYW1wYWlnbj8gICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbY2FtcGFpZ25JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgc2VxdWVuY2VzIFNlcXVlbmNlW10KCiAgQEBtYXAoImNyZWF0b3JsaXN0IikKfQoKbW9kZWwgQ3JlYXRvckxpc3RJdGVtIHsKICBpZCAgICAgICAgICAgICAgSW50IEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc29jaWFsUHJvZmlsZUlkIEludAogIGNyZWF0b3JMaXN0SWQgICBJbnQKCiAgc2F2ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIGludml0ZWQgIERhdGVUaW1lPwogIHRhZ3MgICAgIEpzb24/CiAgZmVlZGJhY2sgU3RyaW5nPyAgIEBkYi5UZXh0CiAgYXJjaGl2ZWQgRGF0ZVRpbWU/CiAgbWV0YURhdGEgSnNvbj8gICAgIEBkZWZhdWx0KCJ7fSIpCgogIGNyZWF0b3JMaXN0ICAgQ3JlYXRvckxpc3QgICAgQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKICBzb2NpYWxQcm9maWxlIFNvY2lhbFByb2ZpbGU/IEByZWxhdGlvbihmaWVsZHM6IFtzb2NpYWxQcm9maWxlSWRdLCByZWZlcmVuY2VzOiBbaWRdLCBvbkRlbGV0ZTogQ2FzY2FkZSkKCiAgc2VxdWVuY2VPdXRib3VuZEVtYWlscyAgU2VxdWVuY2VPdXRib3VuZEVtYWlsW10KICBzZXF1ZW5jZUluYm91bmRFbWFpbHMgICBTZXF1ZW5jZUluYm91bmRFbWFpbFtdCiAgc2VxdWVuY2VJbWFwQ2hlY2twb2ludHMgU2VxdWVuY2VJbWFwQ2hlY2twb2ludFtdCgogIEBAaW5kZXgoW2NyZWF0b3JMaXN0SWRdKQogIEBAbWFwKCJjcmVhdG9ybGlzdGl0ZW0iKQp9Cgptb2RlbCBTb2NpYWxQcm9maWxlIHsKICBpZCAgICAgICBJbnQgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc29jaWFsSWQgU3RyaW5nPyBAdW5pcXVlIC8vIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgY2FuIG5ldmVyIG92ZXJsYXAgYWNyb3NzIG11bHRpcGxlIHBsYXRmb3Jtcywgd2Ugc2hvdWxkIGFwcGVuZCB0aGUgcGxhdGZvcm0gdG8gdGhlIGJlZ2lubmluZyB0byBlbnN1cmUgaXTigJlzIGFsd2F5cyB1bmlxdWUKICB1c2VySWQgICBJbnQ/IC8vIHJlZ2lzdGVyZWQgdXNlciBpZCwgaWYgYXZhaWxhYmxlCgogIC8vIHNvY2lhbCBkYXRhCiAgcGxhdGZvcm0gICAgICBTdHJpbmcKICB1c2VybmFtZSAgICAgIFN0cmluZwogIGZ1bGxuYW1lICAgICAgU3RyaW5nPyAgQGRiLlZhckNoYXIoMTAyNCkKICBwcm9maWxlVXJsICAgIFN0cmluZz8KICBwcm9maWxlUGljVXJsIFN0cmluZz8gIEBkYi5WYXJDaGFyKDIwODMpIC8vIG5lZWQgdG8gc3BlY2lmeSBsZW5ndGgsIGRlZmF1bHQgc2l6ZSBpcyB0b28gc21hbGwKICBmb2xsb3dlckNvdW50IEludD8KICBlbmdhZ2VtZW50ICAgIEZsb2F0PwogIGF2Z1ZpZXdzICAgICAgSW50PwogIHZlcmlmaWVkICAgICAgQm9vbGVhbj8KICBtZXRhRGF0YSAgICAgIEpzb24gICAgIEBkZWZhdWx0KCJ7fSIpCiAgYXVkaWVuY2VEYXRhICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIHBoeWxsb0RhdGEgICAgSnNvbiAgICAgQGRlZmF1bHQoInt9IikKCiAgY3JlYXRlZCBEYXRlVGltZSAgQGRlZmF1bHQobm93KCkpCiAgdXBkYXRlZCBEYXRlVGltZT8KCiAgY3JlYXRvckxpc3RJdGVtcyAgQ3JlYXRvckxpc3RJdGVtW10KICBjYW1wYWlnbkludml0ZXMgICBDYW1wYWlnbkludml0ZVtdCiAgdXNlciAgICAgICAgICAgICAgVXNlcj8gICAgICAgICAgICAgQHJlbGF0aW9uKGZpZWxkczogW3VzZXJJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCgogIEBAaW5kZXgodXNlcm5hbWUpCiAgQEBpbmRleCh1c2VySWQpCiAgQEBtYXAoInNvY2lhbHByb2ZpbGUiKQp9Cgptb2RlbCBNZXNzYWdlVGVtcGxhdGUgewogIGlkICAgICAgIEludCAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsYWJlbCAgICBTdHJpbmc/CiAgdGVtcGxhdGUgU3RyaW5nICBAZGIuVGV4dAogIGJyYW5kSWQgIEludD8KICBicmFuZCAgICBCcmFuZD8gIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSkKICBtZXRhRGF0YSBKc29uICAgIEBkZWZhdWx0KCJ7fSIpIC8vIHRvIHNhdmUgYW55IGFkZGl0aW9uYWwgZGF0YSBzdWNoIGFzIHVzZXIgZGVmaW5lZCB2YXJpYWJsZXMKCiAgQEBpbmRleChbYnJhbmRJZF0pCiAgQEBtYXAoIm1lc3NhZ2V0ZW1wbGF0ZSIpCn0KCm1vZGVsIEVtYWlsVGVtcGxhdGUgewogIGlkICAgICAgICAgSW50ICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIGxhYmVsICAgICAgU3RyaW5nPwogIHN1YmplY3QgICAgU3RyaW5nPwogIHRlbXBsYXRlICAgU3RyaW5nICBAZGIuVGV4dAogIGJyYW5kSWQgICAgSW50PwoKICBicmFuZCAgICAgIEJyYW5kPyAgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIG1ldGFEYXRhICAgSnNvbiAgICBAZGVmYXVsdCgie30iKSAvLyB0byBzYXZlIGFueSBhZGRpdGlvbmFsIGRhdGEgc3VjaCBhcyB1c2VyIGRlZmluZWQgdmFyaWFibGVzCgogIHNlcXVlbmNlU3RlcHMgICBTZXF1ZW5jZVN0ZXBbXQoKICBAQGluZGV4KFticmFuZElkXSkKfQoKbW9kZWwgU29jaWFsTGlzdGVuaW5nTGlzdCB7CiAgaWQgICAgICAgICBJbnQgICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBicmFuZElkICAgIEludAogIGNhbXBhaWduSWQgSW50PyAgICAgIEB1bmlxdWUgLy8gb3B0aW9uYWxseSBsaW5rZWQgdG8gYSBjYW1wYWlnbgogIGNyZWF0ZWQgICAgRGF0ZVRpbWUgIEBkZWZhdWx0KG5vdygpKQogIHVwZGF0ZWQgICAgRGF0ZVRpbWU/CiAgdGl0bGUgICAgICBTdHJpbmcKICBwb3N0VHlwZSAgIFN0cmluZyAvLyBzcG9uc29yZWQgcG9zdHMsIHRvcCBwb3N0cywgb3IgcmVjZW50IHBvc3RzCiAgZmlsdGVycyAgICBKc29uPyAgICAgQGRlZmF1bHQoInt9IikgLy8gZmlsdGVycyB0byBzZWFyY2ggcG9zdHMgYnkgKGxvY2F0aW9uLCBkYXRlLCBoYXNodGFncywgbWVudGlvbnMsIGV0Yy4pCgogIGxhc3RGZXRjaGVkIERhdGVUaW1lPyAvLyBsYXN0IHRpbWUgcG9zdHMgd2VyZSBmZXRjaGVkCgogIGJyYW5kIEJyYW5kICAgICAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbYnJhbmRJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHBvc3RzIExpc3RUb1NvY2lhbFBvc3RbXQoKICBAQG1hcCgic29jaWFsbGlzdGVuaW5nbGlzdCIpCn0KCm1vZGVsIExpc3RUb1NvY2lhbFBvc3QgewogIGlkICAgICBJbnQgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBsaXN0SWQgSW50CiAgcG9zdElkIEludAoKICBsaXN0ICAgICAgIFNvY2lhbExpc3RlbmluZ0xpc3QgQHJlbGF0aW9uKGZpZWxkczogW2xpc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0sIG9uRGVsZXRlOiBDYXNjYWRlKQogIHNvY2lhbFBvc3QgU29jaWFsUG9zdCAgICAgICAgICBAcmVsYXRpb24oZmllbGRzOiBbcG9zdElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCgogIEBAaW5kZXgoW2xpc3RJZCwgcG9zdElkXSkKICBAQGluZGV4KFtwb3N0SWRdKQogIEBAbWFwKCJsaXN0dG9zb2NpYWxwb3N0IikKfQoKbW9kZWwgT3B0SW5WaWV3IHsKICBpZCAgICAgIEludCAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHRpdGxlICAgU3RyaW5nCiAgZmlsdGVycyBKc29uICAgQGRlZmF1bHQoInt9IikKCiAgY2FtcGFpZ25JZCBJbnQ/CiAgY2FtcGFpZ24gICBDYW1wYWlnbj8gQHJlbGF0aW9uKGZpZWxkczogW2NhbXBhaWduSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgib3B0aW52aWV3IikKfQoKbW9kZWwgUmFrdXRlbkFjdGl2aXR5IHsKICBpZCAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBvcmRlcklkICAgICAgU3RyaW5nPwogIG1ldGFEYXRhICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQogIGNyZWF0ZWQgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBjbGlja3MgICAgICAgSW50PwogIG9yZGVycyAgICAgICBJbnQ/CiAgc2FsZXMgICAgICAgIEZsb2F0PwogIGNvbW1pc3Npb24gICBGbG9hdD8KICBhZHZlcnRpc2VySWQgSW50PwoKICB1c2VySWQgSW50CgogIHVzZXIgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInJha3V0ZW5hY3Rpdml0eSIpCn0KbW9kZWwgSW1wYWN0UmFkaXVzRXZlbnQgewogIGlkICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHR5cGUgICAgICAgICBTdHJpbmcgIC8vIGFjdGlvbi9jbGljawogIGNyZWF0ZWQgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBhbW91bnQgICAgICAgRmxvYXQ/CiAgY29tbWlzc2lvbiAgIEZsb2F0PwogIG1ldGFEYXRhICAgICBKc29uICAgICBAZGVmYXVsdCgie30iKQoKICB1c2VySWQgSW50CiAgYnJhbmRJZCBJbnQ/CgogIHVzZXIgVXNlciBAcmVsYXRpb24oZmllbGRzOiBbdXNlcklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBicmFuZCBCcmFuZD8gQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQp9Cgptb2RlbCBDcmVhdG9yU2VhcmNoRmlsdGVyIHsKICBpZCAgICAgICAgSW50ICAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgYnJhbmRJZCAgIEludAogIHRpdGxlICAgICBTdHJpbmcKICBmaWx0ZXJzICAgSnNvbiAgICAgIEBkZWZhdWx0KCJ7fSIpCiAgY3JlYXRlZEF0IERhdGVUaW1lICBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkQXQgRGF0ZVRpbWU/CiAgYnJhbmQgICAgIEJyYW5kIEByZWxhdGlvbihmaWVsZHM6IFticmFuZElkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgQEBtYXAoImNyZWF0b3JzZWFyY2hmaWx0ZXIiKQp9Cgptb2RlbCBTZXF1ZW5jZSB7CiAgaWQgICAgICAgICAgICAgICAgSW50ICAgICAgQGlkIEBkZWZhdWx0KGF1dG9pbmNyZW1lbnQoKSkKICBjYW1wYWlnbklkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdElkICAgICBJbnQKICB0aXRsZSAgICAgICAgICAgICBTdHJpbmcgICBAZGIuVmFyQ2hhcigyNTUpCiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgY29tcGxldGVkICAgICAgICAgQm9vbGVhbiAgQGRlZmF1bHQoZmFsc2UpCiAgYnJhbmRJZCAgICAgICAgICAgSW50CiAgZW5hYmxlZCAgICAgICAgICAgQm9vbGVhbiAgQGRlZmF1bHQoZmFsc2UpCgogIGNhbXBhaWduICAgICAgICAgIENhbXBhaWduIEByZWxhdGlvbihmaWVsZHM6IFtjYW1wYWlnbklkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdCAgICAgICBDcmVhdG9yTGlzdCBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgYnJhbmQgICAgICAgICAgICAgQnJhbmQgQHJlbGF0aW9uKGZpZWxkczogW2JyYW5kSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBzdGVwcyAgICAgICAgICAgICBTZXF1ZW5jZVN0ZXBbXQogIG91dGJvdW5kRW1haWxzICAgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCiAgaW5ib3VuZEVtYWlscyAgICAgU2VxdWVuY2VJbmJvdW5kRW1haWxbXQogIGltYXBDaGVja3BvaW50cyAgIFNlcXVlbmNlSW1hcENoZWNrcG9pbnRbXQoKICBAQG1hcCgic2VxdWVuY2UiKQp9Cgptb2RlbCBTZXF1ZW5jZVN0ZXAgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRlZEF0ICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCiAgZW1haWxUZW1wbGF0ZUlkICAgSW50CiAgZGF5c0FmdGVyUHJldmlvdXMgSW50CiAgb3JkZXIgICAgICAgICAgICAgSW50CiAgc3RlcElkICAgICAgICAgICAgSW50CgogIHNlcXVlbmNlICAgICAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSwgb25EZWxldGU6IENhc2NhZGUpCiAgZW1haWxUZW1wbGF0ZSAgICAgRW1haWxUZW1wbGF0ZSBAcmVsYXRpb24oZmllbGRzOiBbZW1haWxUZW1wbGF0ZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgb3V0Ym91bmRFbWFpbHMgIFNlcXVlbmNlT3V0Ym91bmRFbWFpbFtdCgogIEBAbWFwKCJzZXF1ZW5jZXN0ZXAiKQp9Cgptb2RlbCBTZXF1ZW5jZU91dGJvdW5kRW1haWwgewogIGlkICAgICAgICAgICAgICAgIEludCAgICAgIEBpZCBAZGVmYXVsdChhdXRvaW5jcmVtZW50KCkpCiAgc2VxdWVuY2VJZCAgICAgICAgSW50CiAgY3JlYXRvckxpc3RJdGVtSWQgSW50CiAgc2VxdWVuY2VTdGVwSWQgICAgSW50CiAgc2VudEF0ICAgICAgICAgICAgRGF0ZVRpbWUgQGRlZmF1bHQobm93KCkpCgogIHNlcXVlbmNlICAgICAgU2VxdWVuY2UgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlSWRdLCByZWZlcmVuY2VzOiBbaWRdKQogIGNyZWF0b3JMaXN0ICAgQ3JlYXRvckxpc3RJdGVtIEByZWxhdGlvbihmaWVsZHM6IFtjcmVhdG9yTGlzdEl0ZW1JZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgc2VxdWVuY2VTdGVwICBTZXF1ZW5jZVN0ZXAgQHJlbGF0aW9uKGZpZWxkczogW3NlcXVlbmNlU3RlcElkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBtYXAoInNlcXVlbmNlb3V0Ym91bmRlbWFpbCIpCn0KCm1vZGVsIFNlcXVlbmNlSW5ib3VuZEVtYWlsIHsKICBpZCAgICAgICAgICAgICAgICBJbnQgICAgICBAaWQgQGRlZmF1bHQoYXV0b2luY3JlbWVudCgpKQogIHNlcXVlbmNlSWQgICAgICAgIEludAogIGNyZWF0b3JMaXN0SXRlbUlkIEludAogIHJlY2VpdmVkQXQgICAgICAgIERhdGVUaW1lIEBkZWZhdWx0KG5vdygpKQogIG1zZ0hhc2ggICAgICAgICAgIFN0cmluZwoKICBzZXF1ZW5jZSAgICAgIFNlcXVlbmNlIEByZWxhdGlvbihmaWVsZHM6IFtzZXF1ZW5jZUlkXSwgcmVmZXJlbmNlczogW2lkXSkKICBjcmVhdG9yTGlzdElkIENyZWF0b3JMaXN0SXRlbSBAcmVsYXRpb24oZmllbGRzOiBbY3JlYXRvckxpc3RJdGVtSWRdLCByZWZlcmVuY2VzOiBbaWRdKQoKICBAQG1hcCgic2VxdWVuY2VpbmJvdW5kZW1haWwiKQp9Cgptb2RlbCBTZXF1ZW5jZUltYXBDaGVja3BvaW50IHsKICBzZXF1ZW5jZUlkICAgICAgICBJbnQKICBjcmVhdG9yTGlzdEl0ZW1JZCBJbnQKICBsYXN0UmVhZE1zZ0RhdGUgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICBjcmVhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKICB1cGRhdGVkQXQgICAgICAgICBEYXRlVGltZSBAZGVmYXVsdChub3coKSkKCiAgc2VxdWVuY2UgICAgICBTZXF1ZW5jZSBAcmVsYXRpb24oZmllbGRzOiBbc2VxdWVuY2VJZF0sIHJlZmVyZW5jZXM6IFtpZF0pCiAgY3JlYXRvckxpc3RJZCBDcmVhdG9yTGlzdEl0ZW0gQHJlbGF0aW9uKGZpZWxkczogW2NyZWF0b3JMaXN0SXRlbUlkXSwgcmVmZXJlbmNlczogW2lkXSkKCiAgQEBpZChbc2VxdWVuY2VJZCwgY3JlYXRvckxpc3RJdGVtSWRdKQogIEBAbWFwKCJzZXF1ZW5jZWltYXBjaGVja3BvaW50IikKfQ==",
|
|
1300
|
+
"inlineSchemaHash": "932d3948a47a76776dc5feb3e72bf99562c4ea94173cf7e064c609a27cb24f26",
|
|
1301
1301
|
"noEngine": false
|
|
1302
1302
|
}
|
|
1303
1303
|
|
package/package.json
CHANGED