Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
207 lines
256 KiB
Text
207 lines
256 KiB
Text
[
|
|
{
|
|
"id": "infd-20261011-zlib-remediation-r1",
|
|
"register": {
|
|
"memo": {
|
|
"id": "infd-20261011-zlib-remediation-r1",
|
|
"version": 1,
|
|
"question": "Approve the exact zlib85091 fixed image-only release, new protected backup/restore compatibility drill and database-preserving rollback?",
|
|
"requested_act": "approve",
|
|
"binding_level": "organizational",
|
|
"brief": "Published owner CI image f558 has zero full-scan findings across44packages; only zlib1.3.2-r0 to r1 changes. Fresh schema5 private backup/isolated clone drill and cutover snapshot precede one Deployment manual prune=false Recreate sync. Separate founder go required; old T04 acceptance/history unchanged. Rollback image763c/Applicationc96 retains latestDB. Release reserves30minutes before Oct12 deadline.",
|
|
"binding": {
|
|
"principal": {
|
|
"id": "pending-human-session",
|
|
"kind": "person",
|
|
"display_name": "Founder review"
|
|
},
|
|
"target": {
|
|
"kind": "environment",
|
|
"id": "realm:kubernetes/railiance01/informed-decision",
|
|
"label": "Informed Decision zlib85091 image-only remediation on railiance01",
|
|
"environment": "production"
|
|
},
|
|
"terms": "Approve only INFD-WP-0009-T05/zlib85091-r1 trialinfd-zlib-20261011-r1 and exact attached digests: new private drillbackup/copy, isolatedschema5pre/admin/postintegrityandcounts, exactcreatedclonecleanup, freshcutoverbackup/copy, manualfinalsourceDeployment-onlyimagef558/prune=false. ImmutableCM/PVC/config/credentials/audience/resources sealed. Freshrootnativeauthenticated confirmed founderACCEPTsource1 beforeeveryphase; receiptsarebookkeeping/noautonomousgrant. Rollbackonlyimage763c/Applicationc96 preserveslatestDB, separateverification. AllphasesbeginbeforeOct12 23:59:59Z; releasereserves30minutes; newdecisionbeyond. ExistingT04UNCERTAINEvidenceunaltered, nooldhelperamendment/phase retry, noresidualpromotion ordoctrinechange."
|
|
},
|
|
"step_kind": "approve",
|
|
"packet": [
|
|
{
|
|
"item_id": "decision-packet-md",
|
|
"label": "decision-packet.md",
|
|
"hash": "sha256:c570bade38479af93f08f717fcebb328a0db38e5b58bd0e7983681bc5ae41b7a"
|
|
},
|
|
{
|
|
"item_id": "proposal-json",
|
|
"label": "proposal.json",
|
|
"hash": "sha256:a992d799bc07e8fbf05b894a5b184b11092f0041ee68187e59a23c5395b263e9"
|
|
},
|
|
{
|
|
"item_id": "native-backup-restore-protocol-md",
|
|
"label": "native-backup-restore-protocol.md",
|
|
"hash": "sha256:0614e2118927180d18f4a3fa833990a38e27340234a952abdb1d2ca93e7602a4"
|
|
},
|
|
{
|
|
"item_id": "native-preflight-json",
|
|
"label": "native-preflight.json",
|
|
"hash": "sha256:56637994dfdae46a6f9ab442c2ff9b259212650b35eb98d896c5e837f01ce2f9"
|
|
},
|
|
{
|
|
"item_id": "rollback-preflight-json",
|
|
"label": "rollback-preflight.json",
|
|
"hash": "sha256:0188799d352e4d49d5ca29d6e197742d02e96a4b0b399df1f478e41b25292eb5"
|
|
},
|
|
{
|
|
"item_id": "published-verification-json",
|
|
"label": "published-verification.json",
|
|
"hash": "sha256:dd4eecf0c103dca7922094a8beeb99b77ae96fd1d5fe532e37bd833daa02614e"
|
|
},
|
|
{
|
|
"item_id": "artifact-comparison-json",
|
|
"label": "artifact-comparison.json",
|
|
"hash": "sha256:a1c5d9e249dc00600449998360faf6e8da0206b568c76d155602c4645fa5fce4"
|
|
},
|
|
{
|
|
"item_id": "installed-zlib-proof-json",
|
|
"label": "installed-zlib-proof.json",
|
|
"hash": "sha256:6af62f86f50ac185fab94163c24ac8150ead69e62f8d825b0dce1e75a5a57b68"
|
|
},
|
|
{
|
|
"item_id": "sealed-live-deployment-json",
|
|
"label": "sealed-live-deployment.json",
|
|
"hash": "sha256:f8a9a07abc2eb52cdf6bcdba2d9f79dec073145c31d0444a9e0fe1147e42cc4e"
|
|
},
|
|
{
|
|
"item_id": "sealed-native-dependencies-json",
|
|
"label": "sealed-native-dependencies.json",
|
|
"hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369"
|
|
},
|
|
{
|
|
"item_id": "candidate-deployment-json",
|
|
"label": "candidate-deployment.json",
|
|
"hash": "sha256:487f834cc86dcbc7a04c2392bde072ecaf87dc116b4baa16c35eb9c599ad5c95"
|
|
},
|
|
{
|
|
"item_id": "rollback-deployment-json",
|
|
"label": "rollback-deployment.json",
|
|
"hash": "sha256:f8a9a07abc2eb52cdf6bcdba2d9f79dec073145c31d0444a9e0fe1147e42cc4e"
|
|
},
|
|
{
|
|
"item_id": "execution-bundle-json",
|
|
"label": "execution-bundle.json",
|
|
"hash": "sha256:09b0a8ed6c3c7d1e94f5f703a2d5834ca26fc166cfc8f4f9b4511ab70ec16ac9"
|
|
}
|
|
],
|
|
"highlights": [
|
|
{
|
|
"id": "protected-drill-and-recreate",
|
|
"item_id": "decision-packet-md",
|
|
"note": "This new T05 decision authorizes protected real-data backup/copy and no-network same-schema restore drill plus brief Recreate image release. Scan0 is actual published44package result, not installed acceptance. Rollback preserves latestDB; priorfailedT04evidence retained. No oldapprovalreuse. Allphase starts expireOct12; release reserves30minutesforrecovery; noautomaticextension.",
|
|
"required_ack": true,
|
|
"severity": "warning",
|
|
"locator": {
|
|
"kind": "section",
|
|
"heading": "Requested decision"
|
|
}
|
|
}
|
|
],
|
|
"sealed": false,
|
|
"approval_id": null,
|
|
"approval_binding_digest": null
|
|
},
|
|
"documents": [
|
|
{
|
|
"digest": "sha256:c570bade38479af93f08f717fcebb328a0db38e5b58bd0e7983681bc5ae41b7a",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBSZXF1ZXN0ZWQgZGVjaXNpb24KCkFwcHJvdmUgdGhlIGV4YWN0IG5ldyBUMDUgemxpYi1vbmx5IGltYWdlIHJlbGVhc2UgYW5kIHByb3RlY3RlZCBzYW1lLXNjaGVtYSBjb21wYXRpYmlsaXR5IGRyaWxsLCBhZnRlciBmaW5hbCBpbmRlcGVuZGVudCBQcm9kdWN0IGFuZCBQbGF0Zm9ybSBhY2tub3dsZWRnbWVudHMuIFRoaXMgcGFja2V0IGlzIHByZXBhcmVkIGFuZCB1bmFwcHJvdmVkOyBmcmVzaCByb2xsYmFjayBzZXJ2ZXIgZHJ5LXJ1biBwYXNzZWQgd2l0aCBleGFjdGx5IHRoZSBiYXNlbGluZSBpbWFnZSBhbmQgZW1wdHkgZGlmZi4gUm9vdCByZXRhaW5zIGV4YWN0IGZpbmFsIG93bmVyIHNvdXJjZSByZXZpc2lvbiBhbmQgaW5kZXBlbmRlbnQgYWNrbm93bGVkZ21lbnRzIGJlZm9yZSBhc2tpbmcgZm9yIG5hdGl2ZSBmb3VuZGVyIGRpc3Bvc2l0aW9uLiBUaGUgcHJpb3IgVDA0IGFwcHJvdmFsIGlzIGV4Y2x1ZGVkLgoKVGhlIGFkbWl0dGVkIG93bmVyIENJIHB1Ymxpc2hlZCBpbW11dGFibGUgaW1hZ2UgZjU1ODhmNDk2YjFmMjY3ZDA3Y2RjOWY1MjA4ZTZmMmYyNDFmNzRiNzM5YzIzOTI0YjAzNzAyZGVjMTNhNWMyMyBmcm9tIHNvdXJjZTliNGJiMjVkMzI1Njk4YWU1NDNlN2U4YThhM2MzNTkyZGIxZjU4ZmMuIEl0cyBhY3R1YWwgZnVsbCBzY2FuIHJlcG9ydHMgemVybyBmaW5kaW5ncyBhY3Jvc3M0NHBhY2thZ2VzLiBUaGUgc2FtZSBzY2FuIERCIGZpbmRzIG9uZU1FRElVTSBvbiBjdXJyZW50aW1hZ2U3NjNjLiBTaWduZWQgb2ZmaWNpYWwgQWxwaW5lIHpsaWIxLjMuMi1yMSBpcyB0aGUgc29sZSBwYWNrYWdlIGNoYW5nZTsgYWN0dWFsIHB1Ymxpc2hlZCBmaWxlc3lzdGVtIHByb29mIHNob3dzIG9ubHlsaWJ6IGFuZEFQS2luc3RhbGxlZGRhdGFiYXNlIGNoYW5nZXMsIHplcm8zMTNkaXJlY3RvcnltZXRhZGF0YSBjaGFuZ2VzLCByZXRhaW5lZG5pbmViYXNlbGF5ZXJzIGFuZCB1bmNoYW5nZWQzNmFwcGxpY2F0aW9uZmlsZXMvcHVycG9zZXBvbGljeS9jb25maWcvY3JlZGVudGlhbHMvYXVkaWVuY2UvcmVzb3VyY2VzLiBSZWdpc3RyeS10by1kYWVtb24gY29uZmlnIHNlcmlhbGl6YXRpb24gZGlmZmVycyB1bmRlciBjbG9zZWQgdmVyaWZpZWQgbm9ybWFsaXphdGlvbiwgd2l0aG91dCBydW50aW1lIGNoYW5nZS4KClRoZSBleGFjdCBvcmRlcmVkIHByb3RlY3RlZCBkcmlsbCBhbmQgcmVsZWFzZSBhcmUgc3BlY2lmaWVkIGluIG5hdGl2ZS1iYWNrdXAtcmVzdG9yZS1wcm90b2NvbC5tZCBhbmQgaGFzaC1ib3VuZCBleGVjdXRpb24gYnVuZGxlLiBOZXcgYmFja3VwIHBhdGhzLCBpc29sYXRlZCBjbG9uZSBhbmQgam91cm5hbCBhcmUgZGlzdGluY3QgZnJvbSBvbGQgZXZpZGVuY2UuIFJlYWwgcHJpdmF0ZSBkYXRhIHdpbGwgZW50ZXIgb25seSBhcHByb3ZlZCBwcml2YXRlIGN1c3RvZHkgYW5kIHRoZSBpc29sYXRlZCBuby1uZXR3b3JrIGNsb25lOyBjb250ZW50IG5ldmVyIGVudGVycyBwdWJsaWMgZXZpZGVuY2UuIEZhaWxlZC91bmNlcnRhaW4gcGhhc2Ugc3RhdGVzIHJlbWFpbiBkdXJhYmxlIGFuZCBjYW5ub3QgYmUgcmV0cmllZC4gUHJpb3IgVDA0IGZhaWxlZCBjb3B5L3ZlcmlmeSBhcmUgcHJlc2VydmVkLgoKQWZ0ZXIgc2NoZW1hNS9pbnRlZ3JpdHkvZXhhY3RjbG9uZWNvdW50cyBwYXNzIGFuZCBjbG9uZSBjbGVhbnVwIHN1Y2NlZWRzLCBmcmVzaCBjdXRvdmVyIGJhY2t1cC9jb3B5IHByZWNlZGVzIHRoZSBleGFjdCBtYW51YWwgaW1hZ2Utb25seSBEZXBsb3ltZW50IHN5bmMuIEN1cnJlbnQgYmFzZWxpbmUgaXMgaGVhbHRoeWdlbmVyYXRpb24yNS9pbWFnZTc2M2MvQXBwbGljYXRpb25jOTYuIEltbXV0YWJsZUNNNmMvUFZDL1BvZGNvbmZpZ3VyYXRpb24vUERQIG9yaWdpbnMgcmVtYWluIHNlYWxlZC4gRnJlc2hub2RlQ1BVMzQ2MG9mNDAwMG0gc3VwcG9ydHMgdW5jaGFuZ2VkUmVjcmVhdGUsIHdpdGggYW5vdGhlciBjaGVjayBiZWZvcmUgZWZmZWN0LiBCcmllZiBhdmFpbGFiaWxpdHkgaW50ZXJydXB0aW9uIGV4cGVjdGVkLgoKUm9sbGJhY2sgcmVzdG9yZXMgRGVwbG95bWVudGltYWdlNzYzYyBhbmRBcHBsaWNhdGlvbmM5NiB3aGlsZSByZXRhaW5pbmcgbGF0ZXN0c2NoZW1hNWRhdGFiYXNlOyBubyBvbGQgc25hcHNob3QgcmVzdG9yYXRpb24uIFNlcGFyYXRlIGluc3RhbGxlZC9uYXRpdmUgaGVhbHRoL2N1c3RvZHkvUERQLWdhdGVkIHJlYWRiYWNrIGFuZCBhY3R1YWwgbmF0aXZlIGltYWdlIHJlc2NhbiBwcmVjZWRlIFQwNSBjbG9zdXJlLiBBbGxwaGFzZSBzdGFydHMgZXhwaXJlT2N0MTIgMjM6NTk6NTlaOyByZWxlYXNlIHJlc2VydmVzMzBtaW51dGVzZm9ydmVyaWZpY2F0aW9uYW5kcmVjb3ZlcnkuIEFmdGVyZXhwaXJ5IGEgbmV3Zm91bmRlcmRlY2lzaW9uIGlzIHJlcXVpcmVkLiBFVVIwbmV3cmVjdXJyaW5naW5mcmFzdHJ1Y3R1cmUsIGJvdW5kZWRwcml2YXRlIHN0b3JhZ2UgYW5kdW5wcmljZWRhdHRlbmRlZHRpbWUuIE5vIG5ld2RvY3RyaW5lL2F1dG9waWxvdC9jcmVkZW50aWFsZ3JhbnQgaXMgYXV0aG9yaXplZC4K"
|
|
},
|
|
{
|
|
"digest": "sha256:a992d799bc07e8fbf05b894a5b184b11092f0041ee68187e59a23c5395b263e9",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJraW5kIjogImluZm9ybWVkLWRlY2lzaW9uLnN1cGVydmlzZWQtcmVsZWFzZS1wcm9wb3NhbCIsCiAgInZlcnNpb24iOiAxLAogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA1L3psaWI4NTA5MS1yMSIsCiAgInRyaWFsX2lkIjogImluZmQtemxpYi0yMDI2MTAxMS1yMSIsCiAgInN0YXRlIjogInByZXBhcmVkLXVuYXBwcm92ZWQiLAogICJtZW1vX2lkIjogImluZmQtMjAyNjEwMTEtemxpYi1yZW1lZGlhdGlvbi1yMSIsCiAgIm1lbW9fdmVyc2lvbiI6IDEsCiAgInRhc2siOiAiSU5GRC1XUC0wMDA5LVQwNSIsCiAgImNhbmRpZGF0ZV9pbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjMiLAogICJhcnRpZmFjdF9zb3VyY2VfcmV2aXNpb24iOiAiOWI0YmIyNWQzMjU2OThhZTU0M2U3ZThhOGEzYzM1OTJkYjFmNThmYyIsCiAgInByaW9yX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInByaW9yX2FwcGxpY2F0aW9uX3JldmlzaW9uIjogImM5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTIiLAogICJzb3VyY2VfcmV2aXNpb24iOiBudWxsLAogICJwdWJsaXNoZWRfYXJ0aWZhY3RfdmVyaWZpZWQiOiB0cnVlLAogICJuYXRpdmVfYWN0aW9uc19leGVjdXRlZCI6IGZhbHNlLAogICJhcHByb3ZhbF9pZCI6IG51bGwsCiAgImF1dGhvcml0eV9tb2RlIjogIkFETUlOSVNURVIiLAogICJ0YXJnZXQiOiAicmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbiIsCiAgImNvc3RfZXN0aW1hdGVfZXVyIjogMCwKICAicmlzayI6ICJQcml2YXRlIHNhbWUtc2NoZW1hIGJhY2t1cCBjb3BpZXMgYW5kIGJyaWVmIFJlY3JlYXRlIGF2YWlsYWJpbGl0eSBnYXAuIEZhaWxlZCBvciBhbWJpZ3VvdXMgcGhhc2VzIHJldGFpbmVkOyBubyByZXBsYXkuIFJvbGxiYWNrIGNoYW5nZXMgRGVwbG95bWVudCBpbWFnZS9zb3VyY2Ugb25seSwgcmV0YWlucyBsYXRlc3QgZGF0YWJhc2UuIiwKICAiZXhlY3V0ZV9ieSI6ICIyMDI2LTEwLTEyVDIzOjU5OjU5WiIsCiAgInJlbGVhc2VfbXVzdF9zdGFydF9ieSI6ICIyMDI2LTEwLTEyVDIzOjI5OjU5WiIsCiAgIm1heF9zbmFwc2hvdF9ieXRlcyI6IDUzNjg3MDkxMiwKICAibWF4aW11bV9uZXdfc25hcHNob3RfcGF5bG9hZF9ieXRlc19lYWNoX3NpdGUiOiAxMDczNzQxODI0LAogICJsb2NhbF9leHRyYV9kaXNwb3NhYmxlX2Nsb25lX21heF9ieXRlcyI6IDUzNjg3MDkxMiwKICAicHJpdmF0ZV9tZXRhZGF0YV9hbmRfc3FsaXRlX3NpZGVjYXJzX2FkZGl0aW9uYWxfaGVhZHJvb21fYnl0ZXMiOiAxNjc3NzIxNiwKICAidW5ib3VuZF9pbnB1dHMiOiBbCiAgICAiZXhhY3QgY29tbWl0dGVkIG93bmVyIHJlbmRlcmluZyByZXZpc2lvbiByZXRhaW5lZCBpbiByb290IHN1cGVydmlzZWQgcmVjZWlwdCIsCiAgICAiUHJvZHVjdCBhbmQgUGxhdGZvcm0gZmluYWwgYWNrbm93bGVkZ21lbnRzIiwKICAgICJjb25maXJtZWQgZm91bmRlciBleGFjdCBuZXcgZGlzcG9zaXRpb24iCiAgXSwKICAicHVibGlzaGVkX3ZlcmlmaWNhdGlvbl9zaGEyNTYiOiAiZGQ0ZWVjZjBjMTAzZGNhNzkyMjA5NGE4YmVlYjk5Yjc3YWU5NmZkMWQ1ZmU1MzJlMzdiZDgzM2RhYTAyNjE0ZSIsCiAgIm5hdGl2ZV9yZWFkb25seV9wcmVmbGlnaHRfc2hhMjU2IjogIjU2NjM3OTk0ZGZkYWU0NmE2ZjlhYjQ0MmMyZmY5YjI1OTIxMjY1MGIzNWViOThkODk2YzVlODM3ZjAxY2UyZjkiLAogICJleGVjdXRvcl9wbGFuX3NoYTI1NiI6ICI3NTBhNDM4NjI3N2RjNzljMzIxM2U2YWVkMTdhZTU2ODYzMzJiZmQ1ODdhNTVlNWU4N2ViZjM3NzZhNjNhYjBjIiwKICAiZXhlY3V0aW9uX2J1bmRsZV9zaGEyNTYiOiAiMDliMGE4ZWQ2YzNjN2QxZTk0ZjVmNzAzYTJkNTgzNGNhMjZmYzE2NmNmYzhmNGY5YjQ1MTFhYjcwZWMxNmFjOSIsCiAgInJvbGxiYWNrX3ByZWZsaWdodF9zaGEyNTYiOiAiMDE4ODc5OWQzNTJlNGQ0OWQ1Y2EyOWQ2ZTE5Nzc0MmQwMmU5NmE0YjBiMzk5ZGYxZjQ3OGU0MWIyNTI5MmViNSIsCiAgInBvc3RfcmVhZHlfbmF0aXZlX3Byb3ZpZGVyX3Byb2JlIjogImNhbm9uaWNhbCBsaWZlY3ljbGUub3V0Y29tZXMgU09VUkNFMSB0aHJvdWdoIGV4aXN0aW5nIGFkbWl0dGVkIFN0YXRlSHViIGRpc3BhdGNoZXI7IGNyZWRlbnRpYWxzIHN0YXkgaW5zaWRlIFBvZDsgYm91bmRlZCBtZXRhZGF0YSBjb3JyZWxhdGVkIHRvIHZlcmlmaWVkIGNhbmRpZGF0ZSBpbWFnZS9Qb2Qvc291cmNlIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:0614e2118927180d18f4a3fa833990a38e27340234a952abdb1d2ca93e7602a4",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBUMDUgemxpYjg1MDkxIHJlbGVhc2Ug4oCUIHByZWxpbWluYXJ5LCB1bmFwcHJvdmVkCgpUaGlzIGlzIGEgZGlzdGluY3QgcHJvcG9zYWwvdHJpYWwgZm9yIGV4aXN0aW5nIElORkQtV1AtMDAwOS1UMDUuIFRoZSBhY3R1YWwgVDA0IHNvdXJjZTIgYWNjZXB0YW5jZSBkb2VzIG5vdCBhdXRob3JpemUgaXQuIFByZXZpb3VzIFIxIGNvcHkgYW5kIFIyIHZlcmlmeSBVTkNFUlRBSU4gam91cm5hbCBzdGF0ZXMgcmVtYWluIHVudG91Y2hlZC4gSU5GRC1JTi0wMDEwIHJlbWFpbnMgYW4gdW5wcm9tb3RlZCBnZW5lcmFsIHZlcmlmaWVyIHJlc2lkdWFsOyB0aGlzIG5ldyB0YXNrLXNwZWNpZmljIHZlcmlmaWVyIGlzIGEgcHJlcmVxdWlzaXRlIG9mIGFjdGl2ZSBUMDUsIG5vdCBhbiBhbWVuZG1lbnQgb2YgdGhlIG9sZCBhcHByb3ZlZCBoZWxwZXIuCgpFeGFjdCBpbnRlbmRlZCBpbWFnZSBmNTU4OGY0OTZiMWYyNjdkMDdjZGM5ZjUyMDhlNmYyZjI0MWY3NGI3MzljMjM5MjRiMDM3MDJkZWMxM2E1YzIzIHdhcyBidWlsdCBieSBhZG1pdHRlZCBvd25lciBDSTExNTM0L3J1bjQgZnJvbSA5YjRiYjI1ZDMyNTY5OGFlNTQzZTdlOGE4YTNjMzU5MmRiMWY1OGZjLiBQdWJsaWNhdGlvbiBpcyBub3QgaW5zdGFsbGVkIGFjY2VwdGFuY2UuIEZpbmFsIHBhY2tldCByZXF1aXJlcyBpbmRlcGVuZGVudCBwdWJsaXNoZWQtaW1hZ2Ugc2Nhbi9ydW50aW1lL2ZpbGVzeXN0ZW0vc291cmNlIHByb29mIGFuZCBmcmVzaCByZWFkLW9ubHkgbmF0aXZlIHByb2plY3Rpb24vb25lLW9iamVjdCBkcnktcnVuIGV2aWRlbmNlLiBVbnRpbCBhbGwgZmluYWwgaW5wdXRzIGFuZCBpbmRlcGVuZGVudCBvd25lciBhY2tub3dsZWRnbWVudHMgYXJlIGZyb3plbiwgZXhlY3V0aW9uLXBsYW4gc3RhdGUgcmVtYWlucyBwcmVsaW1pbmFyeSBhbmQgdGhlIGFjdHVhdG9yIHJlZnVzZXMgYmVmb3JlIGFueSBhdXRob3JpdHksIGpvdXJuYWwgb3IgbmF0aXZlIGFjdGlvbi4KCkFmdGVyIGEgTkVXIGV4YWN0IGNvbmZpcm1lZCBmb3VuZGVyIGFjY2VwdGFuY2UsIHJvb3QgZnJlc2hseSBhdXRoZW50aWNhdGVzIGZpeGVkLW9yaWdpbiBuYXRpdmUgc291cmNlLXZlcnNpb24xIG91dGNvbWVzIGJlZm9yZSBlYWNoIHBoYXNlLiBSZWNlaXB0IGZpbGVzIGFyZSBzdXBlcnZpc2VkIGJvb2trZWVwaW5nLCBub3Qgc2lnbmVkIGdyYW50cyBvciBhdXRvbm9teS4gV3JvbmcgdGFzaywgc291cmNlLCBtZW1vL3ZlcnNpb24sIHN0YWxlL3BlbmRpbmcvYWdlbnQgZGlzcG9zaXRpb24sIG9sZCBUMDQgYWNjZXB0YW5jZSBvciBjaGFuZ2VkIGlucHV0cyByZWZ1c2UuIFJvb3QgcmV0YWlucyBleGFjdCBhcHByb3ZlZCBzb3VyY2UgcmV2aXNpb24vZGlnZXN0cyBhbmQgYWN0aW9uIHJlc3VsdHMgaW4gc3VwZXJ2aXNpb24uIEFwcHJvdmFsIGRvZXMgbm90IHByb21vdGUgYW55IGFnZW50LgoKRml4ZWQgcGhhc2Ugb3JkZXI6IGRyaWxsLWJhY2t1cCDihpIgZHJpbGwtY29weSDihpIgb2ZmbGluZS12ZXJpZnkg4oaSIGNsZWFudXAtb2ZmbGluZSDihpIgY3V0b3Zlci1iYWNrdXAg4oaSIGN1dG92ZXItY29weSDihpIgcmVsZWFzZSDihpIgdmVyaWZ5LiBOZXcgcHJpdmF0ZSBuYXRpdmUgL2RhdGEvcHJpdmF0ZS96bGliODUwOTEtcjEsIHJvb3QgLnByaXZhdGUtYmFja3Vwcy8yMDI2MTAxMS1pbmZkLXpsaWItcjEgYW5kIGxvY2FsIHZvbHVtZSBpbmZkLXpsaWItcjEtcmVzdG9yZS0yMDI2MTAxMSBhcmUgZGlzdGluY3QgZnJvbSBhbGwgVDA0IGN1c3RvZHkuIE5ldyBwcml2YXRlIGpvdXJuYWwgaW50ZW50IGlzIGZzeW5jZWQgUlVOTklORyBiZWZvcmUgZGlzcGF0Y2g7IG5vIGF0dGVtcHRlZCBwaGFzZSByZXBsYXkuIEZpeGVkIG91dHB1dCBzY2hlbWEgY29udGFpbnMgb25seSBjb3VudHMsIGhhc2hlcywgb2JqZWN0IGlkZW50aXR5IGFuZCBib29sZWFuIHJlc3VsdHM7IHJhdyBlcnJvcnMgYW5kIHByaXZhdGUgY29udGVudCBhcmUgd2l0aGhlbGQuIEV4aXN0aW5nIG5hdGl2ZSBzbmFwc2hvdHMvZGF0YWJhc2Uvc2lkZWNhcnMgYXJlIG5ldmVyIHJlbW92ZWQgb3IgcmVzdG9yZWQgb3ZlciBjdXJyZW50IGRhdGEuCgpGcmVzaCBiYWNrdXAgaW5zcGVjdGlvbiB1c2VzIGNvcGllZCBleHBsaWNpdC1jbG9zZSBTUUxpdGUgaGVscGVyczogbGl2ZSBhbmQgb2ZmbGluZSBjbG9uZSByZWFkZXJzIGFyZSBtb2RlPXJvL3F1ZXJ5X29ubHkgYW5kIFdBTC1hd2FyZSwgYmVmb3JlIGFueSBTdG9yZS9hZG1pbiBvcGVuLiBJbW11dGFibGUgcmVhZGVyIGlzIHVzZWQgb25seSBmb3IgZnJlc2hseSBjbG9zZWQgaGFzaC1ib3VuZCBwcml2YXRlIHNuYXBzaG90IHdpdGggYWJzZW50L3plcm8gV0FMIGZyYW1lcyBhbmQgc3RhYmxlIGlkZW50aXR5L21ldGFkYXRhL2RpZ2VzdCBiZWZvcmUvYWZ0ZXIgcmVhZC9jb3B5LiBNYWluIGFuZCBzaWRlY2FycyByZW1haW4gcmV0YWluZWQuIFNjaGVtYSBtdXN0IGVxdWFsNSwgaW50ZWdyaXR5IG9rLCBhbmQgZXhhY3Qgc25hcHNob3QvaXNvbGF0ZWQgY2xvbmUgY291bnRzIG1hdGNoIGJlZm9yZS9hZG1pbi9hZnRlci4gVGhlIGRldGFjaGVkIGxvY2FsIGNsb25lIGhhcyBuZXR3b3JrIG5vbmUsIHJlYWRvbmx5IHJvb3QsIG5vIHNlcnZpY2UvcnVudGltZSBjb25maWcvY3JlZGVudGlhbCBtb3VudHM7IG9ubHkgbmFycm93bHkgc2NvcGVkIFVJRDAgQ0FQX0NIT1dOIGluaXRpYWxpemVyIHByZWNlZGVzIFVJRDEwMDAxIHJlYWRzL2FkbWluLiBPcmlnaW5hbCBwcml2YXRlIGNvcHkgaXMgaGFzaC1zdGFibGUuIENsZWFudXAgcmVtb3ZlcyBvbmx5IHRoZSBkaXNwb3NhYmxlIHZvbHVtZSB3aG9zZSBub25jZS9sYWJlbHMvY3JlYXRpb24gbWV0YWRhdGEgbWF0Y2ggdGhpcyB0cmlhbCwgYmVmb3JlIGN1dG92ZXIuCgpFYWNoIHNuYXBzaG90IGlzIGJvdW5kZWQ1MTJNaUIuIEF0IG1vc3QgdHdvIG5ldyBzbmFwc2hvdHMgb2NjdXB5IGVhY2ggbmF0aXZlL29mZmNsdXN0ZXIgY3VzdG9keSAoMUdpQiBwYXlsb2FkIGVhY2gpOyB0aGUgZGlzcG9zYWJsZSBvZmZjbHVzdGVyIGNsb25lIGFkZHM1MTJNaUIgd2hpbGUgcHJlc2VudCwgcGx1czE2TWlCIHNpZGVjYXIvbWV0YWRhdGEgcmVzZXJ2ZS4gTmV3IG5hdGl2ZSBkcmlsbCBwaGFzZSBjaGVja3MgZnJlZSBzcGFjZSBmb3IgYm90aDsgbG9jYWwgY3VzdG9keSBjaGVja3MgdHdvIHNuYXBzaG90IGJvdW5kcyBwbHVzIHJlc2VydmUuIEV4aXN0aW5nIFQwNCByZXRlbnRpb24gY29uc3VtZXMgYWRkaXRpb25hbCBwcmUtZXhpc3Rpbmcgc3BhY2UuIEVVUjAgcmVjdXJyaW5nIGluZnJhc3RydWN0dXJlIGVzdGltYXRlOyBodW1hbi9jb21wdXRlIHRpbWUgdW5wcmljZWQuCgpDdXRvdmVyIHRha2VzIGEgZnJlc2ggbmF0aXZlIGJhY2t1cCBhbmQgZXhhY3Qgb2ZmY2x1c3RlciBjb3B5LiBSZWxlYXNlIHRoZW4gcmVxdWlyZXMgbGF0ZXN0IHNjaGVtYTUgcmVhZG9ubHkgcHJvb2YsIHNlYWxlZCBQb2QvRGVwbG95bWVudC9jb25maWcvUFZDIGN1c3RvZHkgYW5kIHNhbWUgYmFzZWxpbmUgaW1hZ2U3NjNjL2N1cnJlbnQgQXBwbGljYXRpb24gc291cmNlYzk2LCBhIGhlYWx0aHkgc2luZ2xlIHRhcmdldDkyLjIwNS42Mi4yMzkgbm9kZSBhbmQgZnJlc2ggcmVxdWVzdGVkIENQVSDiiaQgYWxsb2NhdGFibGUgY2FwYWNpdHkuIFJlY3JlYXRlIGFuZCByZXNvdXJjZXMgcmVtYWluIHVuY2hhbmdlZC4gU2VydmVyIGRyeS1ydW4vY2xpZW50IGRpZmYgbXVzdCBzaG93IG9ubHkgdGhlIGltYWdlLiBBcHBsaWNhdGlvbiBVSUQvcmVzb3VyY2VWZXJzaW9uL3NvdXJjZSBDQVMgZGlzcGF0Y2hlcyBtYW51YWwgZXhhY3QgZmluYWwgcmV2aXNpb24sIGluaXRpYXRlZEJ5IGN1c3RvZGlhbi1jb2RleCwgZXhwbGljaXQgcHJ1bmU9ZmFsc2UgYW5kIG9ubHkgYXBwcy9EZXBsb3ltZW50IGluZm9ybWVkLWRlY2lzaW9uIGluIGl0cyBuYW1lc3BhY2UuIE5vIHdob2xlLUFwcGxpY2F0aW9uIHN5bmMsIG5hbWVzcGFjZS9jb25maWcvY3JlZGVudGlhbC9yZXNvdXJjZSBjaGFuZ2Ugb3IgcHJ1bmluZy4KClZlcmlmaWNhdGlvbiByZWFkcyBpbWFnZUlEL3JlYWRpbmVzcy9vd25lciBjaGFpbi9leGFjdCBjb25maWd1cmVkIFBvZCBmaWVsZHMsIHNjaGVtYTUvaW50ZWdyaXR5L21ldGFkYXRhIGNvdW50cywgaW5zdGFsbGVkIHBvbGljeSBoYXNoIGFuZCBzeW50aGV0aWMgcHVycG9zZSByZWZ1c2FscywgaGVhbHRoMjAwLCBpbnN0YWxsZWQgZml4ZWQgemxpYiBhbmQgZXhhY3QgaW1hZ2UgcHJvb2YuIEFmdGVyIGV4YWN0IGNhbmRpZGF0ZSBSZWFkeSBhbmQgdmVyaWZpZWQgcm9sbG91dCwgcm9vdCBleGVjdXRlcyBhdHRhY2hlZCBwb3N0LXJlYWR5LW5hdGl2ZS1vdXRjb21lcy1jb21tYW5kLnB5IGluc2lkZSB0aGUgZXhpc3RpbmcgYWRtaXR0ZWQgU3RhdGVIdWIgUG9kLiBJdCBjYWxscyBjYW5vbmljYWwgbGlmZWN5Y2xlLm91dGNvbWVzIGZvciBpbmZkLTIwMjYxMDExLXpsaWItcmVtZWRpYXRpb24tcjEgU09VUkNFdmVyc2lvbjEgYXQgZGlzcGF0Y2hlciBmaXhlZCBPUklHSU4gd2l0aCBOb1JlZGlyZWN0L3Byb3h5IGRpc2FibGVkOyBleGlzdGluZyBpbnRlcm5hbCB0b2tlbl9maWxlIHN0YXlzIGluc2lkZSB0aGF0IFBvZCBhbmQgbm8gdG9rZW4vYm9keS9wcml2YXRlIGNvbnRlbnQgaXMgZXhwb3J0ZWQuIFJvb3QgcmV0YWlucyBib3VuZGVkIEhUVFAtc3VjY2VzcyBtZXRhZGF0YS9vYnNlcnZhdGlvbnRpbWUgYW5kIGNvcnJlbGF0ZXMgdmVyaWZpZWQgY2FuZGlkYXRlIFBvZFVJRC9pbWFnZS9zb3VyY2UsIHRoZW4gcmVjaGVja3MgdGhvc2UgaWRlbnRpdGllcy4gVGhpcyBhY3R1YWwgcHJvdmlkZXIvUERQLWdhdGVkIHByZXNlcnZhdGlvbiBwcm9vZiBpcyBzZXBhcmF0ZSBmcm9tIGluc3RhbGxlZCBzeW50aGV0aWMyYWxsb3c4cmVmdXNlOyBib3RoIGFyZSByZXF1aXJlZCBiZWZvcmUgdGFzayBjbG9zdXJlLiBJdCBkb2VzIG5vdCBhc3NlcnQgcHJvdmlkZXIgYWR2aXNvcnkgZW1pc3Npb25zIG9yIG5ldyBkb2N0cmluZS4gQXJnbzMuNS4zIG9taXRzIGZhbHNlIHBydW5lIGluIG9wZXJhdGlvbiBzdGF0dXM6IG1pc3Npbmcgb3IgZXhhY3RmYWxzZSBpcyBhY2NlcHRlZCBvbmx5IHRvZ2V0aGVyIHdpdGggdGhpcyBqb3VybmFsJ3MgQ09NUExFVEUgZXhwbGljaXRmYWxzZSByZXF1ZXN0LCBleGFjdCBzb3VyY2UvcmVzb3VyY2VzL2luaXRpYXRpb24sIG9wZXJhdGlvbiBzdGFydCBhZnRlciBvdXIgZHVyYWJsZSBhdHRlbXB0LCBib3VuZGVkIGZpbmlzaCBhbmQgb25lIFN5bmNlZCBEZXBsb3ltZW50IHJlc3VsdC4gVHJ1ZS9udWxsL3N0cmluZy9wcmlvci9mb3JlaWduL2V4dHJhLXJlc291cmNlIHJlc3VsdHMgcmVmdXNlLgoKUm9sbGJhY2sg4oaSIHJvbGxiYWNrLXZlcmlmeSBpcyBzZXBhcmF0ZSBhbmQgcGVybWl0dGVkIG9ubHkgYWZ0ZXIgYSByZWNvcmRlZCByZWxlYXNlIGF0dGVtcHQuIEl0IHN3aXRjaGVzIG9ubHkgQXBwbGljYXRpb24gc291cmNlIGJhY2sgdG8gYzk2IGFuZCBEZXBsb3ltZW50IGltYWdlNzYzYzsgaXQgbmV2ZXIgcmVzdG9yZXMgYW4gb2xkIHNuYXBzaG90IG92ZXIgdGhlIGxhdGVzdCBkYXRhYmFzZS4gUmVjb3ZlcnkgZGlzcGF0Y2ggd29ya3MgZXZlbiBpZiBjYW5kaWRhdGUgUG9kIGlzIGFic2VudC91bnJlYWR5IGFuZCBuZXZlciBkZXBlbmRzIG9uIGNhbmRpZGF0ZSBEQiBpbnNwZWN0aW9uLiBSZWNvdmVyeSB2ZXJpZmljYXRpb24gc2VwYXJhdGVseSByZXF1aXJlcyBSZWFkeTEvb2xkIGltYWdlL2N1cnJlbnQgc2NoZW1hNS9kYXRhLWN1c3RvZHkgYW5kIGV4YWN0IHJlY29yZGVkIHNjb3BlZCBjb21wbGV0aW9uLiBBbGwgcGhhc2VzIG11c3QgYmVnaW4gYmVmb3JlMjAyNi0xMC0xMlQyMzo1OTo1OVo7IHJlbGVhc2UgbXVzdCBiZWdpbiBhdCBsZWFzdDMwbWludXRlcyBlYXJsaWVyLiBCZXlvbmQgZXhwaXJ5IHN0b3AgYW5kIG9idGFpbiBhIG5ldyBmb3VuZGVyIGRlY2lzaW9uOyBubyBhdXRvbWF0aWMgZXh0ZW5zaW9uIG9yIGVtZXJnZW5jeSBncmFudC4gQSBmYWlsZWQvdW5jZXJ0YWluIGF0dGVtcHQgcmVxdWlyZXMgaW5mb3JtZWQgcmVjb3ZlcnkgcmF0aGVyIHRoYW4gcmV0cnkuCgpUMDUgcmVtYWlucyBwcm9ncmVzcyB1bnRpbCBhY3R1YWwgaW5zdGFsbGVkIGFjY2VwdGFuY2UgYW5kIG5hdGl2ZSByZXNjYW4gcHJvdmUgdGhlIGZpbmRpbmcgYWJzZW50LiBObyBSaXNrIEVuZ2luZSBncmFkZSBpcyBhc3NpZ25lZC4gT25seSB0aGVuIG1heSBvd25lciBjbG9zZSBUMDUvcmlzayBhbmQgY29uc2lkZXIgZmluaXNoaW5nIFdQOSwgd2l0aCBleGlzdGluZyByZXNpZHVhbHMgbGl2ZSBmaXJzdC4KCkFjdHVhbCByZWxlYXNlIGFuZCBpbnN0YWxsZWQgdmVyaWZpY2F0aW9uIGFsc28gcmVxdWlyZSBmaXhlZCBwcml2YXRlIHJvb3Qgc2NhbiByZWNlaXB0IGFuZCByZXRhaW5lZCBmdWxscmVwb3J0IGF0IC90bXAvc2VjdXJpdHktaW5mZC16bGliLWZyZXNoLXNjYW4te3JlY2VpcHQsZnVsbH0uanNvbiwgc3VwZXJ2aXNlZCBtZXRhZGF0YSBiaW5kaW5nIHRvIGV4YWN0IGltbXV0YWJsZWY1NTgvYXJ0aWZhY3Rzb3VyY2U5YjQvc2Nhbm5lcmRpZ2VzdDYyYjEuIEJlZm9yZSBqb3VybmFsIHN0YXJ0LCBmdWxscmVwb3J0aGFzaCBtdXN0IG1hdGNoLCBubyBzdXBwcmVzc2lvbi9hbGxzZXZlcml0eSBmbGFncyB0cnVlLCBleGl0MCwgbm9uZW1wdHkgdmFsaWQgZnVsbHJlc3VsdHMgY29udGFpbiB6ZXJvIGZpbmRpbmdzLCBzY2FuIGNvbXBsZXRlZCB3aXRoaW40aG91cnMgYW5kIG5vdyBwcmVjZWRlcyBEQiBOZXh0VXBkYXRlLiBUaGUgcHVibGlzaGVkIERCIGV4cGlyZXMyMDI2LTEwLTExVDE4OjU5OjUwWjsgaXQgaXMgbm90IHZhbGlkIHVudGlsIHJlbGVhc2UgZGVhZGxpbmUuIFJvb3QgcmVmcmVzaGVzIERCIGFuZCByZXNjYW5zIHRoZSBzYW1lIGltbXV0YWJsZSBpbWFnZSBhcyByb3V0aW5lIHJlYWQtb25seSB2ZXJpZmljYXRpb24gd2hlbiBuZWVkZWQsIHJldGFpbmluZyBhbGwgcmF3IHB1YmxpY3NjYW4gYXJ0aWZhY3RzLiBBbnkgbmV3IGZpbmRpbmcgcmVmdXNlcyByZWxlYXNlL2Nsb3N1cmUgYW5kIGlzIHJldGFpbmVkIGZvciBpbmZvcm1lZCByZWFzc2Vzc21lbnQvbmV3IGRlY2lzaW9uIGFzIG5lZWRlZCwgbmV2ZXIgZmlsdGVyZWQgb3IgaWdub3JlZC4gRXhpc3RpbmcgcmlzayBzdGF5cyBvcGVuIHVudGlsIGFjdHVhbCBpbnN0YWxsZWQgcHJvb2YvbmF0aXZlIHJlc2Nhbi4K"
|
|
},
|
|
{
|
|
"digest": "sha256:56637994dfdae46a6f9ab442c2ff9b259212650b35eb98d896c5e837f01ce2f9",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlLAogICJvYnNlcnZlZF9hdCI6ICIyMDI2LTEwLTExVDA5OjQwOjE1LjU0MDg3NCswMDowMCIsCiAgIm5hdGl2ZV9jaGFuZ2VkIjogZmFsc2UsCiAgInByb3RlY3RlZF9kYXRhYmFzZV9yZWFkIjogZmFsc2UsCiAgInNlY3JldF9yZWFkIjogZmFsc2UsCiAgImRlcGxveW1lbnRfZ2VuZXJhdGlvbiI6IDI1LAogICJyZWFkeV9yZXBsaWNhcyI6IDEsCiAgInNlYWxlZF9saXZlX2RlcGxveW1lbnQiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm1ldGFkYXRhIjogewogICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICAgIH0sCiAgICAic3BlYyI6IHsKICAgICAgInByb2dyZXNzRGVhZGxpbmVTZWNvbmRzIjogNjAwLAogICAgICAicmVwbGljYXMiOiAxLAogICAgICAicmV2aXNpb25IaXN0b3J5TGltaXQiOiAxMCwKICAgICAgInNlbGVjdG9yIjogewogICAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0cmF0ZWd5IjogewogICAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgICB9LAogICAgICAidGVtcGxhdGUiOiB7CiAgICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgICAgICAgIH0sCiAgICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjogInJldmlldyIsCiAgICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInNwZWMiOiB7CiAgICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICAgImNvbnRhaW5lcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgICAidmFsdWUiOiAiL2NvbmZpZ3VyYXRpb24vcnVudGltZS5qc29uIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgICAgICAgICAgICAgImltYWdlUHVsbFBvbGljeSI6ICJJZk5vdFByZXNlbnQiLAogICAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbnRhaW5lclBvcnQiOiA4MDgwLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogIlRDUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MSwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQiLAogICAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAgICJjcHUiOiAiNTAwbSIsCiAgICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAgICJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOiBmYWxzZSwKICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAgICJBTEwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgICAiZmFpbHVyZVRocmVzaG9sZCI6IDEyLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInRlcm1pbmF0aW9uTWVzc2FnZVBhdGgiOiAiL2Rldi90ZXJtaW5hdGlvbi1sb2ciLAogICAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICAgInZvbHVtZU1vdW50cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImRhdGEiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi9ydW4vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJydW50aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdG1wIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcG9saWN5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdmFyL3J1bi9zZWNyZXRzL2luZm9ybWVkLWRlY2lzaW9uL2F1ZGl0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvd29ya2xvYWQtcmVnaXN0cnkiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9yZXF1ZXN0ZXIiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZG5zUG9saWN5IjogIkNsdXN0ZXJGaXJzdCIsCiAgICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICAgInNjaGVkdWxlck5hbWUiOiAiZGVmYXVsdC1zY2hlZHVsZXIiLAogICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgICAicnVuQXNHcm91cCI6IDEwMDAxLAogICAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgICAic2VjY29tcFByb2ZpbGUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAgICJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6IDQ1LAogICAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIiwKICAgICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICJhdWRpZW5jZSI6ICJmbGV4LWF1dGgiLAogICAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJuYW1lIjogImF1ZGl0IiwKICAgICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1hdWRpdCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSI6ICJjYS5jcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2xpZW50LXNlY3JldCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJvcHRpb25hbCI6IGZhbHNlLAogICAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICAiY2FuZGlkYXRlX2RlcGxveW1lbnQiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm1ldGFkYXRhIjogewogICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICAgIH0sCiAgICAic3BlYyI6IHsKICAgICAgInByb2dyZXNzRGVhZGxpbmVTZWNvbmRzIjogNjAwLAogICAgICAicmVwbGljYXMiOiAxLAogICAgICAicmV2aXNpb25IaXN0b3J5TGltaXQiOiAxMCwKICAgICAgInNlbGVjdG9yIjogewogICAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0cmF0ZWd5IjogewogICAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgICB9LAogICAgICAidGVtcGxhdGUiOiB7CiAgICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgICAgICAgIH0sCiAgICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjogInJldmlldyIsCiAgICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInNwZWMiOiB7CiAgICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICAgImNvbnRhaW5lcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgICAidmFsdWUiOiAiL2NvbmZpZ3VyYXRpb24vcnVudGltZS5qc29uIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6ZjU1ODhmNDk2YjFmMjY3ZDA3Y2RjOWY1MjA4ZTZmMmYyNDFmNzRiNzM5YzIzOTI0YjAzNzAyZGVjMTNhNWMyMyIsCiAgICAgICAgICAgICAgImltYWdlUHVsbFBvbGljeSI6ICJJZk5vdFByZXNlbnQiLAogICAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbnRhaW5lclBvcnQiOiA4MDgwLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogIlRDUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MSwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQiLAogICAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAgICJjcHUiOiAiNTAwbSIsCiAgICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAgICJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOiBmYWxzZSwKICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAgICJBTEwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgICAiZmFpbHVyZVRocmVzaG9sZCI6IDEyLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInRlcm1pbmF0aW9uTWVzc2FnZVBhdGgiOiAiL2Rldi90ZXJtaW5hdGlvbi1sb2ciLAogICAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICAgInZvbHVtZU1vdW50cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImRhdGEiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi9ydW4vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJydW50aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdG1wIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcG9saWN5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdmFyL3J1bi9zZWNyZXRzL2luZm9ybWVkLWRlY2lzaW9uL2F1ZGl0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvd29ya2xvYWQtcmVnaXN0cnkiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9yZXF1ZXN0ZXIiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZG5zUG9saWN5IjogIkNsdXN0ZXJGaXJzdCIsCiAgICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICAgInNjaGVkdWxlck5hbWUiOiAiZGVmYXVsdC1zY2hlZHVsZXIiLAogICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgICAicnVuQXNHcm91cCI6IDEwMDAxLAogICAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgICAic2VjY29tcFByb2ZpbGUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAgICJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6IDQ1LAogICAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIiwKICAgICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICJhdWRpZW5jZSI6ICJmbGV4LWF1dGgiLAogICAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJuYW1lIjogImF1ZGl0IiwKICAgICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1hdWRpdCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSI6ICJjYS5jcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2xpZW50LXNlY3JldCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJvcHRpb25hbCI6IGZhbHNlLAogICAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICAic2VhbGVkX2RlcGVuZGVuY2llcyI6IHsKICAgICJjb25maWdtYXAiOiB7CiAgICAgICJhcGlWZXJzaW9uIjogInYxIiwKICAgICAgImltbXV0YWJsZSI6IHRydWUsCiAgICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAgICJtZXRhZGF0YSI6IHsKICAgICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgInVpZCI6ICI5MDExM2QyZC01NGQ5LTRlODItYjFkMy05MGI0OWViZWQyYjUiCiAgICAgIH0sCiAgICAgICJjYW5vbmljYWxfZGF0YV9zaGEyNTYiOiAiOGVjNDYyZDEyMzQ3NTQ4ZjUwNmVlZWJmMWUzYzdjYzQ3NjQ4MDE5YzhhNzgzODA0ZDA5YmNjNzliMGYyMmFmNiIKICAgIH0sCiAgICAicHZjIjogewogICAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAgICJraW5kIjogIlBlcnNpc3RlbnRWb2x1bWVDbGFpbSIsCiAgICAgICJtZXRhZGF0YSI6IHsKICAgICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9QZXJzaXN0ZW50Vm9sdW1lQ2xhaW06aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIsCiAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgICAicHYua3ViZXJuZXRlcy5pby9iaW5kLWNvbXBsZXRlZCI6ICJ5ZXMiLAogICAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYm91bmQtYnktY29udHJvbGxlciI6ICJ5ZXMiLAogICAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICAgInZvbHVtZS5rdWJlcm5ldGVzLmlvL3NlbGVjdGVkLW5vZGUiOiAiMjM5LjYyLjIwNS45Mi5ob3N0LnNlY3VyZXNlcnZlci5uZXQiLAogICAgICAgICAgInZvbHVtZS5rdWJlcm5ldGVzLmlvL3N0b3JhZ2UtcHJvdmlzaW9uZXIiOiAicmFuY2hlci5pby9sb2NhbC1wYXRoIgogICAgICAgIH0sCiAgICAgICAgImZpbmFsaXplcnMiOiBbCiAgICAgICAgICAia3ViZXJuZXRlcy5pby9wdmMtcHJvdGVjdGlvbiIKICAgICAgICBdLAogICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWRhdGEiLAogICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgICAiUmVhZFdyaXRlT25jZSIKICAgICAgICBdLAogICAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICJzdG9yYWdlIjogIjFHaSIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzdG9yYWdlQ2xhc3NOYW1lIjogImxvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAgICJ2b2x1bWVOYW1lIjogInB2Yy1kODBiMjViMS0xNDFhLTQ0MWItYjIwNS05OGZhMmZkOThiN2MiCiAgICAgIH0KICAgIH0sCiAgICAicHZjX3BoYXNlIjogIkJvdW5kIgogIH0sCiAgImFyZ28iOiB7CiAgICAidWlkIjogIjQ5OTg2OGYyLWVhYmMtNGRmNC1hZTMxLWI4OWNlNThkNzUwZCIsCiAgICAic291cmNlIjogewogICAgICAicGF0aCI6ICJkZXBsb3kvbGlmZWN5Y2xlIiwKICAgICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICAgInRhcmdldFJldmlzaW9uIjogImM5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTIiCiAgICB9LAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgImhlYWx0aCI6IHsKICAgICAgImxhc3RUcmFuc2l0aW9uVGltZSI6ICIyMDI2LTEwLTExVDA3OjAwOjQyWiIsCiAgICAgICJzdGF0dXMiOiAiSGVhbHRoeSIKICAgIH0sCiAgICAic3luYyI6IHsKICAgICAgImNvbXBhcmVkVG8iOiB7CiAgICAgICAgImRlc3RpbmF0aW9uIjogewogICAgICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAic2VydmVyIjogImh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyIKICAgICAgICB9LAogICAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgICAicGF0aCI6ICJkZXBsb3kvbGlmZWN5Y2xlIiwKICAgICAgICAgICJyZXBvVVJMIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uLmdpdCIsCiAgICAgICAgICAidGFyZ2V0UmV2aXNpb24iOiAiYzk2YjBjNmQ4ODFlODU1ZDFkMTU4MDAzYzZkZTkwZWYzOTAyNjJlMiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJyZXZpc2lvbiI6ICJjOTZiMGM2ZDg4MWU4NTVkMWQxNTgwMDNjNmRlOTBlZjM5MDI2MmUyIiwKICAgICAgInN0YXR1cyI6ICJPdXRPZlN5bmMiCiAgICB9CiAgfSwKICAic2VydmVyX2RyeV9ydW5fcGFzc2VkIjogdHJ1ZSwKICAiYWRtaXNzaW9uX29ubHlfaW1hZ2VfZGVsdGEiOiB0cnVlLAogICJjbGllbnRfZGlmZl9leGl0IjogMSwKICAiY2xpZW50X2RpZmZfc2hhMjU2IjogImNjZmY3YzFlY2ZkOWViNTlmYzBjZTU2NmMxMDEzYTJhZjVkZjUxNGFmMDQ4YzY4NDc0YTI3Mjk5NzAyNGVmN2IiLAogICJhbGxvY2F0YWJsZV9jcHVfbSI6IDQwMDAsCiAgInJlcXVlc3RlZF9jcHVfbSI6IDM0NjAsCiAgInN0cmF0ZWd5IjogIlJlY3JlYXRlIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:0188799d352e4d49d5ca29d6e197742d02e96a4b0b399df1f478e41b25292eb5",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlLAogICJvYnNlcnZlZF9hdCI6ICIyMDI2LTEwLTExVDA5OjQzOjQyLjg1MTA4NiswMDowMCIsCiAgIm5hdGl2ZV9jaGFuZ2VkIjogZmFsc2UsCiAgInByb3RlY3RlZF9kYXRhYmFzZV9yZWFkIjogZmFsc2UsCiAgInNlY3JldF9yZWFkIjogZmFsc2UsCiAgImRlcGxveW1lbnRfZ2VuZXJhdGlvbiI6IDI1LAogICJyZWFkeV9yZXBsaWNhcyI6IDEsCiAgInNlYWxlZF9saXZlX2RlcGxveW1lbnQiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm1ldGFkYXRhIjogewogICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICAgIH0sCiAgICAic3BlYyI6IHsKICAgICAgInByb2dyZXNzRGVhZGxpbmVTZWNvbmRzIjogNjAwLAogICAgICAicmVwbGljYXMiOiAxLAogICAgICAicmV2aXNpb25IaXN0b3J5TGltaXQiOiAxMCwKICAgICAgInNlbGVjdG9yIjogewogICAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0cmF0ZWd5IjogewogICAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgICB9LAogICAgICAidGVtcGxhdGUiOiB7CiAgICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgICAgICAgIH0sCiAgICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjogInJldmlldyIsCiAgICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInNwZWMiOiB7CiAgICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICAgImNvbnRhaW5lcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgICAidmFsdWUiOiAiL2NvbmZpZ3VyYXRpb24vcnVudGltZS5qc29uIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgICAgICAgICAgICAgImltYWdlUHVsbFBvbGljeSI6ICJJZk5vdFByZXNlbnQiLAogICAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbnRhaW5lclBvcnQiOiA4MDgwLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogIlRDUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MSwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQiLAogICAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAgICJjcHUiOiAiNTAwbSIsCiAgICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAgICJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOiBmYWxzZSwKICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAgICJBTEwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgICAiZmFpbHVyZVRocmVzaG9sZCI6IDEyLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInRlcm1pbmF0aW9uTWVzc2FnZVBhdGgiOiAiL2Rldi90ZXJtaW5hdGlvbi1sb2ciLAogICAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICAgInZvbHVtZU1vdW50cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImRhdGEiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi9ydW4vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJydW50aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdG1wIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcG9saWN5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdmFyL3J1bi9zZWNyZXRzL2luZm9ybWVkLWRlY2lzaW9uL2F1ZGl0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvd29ya2xvYWQtcmVnaXN0cnkiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9yZXF1ZXN0ZXIiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZG5zUG9saWN5IjogIkNsdXN0ZXJGaXJzdCIsCiAgICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICAgInNjaGVkdWxlck5hbWUiOiAiZGVmYXVsdC1zY2hlZHVsZXIiLAogICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgICAicnVuQXNHcm91cCI6IDEwMDAxLAogICAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgICAic2VjY29tcFByb2ZpbGUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAgICJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6IDQ1LAogICAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIiwKICAgICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICJhdWRpZW5jZSI6ICJmbGV4LWF1dGgiLAogICAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJuYW1lIjogImF1ZGl0IiwKICAgICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1hdWRpdCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSI6ICJjYS5jcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2xpZW50LXNlY3JldCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJvcHRpb25hbCI6IGZhbHNlLAogICAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICAiY2FuZGlkYXRlX2RlcGxveW1lbnQiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm1ldGFkYXRhIjogewogICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICAgIH0sCiAgICAic3BlYyI6IHsKICAgICAgInByb2dyZXNzRGVhZGxpbmVTZWNvbmRzIjogNjAwLAogICAgICAicmVwbGljYXMiOiAxLAogICAgICAicmV2aXNpb25IaXN0b3J5TGltaXQiOiAxMCwKICAgICAgInNlbGVjdG9yIjogewogICAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0cmF0ZWd5IjogewogICAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgICB9LAogICAgICAidGVtcGxhdGUiOiB7CiAgICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgICAgICAgIH0sCiAgICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50IjogInJldmlldyIsCiAgICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInNwZWMiOiB7CiAgICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICAgImNvbnRhaW5lcnMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgICAidmFsdWUiOiAiL2NvbmZpZ3VyYXRpb24vcnVudGltZS5qc29uIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgImltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgICAgICAgICAgICAgImltYWdlUHVsbFBvbGljeSI6ICJJZk5vdFByZXNlbnQiLAogICAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbnRhaW5lclBvcnQiOiA4MDgwLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICAgInByb3RvY29sIjogIlRDUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MSwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQiLAogICAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAzLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAgICJjcHUiOiAiNTAwbSIsCiAgICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAgICJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOiBmYWxzZSwKICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAgICJBTEwiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgICAiZmFpbHVyZVRocmVzaG9sZCI6IDEyLAogICAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICAgInBvcnQiOiAiaHR0cCIsCiAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiSFRUUCIKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICAgInN1Y2Nlc3NUaHJlc2hvbGQiOiAxLAogICAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInRlcm1pbmF0aW9uTWVzc2FnZVBhdGgiOiAiL2Rldi90ZXJtaW5hdGlvbi1sb2ciLAogICAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICAgInZvbHVtZU1vdW50cyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImRhdGEiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi9ydW4vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJydW50aW1lIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdG1wIiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcG9saWN5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvdmFyL3J1bi9zZWNyZXRzL2luZm9ybWVkLWRlY2lzaW9uL2F1ZGl0IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgICAgICAgInJlYWRPbmx5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvd29ya2xvYWQtcmVnaXN0cnkiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9yZXF1ZXN0ZXIiLAogICAgICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAiZG5zUG9saWN5IjogIkNsdXN0ZXJGaXJzdCIsCiAgICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICAgInNjaGVkdWxlck5hbWUiOiAiZGVmYXVsdC1zY2hlZHVsZXIiLAogICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgICAicnVuQXNHcm91cCI6IDEwMDAxLAogICAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgICAic2VjY29tcFByb2ZpbGUiOiB7CiAgICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAgICJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6IDQ1LAogICAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIiwKICAgICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICJhdWRpZW5jZSI6ICJmbGV4LWF1dGgiLAogICAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJuYW1lIjogImF1ZGl0IiwKICAgICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1hdWRpdCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSI6ICJjYS5jcnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIm5hbWUiOiAid29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibmFtZSI6ICJzaXR0aW5nLXJlcXVlc3RlciIsCiAgICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2xpZW50LXNlY3JldCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJvcHRpb25hbCI6IGZhbHNlLAogICAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICAic2VhbGVkX2RlcGVuZGVuY2llcyI6IHsKICAgICJjb25maWdtYXAiOiB7CiAgICAgICJhcGlWZXJzaW9uIjogInYxIiwKICAgICAgImltbXV0YWJsZSI6IHRydWUsCiAgICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAgICJtZXRhZGF0YSI6IHsKICAgICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgInVpZCI6ICI5MDExM2QyZC01NGQ5LTRlODItYjFkMy05MGI0OWViZWQyYjUiCiAgICAgIH0sCiAgICAgICJjYW5vbmljYWxfZGF0YV9zaGEyNTYiOiAiOGVjNDYyZDEyMzQ3NTQ4ZjUwNmVlZWJmMWUzYzdjYzQ3NjQ4MDE5YzhhNzgzODA0ZDA5YmNjNzliMGYyMmFmNiIKICAgIH0sCiAgICAicHZjIjogewogICAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAgICJraW5kIjogIlBlcnNpc3RlbnRWb2x1bWVDbGFpbSIsCiAgICAgICJtZXRhZGF0YSI6IHsKICAgICAgICAiYW5ub3RhdGlvbnMiOiB7CiAgICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9QZXJzaXN0ZW50Vm9sdW1lQ2xhaW06aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIsCiAgICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgICAicHYua3ViZXJuZXRlcy5pby9iaW5kLWNvbXBsZXRlZCI6ICJ5ZXMiLAogICAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYm91bmQtYnktY29udHJvbGxlciI6ICJ5ZXMiLAogICAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICAgInZvbHVtZS5rdWJlcm5ldGVzLmlvL3NlbGVjdGVkLW5vZGUiOiAiMjM5LjYyLjIwNS45Mi5ob3N0LnNlY3VyZXNlcnZlci5uZXQiLAogICAgICAgICAgInZvbHVtZS5rdWJlcm5ldGVzLmlvL3N0b3JhZ2UtcHJvdmlzaW9uZXIiOiAicmFuY2hlci5pby9sb2NhbC1wYXRoIgogICAgICAgIH0sCiAgICAgICAgImZpbmFsaXplcnMiOiBbCiAgICAgICAgICAia3ViZXJuZXRlcy5pby9wdmMtcHJvdGVjdGlvbiIKICAgICAgICBdLAogICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWRhdGEiLAogICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgICAiUmVhZFdyaXRlT25jZSIKICAgICAgICBdLAogICAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICJzdG9yYWdlIjogIjFHaSIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzdG9yYWdlQ2xhc3NOYW1lIjogImxvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAgICJ2b2x1bWVOYW1lIjogInB2Yy1kODBiMjViMS0xNDFhLTQ0MWItYjIwNS05OGZhMmZkOThiN2MiCiAgICAgIH0KICAgIH0sCiAgICAicHZjX3BoYXNlIjogIkJvdW5kIgogIH0sCiAgImFyZ28iOiB7CiAgICAidWlkIjogIjQ5OTg2OGYyLWVhYmMtNGRmNC1hZTMxLWI4OWNlNThkNzUwZCIsCiAgICAic291cmNlIjogewogICAgICAicGF0aCI6ICJkZXBsb3kvbGlmZWN5Y2xlIiwKICAgICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICAgInRhcmdldFJldmlzaW9uIjogImM5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTIiCiAgICB9LAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgImhlYWx0aCI6IHsKICAgICAgImxhc3RUcmFuc2l0aW9uVGltZSI6ICIyMDI2LTEwLTExVDA3OjAwOjQyWiIsCiAgICAgICJzdGF0dXMiOiAiSGVhbHRoeSIKICAgIH0sCiAgICAic3luYyI6IHsKICAgICAgImNvbXBhcmVkVG8iOiB7CiAgICAgICAgImRlc3RpbmF0aW9uIjogewogICAgICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAic2VydmVyIjogImh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyIKICAgICAgICB9LAogICAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgICAicGF0aCI6ICJkZXBsb3kvbGlmZWN5Y2xlIiwKICAgICAgICAgICJyZXBvVVJMIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uLmdpdCIsCiAgICAgICAgICAidGFyZ2V0UmV2aXNpb24iOiAiYzk2YjBjNmQ4ODFlODU1ZDFkMTU4MDAzYzZkZTkwZWYzOTAyNjJlMiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJyZXZpc2lvbiI6ICJjOTZiMGM2ZDg4MWU4NTVkMWQxNTgwMDNjNmRlOTBlZjM5MDI2MmUyIiwKICAgICAgInN0YXR1cyI6ICJPdXRPZlN5bmMiCiAgICB9CiAgfSwKICAic2VydmVyX2RyeV9ydW5fcGFzc2VkIjogdHJ1ZSwKICAiYWRtaXNzaW9uX29ubHlfaW1hZ2VfZGVsdGEiOiB0cnVlLAogICJjbGllbnRfZGlmZl9leGl0IjogMCwKICAiY2xpZW50X2RpZmZfc2hhMjU2IjogImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLAogICJhbGxvY2F0YWJsZV9jcHVfbSI6IDQwMDAsCiAgInJlcXVlc3RlZF9jcHVfbSI6IDM0NjAsCiAgInN0cmF0ZWd5IjogIlJlY3JlYXRlIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:dd4eecf0c103dca7922094a8beeb99b77ae96fd1d5fe532e37bd833daa02614e",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA1L3psaWItODUwOTEtcjEiLAogICJ0YXNrX2lkIjogIklORkQtV1AtMDAwOS1UMDUiLAogICJyaXNrX3JlY29yZCI6ICJJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSIsCiAgInN0YXRlIjogImFjdHVhbC1vd25lci1DSS1wdWJsaXNoZWQtaW5kZXBlbmRlbnQtdmVyaWZpY2F0aW9uLXBhc3NlZC1uYXRpdmUtdW5hcHByb3ZlZCIsCiAgInZlcmlmaWVkX3V0YyI6ICIyMDI2LTEwLTExVDA5OjQwOjI0LjQ2OTY0NiswMDowMCIsCiAgInNvdXJjZV9yZXZpc2lvbiI6ICI5YjRiYjI1ZDMyNTY5OGFlNTQzZTdlOGE4YTNjMzU5MmRiMWY1OGZjIiwKICAiY2lfdGFzayI6IDExNTM0LAogICJjaV9ydW4iOiA0LAogICJjaV9zdGF0dXMiOiAic3VjY2VzcyIsCiAgInJldmlld2VkX3NvdXJjZV9tYW5pZmVzdF9zaGEyNTYiOiAiNzI0YWE0Nzc3ZWIxYzg5NzZkODY4ZTVmNTA0NDczZjRiNmQ1OGYxM2Q3NTBkODdhZWZhNWM4ZDVjYTA3NDdlYyIsCiAgImFsbDc0X3NvdXJjZV9oYXNoZXNfbWF0Y2hfYWN0dWFsX2NvbW1pdCI6IHRydWUsCiAgInB1Ymxpc2hlZF9pbWFnZV9kaWdlc3QiOiAic2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjMiLAogICJiYXNlX2ltYWdlX2RpZ2VzdCI6ICJzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInJlZ2lzdHJ5X2NvbmZpZ19kaWdlc3QiOiAic2hhMjU2OjYyMmJlY2MzZWJkOTdjYjY2YjZlN2MzNmYzNWJmOTMxYTdkZWNkOTQ2NGI2NTg1MTEyM2MxY2M4Yzk5OGQ3NWIiLAogICJleGVjdXRlZF9sb2NhbF9kYWVtb25faW1hZ2VfaWQiOiAic2hhMjU2OmYyZTA3ZTNkZDgzOWI1NWFmZDVkNTE3MjQzYTc2NWEyNjk2NTMyNWU0ZTY3NTBmNTA4NzcxYWQ1NTZiZDZkMDEiLAogICJzZXJpYWxpemF0aW9uX2NhdmVhdCI6ICJEYWVtb24gbG9hZCByZXNlcmlhbGl6ZXMgY29uZmlnOyBhbGwgZGlmZklEcy9wbGF0Zm9ybS9lZmZlY3RpdmUgY29uZmlnK2xhYmVscyBpbmRlcGVuZGVudGx5IGVxdWFsIHRvIHJlZ2lzdHJ5OyBuZWl0aGVyIGNvbmZpZyBub3IgZGFlbW9uIElEIHN1YnN0aXR1dGVzIGZvciByZWdpc3RyeSBpbWFnZSBkaWdlc3QiLAogICJhY3R1YWxfcmVnaXN0cnlfZGVzY3JpcHRvcnNfYW5kX2xheWVyc192ZXJpZmllZCI6IHRydWUsCiAgImJhc2U5bGF5ZXJzX3VuY2hhbmdlZCI6IHRydWUsCiAgIm92ZXJsYXlfbGF5ZXJzIjogMiwKICAiZnVsbHNjYW5fYmFzZWxpbmUiOiB7CiAgICAiTUVESVVNIjogMSwKICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIKICB9LAogICJmdWxsc2Nhbl9jYW5kaWRhdGVfYWxsc2V2ZXJpdHlfZmluZGluZ3MiOiAwLAogICJmdWxsc2Nhbl9ub19zdXBwcmVzc2lvbnMiOiB0cnVlLAogICJzYW1lX2ZyZXNoX0RCX2JvdGhfaW1hZ2VzIjogdHJ1ZSwKICAic2Nhbm5lcl9kYl9zaGEyNTYiOiAiMDNjYWNiNDA0NTJjZWI3NGFmZGZjYTA3MmNiODJmNzllZTg4NGRmYWMwMDZlZjI0YTRkZmRhZDEzM2IwZjkxNyIsCiAgInNjYW5uZXJfZGJfbWV0YWRhdGEiOiB7CiAgICAiVmVyc2lvbiI6IDIsCiAgICAiTmV4dFVwZGF0ZSI6ICIyMDI2LTEwLTExVDE4OjU5OjUwLjg4OTAxMDU3MloiLAogICAgIlVwZGF0ZWRBdCI6ICIyMDI2LTEwLTEwVDE4OjU5OjUwLjg4OTAxMDkyM1oiLAogICAgIkRvd25sb2FkZWRBdCI6ICIyMDI2LTEwLTEwVDIzOjMyOjMyLjM4MDAzMzEzMVoiCiAgfSwKICAic2Nhbm5lcl9jYXZlYXQiOiAiQWxwaW5lMy4yNCBhYnNlbnQgRU9MIGxpc3Qgd2FybmluZzsgYWN0dWFsMzhPUys2UHl0aG9uIGRldGVjdG9ycyByYW4uIFplcm8gbWVhbnMgdGhpcyB2ZXJpZmllZCBEQiBzbmFwc2hvdCwgbm90IHVua25vd24tZnV0dXJlIGFzc3VyYW5jZSBvciBlc3RhdGUgcmlzayBncmFkZS4iLAogICJzYm9tX2NvdW50IjogNDQsCiAgInNib21fb25seV9kZWx0YSI6IHsKICAgICJ6bGliIjogWwogICAgICAiMS4zLjItcjAiLAogICAgICAiMS4zLjItcjEiCiAgICBdCiAgfSwKICAiZmluYWxfY2hhbmdlZF9maWxlcyI6IFsKICAgICJsaWIvYXBrL2RiL2luc3RhbGxlZCIsCiAgICAidXNyL2xpYi9saWJ6LnNvLjEuMy4yIgogIF0sCiAgImRpcmVjdG9yeV9jb3VudCI6IDMxMywKICAiZGlyZWN0b3J5X21ldGFkYXRhX2RlbHRhIjoge30sCiAgImFwcF9maWxlc19pZGVudGljYWwiOiAzNiwKICAiaW5zdGFsbGVkX1VJRCI6IDEwMDAxLAogICJpbnN0YWxsZWRfR0lEIjogMTAwMDEsCiAgInBvbGljeV9zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgInBvbGljeV9tb2RlIjogIjBvNjQ0IiwKICAicG9saWN5X1VJRCI6IDAsCiAgImNhbmRpZGF0ZV9pbWFnZV9leGVjdXRlZCI6IHRydWUsCiAgInB1YmxpY19yZWdpc3RyeV9sYXllcl9yZWFkYmFjayI6IHRydWUsCiAgIm5hdGl2ZV9wcm92aWRlcl90ZXN0IjogZmFsc2UsCiAgImluc3RhbGxlZF9wdXJwb3NlX3ZhcmlhbnRzIjogMTAsCiAgInB1cnBvc2VfZm9ybXNfYWxsb3ciOiAyLAogICJwdXJwb3NlX2Zvcm1zX3JlZnVzZSI6IDgsCiAgInJ1bnRpbWVfcmVhZG9ubHlfbmV0d29ya25vbmUiOiB0cnVlLAogICJuYXRpdmVfd29ya2xvYWRfb3JfZGF0YWJhc2Vfb3Jfc25hcHNob3Rfb3JfY3JlZGVudGlhbHNfYWNjZXNzZWQiOiBmYWxzZSwKICAibmF0aXZlX3JvbGxvdXQiOiBmYWxzZSwKICAiZm91bmRlcl9yZWxlYXNlX2FwcHJvdmFsIjogZmFsc2UsCiAgInJpc2tfZm9sbG93dGhyb3VnaCI6ICJUMDUgcmVtYWlucyBhY3RpdmU7IG1hbnVhbCByZXZpZXcgZHVlMjAyNi0xMC0xOCwgbm8gY29udHJvbGxlciBvciBlc3RhdGUgcmlzayBncmFkZS4gQWN0dWFsIG5hdGl2ZSBpbnN0YWxsYXRpb24vZnJlc2ggc2NvcGVkIGZvdW5kZXIgZGVjaXNpb24gc3RpbGwgcmVxdWlyZWQgYmVmb3JlIGNsb3N1cmUuIiwKICAidmVyaWZpY2F0aW9uX3JlZmluZW1lbnQiOiAiRmlyc3QgcnVuIHVzZWQgcmVnaXN0cnkgY29uZmlnIGFzIGRhZW1vbiBoYW5kbGUgYW5kIHJlZnVzZWQgYmVmb3JlIGNhbmRpZGF0ZSBleGVjdXRpb24xMjUuIENvcnJlY3RlZCBieSBpbmRlcGVuZGVudGx5IHByb3ZpbmcgbG9hZGVkIGRhZW1vbiBJRCBzZW1hbnRpY3MrZGlmZklEcyBleGFjdCwgdGhlbiBleGVjdXRlZC4gTm90IGFjdHVhbCBpbWFnZSBmYWlsdXJlLiIsCiAgImV2aWRlbmNlX3NoYTI1NiI6IHsKICAgICJhcnRpZmFjdC1jb21wYXJpc29uLmpzb24iOiAiYTFjNWQ5ZTI0OWRjMDA2MDA0NDk5OTgzNjBmYWY2ZThkYTAyMDZiNTY4Yzc2ZDE1NTYwMmM0NjQ1ZmE1ZmNlNCIsCiAgICAiYmFzZS1pbWFnZS1jb25maWcuanNvbiI6ICI0YWQ3MjQ5Yzc1ZmQ5ZmMwMzljZWIxODY3NzI0MTllMWNiYTVmZDk3NTljNDA0NTU2NDU5YzgwYTJkMjg1ZDEwIiwKICAgICJiYXNlLWltYWdlLW1hbmlmZXN0Lmpzb24iOiAiOTc4YzU3NWQzYzdiZjBkZTM5ZGJlNGU5NTY3YzM5Y2QzNmY3MGI3ZTU1YmMxNzM1N2JkYjAzZmIzYjk2YjBmYiIsCiAgICAiYmFzZS1ydW50aW1lLmpzb24iOiAiMjBhYWJiOWY0ODQ2YWI0ZmE2ZTI4ZTA3NjNkMTUzMTg4ZGExNTFlZTMyMjkzMzY2YTUxYjBmZGY4NzJhNGQyNCIsCiAgICAiYmFzZS1zYm9tLmNkeC5qc29uIjogImRkN2Q2NGM5NTcxMzkxYWNkNGQxZjg2YzYwMjZhMWIwOTRhYmFiNGVlNTZlNWE5Zjc5OWVjMmZkM2M3ZDkxNWEiLAogICAgImJhc2Utc2JvbS5jZHguanNvbi5sb2ciOiAiOGFiNDQ3M2E1Zjc0YjM2ZTgyYTQwOTVlOWM4ZDZlNjZkODBhZWM2NGJkMWNlYmQ2YzlmNjczNDUzMTg2OWZjYSIsCiAgICAiYmFzZS10cml2eS1mdWxsLmpzb24iOiAiM2U5MWEzMDAxYWRiMDA4Y2VjMzdkOWFlM2MwODM0MmY1ZDQzYzhiYTAxMTFlZWU3NWM2M2E2YTc5MTg4MDhhOSIsCiAgICAiYmFzZS10cml2eS1mdWxsLmpzb24ubG9nIjogIjk2YTQ4ZGMzOWY3ZDY3NGI0OTU0ZDVmYTk4YTc2NjQ1NTI4ZWMwZmU3MDU3ODJmZTExNGUzYjRiOWQ3NzY4NjIiLAogICAgImNhbmRpZGF0ZS1ydW50aW1lLmpzb24iOiAiZDU4ZTYwYmRjNjk0NThmZTQyYWY4MjQ4ZTAyYWNkOTI0YjNiNjA1YzgyODg3NzM1MmE3ZDlhMzk1M2U5MDEyNCIsCiAgICAiY2ktcHVibGljYXRpb24tb2JzZXJ2YXRpb24uanNvbiI6ICJmZmU2ZjI1MDhiYzliZWJiZGM4NWFjNjNlYWU1NzY1NTYyZWZiYjhlOTIwY2M4NWI4ZGEzMGExMmVlMWU0YjE3IiwKICAgICJpbWFnZS1jb25maWcuanNvbiI6ICIyNTNhYjM1OTAxM2FlYjM0NTdkMmFiZTA4NTJiYWNkMzM2OTdmOTczZGQzMmMxYjU3Mzg4MDBlNWRjNjMzZjQzIiwKICAgICJpbWFnZS1tYW5pZmVzdC5qc29uIjogIjljYTJhYmVjNmEyNmQ5YTlmODAyZGZlNzVlZmE4YmZmZGMyODQ4NWU2YmNhZjUyNWNjOWIwNzVkZjM3MDAxOTQiLAogICAgImluc3RhbGxlZC1wdXJwb3NlLmpzb24iOiAiMzEyMzEyYzZmMGJkMjc1MTQwMWIzYmM1YmNkMzBlZTZhZjAxZWQ3Y2IzODBmODViODYzZDAzYjBjN2U5ZDFhZCIsCiAgICAibG9hZGVkLWRhZW1vbi1pbWFnZS1wcm9vZi5qc29uIjogIjJlNWMwNDNhMTAxZDc1ZTRjNTY5YWRiNmJjMmYwOTAyMDY3OWIyOGVkMmFkODM2Yzk1NGY3ZDI3MTAxY2U3MTkiLAogICAgInB1YmxpY2F0aW9uLWRpZ2VzdC5qc29uIjogImNhMmExZGVjMzhkYjhjNWZiYmMwMGVmNGYyN2FhODY1ZWRiYmQ0YTdjYTlkYzIxYjJiYTAyMzY2NGM1MDdmMzgiLAogICAgInJlYWRfcHVibGljX2FydGlmYWN0LnB5IjogImVhYTMxZGExZWJiMjA5NWVhNWUxYmM3YzU3MDMxMWNjNDc0N2YwZDdmNzE4MDM0ZGFkOTM0MzUxZDE5MjBkYWYiLAogICAgInJlZ2lzdHJ5LXByb29mLmpzb24iOiAiM2VmNTJkOWU0ODAwZmM5YmQyMzgwNzIyNDFkYzE1ZjEzYTAyNjBlZTNkZjFlODJlNmY2M2U3MjkwMjc0OWQ5MiIsCiAgICAicnVuX3B1Ymxpc2hlZF9ydW50aW1lLnB5IjogImQ5YmQzM2ZlY2QyYTk4YzIzODFiNGJhMmRjZTEyYjVjM2Q5YTY5ZmFhNWUzNTAyOTE5MjRmYzg4NWY1ZTc3NWYiLAogICAgInJ1bl9wdWJsaXNoZWRfc2Nhbi5weSI6ICIyNTgzYWI5NjM1MDQxMmZiM2YyMGI1YjA1ZGVkMDk0OWViM2VlOGU1YzBlODkyM2E5YzJjNDJkNDE5ZDM2NjM5IiwKICAgICJydW50aW1lLWNvbXBhcmlzb24uanNvbiI6ICI5OTNiODBiOTI4NWUyMjdhMGJkZmRlNDkyN2NkMmYwNTNiY2M0YTU4ZGQ5YmQxYjYzM2FjN2E0NjM3ZDY3MTNjIiwKICAgICJydW50aW1lLXJlY2VpcHQuanNvbiI6ICI2NDQyNjc2ZGNmZDk0MWYwYTA1YTRjYjc5YTAyZGVhODM5ZmNkMzMyZDgyYjIxNTRjMTVjZjZkYjY4ZGU1ODg5IiwKICAgICJzYm9tLmNkeC5qc29uIjogIjQyMDIyNjMwNTk3ODBlYWUwNDQ4MzI4MDQ0YzFjZjY4YjU5NzU4ZjMyOWFlNmJjOTgxZDkxNjYxMDUyN2VhZTMiLAogICAgInNib20uY2R4Lmpzb24ubG9nIjogIjUxODczYjM3YTA4NDZlZTFhNjE4ZWE3NTkxZDc5ODA5ZGMwZjg2MjRmNzdhMDNmYWU3YWY5NTNiY2JkNzI4MmYiLAogICAgInNjYW4tcmVjZWlwdC5qc29uIjogImFhYWE5MTA2MWJiMDM2ZTZkMjI4YjFjMWJkNDMzMzU3OGRjOTQ4Y2IyYmI1YWM4YmEyNjk0MjkxMjFlNzMyMWEiLAogICAgInNvdXJjZS1jb21taXQtcHJvb2YuanNvbiI6ICJiMDgxMWRhMmQzYmQ1OTM4NzMzZjAwNzhlNWZlYzhlMTlhNmQ5NzUyYzQyNzdiODBiZmU5ODM3ZWQ3MmM2YTNiIiwKICAgICJ0cml2eS1mdWxsLmpzb24iOiAiMmZmNjhlNzY1YjljNjUyOTI2MTFkNWE5NjkyMDJhNzY1NDYzNzE2OGVkZWZjZWRhYzVkMmM3NjM0MDA5ZWRhZSIsCiAgICAidHJpdnktZnVsbC5qc29uLmxvZyI6ICJiMzQxOWFmODYwZDI2NDQ0OWY2MTk4NmY1NjI0OTFlZGFlYWQyN2RmZDM2MzhjZWFiZTk0YjRmZTE3N2Y0YmYxIgogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:a1c5d9e249dc00600449998360faf6e8da0206b568c76d155602c4645fa5fce4",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJiYXNlX2ltYWdlX2NvbmZpZ19pZCI6ICJzaGEyNTY6ZjM0ZGUyMTM3OWM0ZjUwZWEwMzYxY2ExZDgyOTZjOGU3MmY5ODk0OTlhZDI4ODAxNmI4MTIwNDk5N2FlNDc3OSIsCiAgImNhbmRpZGF0ZV9sb2NhbF9pbWFnZV9jb25maWdfaWQiOiAic2hhMjU2OjYyMmJlY2MzZWJkOTdjYjY2YjZlN2MzNmYzNWJmOTMxYTdkZWNkOTQ2NGI2NTg1MTEyM2MxY2M4Yzk5OGQ3NWIiLAogICJjYW5kaWRhdGVfcmVnaXN0cnlfZGlnZXN0IjogbnVsbCwKICAiYmFzZV9sYXllcnNfcHJlc2VydmVkIjogOSwKICAibmV3X2xheWVycyI6IDIsCiAgImVmZmVjdGl2ZV9ydW50aW1lX2NvbmZpZ19pZGVudGljYWwiOiB0cnVlLAogICJyYXdfY29uZmlnX2J5dGVzX2lkZW50aWNhbCI6IGZhbHNlLAogICJzZXJpYWxpemF0aW9uX25vdGUiOiAiTGVnYWN5IGJhc2UgZXhwbGljaXRseSBzZXJpYWxpemVkIGVtcHR5L2ZhbHNlL251bGwgZGVmYXVsdHM7IGNhbmRpZGF0ZSBEb2NrZXItc2F2ZSBjb25maWcgb21pdHMgZXF1aXZhbGVudCBrbm93biBkZWZhdWx0cy4gRXhhY3QgY2xvc2VkIGRlZmF1bHQgbm9ybWFsaXphdGlvbiBvbmx5OyBydW50aW1lIGZpZWxkcyB1bmNoYW5nZWQuIiwKICAibGFiZWxzX2JlZm9yZSI6IHsKICAgICJvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3QiOiAic2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5yZXZpc2lvbiI6ICIzZTRiY2IyNmY4ZWVhYThjNjQzNDVjNTY1NDc3YjVhYzhjY2JiMTY4IiwKICAgICJzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlIjogIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICJzb2NpYWwuY291bG9tYi5zb3VyY2UucG9saWN5LnNoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIgogIH0sCiAgImxhYmVsc19hZnRlciI6IHsKICAgICJvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuYmFzZS5kaWdlc3QiOiAic2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5yZXZpc2lvbiI6ICI5YjRiYjI1ZDMyNTY5OGFlNTQzZTdlOGE4YTNjMzU5MmRiMWY1OGZjIiwKICAgICJzb2NpYWwuY291bG9tYi5yZWxlYXNlLnNjb3BlIjogIklORkQtV1AtMDAwOS1UMDUvemxpYi04NTA5MS1yMSIsCiAgICAic29jaWFsLmNvdWxvbWIuc291cmNlLmNvbnRleHQuc2hhMjU2IjogImM1NTRlNjJhODRhZjM0MGNiYTE1ZDQ2OWE0NTY4ZjZkMGM0MDkyM2U1ODBiMDhlZDc1NjVlMjI3MDJiMTIwN2QiLAogICAgInNvY2lhbC5jb3Vsb21iLnNvdXJjZS5wb2xpY3kuc2hhMjU2IjogIjlkN2MxYmU0Y2I2MTk5ZDE0ZWYwYWFlYWQ1Zjg1OTUxZjQ1YjBjY2JkN2M4MDBhN2ZkZTkyMmEyNTM1NjZiNjIiCiAgfSwKICAiZmluYWxfY2hhbmdlZF9maWxlcyI6IHsKICAgICJsaWIvYXBrL2RiL2luc3RhbGxlZCI6IHsKICAgICAgImJlZm9yZSI6IFsKICAgICAgICAiZmlsZSIsCiAgICAgICAgNDIwLAogICAgICAgIDAsCiAgICAgICAgMCwKICAgICAgICAiNjM4M2VhMzgwNjI0N2U4ZGJmOWViZWU4Y2IzMGViOGVjYTYzYThlYTU5NjYyYTc5MzEyN2Q2YTYxYjk4OGQ3MCIKICAgICAgXSwKICAgICAgImFmdGVyIjogWwogICAgICAgICJmaWxlIiwKICAgICAgICA0MjAsCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgICJmNTkwNzYyMTk2NzEwZTI1YzBlOWY3MmRhMDY0MmNhZDhhNWRjYmEwYWE5ZTU4YTBjYmFhNjU2ODRkMTVjMDAxIgogICAgICBdCiAgICB9LAogICAgInVzci9saWIvbGliei5zby4xLjMuMiI6IHsKICAgICAgImJlZm9yZSI6IFsKICAgICAgICAiZmlsZSIsCiAgICAgICAgNDkzLAogICAgICAgIDAsCiAgICAgICAgMCwKICAgICAgICAiYTFlMmMwM2RjZGVkYmE5OGEwNmEwMGNhZGZiNjdhMGUwYjFjZDkzOTg2ODYwZWMwYzVjZTY2ZTc4OWM0NGU1NyIKICAgICAgXSwKICAgICAgImFmdGVyIjogWwogICAgICAgICJmaWxlIiwKICAgICAgICA0OTMsCiAgICAgICAgMCwKICAgICAgICAwLAogICAgICAgICJlY2M4YjlkZmM0NWViN2ZhMjliNDEwZmZhY2E2MjU3ODczODkwZGU1M2I4MGZlOTE3MzU3MzdiNDkwNjdjNWYyIgogICAgICBdCiAgICB9CiAgfSwKICAiZGlyZWN0b3J5X21ldGFkYXRhX2NvbXBhcmVkIjogdHJ1ZSwKICAiZGlyZWN0b3J5X2NvdW50X2Jhc2UiOiAzMTMsCiAgImRpcmVjdG9yeV9jb3VudF9jYW5kaWRhdGUiOiAzMTMsCiAgImRpcmVjdG9yeV9tZXRhZGF0YV9kZWx0YSI6IHt9LAogICJzYm9tX3BhY2thZ2VfY291bnRfYmFzZSI6IDQ0LAogICJzYm9tX3BhY2thZ2VfY291bnRfY2FuZGlkYXRlIjogNDQsCiAgInNib21fb25seV9kZWx0YSI6IHsKICAgICJ6bGliIjogWwogICAgICAiMS4zLjItcjAiLAogICAgICAiMS4zLjItcjEiCiAgICBdCiAgfSwKICAiZnVsbF9zY2FuX2Jhc2VsaW5lX2ZpbmRpbmdzIjogMSwKICAiZnVsbF9zY2FuX2NhbmRpZGF0ZV9hbGxzZXZlcml0eV9maW5kaW5ncyI6IDAsCiAgImRiX3NuYXBzaG90X3NhbWUiOiB0cnVlLAogICJuYXRpdmVfd29ya2xvYWRfY2hhbmdlZCI6IGZhbHNlCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:6af62f86f50ac185fab94163c24ac8150ead69e62f8d825b0dce1e75a5a57b68",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjMiLAogICJ6bGliX3BhY2thZ2UiOiAiMS4zLjItcjEiLAogICJmaWxlcyI6IHsKICAgICJsaWIvYXBrL2RiL2luc3RhbGxlZCI6IFsKICAgICAgImZpbGUiLAogICAgICA0MjAsCiAgICAgIDAsCiAgICAgIDAsCiAgICAgICJmNTkwNzYyMTk2NzEwZTI1YzBlOWY3MmRhMDY0MmNhZDhhNWRjYmEwYWE5ZTU4YTBjYmFhNjU2ODRkMTVjMDAxIgogICAgXSwKICAgICJ1c3IvbGliL2xpYnouc28uMS4zLjIiOiBbCiAgICAgICJmaWxlIiwKICAgICAgNDkzLAogICAgICAwLAogICAgICAwLAogICAgICAiZWNjOGI5ZGZjNDVlYjdmYTI5YjQxMGZmYWNhNjI1Nzg3Mzg5MGRlNTNiODBmZTkxNzM1NzM3YjQ5MDY3YzVmMiIKICAgIF0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:f8a9a07abc2eb52cdf6bcdba2d9f79dec073145c31d0444a9e0fe1147e42cc4e",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJjb25maWdtYXAiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAiaW1tdXRhYmxlIjogdHJ1ZSwKICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogIjkwMTEzZDJkLTU0ZDktNGU4Mi1iMWQzLTkwYjQ5ZWJlZDJiNSIKICAgIH0sCiAgICAiY2Fub25pY2FsX2RhdGFfc2hhMjU2IjogIjhlYzQ2MmQxMjM0NzU0OGY1MDZlZWViZjFlM2M3Y2M0NzY0ODAxOWM4YTc4MzgwNGQwOWJjYzc5YjBmMjJhZjYiCiAgfSwKICAicHZjIjogewogICAgImFwaVZlcnNpb24iOiAidjEiLAogICAgImtpbmQiOiAiUGVyc2lzdGVudFZvbHVtZUNsYWltIiwKICAgICJtZXRhZGF0YSI6IHsKICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICJhcmdvY2QuYXJnb3Byb2ouaW8vdHJhY2tpbmctaWQiOiAiaW5mb3JtZWQtZGVjaXNpb246L1BlcnNpc3RlbnRWb2x1bWVDbGFpbTppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYmluZC1jb21wbGV0ZWQiOiAieWVzIiwKICAgICAgICAicHYua3ViZXJuZXRlcy5pby9ib3VuZC1ieS1jb250cm9sbGVyIjogInllcyIsCiAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWUua3ViZXJuZXRlcy5pby9zZWxlY3RlZC1ub2RlIjogIjIzOS42Mi4yMDUuOTIuaG9zdC5zZWN1cmVzZXJ2ZXIubmV0IiwKICAgICAgICAidm9sdW1lLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiCiAgICAgIH0sCiAgICAgICJmaW5hbGl6ZXJzIjogWwogICAgICAgICJrdWJlcm5ldGVzLmlvL3B2Yy1wcm90ZWN0aW9uIgogICAgICBdLAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfSwKICAgICJzcGVjIjogewogICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgIlJlYWRXcml0ZU9uY2UiCiAgICAgIF0sCiAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgInN0b3JhZ2UiOiAiMUdpIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0b3JhZ2VDbGFzc05hbWUiOiAibG9jYWwtcGF0aCIsCiAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAidm9sdW1lTmFtZSI6ICJwdmMtZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfQogIH0sCiAgInB2Y19waGFzZSI6ICJCb3VuZCIKfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:487f834cc86dcbc7a04c2392bde072ecaf87dc116b4baa16c35eb9c599ad5c95",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjMiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:f8a9a07abc2eb52cdf6bcdba2d9f79dec073145c31d0444a9e0fe1147e42cc4e",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:09b0a8ed6c3c7d1e94f5f703a2d5834ca26fc166cfc8f4f9b4511ab70ec16ac9",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJraW5kIjogImluZm9ybWVkLWRlY2lzaW9uLnN1cGVydmlzZWQtZXhlY3V0aW9uLXNvdXJjZS1idW5kbGUiLAogICJ2ZXJzaW9uIjogMSwKICAicHJvcG9zYWxfaWQiOiAiSU5GRC1XUC0wMDA5LVQwNS96bGliODUwOTEtcjEiLAogICJmaWxlcyI6IHsKICAgICJleGVjdXRpb24vYWN0dWF0b3IucHkiOiB7CiAgICAgICJzaGEyNTYiOiAiZGFiZWRhMzNmZmU1Mjk4OTMzN2UyMTRkYzZlNmQzZWY1ZjA0Nzk3NTY5MTQ1ZmFmMmZmNjkwMjRiMTAxZWM4MCIsCiAgICAgICJjb250ZW50IjogIlwiXCJcIk9uZSBmaXhlZCBzdXBlcnZpc2VkIHBoYXNlOyBuZXZlciBydW4gdGhpcyBkdXJpbmcgc291cmNlIHByZXBhcmF0aW9uLlwiXCJcIlxuaW1wb3J0IGFyZ3BhcnNlXG5pbXBvcnQgaGFzaGxpYlxuaW1wb3J0IGpzb25cbmltcG9ydCBvc1xuZnJvbSBwYXRobGliIGltcG9ydCBQYXRoXG5pbXBvcnQgcmVcbmltcG9ydCBzZWxlY3RvcnNcbmltcG9ydCBzdGF0XG5pbXBvcnQgc3VicHJvY2Vzc1xuaW1wb3J0IHN5c1xuaW1wb3J0IHRpbWVcblxuaWYgc3lzLmZsYWdzLm9wdGltaXplOlxuICAgIHJhaXNlIFN5c3RlbUV4aXQoJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkJylcblxuUEhBU0VTID0gKCdkcmlsbC1iYWNrdXAnLCAnZHJpbGwtY29weScsICdvZmZsaW5lLXZlcmlmeScsICdjbGVhbnVwLW9mZmxpbmUnLFxuICAgICAgICAgICdjdXRvdmVyLWJhY2t1cCcsICdjdXRvdmVyLWNvcHknLCAncmVsZWFzZScsICd2ZXJpZnknLCAncm9sbGJhY2snLCAncm9sbGJhY2stdmVyaWZ5JylcblxuXG5kZWYgcmVxdWlyZSh2YWx1ZSwgcmVhc29uKTpcbiAgICBpZiBub3QgdmFsdWU6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IocmVhc29uKVxuXG5cbmRlZiBzaGEocGF0aCk6XG4gICAgZGlnZXN0ID0gaGFzaGxpYi5zaGEyNTYoKVxuICAgIHdpdGggUGF0aChwYXRoKS5vcGVuKCdyYicpIGFzIHN0cmVhbTpcbiAgICAgICAgZm9yIGJsb2NrIGluIGl0ZXIobGFtYmRhOiBzdHJlYW0ucmVhZCgxMDI0KioyKSwgYicnKTpcbiAgICAgICAgICAgIGRpZ2VzdC51cGRhdGUoYmxvY2spXG4gICAgcmV0dXJuIGRpZ2VzdC5oZXhkaWdlc3QoKVxuXG5cbmRlZiBwcml2YXRlKHBhdGgsIGRpcmVjdG9yeT1GYWxzZSk6XG4gICAgaW5mbyA9IFBhdGgocGF0aCkubHN0YXQoKVxuICAgIHJlcXVpcmUoKHN0YXQuU19JU0RJUihpbmZvLnN0X21vZGUpIGlmIGRpcmVjdG9yeSBlbHNlIHN0YXQuU19JU1JFRyhpbmZvLnN0X21vZGUpKVxuICAgICAgICAgICAgYW5kIGluZm8uc3RfdWlkID09IG9zLmdldHVpZCgpIGFuZCBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKSA9PSAoMG83MDAgaWYgZGlyZWN0b3J5IGVsc2UgMG82MDApXG4gICAgICAgICAgICBhbmQgKGRpcmVjdG9yeSBvciBpbmZvLnN0X25saW5rID09IDEpLCAncHJpdmF0ZSBvd25lZCBjdXN0b2R5IHJlcXVpcmVkJylcblxuUk9PVCA9IFBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnRcbkNBU0UgPSBST09ULnBhcmVudFxuT1dORVIgPSBQYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24nKVxuQ1VTVE9ESUFOID0gUGF0aCgnL2hvbWUvd29yc2NoL3RoZS1jdXN0b2RpYW4nKVxuQ1VTVE9EWSA9IENVU1RPRElBTiAvICcucHJpdmF0ZS1iYWNrdXBzLzIwMjYxMDExLWluZmQtemxpYi1yMSdcblNPQ0tFVCA9ICd1bml4Oi8vL3Zhci9ydW4vZG9ja2VyLnNvY2snXG5JTUFHRSA9ICdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjMnXG5WT0xVTUUgPSAnaW5mZC16bGliLXIxLXJlc3RvcmUtMjAyNjEwMTEnXG5NQVhfQllURVMgPSA1MTIgKiAxMDI0KioyXG5cblxuZGVmIHJ1bihhcmd2LCBib2R5PU5vbmUsIHRpbWVvdXQ9OTApOlxuICAgIHJldHVybiBzdWJwcm9jZXNzLnJ1bihhcmd2LCBpbnB1dD1ib2R5LCB0ZXh0PVRydWUsIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRpbWVvdXQ9dGltZW91dClcblxuXG5kZWYganNvbl9yZXN1bHQocmVzdWx0KTpcbiAgICB0cnk6XG4gICAgICAgIHZhbHVlID0ganNvbi5sb2FkcyhyZXN1bHQuc3Rkb3V0KVxuICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKTpcbiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc2FmZSBwaGFzZSByZWNlaXB0IHVuYXZhaWxhYmxlOyBvdXRjb21lIHVuY2VydGFpbicpIGZyb20gTm9uZVxuICAgIHJlcXVpcmUocmVzdWx0LnJldHVybmNvZGUgPT0gMCBhbmQgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCkgYW5kIHZhbHVlLmdldCgnYWxsX2NoZWNrc19wYXNzJykgaXMgVHJ1ZSxcbiAgICAgICAgICAgICdwaGFzZSBkaWQgbm90IHZlcmlmeSBjb21wbGV0ZTsgcmF3IG91dHB1dCB3aXRoaGVsZDsgbm8gcmV0cnknKVxuICAgIHBlcm1pdHRlZCA9IHsncGhhc2UnLCAnYWxsX2NoZWNrc19wYXNzJywgJ3Jhd19vdXRwdXRfd2l0aGhlbGQnLCAnbmF0aXZlX2FwcHJvdmFsX3ZlcmlmaWVkX2J5X3Jvb3QnLFxuICAgICAgICAgICAgICAgICAnbmF0aXZlX2F1dGhlbnRpY2F0ZWRfZ3JhbnQnLCAnc291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lJywgJ3NuYXBzaG90X3JlYWRvbmx5JyxcbiAgICAgICAgICAgICAgICAgJ3NuYXBzaG90X3NoYTI1NicsICdzbmFwc2hvdF9ieXRlcycsICdzbmFwc2hvdF9maWxlJywgJ25hdGl2ZV9wYXJlbnRfcHJpdmF0ZScsXG4gICAgICAgICAgICAgICAgICduYXRpdmVfdWlkJywgJ3BvZF9uYW1lJywgJ3BvZF91aWQnLCAnbGl2ZV9yZWFkb25seV9zY2hlbWFfaW50ZWdyaXR5X2NvdW50cycsXG4gICAgICAgICAgICAgICAgICdsaXZlX2NvdW50c19tYXlfaW5jbHVkZV9jb25jdXJyZW50X2NvbW1pdHMnLCAnb3BlcmF0aW9uX3JlcXVlc3RlZCcsICdzb3VyY2VfcmV2aXNpb24nLFxuICAgICAgICAgICAgICAgICAncmVzb3VyY2VzJywgJ3BydW5lJywgJ3JvbGxvdXRfdmVyaWZpZWQnLCAnbGF0ZXN0X2xpdmVfZGF0YWJhc2VfcmV0YWluZWQnLFxuICAgICAgICAgICAgICAgICAnY2xpZW50X2RpZmZfc2hhMjU2JywgJ25hdGl2ZV9yb2xsb3V0X3ZlcmlmaWVkJywgJ2N1cnJlbnRfc2NoZW1hNV9kYXRhYmFzZV9yZXRhaW5lZCcsXG4gICAgICAgICAgICAgICAgICdwcml2YXRlX2NvcHlfdmVyaWZpZWQnLCAnaW5zdGFsbGVkX3B1cnBvc2VfY2hlY2tzJywgJ3BvbGljeV9zaGEyNTYnLFxuICAgICAgICAgICAgICAgICAncG9saWN5X21vZGUnLCAncG9saWN5X3VpZCcsICdpbnN0YWxsZWRfemxpYl9maWxlcycsICd6bGliX3BhY2thZ2UnLCAnaGVhbHRoX3N0YXR1c2VzJywgJ25hdGl2ZV9wcm92aWRlcl9wcm9iZScsICdyZWNvdmVyeV92ZXJpZmljYXRpb24nfVxuICAgIHJlcXVpcmUoc2V0KHZhbHVlKSA8PSBwZXJtaXR0ZWQsICd1bmV4cGVjdGVkIG91dHB1dCBmaWVsZHMgd2l0aGhlbGQnKVxuICAgIGZyb20gcmVjZWlwdF9zYWZldHkgaW1wb3J0IGNvdW50c1xuICAgIGZvciBuYW1lIGluICgnc291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lJywgJ3NuYXBzaG90X3JlYWRvbmx5JywgJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHMnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIGNvdW50cyh2YWx1ZVtuYW1lXSlcbiAgICBmb3IgbmFtZSBpbiAoJ3NuYXBzaG90X3NoYTI1NicsICdjbGllbnRfZGlmZl9zaGEyNTYnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtZjAtOV17NjR9JywgdmFsdWVbbmFtZV0pIGlzIG5vdCBOb25lLCAnaW52YWxpZCBvdXRwdXQgZGlnZXN0IHdpdGhoZWxkJylcbiAgICBpZiAnc25hcHNob3RfYnl0ZXMnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHR5cGUodmFsdWVbJ3NuYXBzaG90X2J5dGVzJ10pIGlzIGludCBhbmQgMCA8IHZhbHVlWydzbmFwc2hvdF9ieXRlcyddIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICAgICAnaW52YWxpZCBvdXRwdXQgc2l6ZSB3aXRoaGVsZCcpXG4gICAgaWYgJ3NuYXBzaG90X2ZpbGUnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHZhbHVlWydzbmFwc2hvdF9maWxlJ10gaW4gKCdkcmlsbC5zcWxpdGUnLCAnY3V0b3Zlci5zcWxpdGUnKSwgJ2ludmFsaWQgb3V0cHV0IGZpbGUgd2l0aGhlbGQnKVxuICAgIHJldHVybiB2YWx1ZVxuXG5cbmRlZiBkb2NrZXIoYXJndiwgYm9keT1Ob25lLCB0aW1lb3V0PTEyMCk6XG4gICAgcmV0dXJuIHJ1bihbJ2RvY2tlcicsICctLWNvbmZpZycsIHN0cihDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKSwgJy0taG9zdCcsIFNPQ0tFVF0gKyBhcmd2LFxuICAgICAgICAgICAgICAgYm9keT1ib2R5LCB0aW1lb3V0PXRpbWVvdXQpXG5cblxuZGVmIHJlbW90ZShwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkKTpcbiAgICAjIEZpeGVkIG1vZHVsZSBpbXBvcnRlZCBvbmx5IGFmdGVyIG1haW4gdmVyaWZpZXMgZXZlcnkgZXhlY3V0b3Igc291cmNlIGhhc2guXG4gICAgZnJvbSBuYXRpdmVfcHJvZ3JhbSBpbXBvcnQgUFJPR1JBTVxuICAgIHBheWxvYWQgPSB7J3BoYXNlJzogcGhhc2UsICdzb3VyY2VfcmV2aXNpb24nOiByZXZpc2lvbiwgJ2FwcHJvdmFsJzogYXBwcm92ZWQsXG4gICAgICAgICAgICAgICAnc2VhbGVkJzoganNvbi5sb2FkcygoQ0FTRSAvICdzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksXG4gICAgICAgICAgICAgICAnZGVwZW5kZW5jaWVzJzoganNvbi5sb2FkcygoQ0FTRSAvICdzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgJ2NhbmRpZGF0ZSc6IGpzb24ubG9hZHMoKENBU0UgLyAnY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICdyb2xsYmFjayc6IGpzb24ubG9hZHMoKENBU0UgLyAncm9sbGJhY2stZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgJ3JlY2VpcHRfc2FmZXR5JzogKFJPT1QgLyAncmVjZWlwdF9zYWZldHkucHknKS5yZWFkX3RleHQoKSxcbiAgICAgICAgICAgICAgICdwdXJwb3NlX2NoZWNrcyc6IChDQVNFIC8gJ2NoZWNrX2luc3RhbGxlZC5weScpLnJlYWRfdGV4dCgpLFxuICAgICAgICAgICAgICAgJ2luc3RhbGxlZF96bGliJzoganNvbi5sb2FkcygoQ0FTRSAvICdpbnN0YWxsZWQtemxpYi1wcm9vZi5qc29uJykucmVhZF90ZXh0KCkpLCAncmVhZG9ubHknOiAoQ0FTRSAvICdzcWxpdGVfcmVhZG9ubHkucHknKS5yZWFkX3RleHQoKX1cbiAgICBzY3JpcHQgPSBQUk9HUkFNLnJlcGxhY2UoJ19fUEFZTE9BRF9fJywgcmVwcihqc29uLmR1bXBzKHBheWxvYWQpKSkucmVwbGFjZShcbiAgICAgICAgJ19fR1VBUkRfXycsIHJlcHIoKENBU0UgLyAnY2hhbmdlX2d1YXJkLnB5JykucmVhZF90ZXh0KCkpKVxuICAgIHJldHVybiBqc29uX3Jlc3VsdChydW4oWydzc2gnLCAncmFpbGlhbmNlMDEnLCAncHl0aG9uMyAtJ10sIHNjcmlwdCwgdGltZW91dD0yMDApKVxuXG5cbmRlZiBjb3B5X3NuYXBzaG90KHBoYXNlLCByZXZpc2lvbiwgYXBwcm92ZWQsIGpvdXJuYWwpOlxuICAgIG1ldGFkYXRhID0gcmVtb3RlKHBoYXNlLCByZXZpc2lvbiwgYXBwcm92ZWQpXG4gICAgYmFja3VwX3BoYXNlID0gJ2RyaWxsLWJhY2t1cCcgaWYgcGhhc2UgPT0gJ2RyaWxsLWNvcHknIGVsc2UgJ2N1dG92ZXItYmFja3VwJ1xuICAgIHByaW9yID0gam91cm5hbC5kYXRhWydwaGFzZXMnXVtiYWNrdXBfcGhhc2VdWydyZXN1bHQnXVxuICAgIGZvciBrZXkgaW4gKCdzbmFwc2hvdF9zaGEyNTYnLCAnc25hcHNob3RfYnl0ZXMnLCAnc25hcHNob3RfZmlsZScsICdzbmFwc2hvdF9yZWFkb25seScpOlxuICAgICAgICByZXF1aXJlKG1ldGFkYXRhW2tleV0gPT0gcHJpb3Jba2V5XSwgJ2Nsb3NlZCBmcm96ZW4gc25hcHNob3QgY2hhbmdlZCcpXG4gICAgbmFtZSA9IG1ldGFkYXRhWydzbmFwc2hvdF9maWxlJ11cbiAgICByZXF1aXJlKG5hbWUgaW4gKCdkcmlsbC5zcWxpdGUnLCAnY3V0b3Zlci5zcWxpdGUnKSBhbmQgMCA8IG1ldGFkYXRhWydzbmFwc2hvdF9ieXRlcyddIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICdmaXhlZCBib3VuZGVkIHNuYXBzaG90IHJlcXVpcmVkJylcbiAgICBwb2QgPSBtZXRhZGF0YVsncG9kX25hbWUnXVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8nLCBwb2QpIGlzIG5vdCBOb25lLCAnZml4ZWQgb3duZXIgcG9kIG5hbWUgcmVxdWlyZWQnKVxuICAgIGxvY2FsID0gQ1VTVE9EWSAvIG5hbWVcbiAgICBmZCA9IG9zLm9wZW4obG9jYWwsIG9zLk9fV1JPTkxZIHwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCB8IG9zLk9fTk9GT0xMT1csIDBvNjAwKVxuICAgICMgQmluYXJ5IHNuYXBzaG90IHN0ZG91dCBnb2VzIG9ubHkgdG8gYSBwcml2YXRlIGZpbGUsIG5ldmVyIHRvb2wvY2hhdC9sb2cgb3V0cHV0LlxuICAgICMgU25hcHNob3Qgc2NoZW1hL2NvdW50IG1ldGFkYXRhIHdhcyB2YWxpZGF0ZWQgYmVmb3JlIG9wZW5pbmcgdGhpcyBkZXN0aW5hdGlvbi5cbiAgICB3aXRoIG9zLmZkb3BlbihmZCwgJ3diJykgYXMgZGVzdGluYXRpb246XG4gICAgICAgIGNvbW1hbmQgPSAoJ2t1YmVjdGwgZXhlYyAtbiBpbmZvcm1lZC1kZWNpc2lvbiAnICsgcG9kICtcbiAgICAgICAgICAgICAgICAgICAnIC1jIGluZm9ybWVkLWRlY2lzaW9uIC0tIGNhdCAvZGF0YS9wcml2YXRlL3psaWI4NTA5MS1yMS8nICsgbmFtZSlcbiAgICAgICAgdHJhbnNmZXIgPSBzdWJwcm9jZXNzLlBvcGVuKFsnc3NoJywgJ3JhaWxpYW5jZTAxJywgY29tbWFuZF0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKVxuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9ycy5EZWZhdWx0U2VsZWN0b3IoKVxuICAgICAgICBzZWxlY3Rvci5yZWdpc3Rlcih0cmFuc2Zlci5zdGRvdXQsIHNlbGVjdG9ycy5FVkVOVF9SRUFEKVxuICAgICAgICBkZWFkbGluZSA9IHRpbWUubW9ub3RvbmljKCkgKyAxNTBcbiAgICAgICAgcmVjZWl2ZWQgPSAwXG4gICAgICAgIHRyeTpcbiAgICAgICAgICAgIHdoaWxlIFRydWU6XG4gICAgICAgICAgICAgICAgcmVtYWluaW5nID0gZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygpXG4gICAgICAgICAgICAgICAgcmVxdWlyZShyZW1haW5pbmcgPiAwIGFuZCBzZWxlY3Rvci5zZWxlY3QocmVtYWluaW5nKSwgJ3ByaXZhdGUgdHJhbnNmZXIgdGltZWQgb3V0JylcbiAgICAgICAgICAgICAgICBibG9jayA9IG9zLnJlYWQodHJhbnNmZXIuc3Rkb3V0LmZpbGVubygpLCAxMDI0KioyKVxuICAgICAgICAgICAgICAgIGlmIG5vdCBibG9jazpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICByZWNlaXZlZCArPSBsZW4oYmxvY2spXG4gICAgICAgICAgICAgICAgcmVxdWlyZShyZWNlaXZlZCA8PSBtZXRhZGF0YVsnc25hcHNob3RfYnl0ZXMnXSBhbmQgcmVjZWl2ZWQgPD0gTUFYX0JZVEVTLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaXZhdGUgY29weSBleGNlZWRzIGZyb3plbiBzbmFwc2hvdCBzaXplJylcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi53cml0ZShibG9jaylcbiAgICAgICAgICAgIHRyYW5zZmVyLndhaXQodGltZW91dD1tYXgoMSwgZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygpKSlcbiAgICAgICAgZmluYWxseTpcbiAgICAgICAgICAgIHNlbGVjdG9yLmNsb3NlKClcbiAgICAgICAgICAgIHRyYW5zZmVyLnN0ZG91dC5jbG9zZSgpXG4gICAgICAgICAgICBpZiB0cmFuc2Zlci5wb2xsKCkgaXMgTm9uZTpcbiAgICAgICAgICAgICAgICB0cmFuc2Zlci5raWxsKClcbiAgICAgICAgICAgICAgICB0cmFuc2Zlci53YWl0KClcbiAgICAgICAgZGVzdGluYXRpb24uZmx1c2goKVxuICAgICAgICBvcy5mc3luYyhkZXN0aW5hdGlvbi5maWxlbm8oKSlcbiAgICBwcml2YXRlKGxvY2FsKVxuICAgIHJlcXVpcmUodHJhbnNmZXIucmV0dXJuY29kZSA9PSAwIGFuZCBsb2NhbC5zdGF0KCkuc3Rfc2l6ZSA9PSBtZXRhZGF0YVsnc25hcHNob3RfYnl0ZXMnXVxuICAgICAgICAgICAgYW5kIHNoYShsb2NhbCkgPT0gbWV0YWRhdGFbJ3NuYXBzaG90X3NoYTI1NiddLCAncHJpdmF0ZSBjb3B5IGluY29tcGxldGUvdW5jZXJ0YWluOyByZXRhaW4sIG5vIHJldHJ5JylcbiAgICAjIFJlLXJlYWQgaWRlbnRpdHkvaGFzaCBhZnRlciB0cmFuc2Zlci4gVGhpcyBpcyB2ZXJpZmljYXRpb24sIG5vdCBhIHdyaXRlIHJldHJ5LlxuICAgIGFmdGVyID0gcmVtb3RlKHBoYXNlLCByZXZpc2lvbiwgYXBwcm92ZWQpXG4gICAgcmVxdWlyZShhZnRlclsncG9kX3VpZCddID09IG1ldGFkYXRhWydwb2RfdWlkJ10gYW5kIGFmdGVyWydzbmFwc2hvdF9zaGEyNTYnXSA9PSBtZXRhZGF0YVsnc25hcHNob3Rfc2hhMjU2J10sXG4gICAgICAgICAgICAnc291cmNlIGlkZW50aXR5L3NuYXBzaG90IGNoYW5nZWQgZHVyaW5nIHRyYW5zZmVyJylcbiAgICByZXR1cm4geyoqbWV0YWRhdGEsICdvZmZfY2x1c3Rlcl9wcml2YXRlX2NvcHlfdmVyaWZpZWQnOiBUcnVlLCAnc25hcHNob3RfY29udGVudHNfb3V0cHV0JzogRmFsc2V9XG5cblxuZGVmIG9mZmxpbmVfdmVyaWZ5KGpvdXJuYWwpOlxuICAgIGZyb20gcmVjZWlwdF9zYWZldHkgaW1wb3J0IGNvdW50c1xuICAgIHNuYXBzaG90ID0gQ1VTVE9EWSAvICdkcmlsbC5zcWxpdGUnXG4gICAgcHJpdmF0ZShzbmFwc2hvdClcbiAgICBwcmV2aW91cyA9IGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bJ2RyaWxsLWNvcHknXVsncmVzdWx0J11cbiAgICByZXF1aXJlKHNoYShzbmFwc2hvdCkgPT0gcHJldmlvdXNbJ3NuYXBzaG90X3NoYTI1NiddLCAncHJvdGVjdGVkIHNuYXBzaG90IGJ5dGVzIGNoYW5nZWQnKVxuICAgIGlkZW50aXR5ID0gZG9ja2VyKFsnaW5mbycsICctLWZvcm1hdCcsICd7e2pzb24gLk5hbWV9fSddKVxuICAgIHJlcXVpcmUoaWRlbnRpdHkucmV0dXJuY29kZSA9PSAwIGFuZCBqc29uLmxvYWRzKGlkZW50aXR5LnN0ZG91dCkgPT0gJ2JudC1sYXAwMDEnLFxuICAgICAgICAgICAgJ2xvY2FsIG9mZmxpbmUgRG9ja2VyIGVuZ2luZSBpZGVudGl0eSBjaGFuZ2VkJylcbiAgICBsaXN0ZWQgPSBkb2NrZXIoWyd2b2x1bWUnLCAnbHMnLCAnLS1mb3JtYXQnLCAne3suTmFtZX19J10pXG4gICAgcmVxdWlyZShsaXN0ZWQucmV0dXJuY29kZSA9PSAwIGFuZCBWT0xVTUUgbm90IGluIGxpc3RlZC5zdGRvdXQuc3BsaXRsaW5lcygpLFxuICAgICAgICAgICAgJ2Rpc3Bvc2FibGUgdm9sdW1lIGFic2VuY2Ugbm90IHZlcmlmaWVkJylcbiAgICBub25jZSA9IGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bJ29mZmxpbmUtdmVyaWZ5J11bJ2F0dGVtcHRfaWQnXVxuICAgIGxhYmVscyA9IHsnaW5mb3JtZWQtZGVjaXNpb24uY2FzZSc6ICdpbmZkLXpsaWItMjAyNjEwMTEtcjEnLFxuICAgICAgICAgICAgICAnaW5mb3JtZWQtZGVjaXNpb24udXNlJzogJ29mZmxpbmUtcmVzdG9yZS1vbmx5JywgJ2luZm9ybWVkLWRlY2lzaW9uLmF0dGVtcHQnOiBub25jZX1cbiAgICBjcmVhdGVkID0gZG9ja2VyKFsndm9sdW1lJywgJ2NyZWF0ZScsICctLWRyaXZlcicsICdsb2NhbCcsICctLWxhYmVsJywgJ2luZm9ybWVkLWRlY2lzaW9uLmNhc2U9aW5mZC16bGliLTIwMjYxMDExLXIxJyxcbiAgICAgICAgICAgICAgICAgICAgICAnLS1sYWJlbCcsICdpbmZvcm1lZC1kZWNpc2lvbi5hdHRlbXB0PScgKyBub25jZSxcbiAgICAgICAgICAgICAgICAgICAgICAnLS1sYWJlbCcsICdpbmZvcm1lZC1kZWNpc2lvbi51c2U9b2ZmbGluZS1yZXN0b3JlLW9ubHknLCBWT0xVTUVdKVxuICAgIHJlcXVpcmUoY3JlYXRlZC5yZXR1cm5jb2RlID09IDAgYW5kIGNyZWF0ZWQuc3Rkb3V0LnN0cmlwKCkgPT0gVk9MVU1FLCAndm9sdW1lIGNyZWF0aW9uIHVuY2VydGFpbjsgbm8gcmV0cnknKVxuICAgIGluc3BlY3RlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdpbnNwZWN0JywgVk9MVU1FXSlcbiAgICByZXF1aXJlKGluc3BlY3RlZC5yZXR1cm5jb2RlID09IDAsICduZXcgdm9sdW1lIGlkZW50aXR5IHVuYXZhaWxhYmxlJylcbiAgICB2b2x1bWUgPSBqc29uLmxvYWRzKGluc3BlY3RlZC5zdGRvdXQpXG4gICAgcmVxdWlyZShsZW4odm9sdW1lKSA9PSAxIGFuZCB2b2x1bWVbMF1bJ05hbWUnXSA9PSBWT0xVTUUgYW5kIHZvbHVtZVswXS5nZXQoJ0xhYmVscycpID09IGxhYmVsc1xuICAgICAgICAgICAgYW5kIHZvbHVtZVswXS5nZXQoJ0RyaXZlcicpID09ICdsb2NhbCcgYW5kIG5vdCB2b2x1bWVbMF0uZ2V0KCdPcHRpb25zJylcbiAgICAgICAgICAgIGFuZCB2b2x1bWVbMF0uZ2V0KCdTY29wZScpID09ICdsb2NhbCcsICduZXcgaXNvbGF0ZWQgdm9sdW1lIGlkZW50aXR5IGNoYW5nZWQnKVxuICAgIGlkZW50aXR5ID0ge2tleTogdm9sdW1lWzBdW2tleV0gZm9yIGtleSBpbiAoJ05hbWUnLCAnTGFiZWxzJywgJ0RyaXZlcicsICdTY29wZScsICdDcmVhdGVkQXQnKX1cbiAgICBqb3VybmFsLm5vdGUoJ29mZmxpbmUtdmVyaWZ5JywgJ2NyZWF0ZWRfdm9sdW1lX2lkZW50aXR5JywgaWRlbnRpdHkpXG4gICAgIyBPbmUtdGltZSBVSUQwL0NBUF9DSE9XTiBpbml0aWFsaXphdGlvbiBpcyBpc29sYXRlZCB0byB0aGUgTkVXIG5hbWVkIHZvbHVtZS5cbiAgICAjIE5vIGhvc3QvbGl2ZSBQVkMvY29uZmlnL3Rva2VuIG1vdW50IGV4aXN0czsgdGhpcyBkZXRhaWwgbmVlZHMgcGFja2V0IHJldmlldy5cbiAgICBpbml0aWFsaXplciA9IFwiXCJcImltcG9ydCBoYXNobGliLG9zLHN0YXQsc3lzXG5pZiBzeXMuZmxhZ3Mub3B0aW1pemU6cmFpc2UgUnVudGltZUVycm9yKCdvcHRpbWl6ZWQgaW50ZXJwcmV0ZXIgcmVmdXNlZCcpXG5mb2xkZXI9Jy9yZXN0b3JlJztleHBlY3RlZD1FWFBFQ1RFRFxuaWYgb3MubGlzdGRpcihmb2xkZXIpOnJhaXNlIFZhbHVlRXJyb3IoJ25ldyBlbXB0eSBwcml2YXRlIHZvbHVtZSByZXF1aXJlZCcpXG5vcy5jaG1vZChmb2xkZXIsMG83MDApXG5mZD1vcy5vcGVuKGZvbGRlcisnL3Jldmlldy5zcWxpdGUnLG9zLk9fQ1JFQVR8b3MuT19FWENMfG9zLk9fTk9GT0xMT1d8b3MuT19XUk9OTFksMG82MDApXG5kaWdlc3Q9aGFzaGxpYi5zaGEyNTYoKTtzaXplPTBcbndpdGggb3MuZmRvcGVuKGZkLCd3YicpIGFzIHRhcmdldDpcbiB3aGlsZSBUcnVlOlxuICBibG9jaz1zeXMuc3RkaW4uYnVmZmVyLnJlYWQoMTAyNCoqMilcbiAgaWYgbm90IGJsb2NrOmJyZWFrXG4gIHNpemUrPWxlbihibG9jaylcbiAgaWYgc2l6ZT41MTIqMTAyNCoqMjpyYWlzZSBWYWx1ZUVycm9yKCdwcml2YXRlIHJlc3RvcmUgc2l6ZSBleGNlZWRzIGJvdW5kJylcbiAgdGFyZ2V0LndyaXRlKGJsb2NrKTtkaWdlc3QudXBkYXRlKGJsb2NrKVxuIHRhcmdldC5mbHVzaCgpO29zLmZzeW5jKHRhcmdldC5maWxlbm8oKSlcbmlmIGRpZ2VzdC5oZXhkaWdlc3QoKSE9ZXhwZWN0ZWQ6cmFpc2UgVmFsdWVFcnJvcigncHJpdmF0ZSBjb3BpZWQgc25hcHNob3QgZGlmZmVycycpXG5vcy5jaG93bihmb2xkZXIrJy9yZXZpZXcuc3FsaXRlJywxMDAwMSwxMDAwMSk7b3MuY2hvd24oZm9sZGVyLDEwMDAxLDEwMDAxKVxucHJpbnQoJ3tcImFsbF9jaGVja3NfcGFzc1wiOnRydWUsXCJwcml2YXRlX2NvcHlfdmVyaWZpZWRcIjp0cnVlfScpXG5cIlwiXCIucmVwbGFjZSgnRVhQRUNURUQnLCByZXByKHByZXZpb3VzWydzbmFwc2hvdF9zaGEyNTYnXSkpXG4gICAgd2l0aCBzbmFwc2hvdC5vcGVuKCdyYicpIGFzIHNvdXJjZTpcbiAgICAgICAgYXJndiA9IFsnZG9ja2VyJywgJy0tY29uZmlnJywgc3RyKENVU1RPRFkgLyAnZW1wdHktZG9ja2VyLWNvbmZpZycpLCAnLS1ob3N0JywgU09DS0VULFxuICAgICAgICAgICAgICAgICdydW4nLCAnLS1ybScsICctaScsICctLW5ldHdvcmsnLCAnbm9uZScsICctLXJlYWQtb25seScsICctLWNwdXMnLCAnMScsICctLW1lbW9yeScsICcxMjhtJyxcbiAgICAgICAgICAgICAgICAnLS11c2VyJywgJzA6MCcsICctLWNhcC1kcm9wJywgJ0FMTCcsICctLWNhcC1hZGQnLCAnQ0hPV04nLFxuICAgICAgICAgICAgICAgICctLXNlY3VyaXR5LW9wdCcsICduby1uZXctcHJpdmlsZWdlcycsICctLW1vdW50JywgJ3R5cGU9dm9sdW1lLHNyYz0nICsgVk9MVU1FICsgJyxkc3Q9L3Jlc3RvcmUnLFxuICAgICAgICAgICAgICAgICctLWVudHJ5cG9pbnQnLCAncHl0aG9uJywgSU1BR0UsICctYycsIGluaXRpYWxpemVyXVxuICAgICAgICBjb3BpZWQgPSBzdWJwcm9jZXNzLnJ1bihhcmd2LCBzdGRpbj1zb3VyY2UsIHRleHQ9VHJ1ZSwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdGltZW91dD0xNTApXG4gICAganNvbl9yZXN1bHQoY29waWVkKVxuICAgIG9wdGlvbnMgPSBbJ3J1bicsICctLXJtJywgJy1pJywgJy0tbmV0d29yaycsICdub25lJywgJy0tcmVhZC1vbmx5JywgJy0tY3B1cycsICcxJywgJy0tbWVtb3J5JywgJzEyOG0nLFxuICAgICAgICAgICAgICAgJy0tdXNlcicsICcxMDAwMToxMDAwMScsICctLWNhcC1kcm9wJywgJ0FMTCcsICctLXNlY3VyaXR5LW9wdCcsICduby1uZXctcHJpdmlsZWdlcycsXG4gICAgICAgICAgICAgICAnLS1tb3VudCcsICd0eXBlPXZvbHVtZSxzcmM9JyArIFZPTFVNRSArICcsZHN0PS9yZXN0b3JlJ11cbiAgICByZWFkb25seSA9IGRvY2tlcihvcHRpb25zICsgWyctLWVudHJ5cG9pbnQnLCAncHl0aG9uJywgSU1BR0UsICctJywgJy0tZGInLCAnL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZSddLFxuICAgICAgICAgICAgICAgICAgICAgIChDQVNFIC8gJ3NxbGl0ZV9yZWFkb25seS5weScpLnJlYWRfdGV4dCgpKVxuICAgIHJlcXVpcmUocmVhZG9ubHkucmV0dXJuY29kZSA9PSAwLCAnb2ZmbGluZSBwcmUtb3BlbiBzY2hlbWEvaW50ZWdyaXR5IGdhdGUgcmVmdXNlZDsgbmV2ZXIgb3BlbiBTdG9yZScpXG4gICAgY2hlY2tlZCA9IGNvdW50cyhqc29uLmxvYWRzKHJlYWRvbmx5LnN0ZG91dCkpXG4gICAgcmVxdWlyZShjaGVja2VkID09IHByZXZpb3VzWydzbmFwc2hvdF9yZWFkb25seSddLCAnZnJvemVuIHNuYXBzaG90L2Nsb25lIHJlYWRvbmx5IGNvdW50cyBkaWZmZXInKVxuICAgIGFkbWluID0gZG9ja2VyKG9wdGlvbnMgKyBbJy0tZW50cnlwb2ludCcsICdpbmZvcm1lZC1kZWNpc2lvbi1hZG1pbicsIElNQUdFLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luc3BlY3QnLCAnLS1kYicsICcvcmVzdG9yZS9yZXZpZXcuc3FsaXRlJ10pXG4gICAgcmVxdWlyZShhZG1pbi5yZXR1cm5jb2RlID09IDAsICdvZmZsaW5lIGFkbWluIHJlc3VsdCB1bmNlcnRhaW4nKVxuICAgIGFkbWluX2NvdW50cyA9IGpzb24ubG9hZHMoYWRtaW4uc3Rkb3V0KVxuICAgIHJlcXVpcmUoYWRtaW5fY291bnRzID09IHtrZXk6IGNoZWNrZWRba2V5XSBmb3Iga2V5IGluICgnc2NoZW1hX3ZlcnNpb24nLCAnbGlmZWN5Y2xlJywgJ291dGJveCcsICdzdWJtaXNzaW9ucycpfSxcbiAgICAgICAgICAgICdvZmZsaW5lIGFkbWluIGNoYW5nZWQgZnJvemVuIHNuYXBzaG90IGNvdW50ZXJzJylcbiAgICAjIEFkbWluIFN0b3JlIGNvbnN0cnVjdGlvbiBtdXN0IG5vdCBzaWxlbnRseSBhbHRlciBzY2hlbWEvaW50ZWdyaXR5L2NvdW50ZXJzLlxuICAgIHBvc3QgPSBkb2NrZXIob3B0aW9ucyArIFsnLS1lbnRyeXBvaW50JywgJ3B5dGhvbicsIElNQUdFLCAnLScsICctLWRiJywgJy9yZXN0b3JlL3Jldmlldy5zcWxpdGUnXSxcbiAgICAgICAgICAgICAgICAgIChDQVNFIC8gJ3NxbGl0ZV9yZWFkb25seS5weScpLnJlYWRfdGV4dCgpKVxuICAgIHJlcXVpcmUocG9zdC5yZXR1cm5jb2RlID09IDAsICdvZmZsaW5lIHBvc3QtYWRtaW4gcmVhZG9ubHkgaW50ZWdyaXR5IGdhdGUgcmVmdXNlZCcpXG4gICAgcG9zdF9jaGVja2VkID0gY291bnRzKGpzb24ubG9hZHMocG9zdC5zdGRvdXQpKVxuICAgIHJlcXVpcmUocG9zdF9jaGVja2VkID09IGNoZWNrZWQgPT0gcHJldmlvdXNbJ3NuYXBzaG90X3JlYWRvbmx5J10sXG4gICAgICAgICAgICAnb2ZmbGluZSBhZG1pbiBhbHRlcmVkIGZyb3plbiBzbmFwc2hvdCBwcm9vZicpXG4gICAgcHJpdmF0ZShzbmFwc2hvdClcbiAgICByZXF1aXJlKHNoYShzbmFwc2hvdCkgPT0gcHJldmlvdXNbJ3NuYXBzaG90X3NoYTI1NiddLCAnb3JpZ2luYWwgcHJvdGVjdGVkIHNuYXBzaG90IGNoYW5nZWQgZHVyaW5nIGRyaWxsJylcbiAgICByZXR1cm4geydhbGxfY2hlY2tzX3Bhc3MnOiBUcnVlLCAnb2ZmbGluZV92b2x1bWUnOiBWT0xVTUUsICdvZmZsaW5lX3JlYWRvbmx5JzogY2hlY2tlZCxcbiAgICAgICAgICAgICdvZmZsaW5lX3Bvc3RfYWRtaW5fcmVhZG9ubHknOiBwb3N0X2NoZWNrZWQsICdvcmlnaW5hbF9zbmFwc2hvdF9oYXNoX3VuY2hhbmdlZCc6IFRydWUsXG4gICAgICAgICAgICAnY3JlYXRlZF92b2x1bWVfaWRlbnRpdHknOiBpZGVudGl0eSxcbiAgICAgICAgICAgICdhZG1pbl9jb3VudHMnOiBhZG1pbl9jb3VudHMsICduZXR3b3JrJzogJ25vbmUnLCAncnVudGltZV90b2tlbnNfb3JfY29uZmlnX21vdW50ZWQnOiBGYWxzZSxcbiAgICAgICAgICAgICdzZXJ2aWNlX2VudHJ5cG9pbnRfc3RhcnRlZCc6IEZhbHNlLCAnb3JpZ2luYWxfc25hcHNob3RfcmV0YWluZWQnOiBUcnVlfVxuXG5cbmRlZiBjbGVhbnVwX29mZmxpbmUoam91cm5hbCk6XG4gICAgaW5zcGVjdGVkID0gZG9ja2VyKFsndm9sdW1lJywgJ2luc3BlY3QnLCBWT0xVTUVdKVxuICAgIHJlcXVpcmUoaW5zcGVjdGVkLnJldHVybmNvZGUgPT0gMCwgJ293bmVkIGRpc3Bvc2FibGUgdm9sdW1lIGlkZW50aXR5IHVudmVyaWZpZWQnKVxuICAgIHZhbHVlID0ganNvbi5sb2FkcyhpbnNwZWN0ZWQuc3Rkb3V0KVxuICAgIGV4cGVjdGVkID0gam91cm5hbC5kYXRhWydwaGFzZXMnXVsnb2ZmbGluZS12ZXJpZnknXVsncmVzdWx0J11bJ2NyZWF0ZWRfdm9sdW1lX2lkZW50aXR5J11cbiAgICByZXF1aXJlKGxlbih2YWx1ZSkgPT0gMSBhbmQge2tleTogdmFsdWVbMF0uZ2V0KGtleSkgZm9yIGtleSBpbiBleHBlY3RlZH0gPT0gZXhwZWN0ZWRcbiAgICAgICAgICAgIGFuZCBub3QgdmFsdWVbMF0uZ2V0KCdPcHRpb25zJyksICd2b2x1bWUgb3duZXJzaGlwL3JlY3JlYXRpb24gY2hhbmdlZCcpXG4gICAgcmVtb3ZlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdybScsIFZPTFVNRV0pXG4gICAgcmVxdWlyZShyZW1vdmVkLnJldHVybmNvZGUgPT0gMCBhbmQgcmVtb3ZlZC5zdGRvdXQuc3RyaXAoKSA9PSBWT0xVTUVcbiAgICAgICAgICAgIGFuZCBkb2NrZXIoWyd2b2x1bWUnLCAnaW5zcGVjdCcsIFZPTFVNRV0pLnJldHVybmNvZGUgIT0gMCxcbiAgICAgICAgICAgICdjbGVhbnVwIG91dGNvbWUgYW1iaWd1b3VzOyBkbyBub3QgcmV0cnknKVxuICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdvbmx5X2Rpc3Bvc2FibGVfb2ZmbGluZV92b2x1bWVfcmVtb3ZlZCc6IFZPTFVNRSxcbiAgICAgICAgICAgICduYXRpdmVfYW5kX29mZmNsdXN0ZXJfb3JpZ2luYWxfc25hcHNob3RzX3JldGFpbmVkJzogVHJ1ZX1cblxuXG5kZWYgbWFpbigpOlxuICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPV9fZG9jX18pXG4gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1waGFzZScsIGNob2ljZXM9UEhBU0VTLCByZXF1aXJlZD1UcnVlKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcm9vdC1hdXRob3JpdHktcmVjZWlwdCcsIHR5cGU9UGF0aCwgcmVxdWlyZWQ9VHJ1ZSlcbiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXJvb3QtbmF0aXZlLW91dGNvbWUnLCB0eXBlPVBhdGgsIHJlcXVpcmVkPVRydWUpXG4gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1zb3VyY2UtcmV2aXNpb24nLCByZXF1aXJlZD1UcnVlKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcm9vdC1mcmVzaC1zY2FuLXJlY2VpcHQnLCB0eXBlPVBhdGgsIHJlcXVpcmVkPVRydWUpXG4gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKClcbiAgICByZXF1aXJlKGFyZ3Mucm9vdF9hdXRob3JpdHlfcmVjZWlwdCA9PSBQYXRoKCcvdG1wL3NlY3VyaXR5LWluZmQtemxpYi1yb290LWF1dGhvcml0eS5qc29uJylcbiAgICAgICAgICAgIGFuZCBhcmdzLnJvb3RfbmF0aXZlX291dGNvbWUgPT0gUGF0aCgnL3RtcC9zZWN1cml0eS1pbmZkLXpsaWItbmF0aXZlLW91dGNvbWUtbGF0ZXN0Lmpzb24nKSxcbiAgICAgICAgICAgICdmaXhlZCBzdXBlcnZpc2VkIHJlY2VpcHQgcGF0aHMgcmVxdWlyZWQnKVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NDB9JywgYXJncy5zb3VyY2VfcmV2aXNpb24pIGlzIG5vdCBOb25lLCAnZXhhY3Qgc291cmNlIGNvbW1pdCByZXF1aXJlZCcpXG4gICAgIyBWZXJpZnkgYWxsIHByZXBhcmVkIGV4ZWN1dG9yL2lucHV0IGJ5dGVzIGJlZm9yZSByZWFkaW5nIGF1dGhvcml0eSBvciBkaXNwYXRjaGluZy5cbiAgICBwbGFuID0ganNvbi5sb2FkcygoUk9PVCAvICdleGVjdXRpb24tcGxhbi5qc29uJykucmVhZF90ZXh0KCkpXG4gICAgcmVxdWlyZShwbGFuLmdldCgnc3RhdGUnKSA9PSAncHJlcGFyZWQtdW5hcHByb3ZlZCcgYW5kIHBsYW4uZ2V0KCdwdWJsaXNoZWRfYXJ0aWZhY3RfdmVyaWZpZWQnKSBpcyBUcnVlLCAndW5mcm96ZW4gcHJvcG9zYWwgY2Fubm90IGV4ZWN1dGUnKVxuICAgIHJlcXVpcmUoc2V0KHBsYW5bJ2V4ZWN1dG9yX2ZpbGVzJ10pID09IHsnYWN0dWF0b3IucHknLCAnYXV0aG9yaXR5X2pvdXJuYWwucHknLCAnbmF0aXZlX3Byb2dyYW0ucHknLCAncmVjZWlwdF9zYWZldHkucHknfSxcbiAgICAgICAgICAgICdmaXhlZCBleGVjdXRvciBzb3VyY2VzIHJlcXVpcmVkJylcbiAgICByZXF1aXJlKHNldChwbGFuWydvd25lcl9zb3VyY2VfZmlsZXMnXSkgPT0geydkZXBsb3kvbGlmZWN5Y2xlL2FkbWlzc2lvbi5jYW5kaWRhdGUuanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcGxveS9saWZlY3ljbGUva3VzdG9taXphdGlvbi55YW1sJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwbG95L2xpZmVjeWNsZS9yZWdpc3RyaWVzLmNhbmRpZGF0ZS5qc29uJ30sXG4gICAgICAgICAgICAnZml4ZWQgb3duZXIgaW1hZ2Ugc291cmNlcyByZXF1aXJlZCcpXG4gICAgZm9yIHJlbGF0aXZlLCBkaWdlc3QgaW4gcGxhblsnZXhlY3V0b3JfZmlsZXMnXS5pdGVtcygpOlxuICAgICAgICB0YXJnZXQgPSBST09UIC8gcmVsYXRpdmVcbiAgICAgICAgcmVxdWlyZShub3QgdGFyZ2V0LmlzX3N5bWxpbmsoKSBhbmQgc2hhKHRhcmdldCkgPT0gZGlnZXN0LCAnZXhlY3V0b3Igc291cmNlIGJ5dGVzIGNoYW5nZWQnKVxuICAgIGZvciByZWxhdGl2ZSwgZGlnZXN0IGluIHBsYW5bJ2Nhc2VfZmlsZXMnXS5pdGVtcygpOlxuICAgICAgICByZXF1aXJlKG5vdCBQYXRoKHJlbGF0aXZlKS5pc19hYnNvbHV0ZSgpIGFuZCAnLi4nIG5vdCBpbiBQYXRoKHJlbGF0aXZlKS5wYXJ0cyxcbiAgICAgICAgICAgICAgICAnY2FzZSBzb3VyY2UgcGF0aCBlc2NhcGVkJylcbiAgICAgICAgdGFyZ2V0ID0gQ0FTRSAvIHJlbGF0aXZlXG4gICAgICAgIHJlcXVpcmUobm90IHRhcmdldC5pc19zeW1saW5rKCkgYW5kIHNoYSh0YXJnZXQpID09IGRpZ2VzdCwgJ2Nhc2Ugc291cmNlIGJ5dGVzIGNoYW5nZWQnKVxuICAgIGZvciByZWxhdGl2ZSwgZGlnZXN0IGluIHBsYW5bJ293bmVyX3NvdXJjZV9maWxlcyddLml0ZW1zKCk6XG4gICAgICAgIHRhcmdldCA9IE9XTkVSIC8gcmVsYXRpdmVcbiAgICAgICAgcmVxdWlyZShub3QgdGFyZ2V0LmlzX3N5bWxpbmsoKSBhbmQgc2hhKHRhcmdldCkgPT0gZGlnZXN0LCAnb3duZXIgaW1hZ2Utb25seSBzb3VyY2UgY2hhbmdlZCcpXG4gICAgICAgIGNvbW1pdHRlZCA9IHN1YnByb2Nlc3MucnVuKFsnZ2l0JywgJy1DJywgc3RyKE9XTkVSKSwgJ3Nob3cnLCBhcmdzLnNvdXJjZV9yZXZpc2lvbiArICc6JyArIHJlbGF0aXZlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSlcbiAgICAgICAgcmVxdWlyZShjb21taXR0ZWQucmV0dXJuY29kZSA9PSAwIGFuZCBoYXNobGliLnNoYTI1Nihjb21taXR0ZWQuc3Rkb3V0KS5oZXhkaWdlc3QoKSA9PSBkaWdlc3QsXG4gICAgICAgICAgICAgICAgJ2NvbW1pdHRlZCBvd25lciByZW5kZXIgc291cmNlIGRpZmZlcnMgZnJvbSBhcHByb3ZlZCBpbnB1dHMnKVxuICAgIGhlYWQgPSBydW4oWydnaXQnLCAnLUMnLCBzdHIoT1dORVIpLCAncmV2LXBhcnNlJywgJ0hFQUQnXSlcbiAgICByZXF1aXJlKGhlYWQucmV0dXJuY29kZSA9PSAwIGFuZCBoZWFkLnN0ZG91dC5zdHJpcCgpID09IGFyZ3Muc291cmNlX3JldmlzaW9uLCAnb3duZXIgc291cmNlIEhFQUQgZGlmZmVycycpXG4gICAgZnJvbSBhdXRob3JpdHlfam91cm5hbCBpbXBvcnQgSm91cm5hbCwgYXV0aG9yaXR5LCBmcmVzaF9zY2FuXG4gICAgcHJpdmF0ZShhcmdzLnJvb3RfYXV0aG9yaXR5X3JlY2VpcHQpXG4gICAgcHJpdmF0ZShhcmdzLnJvb3RfbmF0aXZlX291dGNvbWUpXG4gICAgcmVjZWlwdCA9IGpzb24ubG9hZHMoYXJncy5yb290X2F1dGhvcml0eV9yZWNlaXB0LnJlYWRfdGV4dCgpKVxuICAgIHJlcXVpcmUocmVjZWlwdC5nZXQoJ25hdGl2ZV9vdXRjb21lX3NoYTI1NicpID09IHNoYShhcmdzLnJvb3RfbmF0aXZlX291dGNvbWUpLCAnbmF0aXZlIG91dGNvbWUgYnl0ZXMgY2hhbmdlZCcpXG4gICAgcmVxdWlyZShyZWNlaXB0LmdldCgnZXhlY3V0b3JfcGxhbl9zaGEyNTYnKSA9PSBzaGEoUk9PVCAvICdleGVjdXRpb24tcGxhbi5qc29uJyksXG4gICAgICAgICAgICAncm9vdCB2ZXJpZmllZCBleGVjdXRvciBwbGFuIGRpZmZlcnMnKVxuICAgIGFwcHJvdmVkID0gYXV0aG9yaXR5KHJlY2VpcHQsIGpzb24ubG9hZHMoYXJncy5yb290X25hdGl2ZV9vdXRjb21lLnJlYWRfdGV4dCgpKSwgc2hhKENBU0UgLyAnbWVtby5qc29uJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VfcmV2aXNpb24sIGFyZ3MucGhhc2UpXG4gICAgaWYgYXJncy5waGFzZSBpbiAoJ3JlbGVhc2UnLCAndmVyaWZ5Jyk6XG4gICAgICAgIHJlcXVpcmUoYXJncy5yb290X2ZyZXNoX3NjYW5fcmVjZWlwdCA9PSBQYXRoKCcvdG1wL3NlY3VyaXR5LWluZmQtemxpYi1mcmVzaC1zY2FuLXJlY2VpcHQuanNvbicpLCAnZml4ZWQgZnJlc2ggc2NhbiByZWNlaXB0IHBhdGggcmVxdWlyZWQnKVxuICAgICAgICBwcml2YXRlKGFyZ3Mucm9vdF9mcmVzaF9zY2FuX3JlY2VpcHQpXG4gICAgICAgIHNjYW5fcmVjZWlwdD1qc29uLmxvYWRzKGFyZ3Mucm9vdF9mcmVzaF9zY2FuX3JlY2VpcHQucmVhZF90ZXh0KCkpXG4gICAgICAgIHJlcG9ydF9wYXRoPVBhdGgoJy90bXAvc2VjdXJpdHktaW5mZC16bGliLWZyZXNoLXNjYW4tZnVsbC5qc29uJyk7cHJpdmF0ZShyZXBvcnRfcGF0aClcbiAgICAgICAgcmVxdWlyZShzaGEocmVwb3J0X3BhdGgpPT1zY2FuX3JlY2VpcHQuZ2V0KCdmdWxsX3JlcG9ydF9zaGEyNTYnKSwgJ2ZyZXNoIHNjYW4gcmVwb3J0IGJ5dGVzIGNoYW5nZWQnKVxuICAgICAgICBmcmVzaF9zY2FuKHNjYW5fcmVjZWlwdCxqc29uLmxvYWRzKHJlcG9ydF9wYXRoLnJlYWRfdGV4dCgpKSlcbiAgICBwYXJlbnQgPSBDVVNUT0RZLnBhcmVudFxuICAgIHByaXZhdGUocGFyZW50LCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICBpZ25vcmVkID0gcnVuKFsnZ2l0JywgJy1DJywgc3RyKENVU1RPRElBTiksICdjaGVjay1pZ25vcmUnLCAnLS1uby1pbmRleCcsIHN0cihDVVNUT0RZIC8gJ2RyaWxsLnNxbGl0ZScpXSlcbiAgICByZXF1aXJlKGlnbm9yZWQucmV0dXJuY29kZSA9PSAwLCAnb2ZmY2x1c3RlciBjdXN0b2R5IGlzIG5vdCBpZ25vcmVkJylcbiAgICBpZiBub3QgQ1VTVE9EWS5leGlzdHMoKTpcbiAgICAgICAgcmVxdWlyZShhcmdzLnBoYXNlID09ICdkcmlsbC1iYWNrdXAnLCAnZmlyc3QgYXBwcm92ZWQgcGhhc2UgbXVzdCBjcmVhdGUgdW5pcXVlIHByaXZhdGUgY3VzdG9keScpXG4gICAgICAgIG9zLm1rZGlyKENVU1RPRFksIDBvNzAwKVxuICAgIHByaXZhdGUoQ1VTVE9EWSwgZGlyZWN0b3J5PVRydWUpXG4gICAgY2FwYWNpdHkgPSBvcy5zdGF0dmZzKENVU1RPRFkpXG4gICAgcmVxdWlyZShjYXBhY2l0eS5mX2JhdmFpbCAqIGNhcGFjaXR5LmZfZnJzaXplID49IDIgKiBNQVhfQllURVMgKyAxNiAqIDEwMjQqKjIsXG4gICAgICAgICAgICAnaW5kZXBlbmRlbnQgcHJvdGVjdGVkIGN1c3RvZHkgaGVhZHJvb20gaW5zdWZmaWNpZW50JylcbiAgICBvcy5tYWtlZGlycyhDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnLCBtb2RlPTBvNzAwLCBleGlzdF9vaz1UcnVlKVxuICAgIHByaXZhdGUoQ1VTVE9EWSAvICdlbXB0eS1kb2NrZXItY29uZmlnJywgZGlyZWN0b3J5PVRydWUpXG4gICAgcmVxdWlyZShub3QgbGlzdCgoQ1VTVE9EWSAvICdlbXB0eS1kb2NrZXItY29uZmlnJykuaXRlcmRpcigpKSwgJ3B1YmxpYyBEb2NrZXIgcmVhZCBjb25maWcgbXVzdCBzdGF5IGVtcHR5JylcbiAgICBqb3VybmFsID0gSm91cm5hbChDVVNUT0RZLCB7J3Byb3Bvc2FsJzogcGxhblsncHJvcG9zYWxfaWQnXSwgJ3NvdXJjZV9yZXZpc2lvbic6IGFyZ3Muc291cmNlX3JldmlzaW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW1vX3NoYTI1Nic6IHNoYShDQVNFIC8gJ21lbW8uanNvbicpLCAncGxhbl9zaGEyNTYnOiBzaGEoUk9PVCAvICdleGVjdXRpb24tcGxhbi5qc29uJyl9KVxuICAgIHRyeTpcbiAgICAgICAgam91cm5hbC5zdGFydChhcmdzLnBoYXNlLCBhcHByb3ZlZCkgIyBmc3luY2VkIFJVTk5JTkcgYmVmb3JlIGFueSBwaGFzZSBlZmZlY3QuXG4gICAgICAgIGlmIGFyZ3MucGhhc2UgaW4gKCdkcmlsbC1jb3B5JywgJ2N1dG92ZXItY29weScpOlxuICAgICAgICAgICAgcmVzdWx0ID0gY29weV9zbmFwc2hvdChhcmdzLnBoYXNlLCBhcmdzLnNvdXJjZV9yZXZpc2lvbiwgYXBwcm92ZWQsIGpvdXJuYWwpXG4gICAgICAgIGVsaWYgYXJncy5waGFzZSA9PSAnb2ZmbGluZS12ZXJpZnknOlxuICAgICAgICAgICAgcmVzdWx0ID0gb2ZmbGluZV92ZXJpZnkoam91cm5hbClcbiAgICAgICAgZWxpZiBhcmdzLnBoYXNlID09ICdjbGVhbnVwLW9mZmxpbmUnOlxuICAgICAgICAgICAgcmVzdWx0ID0gY2xlYW51cF9vZmZsaW5lKGpvdXJuYWwpXG4gICAgICAgIGVsc2U6XG4gICAgICAgICAgICByZXN1bHQgPSByZW1vdGUoYXJncy5waGFzZSwgYXJncy5zb3VyY2VfcmV2aXNpb24sIGFwcHJvdmVkLCBvcGVyYXRpb25faW50ZW50PWpvdXJuYWwuZGF0YVsncGhhc2VzJ10uZ2V0KCdyb2xsYmFjaycgaWYgYXJncy5waGFzZSA9PSAncm9sbGJhY2stdmVyaWZ5JyBlbHNlICdyZWxlYXNlJykgaWYgYXJncy5waGFzZSBpbiAoJ3ZlcmlmeScsICdyb2xsYmFjay12ZXJpZnknKSBlbHNlIE5vbmUpXG4gICAgICAgIGpvdXJuYWwuZmluaXNoKGFyZ3MucGhhc2UsIHJlc3VsdClcbiAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhyZXN1bHQpKSAjIE9ubHkgY291bnQvaGFzaC9pZGVudGl0eSByZWNlaXB0cywgbmV2ZXIgc25hcHNob3QgYnl0ZXMuXG4gICAgZXhjZXB0IEJhc2VFeGNlcHRpb24gYXMgZXJyb3I6XG4gICAgICAgIHNhZmUgPSB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncGhhc2UnOiBhcmdzLnBoYXNlLCAnZmFpbHVyZV9jbGFzcyc6IHR5cGUoZXJyb3IpLl9fbmFtZV9fLFxuICAgICAgICAgICAgICAgICdmYWlsdXJlJzogJ2ZpeGVkIHBoYXNlIG91dGNvbWUgdW5jZXJ0YWluOyBvcmlnaW5hbCBldmlkZW5jZSByZXRhaW5lZDsgbm8gcmV0cnknLFxuICAgICAgICAgICAgICAgICdyYXdfb3V0cHV0X3dpdGhoZWxkJzogVHJ1ZX1cbiAgICAgICAgaWYgam91cm5hbC5kYXRhWydwaGFzZXMnXS5nZXQoYXJncy5waGFzZSwge30pLmdldCgnc3RhdGUnKSA9PSAnUlVOTklORyc6XG4gICAgICAgICAgICBqb3VybmFsLmZpbmlzaChhcmdzLnBoYXNlLCBzYWZlKVxuICAgICAgICBwcmludChqc29uLmR1bXBzKHNhZmUpKVxuICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDEpIGZyb20gTm9uZVxuICAgIGZpbmFsbHk6XG4gICAgICAgIGpvdXJuYWwuY2xvc2UoKVxuXG5cbmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6XG4gICAgdHJ5OlxuICAgICAgICBtYWluKClcbiAgICBleGNlcHQgRXhjZXB0aW9uOlxuICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KCdzdXBlcnZpc2VkIGV4ZWN1dGlvbiByZWZ1c2VkIGJlZm9yZSBwaGFzZTsgcmF3IG91dHB1dCB3aXRoaGVsZCcpIGZyb20gTm9uZVxuIgogICAgfSwKICAgICJleGVjdXRpb24vYXV0aG9yaXR5X2pvdXJuYWwucHkiOiB7CiAgICAgICJzaGEyNTYiOiAiMmFhOWJhZTQwNzUyOTIyMjY0ZTUzMzgyZDg5OGUzMDgzYjhkMjI5YjE4NTMyOTI2Njk0MmJkZDM5NzAxMzEwOCIsCiAgICAgICJjb250ZW50IjogIlwiXCJcIlN1cGVydmlzZWQgcmVjZWlwdCBib29ra2VlcGluZywgbm90IGFuIGF1dGhlbnRpY2F0ZWQgYXBwcm92YWwgcHJvdmlkZXIuXCJcIlwiXG5pbXBvcnQgZGF0ZXRpbWVcbmltcG9ydCBmY250bFxuaW1wb3J0IGhhc2hsaWJcbmltcG9ydCBqc29uXG5pbXBvcnQgb3NcbmltcG9ydCByZVxuZnJvbSBwYXRobGliIGltcG9ydCBQYXRoXG5pbXBvcnQgc3RhdFxuaW1wb3J0IHV1aWRcblxuRk9VTkRFUiA9IHsna2luZCc6ICdwZXJzb24nLCAnc3ViJzogJ3VpZD1wbGF0Zm9ybS1yb290LG91PXBlb3BsZSxkYz1uZXRraW5nZG9tLGRjPWxvY2FsJ31cbk1FTU9fSUQgPSAnaW5mZC0yMDI2MTAxMS16bGliLXJlbWVkaWF0aW9uLXIxJ1xuUFJPUE9TQUwgPSAnSU5GRC1XUC0wMDA5LVQwNS96bGliODUwOTEtcjEnXG5QSEFTRVMgPSAoJ2RyaWxsLWJhY2t1cCcsICdkcmlsbC1jb3B5JywgJ29mZmxpbmUtdmVyaWZ5JywgJ2NsZWFudXAtb2ZmbGluZScsXG4gICAgICAgICAgJ2N1dG92ZXItYmFja3VwJywgJ2N1dG92ZXItY29weScsICdyZWxlYXNlJywgJ3ZlcmlmeScsICdyb2xsYmFjaycsICdyb2xsYmFjay12ZXJpZnknKVxuXG5cbmRlZiByZXF1aXJlKHZhbHVlLCByZWFzb24pOlxuICAgIGlmIG5vdCB2YWx1ZTpcbiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyZWFzb24pXG5cblxuZGVmIHNoYShwYXRoKTpcbiAgICBkaWdlc3QgPSBoYXNobGliLnNoYTI1NigpXG4gICAgd2l0aCBQYXRoKHBhdGgpLm9wZW4oJ3JiJykgYXMgc3RyZWFtOlxuICAgICAgICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6IHN0cmVhbS5yZWFkKDEwMjQqKjIpLCBiJycpOlxuICAgICAgICAgICAgZGlnZXN0LnVwZGF0ZShibG9jaylcbiAgICByZXR1cm4gZGlnZXN0LmhleGRpZ2VzdCgpXG5cblxuZGVmIHByaXZhdGUocGF0aCwgZGlyZWN0b3J5PUZhbHNlKTpcbiAgICBpbmZvID0gUGF0aChwYXRoKS5sc3RhdCgpXG4gICAgcmVxdWlyZSgoc3RhdC5TX0lTRElSKGluZm8uc3RfbW9kZSkgaWYgZGlyZWN0b3J5IGVsc2Ugc3RhdC5TX0lTUkVHKGluZm8uc3RfbW9kZSkpXG4gICAgICAgICAgICBhbmQgaW5mby5zdF91aWQgPT0gb3MuZ2V0dWlkKCkgYW5kIHN0YXQuU19JTU9ERShpbmZvLnN0X21vZGUpID09ICgwbzcwMCBpZiBkaXJlY3RvcnkgZWxzZSAwbzYwMClcbiAgICAgICAgICAgIGFuZCAoZGlyZWN0b3J5IG9yIGluZm8uc3RfbmxpbmsgPT0gMSksICdwcml2YXRlIG93bmVkIGN1c3RvZHkgcmVxdWlyZWQnKVxuXG5cbmRlZiBhdXRob3JpdHkocmVjZWlwdCwgb3V0Y29tZSwgbWVtb19zaGEsIHNvdXJjZV9yZXZpc2lvbiwgcGhhc2UsIG5vdz1Ob25lKTpcbiAgICBcIlwiXCJSb290IG11c3QgZnJlc2hseSB2ZXJpZnkgbmF0aXZlIG91dGNvbWUgYXQgZml4ZWQgT1JJR0lOIG91dHNpZGUgdGhpcyBoZWxwZXIuXG5cbiAgICBSZWNlaXB0IGZpbGVzL2ZsYWdzIGFyZSBub3Qgc2lnbmVkIGdyYW50cy4gVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGV4YWN0XG4gICAgc3VwZXJ2aXNlZCByZWNlaXB0IHJlbGF0aW9uOyBleGlzdGluZyBoYXJuZXNzL2ZvdW5kZXIgYXV0aG9yaXR5IHJlbWFpbnMgdGhlXG4gICAgYWN0dWFsIHBlcm1pc3Npb24gYm91bmRhcnkuIEl0IG5ldmVyIGF1dGhlbnRpY2F0ZXMgYSBjYWxsZXIgYXMgaHVtYW4uXG4gICAgXCJcIlwiXG4gICAgbm93ID0gbm93IG9yIGRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpXG4gICAgcmVxdWlyZShwaGFzZSBpbiBQSEFTRVMsICdmaXhlZCBwaGFzZSByZXF1aXJlZCcpXG4gICAgcmVxdWlyZShyZWNlaXB0LmdldCgncHJvcG9zYWxfaWQnKSA9PSBQUk9QT1NBTCBhbmQgcmVjZWlwdC5nZXQoJ21lbW9faWQnKSA9PSBNRU1PX0lEXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ21lbW9fdmVyc2lvbicpID09IDEgYW5kIHJlY2VpcHQuZ2V0KCdtZW1vX3NoYTI1NicpID09IG1lbW9fc2hhXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ3NvdXJjZV9yZXZpc2lvbicpID09IHNvdXJjZV9yZXZpc2lvblxuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdhY3RpdmF0aW9uJykgPT0gJ0FQUFJPVkVEJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdhdXRob3JpdHlfbW9kZScpID09ICdBRE1JTklTVEVSJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCd0YXJnZXQnKSA9PSAncmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbidcbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgndmVyaWZpY2F0aW9uX21ldGhvZCcpID09ICdyb290LWZpeGVkLW9yaWdpbi1uYXRpdmUtcmVhZGJhY2snXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ3J1bnRpbWVfYXV0aGVudGljYXRlZF9ncmFudCcpIGlzIEZhbHNlXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ291dGNvbWVfcXVlcnknKSA9PSAnL2xpZmVjeWNsZS9tZW1vcy8nICsgTUVNT19JRCArICcvb3V0Y29tZXM/dmVyc2lvbj0xJyxcbiAgICAgICAgICAgICdleGFjdCBleHRlcm5hbGx5IHZlcmlmaWVkIHN1cGVydmlzZWQgcmVjZWlwdCByZXF1aXJlZCcpXG4gICAgdmVyaWZpZWQgPSBkYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KHJlY2VpcHRbJ3ZlcmlmaWVkX2F0J10ucmVwbGFjZSgnWicsICcrMDA6MDAnKSlcbiAgICByZXF1aXJlKHZlcmlmaWVkLnR6aW5mbyBpcyBub3QgTm9uZSBhbmQgMCA8PSAobm93IC0gdmVyaWZpZWQpLnRvdGFsX3NlY29uZHMoKSA8PSAxMjAsXG4gICAgICAgICAgICAnZnJlc2ggcm9vdCBuYXRpdmUgcmVhZGJhY2sgcmVxdWlyZWQgYmVmb3JlIGV2ZXJ5IHBoYXNlJylcbiAgICBkZWFkbGluZSA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQoJzIwMjYtMTAtMTJUMjM6NTk6NTkrMDA6MDAnKVxuICAgIHJlcXVpcmUobm93IDwgZGVhZGxpbmUsICdhcHByb3ZlZCBleGVjdXRpb24gd2luZG93IGV4cGlyZWQnKVxuICAgIGlmIHBoYXNlID09ICdyZWxlYXNlJzpcbiAgICAgICAgcmVxdWlyZSgoZGVhZGxpbmUtbm93KS50b3RhbF9zZWNvbmRzKCkgPj0gMTgwMCwgJ3Jlc2VydmUgdGhpcnR5IG1pbnV0ZXMgZm9yIHZlcmlmaWNhdGlvbiBhbmQgcmVjb3ZlcnknKVxuICAgIHJlcXVpcmUob3V0Y29tZS5nZXQoJ21lbW9faWQnKSA9PSBNRU1PX0lEIGFuZCBvdXRjb21lLmdldCgncmV2aWV3Jywge30pLmdldCgnc3RhbGUnKSBpcyBGYWxzZVxuICAgICAgICAgICAgYW5kIG91dGNvbWVbJ3JldmlldyddLmdldCgnaW50YWtlX3N0YXRlJykgPT0gJ3JlYWR5JywgJ25hdGl2ZSByZXZpZXcgaXMgbm90IHJlYWR5L2N1cnJlbnQnKVxuICAgIHJldmlld19pZCA9IG91dGNvbWVbJ3JldmlldyddWydtZW1vX2lkJ11cbiAgICByZXF1aXJlKHJldmlld19pZCA9PSByZWNlaXB0LmdldCgncmV2aWV3X21lbW9faWQnKSwgJ25hdGl2ZSByZXZpZXcgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgYWNjZXB0ZWQgPSBbeCBmb3IgeCBpbiBvdXRjb21lLmdldCgnZGlzcG9zaXRpb25zJywgW10pXG4gICAgICAgICAgICAgICAgaWYgeC5nZXQoJ3N1Ym1pc3Npb25fc3RhdGUnKSA9PSAnY29uZmlybWVkJ1xuICAgICAgICAgICAgICAgIGFuZCB4LmdldCgnZGlzcG9zaXRpb24nLCB7fSkuZ2V0KCd2ZXJiJykgPT0gJ2FjY2VwdCdcbiAgICAgICAgICAgICAgICBhbmQgeFsnZGlzcG9zaXRpb24nXS5nZXQoJ21lbW9fdmVyc2lvbicpID09IDFdXG4gICAgcmVxdWlyZShsZW4oYWNjZXB0ZWQpID09IDEsICdvbmUgY29uZmlybWVkIGZvdW5kZXIgYWNjZXB0YW5jZSByZXF1aXJlZCcpXG4gICAgYWNjZXB0ZWQgPSBhY2NlcHRlZFswXVsnZGlzcG9zaXRpb24nXVxuICAgIHJlcXVpcmUoYWNjZXB0ZWQuZ2V0KCdhY3RvcicpID09IEZPVU5ERVIgYW5kIGFjY2VwdGVkLmdldCgnbWVtb19pZCcpID09IHJldmlld19pZFxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnYXBwcm92YWxfaWQnKSA9PSByZWNlaXB0LmdldCgnYXBwcm92YWxfaWQnKVxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnaWQnKSA9PSByZWNlaXB0LmdldCgnZGlzcG9zaXRpb25faWQnKVxuICAgICAgICAgICAgYW5kIGFjY2VwdGVkLmdldCgnYXQnKSA9PSByZWNlaXB0LmdldCgnYWNjZXB0ZWRfYXQnKSwgJ2V4YWN0IGZvdW5kZXIgZGlzcG9zaXRpb24gbWlzbWF0Y2gnKVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtZjAtOS1dezM2fScsIGFjY2VwdGVkWydhcHByb3ZhbF9pZCddKSBpcyBub3QgTm9uZVxuICAgICAgICAgICAgYW5kIHJlLmZ1bGxtYXRjaChyJ2Rpc3AtW2EtZjAtOS1dezM2fScsIGFjY2VwdGVkWydpZCddKSBpcyBub3QgTm9uZVxuICAgICAgICAgICAgYW5kIHJlLmZ1bGxtYXRjaChyJ3Jldmlldy1bYS1mMC05LV17MzZ9JywgcmV2aWV3X2lkKSBpcyBub3QgTm9uZSxcbiAgICAgICAgICAgICduYXRpdmUgZGlzcG9zaXRpb24gaWRlbnRpZmllcnMgYXJlIG1hbGZvcm1lZCcpXG4gICAgYWNjZXB0ZWRfYXQgPSBkYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KGFjY2VwdGVkWydhdCddLnJlcGxhY2UoJ1onLCAnKzAwOjAwJykpXG4gICAgcmVxdWlyZShhY2NlcHRlZF9hdC50emluZm8gaXMgbm90IE5vbmUgYW5kIGFjY2VwdGVkX2F0IDw9IHZlcmlmaWVkLCAnYWNjZXB0YW5jZSB0aW1lIG5vdCBib3VuZGVkJylcbiAgICByZXR1cm4ge2tleTogcmVjZWlwdFtrZXldIGZvciBrZXkgaW4gKCdhcHByb3ZhbF9pZCcsICdkaXNwb3NpdGlvbl9pZCcsICdhY2NlcHRlZF9hdCcsICd2ZXJpZmllZF9hdCcpfVxuXG5cbmRlZiBmcmVzaF9zY2FuKHJlY2VpcHQsIHJlcG9ydCwgbm93PU5vbmUpOlxuICAgIFwiXCJcIlJvb3Qgc3VwZXJ2aXNlZCBzY2FuIGJvb2trZWVwaW5nOyBhY3R1YWwgc2Nhbm5lciBwcm9vZiBzdGF5cyByZXRhaW5lZC5cIlwiXCJcbiAgICBub3c9bm93IG9yIGRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpXG4gICAgcmVxdWlyZShyZWNlaXB0LmdldCgnaW1hZ2UnKT09J2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6ZjU1ODhmNDk2YjFmMjY3ZDA3Y2RjOWY1MjA4ZTZmMmYyNDFmNzRiNzM5YzIzOTI0YjAzNzAyZGVjMTNhNWMyMydcbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgnYXJ0aWZhY3Rfc291cmNlX3JldmlzaW9uJyk9PSc5YjRiYjI1ZDMyNTY5OGFlNTQzZTdlOGE4YTNjMzU5MmRiMWY1OGZjJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdzY2FubmVyJyk9PSdhcXVhc2VjL3RyaXZ5QHNoYTI1Njo2MmIxZTY1ZTg4NjliYzRiNGM2YWE0ZmEyYjIxNTk1MjU2YzdjMmY2MDE4YTlkOWFkNjFjYWY4NzE4N2MxOTY5J1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdub19zdXBwcmVzc2lvbicpIGlzIFRydWUgYW5kIHJlY2VpcHQuZ2V0KCdmdWxsX2FsbHNldmVyaXR5X3NjYW4nKSBpcyBUcnVlXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ2V4aXRfY29kZScpPT0wLCdleGFjdCBmdWxsIGltbXV0YWJsZSBhcnRpZmFjdCBzY2FuIHJlcXVpcmVkJylcbiAgICBzY2FubmVkPWRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQocmVjZWlwdFsnY29tcGxldGVkX2F0J10ucmVwbGFjZSgnWicsJyswMDowMCcpKVxuICAgIG1ldGFkYXRhPXJlY2VpcHRbJ2RiX21ldGFkYXRhJ107dXBkYXRlZD1kYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KG1ldGFkYXRhWydVcGRhdGVkQXQnXS5yZXBsYWNlKCdaJywnKzAwOjAwJykpO25leHRfdXBkYXRlPWRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQobWV0YWRhdGFbJ05leHRVcGRhdGUnXS5yZXBsYWNlKCdaJywnKzAwOjAwJykpXG4gICAgcmVxdWlyZShhbGwodC50emluZm8gaXMgbm90IE5vbmUgZm9yIHQgaW4gKHNjYW5uZWQsdXBkYXRlZCxuZXh0X3VwZGF0ZSkpXG4gICAgICAgICAgICBhbmQgdXBkYXRlZDw9c2Nhbm5lZDw9bm93PG5leHRfdXBkYXRlIGFuZCAobm93LXNjYW5uZWQpLnRvdGFsX3NlY29uZHMoKTw9MTQ0MDBcbiAgICAgICAgICAgIGFuZCBtZXRhZGF0YS5nZXQoJ1ZlcnNpb24nKT09MiBhbmQgcmUuZnVsbG1hdGNoKHInW2EtZjAtOV17NjR9JyxyZWNlaXB0LmdldCgnZGJfc2hhMjU2JywnJykpIGlzIG5vdCBOb25lLCdzY2FuIG9yIHZ1bG5lcmFiaWxpdHkgZGF0YWJhc2UgZXhwaXJlZCcpXG4gICAgcmVxdWlyZShpc2luc3RhbmNlKHJlcG9ydCxkaWN0KSBhbmQgaXNpbnN0YW5jZShyZXBvcnQuZ2V0KCdSZXN1bHRzJyksbGlzdCkgYW5kIHJlcG9ydFsnUmVzdWx0cyddLCdyZXRhaW5lZCBmdWxsIHNjYW4gcmVzdWx0cyByZXF1aXJlZCcpXG4gICAgZm9yIHJlc3VsdCBpbiByZXBvcnRbJ1Jlc3VsdHMnXTpcbiAgICAgICAgcmVxdWlyZShpc2luc3RhbmNlKHJlc3VsdCxkaWN0KSBhbmQgaXNpbnN0YW5jZShyZXN1bHQuZ2V0KCdWdWxuZXJhYmlsaXRpZXMnLFtdKSwobGlzdCx0eXBlKE5vbmUpKSksJ2Z1bGwgc2NhbiByZXN1bHQgaW52YWxpZCcpXG4gICAgICAgIHJlcXVpcmUobm90IHJlc3VsdC5nZXQoJ1Z1bG5lcmFiaWxpdGllcycpLCduZXcgZmluZGluZyByZWZ1c2VzIHJlbGVhc2UgYW5kIGNsb3N1cmUnKVxuICAgIHJldHVybiB7J2Z1bGxfcmVwb3J0X3NoYTI1Nic6cmVjZWlwdFsnZnVsbF9yZXBvcnRfc2hhMjU2J10sJ2RiX3NoYTI1Nic6cmVjZWlwdFsnZGJfc2hhMjU2J10sJ2NvbXBsZXRlZF9hdCc6cmVjZWlwdFsnY29tcGxldGVkX2F0J10sJ25leHRfdXBkYXRlJzptZXRhZGF0YVsnTmV4dFVwZGF0ZSddLCdhbGxzZXZlcml0eV9maW5kaW5ncyc6MH1cblxuXG5jbGFzcyBKb3VybmFsOlxuICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlkZW50aXR5KTpcbiAgICAgICAgc2VsZi5wYXJlbnQgPSBQYXRoKHBhcmVudClcbiAgICAgICAgcHJpdmF0ZShzZWxmLnBhcmVudCwgZGlyZWN0b3J5PVRydWUpXG4gICAgICAgIHNlbGYucGF0aCA9IHNlbGYucGFyZW50IC8gJ2V4ZWN1dGlvbi1qb3VybmFsLmpzb24nXG4gICAgICAgIHNlbGYubG9jayA9IG9zLm9wZW4oc2VsZi5wYXJlbnQgLyAnZXhlY3V0aW9uLmxvY2snLCBvcy5PX0NSRUFUIHwgb3MuT19OT0ZPTExPVyB8IG9zLk9fUkRXUiwgMG82MDApXG4gICAgICAgIGZjbnRsLmZsb2NrKHNlbGYubG9jaywgZmNudGwuTE9DS19FWCB8IGZjbnRsLkxPQ0tfTkIpXG4gICAgICAgIHByaXZhdGUoc2VsZi5wYXJlbnQgLyAnZXhlY3V0aW9uLmxvY2snKVxuICAgICAgICBpZiBzZWxmLnBhdGguZXhpc3RzKCk6XG4gICAgICAgICAgICBwcml2YXRlKHNlbGYucGF0aClcbiAgICAgICAgICAgIHNlbGYuZGF0YSA9IGpzb24ubG9hZHMoc2VsZi5wYXRoLnJlYWRfdGV4dCgpKVxuICAgICAgICAgICAgcmVxdWlyZShzZWxmLmRhdGFbJ2lkZW50aXR5J10gPT0gaWRlbnRpdHksICdqb3VybmFsIGNhc2Uvc291cmNlIGlkZW50aXR5IGNoYW5nZWQnKVxuICAgICAgICBlbHNlOlxuICAgICAgICAgICAgc2VsZi5kYXRhID0geydpZGVudGl0eSc6IGlkZW50aXR5LCAncGhhc2VzJzoge319XG4gICAgICAgICAgICBzZWxmLnNhdmUoKVxuXG4gICAgZGVmIHNhdmUoc2VsZik6XG4gICAgICAgIHRlbXBvcmFyeSA9IHNlbGYucGFyZW50IC8gJ2V4ZWN1dGlvbi1qb3VybmFsLm5ldydcbiAgICAgICAgZmQgPSBvcy5vcGVuKHRlbXBvcmFyeSwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCB8IG9zLk9fTk9GT0xMT1cgfCBvcy5PX1dST05MWSwgMG82MDApXG4gICAgICAgIHRyeTpcbiAgICAgICAgICAgIHdpdGggb3MuZmRvcGVuKGZkLCAndycpIGFzIHN0cmVhbTpcbiAgICAgICAgICAgICAgICBqc29uLmR1bXAoc2VsZi5kYXRhLCBzdHJlYW0sIGluZGVudD0yKVxuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSgnXFxuJylcbiAgICAgICAgICAgICAgICBzdHJlYW0uZmx1c2goKVxuICAgICAgICAgICAgICAgIG9zLmZzeW5jKHN0cmVhbS5maWxlbm8oKSlcbiAgICAgICAgICAgIG9zLnJlcGxhY2UodGVtcG9yYXJ5LCBzZWxmLnBhdGgpXG4gICAgICAgICAgICBkaXJlY3RvcnkgPSBvcy5vcGVuKHNlbGYucGFyZW50LCBvcy5PX0RJUkVDVE9SWSB8IG9zLk9fUkRPTkxZKVxuICAgICAgICAgICAgdHJ5OlxuICAgICAgICAgICAgICAgIG9zLmZzeW5jKGRpcmVjdG9yeSlcbiAgICAgICAgICAgIGZpbmFsbHk6XG4gICAgICAgICAgICAgICAgb3MuY2xvc2UoZGlyZWN0b3J5KVxuICAgICAgICBleGNlcHQgQmFzZUV4Y2VwdGlvbjpcbiAgICAgICAgICAgICMgUmV0YWluIGV2aWRlbmNlIHJhdGhlciB0aGFuIG92ZXJ3cml0aW5nIGFuIHVuY2VydGFpbiBkdXJhYmxlIGludGVudC5cbiAgICAgICAgICAgIHJhaXNlXG5cbiAgICBkZWYgc3RhcnQoc2VsZiwgcGhhc2UsIGFwcHJvdmFsKTpcbiAgICAgICAgcmVxdWlyZShwaGFzZSBub3QgaW4gc2VsZi5kYXRhWydwaGFzZXMnXSwgJ2FscmVhZHkgYXR0ZW1wdGVkIHBoYXNlOyBubyByZXRyeScpXG4gICAgICAgIHByZWRlY2Vzc29ycyA9IGRpY3QoemlwKFBIQVNFU1sxOjhdLCBQSEFTRVNbOjddKSlcbiAgICAgICAgcHJlZGVjZXNzb3JzWydyb2xsYmFjay12ZXJpZnknXSA9ICdyb2xsYmFjaydcbiAgICAgICAgaWYgcGhhc2UgaW4gcHJlZGVjZXNzb3JzOlxuICAgICAgICAgICAgcmVxdWlyZShzZWxmLmRhdGFbJ3BoYXNlcyddLmdldChwcmVkZWNlc3NvcnNbcGhhc2VdLCB7fSkuZ2V0KCdzdGF0ZScpID09ICdDT01QTEVURScsXG4gICAgICAgICAgICAgICAgICAgICdwcmVjZWRpbmcgcGhhc2UgaXMgbm90IHZlcmlmaWVkIGNvbXBsZXRlJylcbiAgICAgICAgaWYgcGhhc2UgPT0gJ3JvbGxiYWNrJzpcbiAgICAgICAgICAgIHJlcXVpcmUoJ3JlbGVhc2UnIGluIHNlbGYuZGF0YVsncGhhc2VzJ10sICdyb2xsYmFjayByZXF1aXJlcyBhIHJlY29yZGVkIHJlbGVhc2UgYXR0ZW1wdCcpXG4gICAgICAgIHNlbGYuZGF0YVsncGhhc2VzJ11bcGhhc2VdID0geydzdGF0ZSc6ICdSVU5OSU5HJywgJ2FwcHJvdmFsJzogYXBwcm92YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdHRlbXB0X2lkJzogc3RyKHV1aWQudXVpZDQoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGFydGVkX2F0JzogZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0YykuaXNvZm9ybWF0KCl9XG4gICAgICAgIHNlbGYuc2F2ZSgpXG5cbiAgICBkZWYgbm90ZShzZWxmLCBwaGFzZSwga2V5LCB2YWx1ZSk6XG4gICAgICAgIHJlcXVpcmUoc2VsZi5kYXRhWydwaGFzZXMnXVtwaGFzZV1bJ3N0YXRlJ10gPT0gJ1JVTk5JTkcnLCAncGhhc2UgaW50ZW50IG1pc3NpbmcnKVxuICAgICAgICBzZWxmLmRhdGFbJ3BoYXNlcyddW3BoYXNlXVtrZXldID0gdmFsdWVcbiAgICAgICAgc2VsZi5zYXZlKClcblxuICAgIGRlZiBmaW5pc2goc2VsZiwgcGhhc2UsIHJlc3VsdCk6XG4gICAgICAgIGVudHJ5ID0gc2VsZi5kYXRhWydwaGFzZXMnXVtwaGFzZV1cbiAgICAgICAgcmVxdWlyZShlbnRyeVsnc3RhdGUnXSA9PSAnUlVOTklORycsICdwaGFzZSBpbnRlbnQgbWlzc2luZycpXG4gICAgICAgIGVudHJ5WydyZXN1bHQnXSA9IHJlc3VsdFxuICAgICAgICBlbnRyeVsnc3RhdGUnXSA9ICdDT01QTEVURScgaWYgcmVzdWx0LmdldCgnYWxsX2NoZWNrc19wYXNzJykgaXMgVHJ1ZSBlbHNlICdVTkNFUlRBSU4nXG4gICAgICAgIHNlbGYuc2F2ZSgpXG5cbiAgICBkZWYgY2xvc2Uoc2VsZik6XG4gICAgICAgIG9zLmNsb3NlKHNlbGYubG9jaylcbiIKICAgIH0sCiAgICAiZXhlY3V0aW9uL2V4ZWN1dGlvbi1wbGFuLmpzb24iOiB7CiAgICAgICJzaGEyNTYiOiAiNzUwYTQzODYyNzdkYzc5YzMyMTNlNmFlZDE3YWU1Njg2MzMyYmZkNTg3YTU1ZTVlODdlYmYzNzc2YTYzYWIwYyIsCiAgICAgICJjb250ZW50IjogIntcbiAgXCJraW5kXCI6IFwiaW5mb3JtZWQtZGVjaXNpb24uc3VwZXJ2aXNlZC1tZWNoYW5pY2FsLXJlbGVhc2UtcGxhblwiLFxuICBcInZlcnNpb25cIjogMSxcbiAgXCJwcm9wb3NhbF9pZFwiOiBcIklORkQtV1AtMDAwOS1UMDUvemxpYjg1MDkxLXIxXCIsXG4gIFwidHJpYWxfaWRcIjogXCJpbmZkLXpsaWItMjAyNjEwMTEtcjFcIixcbiAgXCJzdGF0ZVwiOiBcInByZXBhcmVkLXVuYXBwcm92ZWRcIixcbiAgXCJleGVjdXRvcl9maWxlc1wiOiB7XG4gICAgXCJhY3R1YXRvci5weVwiOiBcImRhYmVkYTMzZmZlNTI5ODkzMzdlMjE0ZGM2ZTZkM2VmNWYwNDc5NzU2OTE0NWZhZjJmZjY5MDI0YjEwMWVjODBcIixcbiAgICBcImF1dGhvcml0eV9qb3VybmFsLnB5XCI6IFwiMmFhOWJhZTQwNzUyOTIyMjY0ZTUzMzgyZDg5OGUzMDgzYjhkMjI5YjE4NTMyOTI2Njk0MmJkZDM5NzAxMzEwOFwiLFxuICAgIFwibmF0aXZlX3Byb2dyYW0ucHlcIjogXCJmY2Y4ZmMzNTkzOTEwYjJlOTlkZDUxZDE1OWEzMGFhOWI4NTNjNDBmZjAwYzU2NmE2MjBkMjBlYWFkYzhhZjIwXCIsXG4gICAgXCJyZWNlaXB0X3NhZmV0eS5weVwiOiBcIjVjNTQzNzNmMmRjNGIwNjQwMDgyMjVjMTg2ZWZiMWQ1YWZkZWVjMzZkMTUzNTBiZGEwYTEyZGVkOTc2MDJkMWJcIlxuICB9LFxuICBcImNhc2VfZmlsZXNcIjoge1xuICAgIFwicG9zdC1yZWFkeS1uYXRpdmUtb3V0Y29tZXMtY29tbWFuZC5weVwiOiBcImNlODhhY2E1ZTJkNmNkNWFiNzUzMzg5OGJjOWIyNDZiZDE1OTQ4MmM0YWNjY2IwYWZlNGM0NTFlZTg4ZjU3ZmFcIixcbiAgICBcInNjYW4tcmVjZWlwdC5qc29uXCI6IFwiYWFhYTkxMDYxYmIwMzZlNmQyMjhiMWMxYmQ0MzMzNTc4ZGM5NDhjYjJiYjVhYzhiYTI2OTQyOTEyMWU3MzIxYVwiLFxuICAgIFwic291cmNlLWNvbW1pdC1wcm9vZi5qc29uXCI6IFwiYjA4MTFkYTJkM2JkNTkzODczM2YwMDc4ZTVmZWM4ZTE5YTZkOTc1MmM0Mjc3YjgwYmZlOTgzN2VkNzJjNmEzYlwiLFxuICAgIFwiY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvblwiOiBcIjQ4N2Y4MzRjYzg2ZGNiYzdhMDRjMjM5MmJkZTA3MmVjYWY4N2RjMTE2YjRiYWExNmMzNWViOWM1OTlhZDVjOTVcIixcbiAgICBcImFydGlmYWN0LWNvbXBhcmlzb24uanNvblwiOiBcImExYzVkOWUyNDlkYzAwNjAwNDQ5OTk4MzYwZmFmNmU4ZGEwMjA2YjU2OGM3NmQxNTU2MDJjNDY0NWZhNWZjZTRcIixcbiAgICBcInJvbGxiYWNrLWRlcGxveW1lbnQuanNvblwiOiBcImY4YTlhMDdhYmMyZWI1MmNkZjZiY2RiYTJkOWY3OWRlYzA3MzE0NWMzMWQwNDQ0YTllMGZlMTE0N2U0MmNjNGVcIixcbiAgICBcInNxbGl0ZV9yZWFkb25seS5weVwiOiBcIjkwOTNjNjRmN2YwZTM5YjI0OWRhOWZlZmRmNWFhZjRlNDI1OGJjMzFlN2EyN2ZkODg4NDc5Y2UzMjlhMjA1MDlcIixcbiAgICBcInB1Ymxpc2hlZC12ZXJpZmljYXRpb24uanNvblwiOiBcImRkNGVlY2YwYzEwM2RjYTc5MjIwOTRhOGJlZWI5OWI3N2FlOTZmZDFkNWZlNTMyZTM3YmQ4MzNkYWEwMjYxNGVcIixcbiAgICBcInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb25cIjogXCIwNDIzMjdhMDM2ZWQyNTRjZjk1ZGJlYjBjMDU2YWMyNWIwM2E2YTg0NGI5NWEzMzJjOTkyZGYyOTQzNjkxMzY5XCIsXG4gICAgXCJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb25cIjogXCJmOGE5YTA3YWJjMmViNTJjZGY2YmNkYmEyZDlmNzlkZWMwNzMxNDVjMzFkMDQ0NGE5ZTBmZTExNDdlNDJjYzRlXCIsXG4gICAgXCJuYXRpdmUtcHJlZmxpZ2h0Lmpzb25cIjogXCI1NjYzNzk5NGRmZGFlNDZhNmY5YWI0NDJjMmZmOWIyNTkyMTI2NTBiMzVlYjk4ZDg5NmM1ZTgzN2YwMWNlMmY5XCIsXG4gICAgXCJmcmVzaC1zY2FuLXJlY2VpcHQtdGVtcGxhdGUuanNvblwiOiBcIjkyYmJmOGE4OTFjN2VmNzhkZjQ4NDMwOTAxMjE5ZDhkMDcwNzNjYmE3NDExMmEzMDdhNmQ4YmRlYzUwOWU4ZGRcIixcbiAgICBcInJvbGxiYWNrLXByZWZsaWdodC5qc29uXCI6IFwiMDE4ODc5OWQzNTJlNGQ0OWQ1Y2EyOWQ2ZTE5Nzc0MmQwMmU5NmE0YjBiMzk5ZGYxZjQ3OGU0MWIyNTI5MmViNVwiLFxuICAgIFwiaW5zdGFsbGVkLXpsaWItcHJvb2YuanNvblwiOiBcIjZhZjYyZjg2ZjUwYWMxODVmYWI5NDE2M2MyNGFjODE1MGVhZDY5ZTYyZjhkODI1YjBkY2UxZTc1YTVhNTdiNjhcIixcbiAgICBcInJ1bnRpbWUtcmVjZWlwdC5qc29uXCI6IFwiNjQ0MjY3NmRjZmQ5NDFmMGEwNWE0Y2I3OWEwMmRlYTgzOWZjZDMzMmQ4MmIyMTU0YzE1Y2Y2ZGI2OGRlNTg4OVwiLFxuICAgIFwiY2hhbmdlX2d1YXJkLnB5XCI6IFwiYjNlZTJiODlkZTE0ZTIwNGVmZWRkMDE2ZDM5MDBiNmUzMWZjYzlmMGVhMGYzMTI1ZDNhNDc5NGQ5MzhjYTIwMVwiLFxuICAgIFwiY2hlY2tfaW5zdGFsbGVkLnB5XCI6IFwiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZFwiLFxuICAgIFwiY2FuZGlkYXRlLXJ1bnRpbWUuanNvblwiOiBcImQ1OGU2MGJkYzY5NDU4ZmU0MmFmODI0OGUwMmFjZDkyNGIzYjYwNWM4Mjg4NzczNTJhN2Q5YTM5NTNlOTAxMjRcIlxuICB9LFxuICBcIm93bmVyX3NvdXJjZV9maWxlc1wiOiB7XG4gICAgXCJkZXBsb3kvbGlmZWN5Y2xlL2FkbWlzc2lvbi5jYW5kaWRhdGUuanNvblwiOiBcIjZjNzZjZWRkMGFiYzRhNDI2MWNmY2I2OWM2NTk3NjExYzI4MmJkNGZlZDhiNmFhZjc3YWZmMDRmZGY5NDI1MjlcIixcbiAgICBcImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvblwiOiBcIjM4MzMzMmNkNGZkMjdhOGIzNmU2M2E0ZDc5YWRkYzQzZWI2ODYxNWY3NDIzMjhkNDU3N2JmYzJiNDY3ZTIyNzhcIixcbiAgICBcImRlcGxveS9saWZlY3ljbGUva3VzdG9taXphdGlvbi55YW1sXCI6IFwiMWJiY2U4MWJjNjc1ODQzNDM1NDE1N2Y4NjAxNTM0MzIwYzVkMDI5MDU4NzkwOGZkMTVhNmQyNWUzZmE1N2Y0N1wiLFxuICAgIFwiZGVwbG95L2xpZmVjeWNsZS9yZWdpc3RyaWVzLmNhbmRpZGF0ZS5qc29uXCI6IFwiOWJhZDZkYjVmYmMyMTc4ZDMxYjA0MTIwMDE2YTQxODMwYzM1NTJmYmI5ZTI1MTdiNzE4ZjliYmU4N2NmNjQ5ZVwiXG4gIH0sXG4gIFwiY2FuZGlkYXRlX2ltYWdlXCI6IFwiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1NjpmNTU4OGY0OTZiMWYyNjdkMDdjZGM5ZjUyMDhlNmYyZjI0MWY3NGI3MzljMjM5MjRiMDM3MDJkZWMxM2E1YzIzXCIsXG4gIFwicHJpb3JfaW1hZ2VcIjogXCJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2FcIixcbiAgXCJzb3VyY2VfcmV2aXNpb25cIjogXCJtdXN0LWJlLWV4YWN0LWZpbmFsLW93bmVyLUhFQUQtd2l0aC1hcHByb3ZlZC1mb3VyLUdpdC1ibG9ic1wiLFxuICBcInBoYXNlc1wiOiBbXG4gICAgXCJkcmlsbC1iYWNrdXBcIixcbiAgICBcImRyaWxsLWNvcHlcIixcbiAgICBcIm9mZmxpbmUtdmVyaWZ5XCIsXG4gICAgXCJjbGVhbnVwLW9mZmxpbmVcIixcbiAgICBcImN1dG92ZXItYmFja3VwXCIsXG4gICAgXCJjdXRvdmVyLWNvcHlcIixcbiAgICBcInJlbGVhc2VcIixcbiAgICBcInZlcmlmeVwiLFxuICAgIFwicm9sbGJhY2tcIixcbiAgICBcInJvbGxiYWNrLXZlcmlmeVwiXG4gIF0sXG4gIFwiYXV0aG9yaXphdGlvblwiOiBcImZyZXNoIGV4dGVybmFsbHkgYXV0aGVudGljYXRlZCByb290IGZpeGVkLW9yaWdpbiBuYXRpdmUgcmVhZGJhY2sgYmVmb3JlIGVhY2ggcGhhc2U7IGV4YWN0IGNvbmZpcm1lZCBwbGF0Zm9ybS1yb290IGRpc3Bvc2l0aW9uIGFuZCBjdXJyZW50IHBhY2tldCBTSEEvc291cmNlIGNvbW1pdDsgcmVjZWlwdCBib29ra2VlcGluZyBpcyBub3QgYW4gYXV0b25vbW91cyBzaWduZWQgZ3JhbnRcIixcbiAgXCJleGVjdXRlX2J5XCI6IFwiMjAyNi0xMC0xMlQyMzo1OTo1OVpcIixcbiAgXCJyYXdfb3V0cHV0X3dpdGhoZWxkXCI6IHRydWUsXG4gIFwibmF0aXZlX2RhdGFfb3Jfd29ya2xvYWRfYWN0aW9uX2V4ZWN1dGVkXCI6IGZhbHNlLFxuICBcImRlYWRsaW5lX3NlbWFudGljc1wiOiBcIkFsbCBwaGFzZXMgaW5jbHVkaW5nIHZlcmlmaWNhdGlvbi9yZWNvdmVyeSBtdXN0IGJlZ2luIGJlZm9yZSBleGVjdXRlX2J5LiBObyBleHRlbnNpb24gb3IgYXV0b21hdGljIGVtZXJnZW5jeSBncmFudDsgYmV5b25kIGRlYWRsaW5lIHN0b3AgYW5kIG9idGFpbiBhIGZyZXNoIGZvdW5kZXIgZGVjaXNpb24uIENvbXBsZXRlIHRoZSBib3VuZGVkIGRyaWxsIGFuZCByb2xsb3V0IGVhcmx5IGVub3VnaCB0byBhbGxvdyByZWNvdmVyeSB3aXRoaW4gdGhlIHdpbmRvdy5cIixcbiAgXCJzb3VyY2VfbWVtb192ZXJzaW9uXCI6IDEsXG4gIFwibmF0aXZlX3Jldmlld19tZW1vX3ZlcnNpb25cIjogMSxcbiAgXCJwdWJsaXNoZWRfYXJ0aWZhY3RfdmVyaWZpZWRcIjogdHJ1ZVxufVxuIgogICAgfSwKICAgICJleGVjdXRpb24vbmF0aXZlX3Byb2dyYW0ucHkiOiB7CiAgICAgICJzaGEyNTYiOiAiZmNmOGZjMzU5MzkxMGIyZTk5ZGQ1MWQxNTlhMzBhYTliODUzYzQwZmYwMGM1NjZhNjIwZDIwZWFhZGM4YWYyMCIsCiAgICAgICJjb250ZW50IjogIlwiXCJcIkZpeGVkIFQwNSByZW1vdGUgc2NyaXB0OyBzb3VyY2UgcHJlcGFyYXRpb24gbmV2ZXIgZGlzcGF0Y2hlcyBpdC5cIlwiXCJcblBST0dSQU0gPSAnXFxuaW1wb3J0IGNvcHksZGF0ZXRpbWUsaGFzaGxpYixqc29uLG9zLHJlLHN1YnByb2Nlc3Msc3lzXFxuaWYgc3lzLmZsYWdzLm9wdGltaXplOnJhaXNlIFJ1bnRpbWVFcnJvcihcXCdvcHRpbWl6ZWQgaW50ZXJwcmV0ZXIgcmVmdXNlZFxcJylcXG5wYXlsb2FkPWpzb24ubG9hZHMoX19QQVlMT0FEX18pXFxuZXhlYyhfX0dVQVJEX18pXFxucGhhc2U9cGF5bG9hZFtcXCdwaGFzZVxcJ11cXG5pZiBwaGFzZSBub3QgaW4gKFxcJ2RyaWxsLWJhY2t1cFxcJyxcXCdjdXRvdmVyLWJhY2t1cFxcJyxcXCdkcmlsbC1jb3B5XFwnLFxcJ2N1dG92ZXItY29weVxcJyxcXCdyZWxlYXNlXFwnLFxcJ3ZlcmlmeVxcJyxcXCdyb2xsYmFja1xcJyxcXCdyb2xsYmFjay12ZXJpZnlcXCcpOnJhaXNlIFZhbHVlRXJyb3IoXFwnZml4ZWQgbmF0aXZlIHBoYXNlIHJlcXVpcmVkXFwnKVxcbmRlYWRsaW5lPWRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQoXFwnMjAyNi0xMC0xMlQyMzo1OTo1OSswMDowMFxcJylcXG5kZWYgcmVxdWlyZSh2YWx1ZSxyZWFzb24pOlxcbiBpZiBub3QgdmFsdWU6cmFpc2UgVmFsdWVFcnJvcihyZWFzb24pXFxucmVxdWlyZShkYXRldGltZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRjKTxkZWFkbGluZSxcXCdleGVjdXRpb24gd2luZG93IGV4cGlyZWRcXCcpXFxuZW52PXsqKm9zLmVudmlyb24sXFwnS1VCRUNPTkZJR1xcJzpcXCcvZXRjL3JhbmNoZXIvazNzL2szcy55YW1sXFwnfVxcbmRlZiBydW4oYXJndixib2R5PU5vbmUsdGltZW91dD05MCk6XFxuIHJldHVybiBzdWJwcm9jZXNzLnJ1bihhcmd2LGlucHV0PWJvZHksdGV4dD1UcnVlLGNhcHR1cmVfb3V0cHV0PVRydWUsdGltZW91dD10aW1lb3V0LGVudj1lbnYpXFxuZGVmIHJlYWQoa2luZCxuYW1lLG5hbWVzcGFjZSk6XFxuIHJlc3VsdD1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnZ2V0XFwnLGtpbmQsbmFtZSxcXCctblxcJyxuYW1lc3BhY2UsXFwnLW9cXCcsXFwnanNvblxcJ10pXFxuIHJlcXVpcmUocmVzdWx0LnJldHVybmNvZGU9PTAsXFwnZml4ZWQgbWV0YWRhdGEgcmVhZCByZWZ1c2VkXFwnKVxcbiByZXR1cm4ganNvbi5sb2FkcyhyZXN1bHQuc3Rkb3V0KVxcbnNlYWxlZD1wYXlsb2FkW1xcJ3NlYWxlZFxcJ107IGRlcGVuZGVuY2llcz1wYXlsb2FkW1xcJ2RlcGVuZGVuY2llc1xcJ11cXG5saXZlPXJlYWQoXFwnZGVwbG95bWVudFxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJylcXG5jbT1yZWFkKFxcJ2NvbmZpZ21hcFxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MVxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJylcXG5wdmM9cmVhZChcXCdwdmNcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb24tZGF0YVxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJylcXG5jaGVja19kZXBlbmRlbmNpZXMoY20scHZjLGRlcGVuZGVuY2llcylcXG5hcHA9cmVhZChcXCdhcHBsaWNhdGlvblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCdhcmdvY2RcXCcpXFxucmVxdWlyZShhcHBbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ109PVxcJzQ5OTg2OGYyLWVhYmMtNGRmNC1hZTMxLWI4OWNlNThkNzUwZFxcJyxcXCdBcHBsaWNhdGlvbiBVSUQgY2hhbmdlZFxcJylcXG5yZXF1aXJlKGFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddW1xcJ3JlcG9VUkxcXCddPT1cXCdodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXRcXCdcXG4gYW5kIGFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddW1xcJ3BhdGhcXCddPT1cXCdkZXBsb3kvbGlmZWN5Y2xlXFwnXFxuIGFuZCBhcHBbXFwnc3BlY1xcJ11bXFwnZGVzdGluYXRpb25cXCddPT17XFwnbmFtZXNwYWNlXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ3NlcnZlclxcJzpcXCdodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmNcXCd9XFxuIGFuZCBhcHBbXFwnc3BlY1xcJ10uZ2V0KFxcJ3N5bmNQb2xpY3lcXCcse30pLmdldChcXCdhdXRvbWF0ZWRcXCcpIGlzIE5vbmVcXG4gYW5kIHNldChhcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXSk9PXtcXCdyZXBvVVJMXFwnLFxcJ3BhdGhcXCcsXFwndGFyZ2V0UmV2aXNpb25cXCd9IGFuZCBub3QgYXBwW1xcJ3NwZWNcXCddLmdldChcXCdzb3VyY2VzXFwnKSxcXCdBcHBsaWNhdGlvbiBvd25lci9zY29wZSBjaGFuZ2VkXFwnKVxcbmV4cGVjdGVkPWNvcHkuZGVlcGNvcHkoc2VhbGVkKVxcbmlmIHBoYXNlPT1cXCd2ZXJpZnlcXCc6ZXhwZWN0ZWRbXFwnc3BlY1xcJ11bXFwndGVtcGxhdGVcXCddW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXT1DQU5ESURBVEVcXG5pZiBwaGFzZT09XFwncm9sbGJhY2tcXCc6XFxuIGltYWdlPWxpdmVbXFwnc3BlY1xcJ11bXFwndGVtcGxhdGVcXCddW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXVxcbiByZXF1aXJlKGltYWdlIGluIChCQVNFLENBTkRJREFURSksXFwncm9sbGJhY2sgaW1hZ2UgaXMgb3V0c2lkZSBzYW1lLXNjaGVtYSBwYWlyXFwnKVxcbiBleHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddPWltYWdlXFxuY2hlY2tfY3VycmVudChsaXZlLGV4cGVjdGVkKVxcbmlmIHBoYXNlIT1cXCdyb2xsYmFja1xcJzpcXG4gcmVxdWlyZShsaXZlLmdldChcXCdzdGF0dXNcXCcse30pLmdldChcXCdyZWFkeVJlcGxpY2FzXFwnKT09MVxcbiAgYW5kIGxpdmVbXFwnc3RhdHVzXFwnXS5nZXQoXFwndXBkYXRlZFJlcGxpY2FzXFwnKT09MVxcbiAgYW5kIGxpdmVbXFwnc3RhdHVzXFwnXS5nZXQoXFwnb2JzZXJ2ZWRHZW5lcmF0aW9uXFwnKT09bGl2ZVtcXCdtZXRhZGF0YVxcJ11bXFwnZ2VuZXJhdGlvblxcJ10sXFwnc2VydmljZSBub3QgUmVhZHkxXFwnKVxcbnRhcmdldD1wYXlsb2FkW1xcJ3NvdXJjZV9yZXZpc2lvblxcJ10gaWYgcGhhc2U9PVxcJ3ZlcmlmeVxcJyBlbHNlIFxcJ2M5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTJcXCdcXG5pZiBwaGFzZT09XFwncm9sbGJhY2tcXCc6cmVxdWlyZShhcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCd0YXJnZXRSZXZpc2lvblxcJ10gaW4gKHRhcmdldCxwYXlsb2FkW1xcJ3NvdXJjZV9yZXZpc2lvblxcJ10pLFxcJ3JvbGxiYWNrIHNvdXJjZSBpcyBvdXRzaWRlIHBhaXJcXCcpXFxuZWxzZTpyZXF1aXJlKGFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddW1xcJ3RhcmdldFJldmlzaW9uXFwnXT09dGFyZ2V0LFxcJ3VuZXhwZWN0ZWQgc291cmNlIHBpblxcJylcXG5yZXN1bHQ9e1xcJ3BoYXNlXFwnOnBoYXNlLFxcJ2FsbF9jaGVja3NfcGFzc1xcJzpGYWxzZSxcXCdyYXdfb3V0cHV0X3dpdGhoZWxkXFwnOlRydWUsXFxuIFxcJ25hdGl2ZV9hcHByb3ZhbF92ZXJpZmllZF9ieV9yb290XFwnOnBheWxvYWRbXFwnYXBwcm92YWxcXCddLFxcJ25hdGl2ZV9hdXRoZW50aWNhdGVkX2dyYW50XFwnOkZhbHNlfVxcbnRyeTpcXG4gaWYgcGhhc2UgaW4gKFxcJ2RyaWxsLWJhY2t1cFxcJyxcXCdjdXRvdmVyLWJhY2t1cFxcJyxcXCdkcmlsbC1jb3B5XFwnLFxcJ2N1dG92ZXItY29weVxcJyxcXCdyZWxlYXNlXFwnLFxcJ3ZlcmlmeVxcJyxcXCdyb2xsYmFjay12ZXJpZnlcXCcpOlxcbiAgcG9kbGlzdD1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnZ2V0XFwnLFxcJ3BvZHNcXCcsXFwnLW5cXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnLWxcXCcsXFwnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZT1pbmZvcm1lZC1kZWNpc2lvblxcJyxcXCctb1xcJyxcXCdqc29uXFwnXSlcXG4gIHJlcXVpcmUocG9kbGlzdC5yZXR1cm5jb2RlPT0wLFxcJ3BvZCBtZXRhZGF0YSBxdWVyeSByZWZ1c2VkXFwnKVxcbiAgcG9kcz1bcCBmb3IgcCBpbiBqc29uLmxvYWRzKHBvZGxpc3Quc3Rkb3V0KVtcXCdpdGVtc1xcJ10gaWYgbm90IHBbXFwnbWV0YWRhdGFcXCddLmdldChcXCdkZWxldGlvblRpbWVzdGFtcFxcJyldXFxuICByZXF1aXJlKGxlbihwb2RzKT09MSxcXCdleGFjdCBzaW5nbGUgbGl2ZSBvd25lciBwb2QgcmVxdWlyZWRcXCcpO3BvZD1wb2RzWzBdXFxuICByZXF1aXJlKHBvZFtcXCdzdGF0dXNcXCddLmdldChcXCdwaGFzZVxcJyk9PVxcJ1J1bm5pbmdcXCcgYW5kIGxlbihwb2RbXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ10pPT0xXFxuICAgYW5kIHBvZFtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ109PWV4cGVjdGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ11cXG4gICBhbmQgbGVuKHBvZFtcXCdzdGF0dXNcXCddLmdldChcXCdjb250YWluZXJTdGF0dXNlc1xcJyxbXSkpPT0xXFxuICAgYW5kIHBvZFtcXCdzdGF0dXNcXCddW1xcJ2NvbnRhaW5lclN0YXR1c2VzXFwnXVswXS5nZXQoXFwnbmFtZVxcJyk9PVxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnXFxuICAgYW5kIHBvZFtcXCdzdGF0dXNcXCddW1xcJ2NvbnRhaW5lclN0YXR1c2VzXFwnXVswXS5nZXQoXFwncmVhZHlcXCcpIGlzIFRydWVcXG4gICBhbmQgcG9kW1xcJ3N0YXR1c1xcJ11bXFwnY29udGFpbmVyU3RhdHVzZXNcXCddWzBdLmdldChcXCdpbWFnZUlEXFwnLFxcJ1xcJykuZW5kc3dpdGgoXFwnQFxcJytleHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddLnNwbGl0KFxcJ0BcXCcsMSlbMV0pLFxcJ293bmVyIHBvZCByZWFkaW5lc3MvaW1hZ2UgY2hhbmdlZFxcJylcXG4gIGlmIHBoYXNlIGluIChcXCdkcmlsbC1iYWNrdXBcXCcsXFwnZHJpbGwtY29weVxcJyxcXCdjdXRvdmVyLWJhY2t1cFxcJyxcXCdjdXRvdmVyLWNvcHlcXCcsXFwncmVsZWFzZVxcJyk6cmVxdWlyZShwb2RbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ109PVxcJ2M0Y2IxNTUwLWZlZGEtNDA5Ny05ZGU0LWQ4OTFhNjU3YjY2MlxcJyxcXCdvcmlnaW5hbCBiYWNrdXAgUG9kIGlkZW50aXR5IGNoYW5nZWRcXCcpXFxuICB0ZW1wbGF0ZT1leHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11cXG4gIGNvbnRyb2xsZWQ9c2V0KHRlbXBsYXRlKXx7XFwnaW5pdENvbnRhaW5lcnNcXCcsXFwnaG9zdE5ldHdvcmtcXCcsXFwnaG9zdFBJRFxcJyxcXCdob3N0SVBDXFwnLFxcJ3J1bnRpbWVDbGFzc05hbWVcXCcsXFwnc2hhcmVQcm9jZXNzTmFtZXNwYWNlXFwnfVxcbiAgcmVxdWlyZShhbGwocG9kW1xcJ3NwZWNcXCddLmdldChrZXkpPT10ZW1wbGF0ZS5nZXQoa2V5KSBmb3Iga2V5IGluIGNvbnRyb2xsZWQpLFxcJ2FjdHVhbCBvd25lciBQb2QgY29uZmlndXJhdGlvbiBkcmlmdGVkXFwnKVxcbiAgb3duZXJzPXBvZFtcXCdtZXRhZGF0YVxcJ10uZ2V0KFxcJ293bmVyUmVmZXJlbmNlc1xcJyxbXSk7cmVxdWlyZShsZW4ob3duZXJzKT09MSBhbmQgb3duZXJzWzBdW1xcJ2tpbmRcXCddPT1cXCdSZXBsaWNhU2V0XFwnLFxcJ3BvZCBvd25lciBjaGFpbiBjaGFuZ2VkXFwnKVxcbiAgcnM9cmVhZChcXCdyZXBsaWNhc2V0XFwnLG93bmVyc1swXVtcXCduYW1lXFwnXSxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJylcXG4gIHJlcXVpcmUocnNbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ109PW93bmVyc1swXVtcXCd1aWRcXCddIGFuZCBhbnkoby5nZXQoXFwndWlkXFwnKT09c2VhbGVkW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddXFxuICAgYW5kIG8uZ2V0KFxcJ2tpbmRcXCcpPT1cXCdEZXBsb3ltZW50XFwnIGZvciBvIGluIHJzW1xcJ21ldGFkYXRhXFwnXS5nZXQoXFwnb3duZXJSZWZlcmVuY2VzXFwnLFtdKSksXFwnUmVwbGljYVNldCBvd25lcnNoaXAgY2hhbmdlZFxcJylcXG4gIGlubmVyPXJcIlwiXCJcXG5pbXBvcnQgaGFzaGxpYixqc29uLG9zLHN0YXQsc3VicHJvY2VzcyxzeXNcXG5pZiBzeXMuZmxhZ3Mub3B0aW1pemU6cmFpc2UgUnVudGltZUVycm9yKFxcJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkXFwnKVxcbmV4ZWMoX19SRUFET05MWV9fKVxcbmV4ZWMoX19TQUZFVFlfXylcXG5hY3Rpb249X19BQ1RJT05fXztkYj1cXCcvZGF0YS9wcml2YXRlL3Jldmlldy5zcWxpdGVcXCc7Zm9sZGVyPVxcJy9kYXRhL3ByaXZhdGUvemxpYjg1MDkxLXIxXFwnXFxuZGVmIHJlcXVpcmUodixyKTpcXG4gaWYgbm90IHY6cmFpc2UgVmFsdWVFcnJvcihyKVxcbnJlcXVpcmUob3MuZ2V0dWlkKCk9PTEwMDAxIGFuZCBvcy5nZXRnaWQoKT09MTAwMDEsXFwnbmF0aXZlIG93bmVyIFVJRC9HSUQgcmVxdWlyZWRcXCcpXFxuZGVmIHByaXZhdGUocCxkaXJlY3Rvcnk9RmFsc2UpOlxcbiBzPW9zLmxzdGF0KHApO3JlcXVpcmUoKHN0YXQuU19JU0RJUihzLnN0X21vZGUpIGlmIGRpcmVjdG9yeSBlbHNlIHN0YXQuU19JU1JFRyhzLnN0X21vZGUpKVxcbiAgYW5kIHMuc3RfdWlkPT0xMDAwMSBhbmQgc3RhdC5TX0lNT0RFKHMuc3RfbW9kZSk9PSgwbzcwMCBpZiBkaXJlY3RvcnkgZWxzZSAwbzYwMClcXG4gIGFuZCAoZGlyZWN0b3J5IG9yIHMuc3Rfbmxpbms9PTEpLFxcJ3ByaXZhdGUgbmF0aXZlIGN1c3RvZHkgcmVxdWlyZWRcXCcpXFxucHJpdmF0ZShcXCcvZGF0YS9wcml2YXRlXFwnLFRydWUpO3ByaXZhdGUoZGIpXFxuYmFzZWxpbmU9Y291bnRzKGluc3BlY3RfcmVhZG9ubHkoZGIpKSAjIE1VU1QgcHJlY2VkZSBhbnkgU3RvcmUvYWRtaW4gb3Blbi5cXG5pZiBhY3Rpb24gaW4gKFxcJ2RyaWxsLWJhY2t1cFxcJyxcXCdjdXRvdmVyLWJhY2t1cFxcJyk6XFxuIHNpemU9b3Muc3RhdChkYikuc3Rfc2l6ZVxcbiBpZiBvcy5wYXRoLmV4aXN0cyhkYitcXCctd2FsXFwnKTpzaXplKz1vcy5zdGF0KGRiK1xcJy13YWxcXCcpLnN0X3NpemVcXG4gdj1vcy5zdGF0dmZzKFxcJy9kYXRhL3ByaXZhdGVcXCcpO2ZyZWU9di5mX2JhdmFpbCp2LmZfZnJzaXplXFxuIHJlcXVpcmUoc2l6ZT4wIGFuZCBzaXplPD01MTIqMTAyNCoqMiBhbmQgZnJlZT49c2l6ZSooMiBpZiBhY3Rpb249PVxcJ2RyaWxsLWJhY2t1cFxcJyBlbHNlIDEpKzE2KjEwMjQqKjIsXFwnYm91bmRlZCBuYXRpdmUgc25hcHNob3QgY2FwYWNpdHkgcmVxdWlyZWRcXCcpXFxuIGlmIGFjdGlvbj09XFwnZHJpbGwtYmFja3VwXFwnOlxcbiAgcmVxdWlyZShub3Qgb3MucGF0aC5sZXhpc3RzKGZvbGRlciksXFwnbmF0aXZlIGNhc2UgZGlyZWN0b3J5IG11c3QgYmUgdW5pcXVlXFwnKVxcbiAgb3MubWtkaXIoZm9sZGVyLDBvNzAwKTtvcy5jaG1vZChmb2xkZXIsMG83MDApXFxuIHByaXZhdGUoZm9sZGVyLFRydWUpXFxuIGZpbGVuYW1lPVxcJ2RyaWxsLnNxbGl0ZVxcJyBpZiBhY3Rpb249PVxcJ2RyaWxsLWJhY2t1cFxcJyBlbHNlIFxcJ2N1dG92ZXIuc3FsaXRlXFwnO291dHB1dD1mb2xkZXIrXFwnL1xcJytmaWxlbmFtZVxcbiByZXF1aXJlKG5vdCBvcy5wYXRoLmxleGlzdHMob3V0cHV0KSxcXCdzbmFwc2hvdCBvdXRwdXQgbXVzdCBiZSB1bmlxdWVcXCcpXFxuIGFkbWluPXN1YnByb2Nlc3MucnVuKFtcXCdpbmZvcm1lZC1kZWNpc2lvbi1hZG1pblxcJyxcXCdiYWNrdXBcXCcsXFwnLS1kYlxcJyxkYixcXCctLW91dHB1dFxcJyxvdXRwdXRdLGNhcHR1cmVfb3V0cHV0PVRydWUsdGV4dD1UcnVlLHRpbWVvdXQ9MTIwKVxcbiByZXF1aXJlKGFkbWluLnJldHVybmNvZGU9PTAgYW5kIGpzb24ubG9hZHMoYWRtaW4uc3Rkb3V0KT09e1xcJ3N0YXR1c1xcJzpcXCdiYWNrZWRfdXBcXCcsXFwnY29uc2lzdGVudF9zbmFwc2hvdFxcJzpUcnVlfSxcXCdiYWNrdXAgY29tcGxldGlvbiBub3QgdmVyaWZpZWQ7IGRvIG5vdCByZXRyeVxcJylcXG4gcHJpdmF0ZShvdXRwdXQpXFxuIGZvciBzdWZmaXggaW4gKFxcJy13YWxcXCcsKTpcXG4gIHJlcXVpcmUobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dCtzdWZmaXgpIG9yIG9zLnN0YXQob3V0cHV0K3N1ZmZpeCkuc3Rfc2l6ZT09MCxcXCdzbmFwc2hvdCBoYXMgV0FMIGZyYW1lczsgaW1tdXRhYmxlIHJlYWQgcmVmdXNlZFxcJylcXG4gZGlnZXN0PWhhc2hsaWIuc2hhMjU2KClcXG4gd2l0aCBvcGVuKG91dHB1dCxcXCdyYlxcJykgYXMgc3RyZWFtOlxcbiAgZm9yIGJsb2NrIGluIGl0ZXIobGFtYmRhOnN0cmVhbS5yZWFkKDEwMjQqKjIpLGJcXCdcXCcpOmRpZ2VzdC51cGRhdGUoYmxvY2spXFxuIGZyb3plbl9kaWdlc3Q9ZGlnZXN0LmhleGRpZ2VzdCgpXFxuIHNuYXBzaG90PWNvdW50cyhpbnNwZWN0X2Nsb3NlZF9zbmFwc2hvdChvdXRwdXQsZnJvemVuX2RpZ2VzdCkpXFxuIHNpemU9b3Muc3RhdChvdXRwdXQpLnN0X3NpemU7cmVxdWlyZSgwPHNpemU8PTUxMioxMDI0KioyLFxcJ3NuYXBzaG90IG91dHNpZGUgYm91bmRlZCBjb3B5IHNpemVcXCcpXFxuIGRpZ2VzdD1oYXNobGliLnNoYTI1NigpXFxuIHdpdGggb3BlbihvdXRwdXQsXFwncmJcXCcpIGFzIHN0cmVhbTpcXG4gIGZvciBibG9jayBpbiBpdGVyKGxhbWJkYTpzdHJlYW0ucmVhZCgxMDI0KioyKSxiXFwnXFwnKTpkaWdlc3QudXBkYXRlKGJsb2NrKVxcbiBwcmludChqc29uLmR1bXBzKHtcXCdhbGxfY2hlY2tzX3Bhc3NcXCc6VHJ1ZSxcXCdzb3VyY2VfcmVhZG9ubHlfYmFzZWxpbmVcXCc6YmFzZWxpbmUsXFwnc25hcHNob3RfcmVhZG9ubHlcXCc6c25hcHNob3QsXFwnc25hcHNob3Rfc2hhMjU2XFwnOmRpZ2VzdC5oZXhkaWdlc3QoKSxcXCdzbmFwc2hvdF9ieXRlc1xcJzpzaXplLFxcJ3NuYXBzaG90X2ZpbGVcXCc6ZmlsZW5hbWUsXFwnbmF0aXZlX3BhcmVudF9wcml2YXRlXFwnOlRydWUsXFwnbmF0aXZlX3VpZFxcJzpvcy5nZXR1aWQoKX0pKVxcbmVsaWYgYWN0aW9uIGluIChcXCd2ZXJpZnlcXCcsXFwncmVsZWFzZVxcJyxcXCdyb2xsYmFjay12ZXJpZnlcXCcpOlxcbiBwcm9vZj17XFwnYWxsX2NoZWNrc19wYXNzXFwnOlRydWUsXFwnbGl2ZV9yZWFkb25seV9zY2hlbWFfaW50ZWdyaXR5X2NvdW50c1xcJzpiYXNlbGluZSxcXCdsaXZlX2NvdW50c19tYXlfaW5jbHVkZV9jb25jdXJyZW50X2NvbW1pdHNcXCc6VHJ1ZX1cXG4gaWYgYWN0aW9uPT1cXCd2ZXJpZnlcXCc6XFxuICBpbXBvcnQgdXJsbGliLnJlcXVlc3RcXG4gIG1vZHVsZT1cXCcvb3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIvc2l0ZS1wYWNrYWdlcy9pbmZvcm1lZF9kZWNpc2lvbi9wb2xpY3kucHlcXCc7aW5mbz1vcy5sc3RhdChtb2R1bGUpXFxuICByZXF1aXJlKHN0YXQuU19JU1JFRyhpbmZvLnN0X21vZGUpIGFuZCBpbmZvLnN0X3VpZD09MCBhbmQgc3RhdC5TX0lNT0RFKGluZm8uc3RfbW9kZSk9PTBvNjQ0LFxcJ2luc3RhbGxlZCBwb2xpY3kgbWV0YWRhdGEgZGlmZmVyc1xcJylcXG4gIHdpdGggb3Blbihtb2R1bGUsXFwncmJcXCcpIGFzIHNvdXJjZTptb2R1bGVfZGlnZXN0PWhhc2hsaWIuc2hhMjU2KHNvdXJjZS5yZWFkKCkpLmhleGRpZ2VzdCgpXFxuICByZXF1aXJlKG1vZHVsZV9kaWdlc3Q9PVxcJzlkN2MxYmU0Y2I2MTk5ZDE0ZWYwYWFlYWQ1Zjg1OTUxZjQ1YjBjY2JkN2M4MDBhN2ZkZTkyMmEyNTM1NjZiNjJcXCcsXFwnaW5zdGFsbGVkIHNvdXJjZSBtb2R1bGUgZGlmZmVyc1xcJylcXG4gIHB1cnBvc2U9c3VicHJvY2Vzcy5ydW4oW3N5cy5leGVjdXRhYmxlLFxcJy1cXCddLGlucHV0PV9fUFVSUE9TRV9fLHRleHQ9VHJ1ZSxjYXB0dXJlX291dHB1dD1UcnVlLHRpbWVvdXQ9MzApXFxuICByZXF1aXJlKHB1cnBvc2UucmV0dXJuY29kZT09MCxcXCdpbnN0YWxsZWQgbmF0aXZlLXBsYWNlbWVudCBwdXJwb3NlIGNoZWNrcyBmYWlsZWRcXCcpXFxuICB0ZXN0ZWQ9anNvbi5sb2FkcyhwdXJwb3NlLnN0ZG91dClcXG4gIHJlcXVpcmUodGVzdGVkPT17XFwnaW5zdGFsbGVkX2ltYWdlX3B1cnBvc2VfdmFyaWFudHNcXCc6MTAsXFwnYmluZGluZ19mb3Jtc19hbGxvd2VkXFwnOjIsXFwnYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWRcXCc6OCxcXCdzeW50aGV0aWNfb25seVxcJzpUcnVlLFxcJ25hdGl2ZV9wcm92aWRlclxcJzpGYWxzZX0sXFwncHVycG9zZSByZXN1bHQgZGlmZmVyc1xcJylcXG4gIGNsYXNzIE5vUmVkaXJlY3QodXJsbGliLnJlcXVlc3QuSFRUUFJlZGlyZWN0SGFuZGxlcik6XFxuICAgZGVmIHJlZGlyZWN0X3JlcXVlc3Qoc2VsZiwqYXJncywqKmt3YXJncyk6cmFpc2UgVmFsdWVFcnJvcihcXCdoZWFsdGggcmVkaXJlY3QgcmVmdXNlZFxcJylcXG4gIG9wZW5lcj11cmxsaWIucmVxdWVzdC5idWlsZF9vcGVuZXIoTm9SZWRpcmVjdCgpKTtzdGF0dXNlcz17fVxcbiAgZm9yIHJvdXRlIGluIChcXCcvaGVhbHRoelxcJyxcXCcvcmVhZHl6XFwnKTpcXG4gICB3aXRoIG9wZW5lci5vcGVuKFxcJ2h0dHA6Ly8xMjcuMC4wLjE6ODA4MFxcJytyb3V0ZSx0aW1lb3V0PTEwKSBhcyByZXNwb25zZTpcXG4gICAgcmVxdWlyZShyZXNwb25zZS5zdGF0dXM9PTIwMCBhbmQgbGVuKHJlc3BvbnNlLnJlYWQoODE5MykpPD04MTkyLFxcJ2JvdW5kZWQgaGVhbHRoIGNoZWNrIHJlZnVzZWRcXCcpO3N0YXR1c2VzW3JvdXRlXT0yMDBcXG4gIHpsaWJfZXhwZWN0ZWQ9X19aTElCX187cmVxdWlyZSh6bGliX2V4cGVjdGVkW1xcJ3psaWJfcGFja2FnZVxcJ109PVxcJzEuMy4yLXIxXFwnLFxcJ2V4YWN0IGZpeGVkIHBhY2thZ2UgcHJvb2YgcmVxdWlyZWRcXCcpO2luc3RhbGxlZF96bGliPXt9XFxuICBmb3IgcmVsYXRpdmUsbWV0YSBpbiB6bGliX2V4cGVjdGVkW1xcJ2ZpbGVzXFwnXS5pdGVtcygpOlxcbiAgIHJlcXVpcmUocmVsYXRpdmUgaW4gKFxcJ2xpYi9hcGsvZGIvaW5zdGFsbGVkXFwnLFxcJ3Vzci9saWIvbGliei5zby4xLjMuMlxcJyksXFwnZml4ZWQgemxpYiBzb3VyY2UgcGF0aCByZXF1aXJlZFxcJylcXG4gICBwYXRoPVxcJy9cXCcrcmVsYXRpdmU7aW5mbz1vcy5sc3RhdChwYXRoKTtyZXF1aXJlKG1ldGFbMF09PVxcJ2ZpbGVcXCcgYW5kIHN0YXQuU19JU1JFRyhpbmZvLnN0X21vZGUpIGFuZCBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKT09bWV0YVsxXSBhbmQgaW5mby5zdF91aWQ9PW1ldGFbMl0gYW5kIGluZm8uc3RfZ2lkPT1tZXRhWzNdLFxcJ2luc3RhbGxlZCB6bGliIGZpbGUgbWV0YWRhdGEgZGlmZmVyc1xcJylcXG4gICB3aXRoIG9wZW4ocGF0aCxcXCdyYlxcJykgYXMgaGFuZGxlOmRpZ2VzdD1oYXNobGliLnNoYTI1NihoYW5kbGUucmVhZCgpKS5oZXhkaWdlc3QoKVxcbiAgIHJlcXVpcmUoZGlnZXN0PT1tZXRhWzRdLFxcJ2luc3RhbGxlZCB6bGliIGZpbGUgZGlnZXN0IGRpZmZlcnNcXCcpO2luc3RhbGxlZF96bGliW3JlbGF0aXZlXT1kaWdlc3RcXG4gIHByb29mLnVwZGF0ZShpbnN0YWxsZWRfemxpYl9maWxlcz1pbnN0YWxsZWRfemxpYix6bGliX3BhY2thZ2U9XFwnMS4zLjItcjFcXCcpXFxuICBwcm9vZi51cGRhdGUoaW5zdGFsbGVkX3B1cnBvc2VfY2hlY2tzPXRlc3RlZCxwb2xpY3lfc2hhMjU2PW1vZHVsZV9kaWdlc3QscG9saWN5X21vZGU9XFwnMDY0NFxcJyxwb2xpY3lfdWlkPTAsaGVhbHRoX3N0YXR1c2VzPXN0YXR1c2VzLG5hdGl2ZV9wcm92aWRlcl9wcm9iZT1GYWxzZSlcXG4gcHJpbnQoanNvbi5kdW1wcyhwcm9vZikpXFxuZWxpZiBhY3Rpb24gaW4gKFxcJ2RyaWxsLWNvcHlcXCcsXFwnY3V0b3Zlci1jb3B5XFwnKTpcXG4gcHJpdmF0ZShmb2xkZXIsVHJ1ZSk7ZmlsZW5hbWU9XFwnZHJpbGwuc3FsaXRlXFwnIGlmIGFjdGlvbj09XFwnZHJpbGwtY29weVxcJyBlbHNlIFxcJ2N1dG92ZXIuc3FsaXRlXFwnO291dHB1dD1mb2xkZXIrXFwnL1xcJytmaWxlbmFtZTtwcml2YXRlKG91dHB1dClcXG4gaWRlbnRpdHk9X19TTkFQU0hPVF9fO3JlcXVpcmUoaXNpbnN0YW5jZShpZGVudGl0eSxkaWN0KSBhbmQgaWRlbnRpdHkuZ2V0KFxcJ3NuYXBzaG90X2ZpbGVcXCcpPT1maWxlbmFtZSxcXCdyZWNvcmRlZCBvcmlnaW5hbCBmcm96ZW4gc25hcHNob3QgaWRlbnRpdHkgcmVxdWlyZWRcXCcpXFxuIHNuYXBzaG90PWNvdW50cyhpbnNwZWN0X2Nsb3NlZF9zbmFwc2hvdChvdXRwdXQsaWRlbnRpdHlbXFwnc25hcHNob3Rfc2hhMjU2XFwnXSkpO3NpemU9b3Muc3RhdChvdXRwdXQpLnN0X3NpemU7cmVxdWlyZShzaXplPT1pZGVudGl0eVtcXCdzbmFwc2hvdF9ieXRlc1xcJ10gYW5kIDA8c2l6ZTw9NTEyKjEwMjQqKjIsXFwnc25hcHNob3Qgc2l6ZSBvdXRzaWRlIGZyb3plbiBib3VuZFxcJylcXG4gcmVxdWlyZShzbmFwc2hvdD09aWRlbnRpdHlbXFwnc25hcHNob3RfcmVhZG9ubHlcXCddLFxcJ2Zyb3plbiBzbmFwc2hvdCBwcm9vZiBkaWZmZXJzXFwnKVxcbiBkaWdlc3Q9aGFzaGxpYi5zaGEyNTYoKVxcbiB3aXRoIG9wZW4ob3V0cHV0LFxcJ3JiXFwnKSBhcyBzdHJlYW06XFxuICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6c3RyZWFtLnJlYWQoMTAyNCoqMiksYlxcJ1xcJyk6ZGlnZXN0LnVwZGF0ZShibG9jaylcXG4gcHJpbnQoanNvbi5kdW1wcyh7XFwnYWxsX2NoZWNrc19wYXNzXFwnOlRydWUsXFwnc25hcHNob3RfZmlsZVxcJzpmaWxlbmFtZSxcXCdzbmFwc2hvdF9ieXRlc1xcJzpzaXplLFxcJ3NuYXBzaG90X3NoYTI1NlxcJzpkaWdlc3QuaGV4ZGlnZXN0KCksXFwnc25hcHNob3RfcmVhZG9ubHlcXCc6c25hcHNob3R9KSlcXG5lbHNlOnJhaXNlIFZhbHVlRXJyb3IoXFwnZml4ZWQgbmF0aXZlIGJhY2t1cC92ZXJpZnkgcGhhc2UgcmVxdWlyZWRcXCcpXFxuXCJcIlwiXFxuICAjIFN0cmlwIHRoZSBDTEkgYnJhbmNoOiBleGVjIG9ubHkgdGhlIHZlcmlmaWVkIHN0ZGxpYiBmdW5jdGlvbiwgbmV2ZXIgU3RvcmUuXFxuICByZWFkb25seT1wYXlsb2FkW1xcJ3JlYWRvbmx5XFwnXS5zcGxpdChcImlmIF9fbmFtZV9fID09IFxcJ19fbWFpbl9fXFwnOlwiLDEpWzBdXFxuICBpbm5lcj1pbm5lci5yZXBsYWNlKFxcJ19fUkVBRE9OTFlfX1xcJyxyZXByKHJlYWRvbmx5KSkucmVwbGFjZShcXCdfX1NBRkVUWV9fXFwnLHJlcHIocGF5bG9hZFtcXCdyZWNlaXB0X3NhZmV0eVxcJ10pKS5yZXBsYWNlKFxcJ19fQUNUSU9OX19cXCcscmVwcihcXCdkcmlsbC1jb3B5XFwnIGlmIHBoYXNlPT1cXCdkcmlsbC1jb3B5XFwnIGVsc2UgcGhhc2UpKS5yZXBsYWNlKFxcJ19fUFVSUE9TRV9fXFwnLHJlcHIocGF5bG9hZFtcXCdwdXJwb3NlX2NoZWNrc1xcJ10pKS5yZXBsYWNlKFxcJ19fU05BUFNIT1RfX1xcJyxyZXByKHBheWxvYWQuZ2V0KFxcJ3NuYXBzaG90X2lkZW50aXR5XFwnKSkpLnJlcGxhY2UoXFwnX19aTElCX19cXCcscmVwcihwYXlsb2FkW1xcJ2luc3RhbGxlZF96bGliXFwnXSkpXFxuICBwPXJ1bihbXFwna3ViZWN0bFxcJyxcXCdleGVjXFwnLFxcJy1pXFwnLFxcJy1uXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLHBvZFtcXCdtZXRhZGF0YVxcJ11bXFwnbmFtZVxcJ10sXFwnLWNcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnLS1cXCcsXFwncHl0aG9uXFwnLFxcJy1cXCddLGlubmVyLDE1MClcXG4gIHJlcXVpcmUocC5yZXR1cm5jb2RlPT0wLFxcJ25hdGl2ZSBwaGFzZSBvdXRjb21lIHVudmVyaWZpZWQ7IHJhdyBvdXRwdXQgd2l0aGhlbGQsIGRvIG5vdCByZXRyeVxcJylcXG4gIG91dGNvbWU9anNvbi5sb2FkcyhwLnN0ZG91dCk7cmVxdWlyZShvdXRjb21lLmdldChcXCdhbGxfY2hlY2tzX3Bhc3NcXCcpIGlzIFRydWUsXFwnbmF0aXZlIHBoYXNlIGdhdGUgcmVmdXNlZFxcJylcXG4gIHJlc3VsdC51cGRhdGUob3V0Y29tZSxwb2RfbmFtZT1wb2RbXFwnbWV0YWRhdGFcXCddW1xcJ25hbWVcXCddLHBvZF91aWQ9cG9kW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddKVxcbiBpZiBwaGFzZSBpbiAoXFwncmVsZWFzZVxcJyxcXCdyb2xsYmFja1xcJyk6XFxuICBub2RlX3JlYWQ9cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2dldFxcJyxcXCdub2Rlc1xcJyxcXCctb1xcJyxcXCdqc29uXFwnXSk7cmVxdWlyZShub2RlX3JlYWQucmV0dXJuY29kZT09MCxcXCdub2RlIG1ldGFkYXRhIHVuYXZhaWxhYmxlXFwnKVxcbiAgbm9kZXM9anNvbi5sb2Fkcyhub2RlX3JlYWQuc3Rkb3V0KVtcXCdpdGVtc1xcJ107cmVxdWlyZShsZW4obm9kZXMpPT0xLFxcJ29uZSB0YXJnZXQgbm9kZSByZXF1aXJlZFxcJyk7bm9kZT1ub2Rlc1swXVxcbiAgcmVxdWlyZShhbnkoYS5nZXQoXFwnYWRkcmVzc1xcJyk9PVxcJzkyLjIwNS42Mi4yMzlcXCcgZm9yIGEgaW4gbm9kZVtcXCdzdGF0dXNcXCddW1xcJ2FkZHJlc3Nlc1xcJ10pLFxcJ3RhcmdldCBub2RlIGFkZHJlc3MgY2hhbmdlZFxcJylcXG4gIGNvbmRpdGlvbnM9e2NbXFwndHlwZVxcJ106Y1tcXCdzdGF0dXNcXCddIGZvciBjIGluIG5vZGVbXFwnc3RhdHVzXFwnXVtcXCdjb25kaXRpb25zXFwnXX1cXG4gIHJlcXVpcmUoY29uZGl0aW9ucy5nZXQoXFwnUmVhZHlcXCcpPT1cXCdUcnVlXFwnIGFuZCBhbGwoY29uZGl0aW9ucy5nZXQoayk9PVxcJ0ZhbHNlXFwnIGZvciBrIGluIChcXCdNZW1vcnlQcmVzc3VyZVxcJyxcXCdEaXNrUHJlc3N1cmVcXCcsXFwnUElEUHJlc3N1cmVcXCcpKSxcXCdub2RlIHVuaGVhbHRoeSBvciBwcmVzc3VyZWRcXCcpXFxuICBkZXNjcmlwdGlvbj1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnZGVzY3JpYmVcXCcsXFwnbm9kZVxcJyxub2RlW1xcJ21ldGFkYXRhXFwnXVtcXCduYW1lXFwnXV0pO3JlcXVpcmUoZGVzY3JpcHRpb24ucmV0dXJuY29kZT09MCxcXCdoZWFkcm9vbSBjYXB0dXJlIHVuYXZhaWxhYmxlXFwnKVxcbiAgdGFibGU9ZGVzY3JpcHRpb24uc3Rkb3V0LnNwbGl0KFxcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XFwnLDEpWzFdO3JlcXVlc3RlZD1pbnQocmUuc2VhcmNoKHJcXCdjcHVcXFxccysoXFxcXGQrKW1cXCcsdGFibGUpLmdyb3VwKDEpKTthbGxvYz1ub2RlW1xcJ3N0YXR1c1xcJ11bXFwnYWxsb2NhdGFibGVcXCddW1xcJ2NwdVxcJ107Y2FwYWNpdHk9aW50KGFsbG9jWzotMV0pIGlmIGFsbG9jLmVuZHN3aXRoKFxcJ21cXCcpIGVsc2UgaW50KGFsbG9jKSoxMDAwXFxuICByZXF1aXJlKHJlcXVlc3RlZDw9Y2FwYWNpdHksXFwnUmVjcmVhdGUgcmVxdWVzdGVkIENQVSBleGNlZWRzIGNhcGFjaXR5XFwnKVxcbiAgcmVxdWlyZShub3QgYXBwLmdldChcXCdvcGVyYXRpb25cXCcpIGFuZCBhcHAuZ2V0KFxcJ3N0YXR1c1xcJyx7fSkuZ2V0KFxcJ29wZXJhdGlvblN0YXRlXFwnLHt9KS5nZXQoXFwncGhhc2VcXCcpIG5vdCBpbiAoXFwnUnVubmluZ1xcJyxcXCdUZXJtaW5hdGluZ1xcJyksXFwnZXhpc3RpbmcgQXJnbyBvcGVyYXRpb24gbXVzdCBiZSBzZXR0bGVkXFwnKVxcbiAgZGVzdGluYXRpb249cGF5bG9hZFtcXCdzb3VyY2VfcmV2aXNpb25cXCddIGlmIHBoYXNlPT1cXCdyZWxlYXNlXFwnIGVsc2UgXFwnYzk2YjBjNmQ4ODFlODU1ZDFkMTU4MDAzYzZkZTkwZWYzOTAyNjJlMlxcJ1xcbiAgYm9keT1jb3B5LmRlZXBjb3B5KHBheWxvYWRbXFwnY2FuZGlkYXRlXFwnXSBpZiBwaGFzZT09XFwncmVsZWFzZVxcJyBlbHNlIHBheWxvYWRbXFwncm9sbGJhY2tcXCddKVxcbiAgZHJ5PXJ1bihbXFwna3ViZWN0bFxcJyxcXCdhcHBseVxcJyxcXCctLWRyeS1ydW49c2VydmVyXFwnLFxcJy1mXFwnLFxcJy1cXCcsXFwnLW9cXCcsXFwnanNvblxcJ10sanNvbi5kdW1wcyhib2R5KSlcXG4gIHJlcXVpcmUoZHJ5LnJldHVybmNvZGU9PTAsXFwnZnJlc2ggb3duZXIgc2VydmVyIGFkbWlzc2lvbiByZWZ1c2VkXFwnKVxcbiAgYWRtaXR0ZWQ9anNvbi5sb2Fkcyhkcnkuc3Rkb3V0KTt3YW50ZWQ9Y29weS5kZWVwY29weShzZWFsZWQpXFxuICB3YW50ZWRbXFwnc3BlY1xcJ11bXFwndGVtcGxhdGVcXCddW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXT1DQU5ESURBVEUgaWYgcGhhc2U9PVxcJ3JlbGVhc2VcXCcgZWxzZSBCQVNFXFxuICByZXF1aXJlKHByb2plY3Rpb24oYWRtaXR0ZWQpPT13YW50ZWQsXFwnZHJ5LXJ1biBjaGFuZ2VkIGFueXRoaW5nIGJleW9uZCBleGFjdCBpbWFnZVxcJylcXG4gIGRpZmY9cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2RpZmZcXCcsXFwnLWZcXCcsXFwnLVxcJ10sanNvbi5kdW1wcyhib2R5KSk7cmVxdWlyZShkaWZmLnJldHVybmNvZGUgaW4gKDAsMSksXFwnY2xpZW50IGRpZmYgdW5hdmFpbGFibGVcXCcpXFxuICBvcGVyYXRpb249e1xcJ2luaXRpYXRlZEJ5XFwnOntcXCd1c2VybmFtZVxcJzpcXCdjdXN0b2RpYW4tY29kZXhcXCd9LFxcJ3N5bmNcXCc6e1xcJ3JldmlzaW9uXFwnOmRlc3RpbmF0aW9uLFxcJ3BydW5lXFwnOkZhbHNlLFxcbiAgIFxcJ3Jlc291cmNlc1xcJzpbe1xcJ2dyb3VwXFwnOlxcJ2FwcHNcXCcsXFwna2luZFxcJzpcXCdEZXBsb3ltZW50XFwnLFxcJ25hbWVcXCc6XFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnbmFtZXNwYWNlXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnfV19fVxcbiAgcGF0Y2g9W3tcXCdvcFxcJzpcXCd0ZXN0XFwnLFxcJ3BhdGhcXCc6XFwnL21ldGFkYXRhL3VpZFxcJyxcXCd2YWx1ZVxcJzphcHBbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ119LFxcbiAgIHtcXCdvcFxcJzpcXCd0ZXN0XFwnLFxcJ3BhdGhcXCc6XFwnL21ldGFkYXRhL3Jlc291cmNlVmVyc2lvblxcJyxcXCd2YWx1ZVxcJzphcHBbXFwnbWV0YWRhdGFcXCddW1xcJ3Jlc291cmNlVmVyc2lvblxcJ119LFxcbiAgIHtcXCdvcFxcJzpcXCd0ZXN0XFwnLFxcJ3BhdGhcXCc6XFwnL3NwZWMvc291cmNlL3RhcmdldFJldmlzaW9uXFwnLFxcJ3ZhbHVlXFwnOmFwcFtcXCdzcGVjXFwnXVtcXCdzb3VyY2VcXCddW1xcJ3RhcmdldFJldmlzaW9uXFwnXX0sXFxuICAge1xcJ29wXFwnOlxcJ3JlcGxhY2VcXCcsXFwncGF0aFxcJzpcXCcvc3BlYy9zb3VyY2UvdGFyZ2V0UmV2aXNpb25cXCcsXFwndmFsdWVcXCc6ZGVzdGluYXRpb259LFxcbiAgIHtcXCdvcFxcJzpcXCdhZGRcXCcsXFwncGF0aFxcJzpcXCcvb3BlcmF0aW9uXFwnLFxcJ3ZhbHVlXFwnOm9wZXJhdGlvbn1dXFxuICBhcmd2PVtcXCdrdWJlY3RsXFwnLFxcJ3BhdGNoXFwnLFxcJ2FwcGxpY2F0aW9uXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJy1uXFwnLFxcJ2FyZ29jZFxcJyxcXCctLXR5cGU9anNvblxcJyxcXCctLXBhdGNoLWZpbGU9L2Rldi9zdGRpblxcJyxcXCctb1xcJyxcXCduYW1lXFwnXVxcbiAgcGF0Y2hkcnk9cnVuKGFyZ3YrW1xcJy0tZHJ5LXJ1bj1zZXJ2ZXJcXCddLGpzb24uZHVtcHMocGF0Y2gpKTtyZXF1aXJlKHBhdGNoZHJ5LnJldHVybmNvZGU9PTAsXFwnQXBwbGljYXRpb24gb3BlcmF0aW9uIGRyeS1ydW4gcmVmdXNlZFxcJylcXG4gIGNoYW5nZT1ydW4oYXJndixqc29uLmR1bXBzKHBhdGNoKSlcXG4gIHJlcXVpcmUoY2hhbmdlLnJldHVybmNvZGU9PTAsXFwnQXBwbGljYXRpb24gcGF0Y2ggb3V0Y29tZSBhbWJpZ3VvdXM7IGRvIG5vdCByZXRyeVxcJylcXG4gIHJlc3VsdC51cGRhdGUoYWxsX2NoZWNrc19wYXNzPVRydWUsb3BlcmF0aW9uX3JlcXVlc3RlZD1UcnVlLHNvdXJjZV9yZXZpc2lvbj1kZXN0aW5hdGlvbixcXG4gICByZXNvdXJjZXM9b3BlcmF0aW9uW1xcJ3N5bmNcXCddW1xcJ3Jlc291cmNlc1xcJ10scHJ1bmU9RmFsc2Uscm9sbG91dF92ZXJpZmllZD1GYWxzZSxcXG4gICBsYXRlc3RfbGl2ZV9kYXRhYmFzZV9yZXRhaW5lZD1UcnVlLGNsaWVudF9kaWZmX3NoYTI1Nj1oYXNobGliLnNoYTI1NihkaWZmLnN0ZG91dC5lbmNvZGUoKSkuaGV4ZGlnZXN0KCkpXFxuIGlmIHBoYXNlIGluIChcXCd2ZXJpZnlcXCcsXFwncm9sbGJhY2stdmVyaWZ5XFwnKTpcXG4gIG9wPWFwcC5nZXQoXFwnc3RhdHVzXFwnLHt9KS5nZXQoXFwnb3BlcmF0aW9uU3RhdGVcXCcse30pO3N5bmM9b3AuZ2V0KFxcJ29wZXJhdGlvblxcJyx7fSkuZ2V0KFxcJ3N5bmNcXCcse30pXFxuICBpbnRlbnQ9cGF5bG9hZC5nZXQoXFwnb3BlcmF0aW9uX2ludGVudFxcJyk7cmVxdWlyZShpc2luc3RhbmNlKGludGVudCxkaWN0KSBhbmQgaW50ZW50LmdldChcXCdzdGF0ZVxcJyk9PVxcJ0NPTVBMRVRFXFwnLFxcJ3ZlcmlmaWVkIG1hdGNoaW5nIG9wZXJhdGlvbiBpbnRlbnQgcmVxdWlyZWRcXCcpXFxuICByZXF1ZXN0PWludGVudC5nZXQoXFwncmVzdWx0XFwnLHt9KTtyZXF1aXJlKHJlcXVlc3QuZ2V0KFxcJ29wZXJhdGlvbl9yZXF1ZXN0ZWRcXCcpIGlzIFRydWUgYW5kIHJlcXVlc3QuZ2V0KFxcJ3BydW5lXFwnKSBpcyBGYWxzZSBhbmQgcmVxdWVzdC5nZXQoXFwnc291cmNlX3JldmlzaW9uXFwnKT09dGFyZ2V0LFxcJ3JlY29yZGVkIHJlcXVlc3QgbXVzdCBleHBsaWNpdGx5IGRpc2FibGUgcHJ1bmVcXCcpXFxuICBzdGFydGVkPWRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQoaW50ZW50W1xcJ3N0YXJ0ZWRfYXRcXCddKTtmaW5pc2hlZD1kYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KG9wLmdldChcXCdmaW5pc2hlZEF0XFwnLFxcJ1xcJykucmVwbGFjZShcXCdaXFwnLFxcJyswMDowMFxcJykpO29ic2VydmVkX3N0YXJ0PWRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQob3AuZ2V0KFxcJ3N0YXJ0ZWRBdFxcJyxcXCdcXCcpLnJlcGxhY2UoXFwnWlxcJyxcXCcrMDA6MDBcXCcpKVxcbiAgcmVxdWlyZShzdGFydGVkLnR6aW5mbyBpcyBub3QgTm9uZSBhbmQgb2JzZXJ2ZWRfc3RhcnQudHppbmZvIGlzIG5vdCBOb25lIGFuZCBmaW5pc2hlZC50emluZm8gaXMgbm90IE5vbmUgYW5kIHN0YXJ0ZWQ8PW9ic2VydmVkX3N0YXJ0PD1maW5pc2hlZCxcXCdvcGVyYXRpb24gY29tcGxldGlvbiBpcyBub3QgZnJvbSB0aGlzIGF0dGVtcHRcXCcpXFxuICByZXF1aXJlKG9wLmdldChcXCdwaGFzZVxcJyk9PVxcJ1N1Y2NlZWRlZFxcJyBhbmQgc3luYy5nZXQoXFwncmV2aXNpb25cXCcpPT10YXJnZXQgYW5kIChcXCdwcnVuZVxcJyBub3QgaW4gc3luYyBvciBzeW5jW1xcJ3BydW5lXFwnXSBpcyBGYWxzZSlcXG4gICBhbmQgb3AuZ2V0KFxcJ29wZXJhdGlvblxcJyx7fSkuZ2V0KFxcJ2luaXRpYXRlZEJ5XFwnKT09e1xcJ3VzZXJuYW1lXFwnOlxcJ2N1c3RvZGlhbi1jb2RleFxcJ31cXG4gICBhbmQgc3luYy5nZXQoXFwncmVzb3VyY2VzXFwnKT09cmVxdWVzdC5nZXQoXFwncmVzb3VyY2VzXFwnKT09W3tcXCdncm91cFxcJzpcXCdhcHBzXFwnLFxcJ2tpbmRcXCc6XFwnRGVwbG95bWVudFxcJyxcXCduYW1lXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJ31dLFxcJ2V4YWN0IG5hdGl2ZSBBcmdvIG9wZXJhdGlvbiBjb21wbGV0aW9uIHVudmVyaWZpZWRcXCcpXFxuICBzeW5jZWQ9b3AuZ2V0KFxcJ3N5bmNSZXN1bHRcXCcse30pO3JlcXVpcmUoc3luY2VkLmdldChcXCdyZXZpc2lvblxcJyk9PXRhcmdldCBhbmQgbGVuKHN5bmNlZC5nZXQoXFwncmVzb3VyY2VzXFwnLFtdKSk9PTEsXFwnbWF0Y2hpbmcgc2luZ2xlLW9iamVjdCBzeW5jIHJlc3VsdCByZXF1aXJlZFxcJylcXG4gIHJlc291cmNlPXN5bmNlZFtcXCdyZXNvdXJjZXNcXCddWzBdO3JlcXVpcmUoYWxsKHJlc291cmNlLmdldChrKT09diBmb3Igayx2IGluIHJlcXVlc3RbXFwncmVzb3VyY2VzXFwnXVswXS5pdGVtcygpKSBhbmQgcmVzb3VyY2UuZ2V0KFxcJ3N0YXR1c1xcJyk9PVxcJ1N5bmNlZFxcJyxcXCdleGFjdCBEZXBsb3ltZW50IHN5bmMgcmVzdWx0IHJlcXVpcmVkXFwnKVxcbiAgcmVxdWlyZShsaXZlW1xcJ3N0YXR1c1xcJ10uZ2V0KFxcJ29ic2VydmVkR2VuZXJhdGlvblxcJyk9PWxpdmVbXFwnbWV0YWRhdGFcXCddW1xcJ2dlbmVyYXRpb25cXCddLFxcJ2NvbnRyb2xsZXIgZ2VuZXJhdGlvbiBub3Qgc2V0dGxlZFxcJylcXG4gIHJlc3VsdC51cGRhdGUobmF0aXZlX3JvbGxvdXRfdmVyaWZpZWQ9VHJ1ZSxjdXJyZW50X3NjaGVtYTVfZGF0YWJhc2VfcmV0YWluZWQ9VHJ1ZSxyZWNvdmVyeV92ZXJpZmljYXRpb249cGhhc2U9PVxcJ3JvbGxiYWNrLXZlcmlmeVxcJylcXG5leGNlcHQgQmFzZUV4Y2VwdGlvbiBhcyBlcnJvcjpcXG4gcmVzdWx0LnVwZGF0ZShhbGxfY2hlY2tzX3Bhc3M9RmFsc2UsZmFpbHVyZV9jbGFzcz10eXBlKGVycm9yKS5fX25hbWVfXyxcXG4gIGZhaWx1cmU9XFwnZml4ZWQgcGhhc2Ugb3V0Y29tZSByZWZ1c2VkIG9yIGFtYmlndW91czsgcmF3IG91dHB1dCB3aXRoaGVsZDsgbm8gcmV0cnlcXCcpXFxucHJpbnQoanNvbi5kdW1wcyhyZXN1bHQpKTtzeXMuZXhpdCgwIGlmIHJlc3VsdC5nZXQoXFwnYWxsX2NoZWNrc19wYXNzXFwnKSBpcyBUcnVlIGVsc2UgMSlcXG4nXG4iCiAgICB9LAogICAgImV4ZWN1dGlvbi9yZWNlaXB0X3NhZmV0eS5weSI6IHsKICAgICAgInNoYTI1NiI6ICI1YzU0MzczZjJkYzRiMDY0MDA4MjI1YzE4NmVmYjFkNWFmZGVlYzM2ZDE1MzUwYmRhMGExMmRlZDk3NjAyZDFiIiwKICAgICAgImNvbnRlbnQiOiAiXCJcIlwiT25seSBzdHJ1Y3R1cmFsIGNvdW50L2hhc2ggcmVjZWlwdHMgY2FuIGxlYXZlIHRoZSBwcml2YXRlIGV4ZWN1dGlvbiBwaGFzZS5cIlwiXCJcbmRlZiBjb3VudHModmFsdWUpOlxuICAgIGlmIChzZXQodmFsdWUpICE9IHsnc2NoZW1hX3ZlcnNpb24nLCAnbGlmZWN5Y2xlJywgJ291dGJveCcsICdzdWJtaXNzaW9ucycsICdpbnRlZ3JpdHknLFxuICAgICAgICAgICAgICAgICAgICAgICAncmVhZF9vbmx5X3ByZV9vcGVuJywgJ3N0b3JlX2NvbnN0cnVjdGVkJ31cbiAgICAgICAgICAgIG9yIHZhbHVlWydzY2hlbWFfdmVyc2lvbiddICE9IDUgb3IgdmFsdWVbJ2ludGVncml0eSddICE9ICdvaydcbiAgICAgICAgICAgIG9yIHZhbHVlWydyZWFkX29ubHlfcHJlX29wZW4nXSBpcyBub3QgVHJ1ZSBvciB2YWx1ZVsnc3RvcmVfY29uc3RydWN0ZWQnXSBpcyBub3QgRmFsc2VcbiAgICAgICAgICAgIG9yIHNldCh2YWx1ZVsnbGlmZWN5Y2xlJ10pICE9IHsncmVjb3JkcycsICdldmVudHMnLCAncGVuZGluZyd9XG4gICAgICAgICAgICBvciBub3Qgc2V0KHZhbHVlWydvdXRib3gnXSkgPD0geydwZW5kaW5nJywgJ2RlbGl2ZXJlZCcsICdibG9ja2VkJ31cbiAgICAgICAgICAgIG9yIG5vdCBzZXQodmFsdWVbJ3N1Ym1pc3Npb25zJ10pIDw9IHsncHJlcGFyZWQnLCAnaW5fZmxpZ2h0JywgJ2NvbmZpcm1lZCcsICd1bnJlc29sdmVkJ30pOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjb3VudC1vbmx5IHJlY2VpcHQgc2hhcGUvc3RhdGUgcmVmdXNlZDsgdmFsdWVzIHdpdGhoZWxkJylcbiAgICBmb3IgZ3JvdXAgaW4gKCdsaWZlY3ljbGUnLCAnb3V0Ym94JywgJ3N1Ym1pc3Npb25zJyk6XG4gICAgICAgIGlmIGFueSh0eXBlKG51bWJlcikgaXMgbm90IGludCBvciBudW1iZXIgPCAwIG9yIG51bWJlciA+IDEwKioxMlxuICAgICAgICAgICAgICAgZm9yIG51bWJlciBpbiB2YWx1ZVtncm91cF0udmFsdWVzKCkpOlxuICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignY291bnQtb25seSByZWNlaXB0IHZhbHVlcyByZWZ1c2VkJylcbiAgICByZXR1cm4gdmFsdWVcbiIKICAgIH0sCiAgICAiZXhlY3V0aW9uL3Rlc3RfZXhlY3V0aW9uLnB5IjogewogICAgICAic2hhMjU2IjogIjc0NTgyMjIwNDlkOGRmMmYwMWYyY2UzNTliNTg2NGFlNDFjZDczMDU0ZWU1OTY1OWNhOGNkOGFjMTdjZjczYWMiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJTeW50aGV0aWMgY3VzdG9keS90cmFuc3BvcnQgdGVzdHMuIE5vIG5hdGl2ZSBkYXRhLCBEb2NrZXIgb3IgY2x1c3RlciBhY3Rpb24uXCJcIlwiXG5pbXBvcnQgY29weVxuaW1wb3J0IGRhdGV0aW1lXG5pbXBvcnQgaW9cbmltcG9ydCBqc29uXG5pbXBvcnQgb3NcbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHN1YnByb2Nlc3NcbmltcG9ydCBzeXNcbmltcG9ydCB0ZW1wZmlsZVxuaW1wb3J0IHVuaXR0ZXN0XG5mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoXG5mcm9tIGNvbnRleHRsaWIgaW1wb3J0IHJlZGlyZWN0X3N0ZG91dFxuXG5pbXBvcnQgYWN0dWF0b3JcbmZyb20gYXV0aG9yaXR5X2pvdXJuYWwgaW1wb3J0IEpvdXJuYWwsIGF1dGhvcml0eSwgZnJlc2hfc2NhblxuZnJvbSBuYXRpdmVfcHJvZ3JhbSBpbXBvcnQgUFJPR1JBTVxuZnJvbSByZWNlaXB0X3NhZmV0eSBpbXBvcnQgY291bnRzXG5cbkNBU0UgPSBQYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50LnBhcmVudFxuTk9XID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAyNiwgMTAsIDExLCAyLCAwLCB0emluZm89ZGF0ZXRpbWUudGltZXpvbmUudXRjKVxuUkVWSVNJT04gPSAnZScgKiA0MFxuQ09VTlQgPSB7J3NjaGVtYV92ZXJzaW9uJzogNSwgJ2ludGVncml0eSc6ICdvaycsICdyZWFkX29ubHlfcHJlX29wZW4nOiBUcnVlLCAnc3RvcmVfY29uc3RydWN0ZWQnOiBGYWxzZSxcbiAgICAgICAgICdsaWZlY3ljbGUnOiB7J3JlY29yZHMnOiAzLCAnZXZlbnRzJzogOCwgJ3BlbmRpbmcnOiAxfSxcbiAgICAgICAgICdvdXRib3gnOiB7J3BlbmRpbmcnOiAyLCAnZGVsaXZlcmVkJzogMTB9LCAnc3VibWlzc2lvbnMnOiB7J2NvbmZpcm1lZCc6IDEsICd1bnJlc29sdmVkJzogMX19XG5cblxuZGVmIGFjY2VwdGVkKCk6XG4gICAgYXBwcm92YWwgPSAnMTExMTExMTEtMTExMS00MTExLTgxMTEtMTExMTExMTExMTExJ1xuICAgIHJldmlldyA9ICdyZXZpZXctMjIyMjIyMjItMjIyMi00MjIyLTgyMjItMjIyMjIyMjIyMjIyJ1xuICAgIGRpc3Bvc2l0aW9uID0gJ2Rpc3AtMzMzMzMzMzMtMzMzMy00MzMzLTgzMzMtMzMzMzMzMzMzMzMzJ1xuICAgIHJlY2VpcHQgPSB7J3Byb3Bvc2FsX2lkJzogJ0lORkQtV1AtMDAwOS1UMDUvemxpYjg1MDkxLXIxJyxcbiAgICAgICAgICAgICAgICdtZW1vX2lkJzogJ2luZmQtMjAyNjEwMTEtemxpYi1yZW1lZGlhdGlvbi1yMScsICdtZW1vX3ZlcnNpb24nOiAxLFxuICAgICAgICAgICAgICAgJ21lbW9fc2hhMjU2JzogJ2EnICogNjQsICdzb3VyY2VfcmV2aXNpb24nOiBSRVZJU0lPTiwgJ2FjdGl2YXRpb24nOiAnQVBQUk9WRUQnLFxuICAgICAgICAgICAgICAgJ2F1dGhvcml0eV9tb2RlJzogJ0FETUlOSVNURVInLCAndGFyZ2V0JzogJ3JlYWxtOmt1YmVybmV0ZXMvcmFpbGlhbmNlMDEvaW5mb3JtZWQtZGVjaXNpb24nLFxuICAgICAgICAgICAgICAgJ3ZlcmlmaWNhdGlvbl9tZXRob2QnOiAncm9vdC1maXhlZC1vcmlnaW4tbmF0aXZlLXJlYWRiYWNrJywgJ3J1bnRpbWVfYXV0aGVudGljYXRlZF9ncmFudCc6IEZhbHNlLCAnb3V0Y29tZV9xdWVyeSc6ICcvbGlmZWN5Y2xlL21lbW9zL2luZmQtMjAyNjEwMTEtemxpYi1yZW1lZGlhdGlvbi1yMS9vdXRjb21lcz92ZXJzaW9uPTEnLFxuICAgICAgICAgICAgICAgJ3ZlcmlmaWVkX2F0JzogJzIwMjYtMTAtMTFUMDI6MDA6MDBaJywgJ2FjY2VwdGVkX2F0JzogJzIwMjYtMTAtMTFUMDE6NTk6MDBaJyxcbiAgICAgICAgICAgICAgICdyZXZpZXdfbWVtb19pZCc6IHJldmlldywgJ2FwcHJvdmFsX2lkJzogYXBwcm92YWwsICdkaXNwb3NpdGlvbl9pZCc6IGRpc3Bvc2l0aW9ufVxuICAgIG91dGNvbWUgPSB7J21lbW9faWQnOiByZWNlaXB0WydtZW1vX2lkJ10sICdyZXZpZXcnOiB7J21lbW9faWQnOiByZXZpZXcsICdzdGFsZSc6IEZhbHNlLCAnaW50YWtlX3N0YXRlJzogJ3JlYWR5J30sXG4gICAgICAgICAgICAgICAnZGlzcG9zaXRpb25zJzogW3snYXBwcm92YWxfaWQnOiBOb25lLCAnc3VibWlzc2lvbl9zdGF0ZSc6ICdjb25maXJtZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3Bvc2l0aW9uJzogeyd2ZXJiJzogJ2FjY2VwdCcsICdtZW1vX3ZlcnNpb24nOiAxLCAnbWVtb19pZCc6IHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwcm92YWxfaWQnOiBhcHByb3ZhbCwgJ2lkJzogZGlzcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdG9yJzogeydraW5kJzogJ3BlcnNvbicsICdzdWInOiAndWlkPXBsYXRmb3JtLXJvb3Qsb3U9cGVvcGxlLGRjPW5ldGtpbmdkb20sZGM9bG9jYWwnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXQnOiByZWNlaXB0WydhY2NlcHRlZF9hdCddfX1dfVxuICAgIHJldHVybiByZWNlaXB0LCBvdXRjb21lXG5cblxuY2xhc3MgQXV0aG9yaXR5QW5kQ3VzdG9keSh1bml0dGVzdC5UZXN0Q2FzZSk6XG4gICAgZGVmIHRlc3RfZXhhY3RfbmVzdGVkX2ZvdW5kZXJfcmVjZWlwdF9ub3RfdG9wX2xldmVsX2FwcHJvdmFsKHNlbGYpOlxuICAgICAgICByZWNlaXB0LCBvdXRjb21lID0gYWNjZXB0ZWQoKVxuICAgICAgICByZXN1bHQgPSBhdXRob3JpdHkocmVjZWlwdCwgb3V0Y29tZSwgJ2EnICogNjQsIFJFVklTSU9OLCAnZHJpbGwtY29weScsIE5PVylcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRbJ2FwcHJvdmFsX2lkJ10sIHJlY2VpcHRbJ2FwcHJvdmFsX2lkJ10pXG5cbiAgICBkZWYgdGVzdF9wZW5kaW5nX3N0YWxlX3dyb25nX2FjdG9yX3ZlcnNpb25fYW5kX2JpbmRpbmdfcmVmdXNlKHNlbGYpOlxuICAgICAgICBtdXRhdGlvbnMgPSBbbGFtYmRhIHIsIG86IHIudXBkYXRlKGFjdGl2YXRpb249J1BFTkRJTkcnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZShtZW1vX3NoYTI1Nj0nY2hhbmdlZCcpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IHIudXBkYXRlKHNvdXJjZV9yZXZpc2lvbj0nY2hhbmdlZCcpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IHIudXBkYXRlKHRhcmdldD0nb3RoZXInKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZSh2ZXJpZmllZF9hdD0nMjAyNi0xMC0xMVQwMTowMDowMFonKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZSh2ZXJpZmljYXRpb25fbWV0aG9kPSdjYWxsZXItYXNzZXJ0ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZShydW50aW1lX2F1dGhlbnRpY2F0ZWRfZ3JhbnQ9VHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1sncmV2aWV3J10udXBkYXRlKHN0YWxlPVRydWUpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ3JldmlldyddLnVwZGF0ZShpbnRha2Vfc3RhdGU9J3BlbmRpbmcnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydkaXNwb3NpdGlvbnMnXVswXS51cGRhdGUoc3VibWlzc2lvbl9zdGF0ZT0ndW5yZXNvbHZlZCcpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ2Rpc3Bvc2l0aW9ucyddWzBdWydkaXNwb3NpdGlvbiddLnVwZGF0ZShtZW1vX3ZlcnNpb249MyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1snZGlzcG9zaXRpb25zJ11bMF1bJ2Rpc3Bvc2l0aW9uJ10udXBkYXRlKGFjdG9yPXsna2luZCc6ICdhZ2VudCcsICdzdWInOiAncGxhdGZvcm0tcm9vdCd9KSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydkaXNwb3NpdGlvbnMnXS5hcHBlbmQoY29weS5kZWVwY29weShvWydkaXNwb3NpdGlvbnMnXVswXSkpXVxuICAgICAgICBmb3IgbXV0YXRlIGluIG11dGF0aW9uczpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KG11dGF0ZT1tdXRhdGUpOlxuICAgICAgICAgICAgICAgIHIsIG8gPSBhY2NlcHRlZCgpXG4gICAgICAgICAgICAgICAgbXV0YXRlKHIsIG8pXG4gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5KHIsIG8sICdhJyAqIDY0LCBSRVZJU0lPTiwgJ3JlbGVhc2UnLCBOT1cpXG5cbiAgICBkZWYgdGVzdF9leHBpcmVkX3dpbmRvd19hbmRfdW5rbm93bl9waGFzZV9yZWZ1c2Uoc2VsZik6XG4gICAgICAgIHIsIG8gPSBhY2NlcHRlZCgpXG4gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICBhdXRob3JpdHkociwgbywgJ2EnICogNjQsIFJFVklTSU9OLCAnYXJiaXRyYXJ5JywgTk9XKVxuICAgICAgICBsYXRlID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAyNiwgMTAsIDEzLCB0emluZm89ZGF0ZXRpbWUudGltZXpvbmUudXRjKVxuICAgICAgICByWyd2ZXJpZmllZF9hdCddID0gbGF0ZS5pc29mb3JtYXQoKVxuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgYXV0aG9yaXR5KHIsIG8sICdhJyAqIDY0LCBSRVZJU0lPTiwgJ3JvbGxiYWNrJywgbGF0ZSlcblxuICAgIGRlZiB0ZXN0X2R1cmFibGVfaW50ZW50X3ByZWNlZGVzX2Rpc3BhdGNoX2FuZF9uZXZlcl9yZXRyaWVzKHNlbGYpOlxuICAgICAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGRpcmVjdG9yeTpcbiAgICAgICAgICAgIHBhcmVudCA9IFBhdGgoZGlyZWN0b3J5KVxuICAgICAgICAgICAgb3MuY2htb2QocGFyZW50LCAwbzcwMClcbiAgICAgICAgICAgIGpvdXJuYWwgPSBKb3VybmFsKHBhcmVudCwgeydjYXNlJzogJ2ZpeHR1cmUnfSlcbiAgICAgICAgICAgIGpvdXJuYWwuc3RhcnQoJ2RyaWxsLWJhY2t1cCcsIHsnYXBwcm92YWxfaWQnOiAnZml4dHVyZSd9KVxuICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uLmxvYWRzKGpvdXJuYWwucGF0aC5yZWFkX3RleHQoKSlbJ3BoYXNlcyddWydkcmlsbC1iYWNrdXAnXVsnc3RhdGUnXSwgJ1JVTk5JTkcnKVxuICAgICAgICAgICAgam91cm5hbC5jbG9zZSgpICAjIHNpbXVsYXRlZCBjcmFzaCBiZWZvcmUgcmVzdWx0XG4gICAgICAgICAgICByZWNvdmVyZWQgPSBKb3VybmFsKHBhcmVudCwgeydjYXNlJzogJ2ZpeHR1cmUnfSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgcmVjb3ZlcmVkLnN0YXJ0KCdkcmlsbC1iYWNrdXAnLCB7fSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgcmVjb3ZlcmVkLnN0YXJ0KCdkcmlsbC1iYWNrdXAnLCB7fSlcbiAgICAgICAgICAgIHJlY292ZXJlZC5jbG9zZSgpXG5cbiAgICBkZWYgdGVzdF9waGFzZV9vcmRlcl9hbmRfdW5jZXJ0YWluX3JlbGVhc2VfYWxsb3dzX29ubHlfZGlzdGluY3RfcmVjb3Zlcnkoc2VsZik6XG4gICAgICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgZGlyZWN0b3J5OlxuICAgICAgICAgICAgb3MuY2htb2QoZGlyZWN0b3J5LCAwbzcwMClcbiAgICAgICAgICAgIGogPSBKb3VybmFsKGRpcmVjdG9yeSwgeydjYXNlJzogJ2ZpeHR1cmUnfSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgai5zdGFydCgncmVsZWFzZScsIHt9KVxuICAgICAgICAgICAgZm9yIHBoYXNlIGluIGFjdHVhdG9yLlBIQVNFU1s6Nl06XG4gICAgICAgICAgICAgICAgai5zdGFydChwaGFzZSwge30pXG4gICAgICAgICAgICAgICAgai5maW5pc2gocGhhc2UsIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZX0pXG4gICAgICAgICAgICBqLnN0YXJ0KCdyZWxlYXNlJywge30pXG4gICAgICAgICAgICBqLmZpbmlzaCgncmVsZWFzZScsIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2V9KVxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICBqLnN0YXJ0KCdyZWxlYXNlJywge30pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIGouc3RhcnQoJ3ZlcmlmeScsIHt9KVxuICAgICAgICAgICAgai5zdGFydCgncm9sbGJhY2snLCB7fSlcbiAgICAgICAgICAgIGouZmluaXNoKCdyb2xsYmFjaycsIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZX0pXG4gICAgICAgICAgICBqLmNsb3NlKClcblxuICAgIGRlZiB0ZXN0X3NlY3JldF9vcl91bmtub3duX2NoaWxkX291dHB1dF9pc193aXRoaGVsZChzZWxmKTpcbiAgICAgICAgZm9yIGJvZHkgaW4gKCdub3QtanNvbicsICd7XCJhbGxfY2hlY2tzX3Bhc3NcIjp0cnVlLFwidG9rZW5cIjpcInByaXZhdGUtdmFsdWVcIn0nLFxuICAgICAgICAgICAgICAgICAgICAgJ3tcImFsbF9jaGVja3NfcGFzc1wiOnRydWUsXCJzbmFwc2hvdF9yZWFkb25seVwiOntcInNjaGVtYV92ZXJzaW9uXCI6NX19Jyk6XG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIGFjdHVhdG9yLmpzb25fcmVzdWx0KHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwgMCwgYm9keSwgJycpKVxuICAgICAgICB3cm9uZyA9IGNvcHkuZGVlcGNvcHkoQ09VTlQpXG4gICAgICAgIHdyb25nWydvdXRib3gnXSA9IHsncHJpdmF0ZS1yb3ctdmFsdWUnOiAxfVxuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgY291bnRzKHdyb25nKVxuICAgICAgICBjb3VudHMoQ09VTlQpICAjIGJsb2NrZWQvdW5yZXNvbHZlZCBjb3VudHMgYXJlIG5vdCByZXF1aXJlZCB0byBiZSB6ZXJvLlxuXG4gICAgZGVmIHRlc3RfYmluYXJ5X2NvcHlfaXNfYm91bmRlZF9wcml2YXRlX2FuZF9uZXZlcl9lY2hvZWQoc2VsZik6XG4gICAgICAgIGJsb2IgPSBiJ3N5bnRoZXRpYyBwcml2YXRlIGZpeHR1cmUgYnl0ZXMnXG4gICAgICAgIGRpZ2VzdCA9IF9faW1wb3J0X18oJ2hhc2hsaWInKS5zaGEyNTYoYmxvYikuaGV4ZGlnZXN0KClcbiAgICAgICAgbWV0YWRhdGEgPSB7J2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdzbmFwc2hvdF9maWxlJzogJ2RyaWxsLnNxbGl0ZScsICdzbmFwc2hvdF9ieXRlcyc6IGxlbihibG9iKSxcbiAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90X3NoYTI1Nic6IGRpZ2VzdCwgJ3NuYXBzaG90X3JlYWRvbmx5JzogQ09VTlQsXG4gICAgICAgICAgICAgICAgICAgICdwb2RfbmFtZSc6ICdmaXh0dXJlLXBvZCcsICdwb2RfdWlkJzogJ2ZpeHR1cmUtdWlkJ31cbiAgICAgICAgam91cm5hbCA9IHR5cGUoJ0ZpeHR1cmVKb3VybmFsJywgKCksIHsnZGF0YSc6IHsncGhhc2VzJzogeydkcmlsbC1iYWNrdXAnOiB7J3Jlc3VsdCc6IG1ldGFkYXRhfX19fSkoKVxuICAgICAgICByZWFsX3BvcGVuID0gc3VicHJvY2Vzcy5Qb3BlblxuICAgICAgICBmb3IgZXh0cmEgaW4gKGInJywgYidvdmVyc2l6ZWQnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGV4dHJhPWV4dHJhKSwgdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgZm9sZGVyOlxuICAgICAgICAgICAgICAgIG9zLmNobW9kKGZvbGRlciwgMG83MDApXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gaW8uU3RyaW5nSU8oKVxuXG4gICAgICAgICAgICAgICAgZGVmIGNoaWxkKCphcmdzLCAqKmt3YXJncyk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsX3BvcGVuKFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBzeXM7c3lzLnN0ZG91dC5idWZmZXIud3JpdGUoJyArIHJlcHIoYmxvYiArIGV4dHJhKSArICcpJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG5cbiAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChhY3R1YXRvciwgJ0NVU1RPRFknLCBQYXRoKGZvbGRlcikpLCBwYXRjaC5vYmplY3QoYWN0dWF0b3IsICdyZW1vdGUnLCByZXR1cm5fdmFsdWU9bWV0YWRhdGEpLCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2goJ3N1YnByb2Nlc3MuUG9wZW4nLCBzaWRlX2VmZmVjdD1jaGlsZCksIHJlZGlyZWN0X3N0ZG91dChvdXRwdXQpOlxuICAgICAgICAgICAgICAgICAgICBpZiBleHRyYTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWF0b3IuY29weV9zbmFwc2hvdCgnZHJpbGwtY29weScsIFJFVklTSU9OLCB7fSwgam91cm5hbClcbiAgICAgICAgICAgICAgICAgICAgZWxzZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFjdHVhdG9yLmNvcHlfc25hcHNob3QoJ2RyaWxsLWNvcHknLCBSRVZJU0lPTiwge30sIGpvdXJuYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0WydvZmZfY2x1c3Rlcl9wcml2YXRlX2NvcHlfdmVyaWZpZWQnXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKFBhdGgoZm9sZGVyKSAvICdkcmlsbC5zcWxpdGUnKS5yZWFkX2J5dGVzKCksIGJsb2IpXG4gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQuZ2V0dmFsdWUoKSwgJycpXG4gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoUGF0aChmb2xkZXIpIC8gJ2RyaWxsLnNxbGl0ZScpLnN0YXQoKS5zdF9tb2RlICYgMG83NzcsIDBvNjAwKVxuXG4gICAgZGVmIHRlc3RfcmVjcmVhdGVkX29mZmxpbmVfdm9sdW1lX2Nhbm5vdF9iZV9kZWxldGVkKHNlbGYpOlxuICAgICAgICBpZGVudGl0eSA9IHsnTmFtZSc6IGFjdHVhdG9yLlZPTFVNRSwgJ0xhYmVscyc6IHsnbm9uY2UnOiAnb2xkJ30sICdDcmVhdGVkQXQnOiAnb2xkJ31cbiAgICAgICAgam91cm5hbCA9IHR5cGUoJ0ZpeHR1cmVKb3VybmFsJywgKCksIHsnZGF0YSc6IHsncGhhc2VzJzoge1xuICAgICAgICAgICAgJ29mZmxpbmUtdmVyaWZ5JzogeydyZXN1bHQnOiB7J2NyZWF0ZWRfdm9sdW1lX2lkZW50aXR5JzogaWRlbnRpdHl9fX19fSkoKVxuICAgICAgICBpbnNwZWN0ZWQgPSBbeyoqaWRlbnRpdHksICdDcmVhdGVkQXQnOiAncmVjcmVhdGVkJ31dXG4gICAgICAgIHdpdGggcGF0Y2gub2JqZWN0KGFjdHVhdG9yLCAnZG9ja2VyJywgcmV0dXJuX3ZhbHVlPXN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwgMCwganNvbi5kdW1wcyhpbnNwZWN0ZWQpLCAnJykpIGFzIG1vY2tlZDpcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgYWN0dWF0b3IuY2xlYW51cF9vZmZsaW5lKGpvdXJuYWwpXG4gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2tlZC5jYWxsX2NvdW50LCAxKVxuXG4gICAgZGVmIHRlc3Rfb2ZmbGluZV9wb3N0X2FkbWluX2ludGVncml0eV9hbmRfb3JpZ2luYWxfaGFzaF9hcmVfcmVjaGVja2VkKHNlbGYpOlxuICAgICAgICBmb3IgZGVmZWN0IGluICgnbm9uZScsICdwb3N0LWludGVncml0eScsICdvcmlnaW5hbC1oYXNoJyk6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChkZWZlY3Q9ZGVmZWN0KSwgdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgZGlyZWN0b3J5OlxuICAgICAgICAgICAgICAgIGZvbGRlcj1QYXRoKGRpcmVjdG9yeSk7b3MuY2htb2QoZm9sZGVyLDBvNzAwKVxuICAgICAgICAgICAgICAgIHNuYXBzaG90PWZvbGRlci8nZHJpbGwuc3FsaXRlJztzbmFwc2hvdC53cml0ZV9ieXRlcyhiJ3ByaXZhdGUgc3ludGhldGljIHNuYXBzaG90Jyk7b3MuY2htb2Qoc25hcHNob3QsMG82MDApXG4gICAgICAgICAgICAgICAgZGlnZXN0PWFjdHVhdG9yLnNoYShzbmFwc2hvdClcbiAgICAgICAgICAgICAgICBwcmlvcj17J3NuYXBzaG90X3NoYTI1Nic6ZGlnZXN0LCdzbmFwc2hvdF9yZWFkb25seSc6Q09VTlR9XG4gICAgICAgICAgICAgICAgam91cm5hbD10eXBlKCdGaXh0dXJlSm91cm5hbCcsKCkseydkYXRhJzp7J3BoYXNlcyc6eydkcmlsbC1jb3B5Jzp7J3Jlc3VsdCc6cHJpb3J9LCdvZmZsaW5lLXZlcmlmeSc6eydhdHRlbXB0X2lkJzonbm9uY2UnfX19LCdub3RlJzpsYW1iZGEgKmFyZ3M6Tm9uZX0pKClcbiAgICAgICAgICAgICAgICByZWFkcz1bXVxuICAgICAgICAgICAgICAgIHZvbHVtZT17J05hbWUnOmFjdHVhdG9yLlZPTFVNRSwnTGFiZWxzJzp7J2luZm9ybWVkLWRlY2lzaW9uLmNhc2UnOidpbmZkLXpsaWItMjAyNjEwMTEtcjEnLCdpbmZvcm1lZC1kZWNpc2lvbi51c2UnOidvZmZsaW5lLXJlc3RvcmUtb25seScsJ2luZm9ybWVkLWRlY2lzaW9uLmF0dGVtcHQnOidub25jZSd9LCdEcml2ZXInOidsb2NhbCcsJ1Njb3BlJzonbG9jYWwnLCdDcmVhdGVkQXQnOidmaXh0dXJlJywnT3B0aW9ucyc6Tm9uZX1cbiAgICAgICAgICAgICAgICBkZWYgZG9ja2VyKGFyZ3YsIGJvZHk9Tm9uZSwgKiprd2FyZ3MpOlxuICAgICAgICAgICAgICAgICAgICBpZiBhcmd2WzBdPT0naW5mbyc6Ym9keT1qc29uLmR1bXBzKCdibnQtbGFwMDAxJylcbiAgICAgICAgICAgICAgICAgICAgZWxpZiBhcmd2WzoyXT09Wyd2b2x1bWUnLCdscyddOmJvZHk9JydcbiAgICAgICAgICAgICAgICAgICAgZWxpZiBhcmd2WzoyXT09Wyd2b2x1bWUnLCdjcmVhdGUnXTpib2R5PWFjdHVhdG9yLlZPTFVNRVxuICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZ3ZbOjJdPT1bJ3ZvbHVtZScsJ2luc3BlY3QnXTpib2R5PWpzb24uZHVtcHMoW3ZvbHVtZV0pXG4gICAgICAgICAgICAgICAgICAgIGVsaWYgJ2luZm9ybWVkLWRlY2lzaW9uLWFkbWluJyBpbiBhcmd2OlxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keT1qc29uLmR1bXBzKHtrZXk6Q09VTlRba2V5XSBmb3Iga2V5IGluICgnc2NoZW1hX3ZlcnNpb24nLCdsaWZlY3ljbGUnLCdvdXRib3gnLCdzdWJtaXNzaW9ucycpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRlZmVjdD09J29yaWdpbmFsLWhhc2gnOnNuYXBzaG90LndyaXRlX2J5dGVzKGInY2hhbmdlZCBzeW50aGV0aWMgb3JpZ2luYWwnKVxuICAgICAgICAgICAgICAgICAgICBlbGlmICctLWVudHJ5cG9pbnQnIGluIGFyZ3YgYW5kICdweXRob24nIGluIGFyZ3Y6XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkcy5hcHBlbmQoYXJndik7cHJvb2Y9Y29weS5kZWVwY29weShDT1VOVClcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihyZWFkcyk9PTIgYW5kIGRlZmVjdD09J3Bvc3QtaW50ZWdyaXR5Jzpwcm9vZlsnaW50ZWdyaXR5J109J2NvcnJ1cHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5PWpzb24uZHVtcHMocHJvb2YpXG4gICAgICAgICAgICAgICAgICAgIGVsc2U6cmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ3VuZXhwZWN0ZWQgb2ZmbGluZSBjb21tYW5kJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LDAsYm9keSwnJylcbiAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChhY3R1YXRvciwnQ1VTVE9EWScsZm9sZGVyKSxwYXRjaC5vYmplY3QoYWN0dWF0b3IsJ0NBU0UnLENBU0UpLHBhdGNoLm9iamVjdChhY3R1YXRvciwnZG9ja2VyJyxzaWRlX2VmZmVjdD1kb2NrZXIpLHBhdGNoKCdzdWJwcm9jZXNzLnJ1bicscmV0dXJuX3ZhbHVlPXN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwwLCd7XCJhbGxfY2hlY2tzX3Bhc3NcIjp0cnVlLFwicHJpdmF0ZV9jb3B5X3ZlcmlmaWVkXCI6dHJ1ZX0nLCcnKSk6XG4gICAgICAgICAgICAgICAgICAgIGlmIGRlZmVjdD09J25vbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PWFjdHVhdG9yLm9mZmxpbmVfdmVyaWZ5KGpvdXJuYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdFsnb2ZmbGluZV9wb3N0X2FkbWluX3JlYWRvbmx5J10sQ09VTlQpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0WydvcmlnaW5hbF9zbmFwc2hvdF9oYXNoX3VuY2hhbmdlZCddKVxuICAgICAgICAgICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTphY3R1YXRvci5vZmZsaW5lX3ZlcmlmeShqb3VybmFsKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlYWRzKSwyKVxuXG4gICAgZGVmIHRlc3RfZnJlc2hfZnVsbF9zY2FuX2RiX2V4cGlyeV9hbmRfbmV3X2ZpbmRpbmdzX3JlZnVzZShzZWxmKTpcbiAgICAgICAgcmVjZWlwdD17J2ltYWdlJzphY3R1YXRvci5JTUFHRSwnYXJ0aWZhY3Rfc291cmNlX3JldmlzaW9uJzonOWI0YmIyNWQzMjU2OThhZTU0M2U3ZThhOGEzYzM1OTJkYjFmNThmYycsJ3NjYW5uZXInOidhcXVhc2VjL3RyaXZ5QHNoYTI1Njo2MmIxZTY1ZTg4NjliYzRiNGM2YWE0ZmEyYjIxNTk1MjU2YzdjMmY2MDE4YTlkOWFkNjFjYWY4NzE4N2MxOTY5Jywnbm9fc3VwcHJlc3Npb24nOlRydWUsJ2Z1bGxfYWxsc2V2ZXJpdHlfc2Nhbic6VHJ1ZSwnZXhpdF9jb2RlJzowLCdjb21wbGV0ZWRfYXQnOicyMDI2LTEwLTExVDAxOjU5OjAwWicsJ2RiX21ldGFkYXRhJzp7J1VwZGF0ZWRBdCc6JzIwMjYtMTAtMTBUMTk6MDA6MDBaJywnTmV4dFVwZGF0ZSc6JzIwMjYtMTAtMTFUMTk6MDA6MDBaJywnVmVyc2lvbic6Mn0sJ2RiX3NoYTI1Nic6J2EnKjY0LCdmdWxsX3JlcG9ydF9zaGEyNTYnOidiJyo2NH1cbiAgICAgICAgcmVwb3J0PXsnUmVzdWx0cyc6W3snVnVsbmVyYWJpbGl0aWVzJzpOb25lfV19XG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJlc2hfc2NhbihyZWNlaXB0LHJlcG9ydCxOT1cpWydhbGxzZXZlcml0eV9maW5kaW5ncyddLDApXG4gICAgICAgIG11dGF0aW9ucz1bbGFtYmRhIHIscDpyLnVwZGF0ZShub19zdXBwcmVzc2lvbj1GYWxzZSksbGFtYmRhIHIscDpyLnVwZGF0ZShpbWFnZT0nZm9yZWlnbicpLGxhbWJkYSByLHA6ci51cGRhdGUoc2Nhbm5lcj0nb3RoZXInKSxsYW1iZGEgcixwOnIudXBkYXRlKGNvbXBsZXRlZF9hdD0nMjAyNi0xMC0xMFQyMTowMDowMFonKSxsYW1iZGEgcixwOnJbJ2RiX21ldGFkYXRhJ10udXBkYXRlKE5leHRVcGRhdGU9JzIwMjYtMTAtMTFUMDE6NTk6MDBaJyksbGFtYmRhIHIscDpwWydSZXN1bHRzJ11bMF0udXBkYXRlKFZ1bG5lcmFiaWxpdGllcz1beydTZXZlcml0eSc6J0xPVyd9XSksbGFtYmRhIHIscDpwLnVwZGF0ZShSZXN1bHRzPVtdKV1cbiAgICAgICAgZm9yIG11dGF0ZSBpbiBtdXRhdGlvbnM6XG4gICAgICAgICAgICByLHA9Y29weS5kZWVwY29weShyZWNlaXB0KSxjb3B5LmRlZXBjb3B5KHJlcG9ydCk7bXV0YXRlKHIscClcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6ZnJlc2hfc2NhbihyLHAsTk9XKVxuXG5cbmNsYXNzIEZpeGVkTmF0aXZlUHJvZ3JhbSh1bml0dGVzdC5UZXN0Q2FzZSk6XG4gICAgZGVmIGZpeHR1cmUoc2VsZik6XG4gICAgICAgIHNlYWxlZCA9IGpzb24ubG9hZHMoKENBU0UgLyAnc2VhbGVkLWxpdmUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpXG4gICAgICAgIGxpdmUgPSBjb3B5LmRlZXBjb3B5KHNlYWxlZClcbiAgICAgICAgbGl2ZVsnbWV0YWRhdGEnXS51cGRhdGUoZ2VuZXJhdGlvbj00MilcbiAgICAgICAgbGl2ZVsnc3RhdHVzJ10gPSB7J3JlYWR5UmVwbGljYXMnOiAxLCAndXBkYXRlZFJlcGxpY2FzJzogMSwgJ29ic2VydmVkR2VuZXJhdGlvbic6IDQyfVxuICAgICAgICBkZXBlbmRlbmNpZXMgPSBqc29uLmxvYWRzKChDQVNFIC8gJ3NlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24nKS5yZWFkX3RleHQoKSlcbiAgICAgICAgY20gPSBjb3B5LmRlZXBjb3B5KGRlcGVuZGVuY2llc1snY29uZmlnbWFwJ10pXG4gICAgICAgIGNtLnBvcCgnY2Fub25pY2FsX2RhdGFfc2hhMjU2JylcbiAgICAgICAgc2VydmljZSA9IGpzb24ubG9hZHMoKENBU0UgLyAnY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKVxuICAgICAgICBzb3VyY2Vfc2VydmljZSA9IGpzb24ubG9hZHMoKFBhdGgoJy9ob21lL3dvcnNjaC9pbmZvcm1lZC1kZWNpc2lvbi9kZXBsb3kvbGlmZWN5Y2xlL3NlcnZpY2UuY2FuZGlkYXRlLmpzb24nKSkucmVhZF90ZXh0KCkpXG4gICAgICAgIGNtWydkYXRhJ10gPSBuZXh0KHggZm9yIHggaW4gc291cmNlX3NlcnZpY2VbJ2l0ZW1zJ10gaWYgeFsna2luZCddID09ICdDb25maWdNYXAnKVsnZGF0YSddXG4gICAgICAgIHB2YyA9IGNvcHkuZGVlcGNvcHkoZGVwZW5kZW5jaWVzWydwdmMnXSlcbiAgICAgICAgcHZjWydzdGF0dXMnXSA9IHsncGhhc2UnOiAnQm91bmQnfVxuICAgICAgICBhcHAgPSB7J21ldGFkYXRhJzogeyd1aWQnOiAnNDk5ODY4ZjItZWFiYy00ZGY0LWFlMzEtYjg5Y2U1OGQ3NTBkJywgJ3Jlc291cmNlVmVyc2lvbic6ICcxNyd9LFxuICAgICAgICAgICAgICAgJ3NwZWMnOiB7J3NvdXJjZSc6IHsncmVwb1VSTCc6ICdodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICdkZXBsb3kvbGlmZWN5Y2xlJywgJ3RhcmdldFJldmlzaW9uJzogJ2M5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTInfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0aW5hdGlvbic6IHsnbmFtZXNwYWNlJzogJ2luZm9ybWVkLWRlY2lzaW9uJywgJ3NlcnZlcic6ICdodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMnfX19XG4gICAgICAgIG9iamVjdHMgPSB7J2RlcGxveW1lbnQnOiBsaXZlLCAnY29uZmlnbWFwJzogY20sICdwdmMnOiBwdmMsICdhcHBsaWNhdGlvbic6IGFwcH1cbiAgICAgICAgcGF5bG9hZCA9IHsncGhhc2UnOiAncmVsZWFzZScsICdzb3VyY2VfcmV2aXNpb24nOiBSRVZJU0lPTiwgJ2FwcHJvdmFsJzoge30sICdzZWFsZWQnOiBzZWFsZWQsXG4gICAgICAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IGRlcGVuZGVuY2llcywgJ2NhbmRpZGF0ZSc6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgJ3JvbGxiYWNrJzoganNvbi5sb2FkcygoQ0FTRSAvICdyb2xsYmFjay1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksXG4gICAgICAgICAgICAgICAgICAgJ3JlYWRvbmx5JzogKENBU0UgLyAnc3FsaXRlX3JlYWRvbmx5LnB5JykucmVhZF90ZXh0KCksJ3B1cnBvc2VfY2hlY2tzJzooQ0FTRS8nY2hlY2tfaW5zdGFsbGVkLnB5JykucmVhZF90ZXh0KCksXG4gICAgICAgICAgICAgICAgICAgJ2luc3RhbGxlZF96bGliJzoganNvbi5sb2FkcygoQ0FTRSAvICdpbnN0YWxsZWQtemxpYi1wcm9vZi5qc29uJykucmVhZF90ZXh0KCkpLCAncmVjZWlwdF9zYWZldHknOiAoUGF0aChfX2ZpbGVfXykucGFyZW50IC8gJ3JlY2VpcHRfc2FmZXR5LnB5JykucmVhZF90ZXh0KCl9XG4gICAgICAgIHJldHVybiBvYmplY3RzLCBwYXlsb2FkXG5cbiAgICBkZWYgZXhlY3V0ZV9mYWtlKHNlbGYsIG9iamVjdHMsIHBheWxvYWQsIGFtYmlndW91cz1GYWxzZSwgc2NoZW1hX3JlZnVzZWQ9RmFsc2UpOlxuICAgICAgICB3cml0ZXMgPSBbXVxuICAgICAgICBjYWxscyA9IFtdXG5cbiAgICAgICAgZGVmIGZha2UoYXJndiwgaW5wdXQ9Tm9uZSwgKiprd2FyZ3MpOlxuICAgICAgICAgICAgY2FsbHMuYXBwZW5kKGFyZ3YpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZ2V0J106XG4gICAgICAgICAgICAgICAga2luZCA9IGFyZ3ZbMl1cbiAgICAgICAgICAgICAgICBpZiBraW5kIGluIG9iamVjdHM6XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBvYmplY3RzW2tpbmRdXG4gICAgICAgICAgICAgICAgZWxpZiBraW5kID09ICdwb2RzJzpcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IHsnaXRlbXMnOiBbeydtZXRhZGF0YSc6IHsnbmFtZSc6ICdmaXh0dXJlLXBvZCcsICd1aWQnOiAnYzRjYjE1NTAtZmVkYS00MDk3LTlkZTQtZDg5MWE2NTdiNjYyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvd25lclJlZmVyZW5jZXMnOiBbeydraW5kJzogJ1JlcGxpY2FTZXQnLCAnbmFtZSc6ICdmaXh0dXJlLXJzJywgJ3VpZCc6ICdycy11aWQnfV19LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlYyc6IG9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3BlYyddWyd0ZW1wbGF0ZSddWydzcGVjJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiB7J3BoYXNlJzogJ1J1bm5pbmcnLCAnY29udGFpbmVyU3RhdHVzZXMnOiBbeyduYW1lJzonaW5mb3JtZWQtZGVjaXNpb24nLCdyZWFkeSc6IFRydWUsJ2ltYWdlSUQnOm9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3BlYyddWyd0ZW1wbGF0ZSddWydzcGVjJ11bJ2NvbnRhaW5lcnMnXVswXVsnaW1hZ2UnXX1dIH19XX1cbiAgICAgICAgICAgICAgICBlbGlmIGtpbmQgPT0gJ3JlcGxpY2FzZXQnOlxuICAgICAgICAgICAgICAgICAgICBib2R5ID0geydtZXRhZGF0YSc6IHsndWlkJzogJ3JzLXVpZCcsICdvd25lclJlZmVyZW5jZXMnOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7J2tpbmQnOiAnRGVwbG95bWVudCcsICd1aWQnOiBwYXlsb2FkWydzZWFsZWQnXVsnbWV0YWRhdGEnXVsndWlkJ119XX19XG4gICAgICAgICAgICAgICAgZWxpZiBraW5kID09ICdub2Rlcyc6XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7J2l0ZW1zJzogW3snbWV0YWRhdGEnOiB7J25hbWUnOiAnZml4dHVyZS1ub2RlJ30sICdzdGF0dXMnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzc2VzJzogW3snYWRkcmVzcyc6ICc5Mi4yMDUuNjIuMjM5J31dLCAnYWxsb2NhdGFibGUnOiB7J2NwdSc6ICc0J30sXG4gICAgICAgICAgICAgICAgICAgICAgICAnY29uZGl0aW9ucyc6IFt7J3R5cGUnOiBrZXksICdzdGF0dXMnOiAnVHJ1ZScgaWYga2V5ID09ICdSZWFkeScgZWxzZSAnRmFsc2UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiAoJ1JlYWR5JywgJ01lbW9yeVByZXNzdXJlJywgJ0Rpc2tQcmVzc3VyZScsICdQSURQcmVzc3VyZScpXX19XX1cbiAgICAgICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigndW5leHBlY3RlZCBmaXhlZCBtZXRhZGF0YSByb3V0ZScpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKGJvZHkpLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdleGVjJ106XG4gICAgICAgICAgICAgICAgaWYgc2NoZW1hX3JlZnVzZWQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMSwgJycsICd3aXRoaGVsZCcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKHtcbiAgICAgICAgICAgICAgICAgICAgJ2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdsaXZlX3JlYWRvbmx5X3NjaGVtYV9pbnRlZ3JpdHlfY291bnRzJzogQ09VTlR9KSwgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnYXBwbHknXTpcbiAgICAgICAgICAgICAgICBhZG1pdHRlZCA9IGNvcHkuZGVlcGNvcHkocGF5bG9hZFsnc2VhbGVkJ10pXG4gICAgICAgICAgICAgICAgYWRtaXR0ZWRbJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10gPSAoYWN0dWF0b3IuSU1BR0UgaWYgcGF5bG9hZFsncGhhc2UnXT09J3JlbGVhc2UnIGVsc2UgcGF5bG9hZFsnc2VhbGVkJ11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCBqc29uLmR1bXBzKGFkbWl0dGVkKSwgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZGVzY3JpYmUnXTpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsICdBbGxvY2F0ZWQgcmVzb3VyY2VzOlxcbiBjcHUgMzQ2MG0gKDg2JSlcXG4nLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdkaWZmJ106XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAxLCAnLWltYWdlOiBiYXNlXFxuK2ltYWdlOiBjYW5kaWRhdGVcXG4nLCAnJylcbiAgICAgICAgICAgIGlmIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdwYXRjaCddOlxuICAgICAgICAgICAgICAgIGlmICctLWRyeS1ydW49c2VydmVyJyBub3QgaW4gYXJndjpcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVzLmFwcGVuZChqc29uLmxvYWRzKGlucHV0KSlcbiAgICAgICAgICAgICAgICAgICAgaWYgYW1iaWd1b3VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAxLCAnJywgJ3dpdGhoZWxkJylcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDAsICdhcHBsaWNhdGlvbi5hcmdvcHJvai5pby9pbmZvcm1lZC1kZWNpc2lvblxcbicsICcnKVxuICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ3VuZXhwZWN0ZWQgY29tbWFuZCcpXG5cbiAgICAgICAgc291cmNlID0gUFJPR1JBTS5yZXBsYWNlKCdfX1BBWUxPQURfXycsIHJlcHIoanNvbi5kdW1wcyhwYXlsb2FkKSkpLnJlcGxhY2UoXG4gICAgICAgICAgICAnX19HVUFSRF9fJywgcmVwcigoQ0FTRSAvICdjaGFuZ2VfZ3VhcmQucHknKS5yZWFkX3RleHQoKSkpXG4gICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lPKClcbiAgICAgICAgd2l0aCBwYXRjaCgnc3VicHJvY2Vzcy5ydW4nLCBzaWRlX2VmZmVjdD1mYWtlKSwgcmVkaXJlY3Rfc3Rkb3V0KG91dHB1dCk6XG4gICAgICAgICAgICB0cnk6XG4gICAgICAgICAgICAgICAgZXhlYyhjb21waWxlKHNvdXJjZSwgJ2ZpeGVkLW5hdGl2ZS1maXh0dXJlJywgJ2V4ZWMnKSwgeydfX25hbWVfXyc6ICdfX2ZpeHR1cmVfXyd9KVxuICAgICAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBTeXN0ZW1FeGl0KTpcbiAgICAgICAgICAgICAgICBwYXNzXG4gICAgICAgIHJlY2VpcHQgPSBqc29uLmxvYWRzKG91dHB1dC5nZXR2YWx1ZSgpKSBpZiBvdXRwdXQuZ2V0dmFsdWUoKSBlbHNlIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2V9XG4gICAgICAgIHJldHVybiByZWNlaXB0LCB3cml0ZXMsIGNhbGxzXG5cbiAgICBkZWYgdGVzdF9vbmx5X2V4aXN0aW5nX2FwcGxpY2F0aW9uX29wZXJhdGlvbl9hbmRfZGVwbG95bWVudF9hcmVfcmVxdWVzdGVkKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQpXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0Wydyb2xsb3V0X3ZlcmlmaWVkJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHdyaXRlcyksIDEpXG4gICAgICAgIG9wZXJhdGlvbiA9IHdyaXRlc1swXVstMV1bJ3ZhbHVlJ11cbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcGVyYXRpb25bJ3N5bmMnXVsncHJ1bmUnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRpb25bJ3N5bmMnXVsncmVzb3VyY2VzJ10sIFtcbiAgICAgICAgICAgIHsnZ3JvdXAnOiAnYXBwcycsICdraW5kJzogJ0RlcGxveW1lbnQnLCAnbmFtZSc6ICdpbmZvcm1lZC1kZWNpc2lvbicsICduYW1lc3BhY2UnOiAnaW5mb3JtZWQtZGVjaXNpb24nfV0pXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkoJy0tZHJ5LXJ1bj1zZXJ2ZXInIGluIGFyZ3YgYW5kIGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdwYXRjaCddIGZvciBhcmd2IGluIGNhbGxzKSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXNbMF1bMF1bJ3BhdGgnXSwgJy9tZXRhZGF0YS91aWQnKVxuXG4gICAgZGVmIHRlc3Rfc291cmNlX292ZXJyaWRlc19hdXRvbWF0aW9uX2FuZF9jdXN0b2R5X2RyaWZ0X3N0b3BfYmVmb3JlX3dyaXRlKHNlbGYpOlxuICAgICAgICBtdXRhdGlvbnMgPSBbbGFtYmRhIG86IG9bJ2FwcGxpY2F0aW9uJ11bJ21ldGFkYXRhJ10udXBkYXRlKHVpZD0ncmVjcmVhdGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snYXBwbGljYXRpb24nXVsnc3BlYyddLnVwZGF0ZShzeW5jUG9saWN5PXsnYXV0b21hdGVkJzoge319KSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydhcHBsaWNhdGlvbiddWydzcGVjJ11bJ3NvdXJjZSddLnVwZGF0ZShrdXN0b21pemU9eydpbWFnZXMnOiBbJ290aGVyJ119KSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydhcHBsaWNhdGlvbiddWydzcGVjJ10udXBkYXRlKHNvdXJjZXM9W3t9XSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snY29uZmlnbWFwJ11bJ21ldGFkYXRhJ10udXBkYXRlKHVpZD0ncmVjcmVhdGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1sncHZjJ11bJ3NwZWMnXS51cGRhdGUodm9sdW1lTmFtZT0ncmVwbGFjZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvOiBvWydkZXBsb3ltZW50J11bJ3N0YXR1cyddLnVwZGF0ZShyZWFkeVJlcGxpY2FzPTApXVxuICAgICAgICBmb3IgbXV0YXRlIGluIG11dGF0aW9uczpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KG11dGF0ZT1tdXRhdGUpOlxuICAgICAgICAgICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICAgICAgICAgIG11dGF0ZShvYmplY3RzKVxuICAgICAgICAgICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG4gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuXG4gICAgZGVmIHRlc3RfcHJlb3Blbl9zY2hlbWFfcmVmdXNhbF9wcmV2ZW50c19pbWFnZV9vcGVyYXRpb24oc2VsZik6XG4gICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICByZWNlaXB0LCB3cml0ZXMsIGNhbGxzID0gc2VsZi5leGVjdXRlX2Zha2Uob2JqZWN0cywgcGF5bG9hZCwgc2NoZW1hX3JlZnVzZWQ9VHJ1ZSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuXG5cbiAgICBkZWYgdGVzdF9yb2xsYmFja191bnJlYWR5X2NhbmRpZGF0ZV9uZXZlcl9yZWFkc19wb2Rfb3JfZGF0YWJhc2Uoc2VsZik6XG4gICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKVxuICAgICAgICBwYXlsb2FkWydwaGFzZSddID0gJ3JvbGxiYWNrJ1xuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3N0YXR1cyddLnVwZGF0ZShyZWFkeVJlcGxpY2FzPTAsIHVwZGF0ZWRSZXBsaWNhcz0wKVxuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10gPSBhY3R1YXRvci5JTUFHRVxuICAgICAgICBvYmplY3RzWydhcHBsaWNhdGlvbiddWydzcGVjJ11bJ3NvdXJjZSddWyd0YXJnZXRSZXZpc2lvbiddID0gUkVWSVNJT05cbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQsIHNjaGVtYV9yZWZ1c2VkPVRydWUpXG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0Wydyb2xsb3V0X3ZlcmlmaWVkJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHdyaXRlcyksIDEpXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYW55KGFyZ3ZbOjJdID09IFsna3ViZWN0bCcsICdleGVjJ10gb3IgYXJndls6M10gPT0gWydrdWJlY3RsJywgJ2dldCcsICdwb2RzJ10gZm9yIGFyZ3YgaW4gY2FsbHMpKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyaXRlc1swXVstMV1bJ3ZhbHVlJ11bJ3N5bmMnXVsncmV2aXNpb24nXSwgJ2M5NmIwYzZkODgxZTg1NWQxZDE1ODAwM2M2ZGU5MGVmMzkwMjYyZTInKVxuXG4gICAgZGVmIHRlc3Rfcm9sbGJhY2tfc3RpbGxfcmVmdXNlc19jdXN0b2R5X29yX25vbnBhaXJfaW1hZ2VfZHJpZnQoc2VsZik6XG4gICAgICAgIGZvciBkZWZlY3QgaW4gKCdjbScsICdwdmMnLCAnaW1hZ2UnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGRlZmVjdD1kZWZlY3QpOlxuICAgICAgICAgICAgICAgIG9iamVjdHMsIHBheWxvYWQgPSBzZWxmLmZpeHR1cmUoKTtwYXlsb2FkWydwaGFzZSddID0gJ3JvbGxiYWNrJ1xuICAgICAgICAgICAgICAgIG9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3RhdHVzJ11bJ3JlYWR5UmVwbGljYXMnXSA9IDBcbiAgICAgICAgICAgICAgICBpZiBkZWZlY3QgPT0gJ2NtJzpvYmplY3RzWydjb25maWdtYXAnXVsnbWV0YWRhdGEnXVsndWlkJ10gPSAncmVjcmVhdGVkJ1xuICAgICAgICAgICAgICAgIGVsaWYgZGVmZWN0ID09ICdwdmMnOm9iamVjdHNbJ3B2YyddWydzcGVjJ11bJ3ZvbHVtZU5hbWUnXSA9ICdyZXBsYWNlZCdcbiAgICAgICAgICAgICAgICBlbHNlOm9iamVjdHNbJ2RlcGxveW1lbnQnXVsnc3BlYyddWyd0ZW1wbGF0ZSddWydzcGVjJ11bJ2NvbnRhaW5lcnMnXVswXVsnaW1hZ2UnXSA9ICdmb3JlaWduLWltYWdlJ1xuICAgICAgICAgICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pO3NlbGYuYXNzZXJ0RXF1YWwod3JpdGVzLCBbXSlcblxuICAgIGRlZiB0ZXN0X3JlY292ZXJ5X3ZlcmlmaWNhdGlvbl9pc19zZXBhcmF0ZV9yZWFkeV9vbGRfaW1hZ2Vfc2NoZW1hX3Byb29mKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKCk7cGF5bG9hZFsncGhhc2UnXSA9ICdyb2xsYmFjay12ZXJpZnknXG4gICAgICAgIHJlc291cmNlPXsnZ3JvdXAnOidhcHBzJywna2luZCc6J0RlcGxveW1lbnQnLCduYW1lJzonaW5mb3JtZWQtZGVjaXNpb24nLCduYW1lc3BhY2UnOidpbmZvcm1lZC1kZWNpc2lvbid9XG4gICAgICAgIHRhcmdldD0nYzk2YjBjNmQ4ODFlODU1ZDFkMTU4MDAzYzZkZTkwZWYzOTAyNjJlMidcbiAgICAgICAgcGF5bG9hZFsnb3BlcmF0aW9uX2ludGVudCddPXsnc3RhdGUnOidDT01QTEVURScsJ3N0YXJ0ZWRfYXQnOicyMDI2LTEwLTExVDAxOjAwOjAwWicsJ3Jlc3VsdCc6eydvcGVyYXRpb25fcmVxdWVzdGVkJzpUcnVlLCdzb3VyY2VfcmV2aXNpb24nOnRhcmdldCwncHJ1bmUnOkZhbHNlLCdyZXNvdXJjZXMnOltyZXNvdXJjZV19fVxuICAgICAgICBvYmplY3RzWydhcHBsaWNhdGlvbiddWydzdGF0dXMnXT17J29wZXJhdGlvblN0YXRlJzp7J3BoYXNlJzonU3VjY2VlZGVkJywnc3RhcnRlZEF0JzonMjAyNi0xMC0xMVQwMTowMDowMVonLCdmaW5pc2hlZEF0JzonMjAyNi0xMC0xMVQwMTowMTowMFonLCdvcGVyYXRpb24nOnsnaW5pdGlhdGVkQnknOnsndXNlcm5hbWUnOidjdXN0b2RpYW4tY29kZXgnfSwnc3luYyc6eydyZXZpc2lvbic6dGFyZ2V0LCdyZXNvdXJjZXMnOltyZXNvdXJjZV19fSwnc3luY1Jlc3VsdCc6eydyZXZpc2lvbic6dGFyZ2V0LCdyZXNvdXJjZXMnOlt7KipyZXNvdXJjZSwnc3RhdHVzJzonU3luY2VkJ31dfX19XG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pO3NlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydyZWNvdmVyeV92ZXJpZmljYXRpb24nXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KGFyZ3ZbOjJdPT1bJ2t1YmVjdGwnLCdleGVjJ10gZm9yIGFyZ3YgaW4gY2FsbHMpKVxuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3N0YXR1cyddWydyZWFkeVJlcGxpY2FzJ10gPSAwXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLHBheWxvYWQpXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG5cbiAgICBkZWYgdGVzdF9hbWJpZ3VvdXNfcGF0Y2hfaXNfbmV2ZXJfcmV0cmllZChzZWxmKTpcbiAgICAgICAgb2JqZWN0cywgcGF5bG9hZCA9IHNlbGYuZml4dHVyZSgpXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkLCBhbWJpZ3VvdXM9VHJ1ZSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4od3JpdGVzKSwgMSlcblxuICAgIGRlZiB0ZXN0X2ZhbHNlX29taXRlbXB0eV9uZWVkc19ib3VuZF9jdXJyZW50X3JlcXVlc3RfYW5kX2V4YWN0X2NvbXBsZXRpb24oc2VsZik6XG4gICAgICAgIG9iamVjdHMscGF5bG9hZD1zZWxmLmZpeHR1cmUoKTtwYXlsb2FkWydwaGFzZSddPSdyb2xsYmFjay12ZXJpZnknXG4gICAgICAgIHJlc291cmNlPXsnZ3JvdXAnOidhcHBzJywna2luZCc6J0RlcGxveW1lbnQnLCduYW1lJzonaW5mb3JtZWQtZGVjaXNpb24nLCduYW1lc3BhY2UnOidpbmZvcm1lZC1kZWNpc2lvbid9XG4gICAgICAgIHRhcmdldD0nYzk2YjBjNmQ4ODFlODU1ZDFkMTU4MDAzYzZkZTkwZWYzOTAyNjJlMidcbiAgICAgICAgcGF5bG9hZFsnb3BlcmF0aW9uX2ludGVudCddPXsnc3RhdGUnOidDT01QTEVURScsJ3N0YXJ0ZWRfYXQnOicyMDI2LTEwLTExVDAxOjAwOjAwWicsJ3Jlc3VsdCc6eydvcGVyYXRpb25fcmVxdWVzdGVkJzpUcnVlLCdzb3VyY2VfcmV2aXNpb24nOnRhcmdldCwncHJ1bmUnOkZhbHNlLCdyZXNvdXJjZXMnOltyZXNvdXJjZV19fVxuICAgICAgICBvYmplY3RzWydhcHBsaWNhdGlvbiddWydzdGF0dXMnXT17J29wZXJhdGlvblN0YXRlJzp7J3BoYXNlJzonU3VjY2VlZGVkJywnc3RhcnRlZEF0JzonMjAyNi0xMC0xMVQwMTowMDowMVonLCdmaW5pc2hlZEF0JzonMjAyNi0xMC0xMVQwMTowMTowMFonLCdvcGVyYXRpb24nOnsnaW5pdGlhdGVkQnknOnsndXNlcm5hbWUnOidjdXN0b2RpYW4tY29kZXgnfSwnc3luYyc6eydyZXZpc2lvbic6dGFyZ2V0LCdyZXNvdXJjZXMnOltyZXNvdXJjZV19fSwnc3luY1Jlc3VsdCc6eydyZXZpc2lvbic6dGFyZ2V0LCdyZXNvdXJjZXMnOlt7KipyZXNvdXJjZSwnc3RhdHVzJzonU3luY2VkJ31dfX19XG4gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLHBheWxvYWQpWzBdWydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgbXV0YXRpb25zPVtsYW1iZGEgbyxwOm9bJ2FwcGxpY2F0aW9uJ11bJ3N0YXR1cyddWydvcGVyYXRpb25TdGF0ZSddWydvcGVyYXRpb24nXVsnc3luYyddLnVwZGF0ZShwcnVuZT1UcnVlKSxcbiAgICAgICAgICAgICAgICAgICBsYW1iZGEgbyxwOm9bJ2FwcGxpY2F0aW9uJ11bJ3N0YXR1cyddWydvcGVyYXRpb25TdGF0ZSddWydvcGVyYXRpb24nXVsnc3luYyddLnVwZGF0ZShwcnVuZT1Ob25lKSxcbiAgICAgICAgICAgICAgICAgICBsYW1iZGEgbyxwOm9bJ2FwcGxpY2F0aW9uJ11bJ3N0YXR1cyddWydvcGVyYXRpb25TdGF0ZSddLnVwZGF0ZShzdGFydGVkQXQ9JzIwMjYtMTAtMTFUMDA6NTk6MDBaJyksXG4gICAgICAgICAgICAgICAgICAgbGFtYmRhIG8scDpvWydhcHBsaWNhdGlvbiddWydzdGF0dXMnXVsnb3BlcmF0aW9uU3RhdGUnXVsnb3BlcmF0aW9uJ10udXBkYXRlKGluaXRpYXRlZEJ5PXsndXNlcm5hbWUnOidvdGhlcid9KSxcbiAgICAgICAgICAgICAgICAgICBsYW1iZGEgbyxwOm9bJ2FwcGxpY2F0aW9uJ11bJ3N0YXR1cyddWydvcGVyYXRpb25TdGF0ZSddWydzeW5jUmVzdWx0J10udXBkYXRlKHJldmlzaW9uPSdmb3JlaWduJyksXG4gICAgICAgICAgICAgICAgICAgbGFtYmRhIG8scDpvWydhcHBsaWNhdGlvbiddWydzdGF0dXMnXVsnb3BlcmF0aW9uU3RhdGUnXVsnc3luY1Jlc3VsdCddWydyZXNvdXJjZXMnXVswXS51cGRhdGUoc3RhdHVzPSdQcnVuZWQnKSxcbiAgICAgICAgICAgICAgICAgICBsYW1iZGEgbyxwOnBbJ29wZXJhdGlvbl9pbnRlbnQnXVsncmVzdWx0J10udXBkYXRlKHBydW5lPVRydWUpLFxuICAgICAgICAgICAgICAgICAgIGxhbWJkYSBvLHA6cC51cGRhdGUob3BlcmF0aW9uX2ludGVudD1Ob25lKV1cbiAgICAgICAgZm9yIG11dGF0ZSBpbiBtdXRhdGlvbnM6XG4gICAgICAgICAgICBvLHA9Y29weS5kZWVwY29weShvYmplY3RzKSxjb3B5LmRlZXBjb3B5KHBheWxvYWQpO211dGF0ZShvLHApXG4gICAgICAgICAgICByZWNlaXB0LHdyaXRlcyxjYWxscz1zZWxmLmV4ZWN1dGVfZmFrZShvLHApXG4gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlY2VpcHRbJ2FsbF9jaGVja3NfcGFzcyddKTtzZWxmLmFzc2VydEVxdWFsKHdyaXRlcyxbXSlcblxuICAgIGRlZiB0ZXN0X29wdGltaXplZF9leGVjdXRvcl9yZWZ1c2VzX2JlZm9yZV9hbnlfaW5wdXQoc2VsZik6XG4gICAgICAgIHJlc3VsdD1zdWJwcm9jZXNzLnJ1bihbc3lzLmV4ZWN1dGFibGUsJy1PJyxzdHIoUGF0aChfX2ZpbGVfXykucGFyZW50LydhY3R1YXRvci5weScpLCctLXBoYXNlJywncmVsZWFzZScsJy0tcm9vdC1hdXRob3JpdHktcmVjZWlwdCcsJy9taXNzaW5nJywnLS1yb290LW5hdGl2ZS1vdXRjb21lJywnL21pc3NpbmcnLCctLXNvdXJjZS1yZXZpc2lvbicsUkVWSVNJT05dLGNhcHR1cmVfb3V0cHV0PVRydWUsdGV4dD1UcnVlKVxuICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlc3VsdC5yZXR1cm5jb2RlLDApXG4gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkJyxyZXN1bHQuc3RkZXJyKVxuXG5cbmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6XG4gICAgdW5pdHRlc3QubWFpbigpXG4iCiAgICB9CiAgfSwKICAibmF0aXZlX2V4ZWN1dGlvbiI6IGZhbHNlLAogICJjYXNlX2V2aWRlbmNlIjogewogICAgInNxbGl0ZV9yZWFkb25seS5weSI6IHsKICAgICAgInNoYTI1NiI6ICI5MDkzYzY0ZjdmMGUzOWIyNDlkYTlmZWZkZjVhYWY0ZTQyNThiYzMxZTdhMjdmZDg4ODQ3OWNlMzI5YTIwNTA5IiwKICAgICAgImNvbnRlbnQiOiAiXCJcIlwiUHJlLW9wZW4gc2NoZW1hL2ludGVncml0eS9jb3VudCBwcm9vZjsgc3RkbGliIG9ubHksIG5ldmVyIGNvbnN0cnVjdHMgU3RvcmUuXCJcIlwiXG5pbXBvcnQgYXJncGFyc2VcbmZyb20gY29udGV4dGxpYiBpbXBvcnQgY2xvc2luZ1xuaW1wb3J0IGhhc2hsaWJcbmltcG9ydCBvc1xuaW1wb3J0IHJlXG5pbXBvcnQgc3RhdFxuaW1wb3J0IGpzb25cbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHNxbGl0ZTNcblxuXG5kZWYgaW5zcGVjdF9yZWFkb25seShwYXRoLCAqLCBfY2xvc2VkX3NuYXBzaG90PUZhbHNlKTpcbiAgICBwYXRoID0gUGF0aChwYXRoKVxuICAgIGlmIG5vdCBwYXRoLmlzX2ZpbGUoKSBvciBwYXRoLmlzX3N5bWxpbmsoKTpcbiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZXhpc3Rpbmcgbm9uc3ltbGluayBwcml2YXRlIGRhdGFiYXNlIHJlcXVpcmVkJylcbiAgICB1cmkgPSBwYXRoLnJlc29sdmUoKS5hc191cmkoKSArICc/bW9kZT1ybycgKyAoJyZpbW11dGFibGU9MScgaWYgX2Nsb3NlZF9zbmFwc2hvdCBlbHNlICcnKVxuICAgICMgc3FsaXRlMy5Db25uZWN0aW9uIGNvbnRleHQgbWFuYWdlbWVudCBlbmRzIHRyYW5zYWN0aW9uczsgaXQgZG9lcyBub3QgY2xvc2UuXG4gICAgd2l0aCBjbG9zaW5nKHNxbGl0ZTMuY29ubmVjdCh1cmksIHVyaT1UcnVlLCB0aW1lb3V0PTUpKSBhcyBkYjpcbiAgICAgICAgZGIuZXhlY3V0ZSgnUFJBR01BIHF1ZXJ5X29ubHk9T04nKVxuICAgICAgICBkYi5leGVjdXRlKCdCRUdJTicpXG4gICAgICAgIHZlcnNpb24gPSBkYi5leGVjdXRlKCdQUkFHTUEgdXNlcl92ZXJzaW9uJykuZmV0Y2hvbmUoKVswXVxuICAgICAgICBpZiB2ZXJzaW9uICE9IDU6XG4gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdwcmUtb3BlbiBkYXRhYmFzZSBpcyBub3Qgc2NoZW1hNTsgcmVmdXNlIG1pZ3JhdGlvbicpXG4gICAgICAgIGlmIGRiLmV4ZWN1dGUoJ1BSQUdNQSBpbnRlZ3JpdHlfY2hlY2snKS5mZXRjaGFsbCgpICE9IFsoJ29rJywpXTpcbiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3JlYWQtb25seSBpbnRlZ3JpdHkgY2hlY2sgcmVmdXNlZCcpXG4gICAgICAgIGxpZmVjeWNsZSA9IHtuYW1lOiBkYi5leGVjdXRlKCdTRUxFQ1QgQ09VTlQoKikgRlJPTSAnICsgdGFibGUpLmZldGNob25lKClbMF1cbiAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lLCB0YWJsZSBpbiAoKCdyZWNvcmRzJywgJ2xpZmVjeWNsZV9yZWNvcmRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZXZlbnRzJywgJ2xpZmVjeWNsZV9ldmVudHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdwZW5kaW5nJywgJ2xpZmVjeWNsZV9wZW5kaW5nJykpfVxuICAgICAgICByZXN1bHQgPSB7J3NjaGVtYV92ZXJzaW9uJzogdmVyc2lvbiwgJ2xpZmVjeWNsZSc6IGxpZmVjeWNsZSxcbiAgICAgICAgICAgICAgICAgICdvdXRib3gnOiBkaWN0KGRiLmV4ZWN1dGUoJ1NFTEVDVCBzdGF0ZSxDT1VOVCgqKSBGUk9NIG91dGJveCBHUk9VUCBCWSBzdGF0ZScpKSxcbiAgICAgICAgICAgICAgICAgICdzdWJtaXNzaW9ucyc6IGRpY3QoZGIuZXhlY3V0ZSgnU0VMRUNUIHN0YXRlLENPVU5UKCopIEZST00gc3VibWlzc2lvbnMgR1JPVVAgQlkgc3RhdGUnKSksXG4gICAgICAgICAgICAgICAgICAnaW50ZWdyaXR5JzogJ29rJywgJ3JlYWRfb25seV9wcmVfb3Blbic6IFRydWUsICdzdG9yZV9jb25zdHJ1Y3RlZCc6IEZhbHNlfVxuICAgICAgICBkYi5yb2xsYmFjaygpXG4gICAgcmV0dXJuIHJlc3VsdFxuXG5cbmRlZiBpbnNwZWN0X2Nsb3NlZF9zbmFwc2hvdChwYXRoLCBleHBlY3RlZF9zaGEyNTYpOlxuICAgIFwiXCJcIk9ubHkgYSBwcml2YXRlbHkgcmV0YWluZWQsIGZyb3plbiBtYWluLWZpbGUgc25hcHNob3Qgd2l0aCBubyBXQUwgZnJhbWVzLlxuXG4gICAgQ2FsbGVyIG11c3QgZXN0YWJsaXNoIGV4Y2x1c2l2ZSBzbmFwc2hvdCBjcmVhdGlvbi9hZG1pbiBleGl0L25vIHdyaXRlciwgYW5kXG4gICAgc3VwcGx5IHRoZSByZWNvcmRlZCBmcm96ZW4gbWFpbiBkaWdlc3QuIE5ldmVyIHVzZSBmb3IgdGhlIGxpdmUgZGF0YWJhc2UuXG4gICAgSW1tdXRhYmxlIFNRTGl0ZSByZWFkcyBpZ25vcmUgc3RhbGUgU0hNIGFuZCBuZXZlciBjcmVhdGUvY2hhbmdlIHNpZGVjYXJzLlxuICAgIEV4aXN0aW5nIHNpZGVjYXJzIHJlbWFpbiBjdXN0b2R5IGV2aWRlbmNlOyBub3RoaW5nIGlzIGRlbGV0ZWQvY2hlY2twb2ludGVkLlxuICAgIFwiXCJcIlxuICAgIHBhdGggPSBQYXRoKHBhdGgpXG4gICAgaWYgcmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NjR9JywgZXhwZWN0ZWRfc2hhMjU2KSBpcyBOb25lOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdleGFjdCBmcm96ZW4gc25hcHNob3QgZGlnZXN0IHJlcXVpcmVkJylcbiAgICBkZWYgbWV0YWRhdGEodGFyZ2V0KTpcbiAgICAgICAgaW5mbyA9IHRhcmdldC5sc3RhdCgpXG4gICAgICAgIGlmIG5vdCBzdGF0LlNfSVNSRUcoaW5mby5zdF9tb2RlKSBvciBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKSAhPSAwbzYwMCBvciBpbmZvLnN0X25saW5rICE9IDE6XG4gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdwcml2YXRlIHNpbmdsZS1saW5rIHNuYXBzaG90IGN1c3RvZHkgcmVxdWlyZWQnKVxuICAgICAgICByZXR1cm4gaW5mb1xuICAgIG1haW4gPSBtZXRhZGF0YShwYXRoKVxuICAgIGlmIG5vdCAwIDwgbWFpbi5zdF9zaXplIDw9IDUxMiAqIDEwMjQqKjI6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2JvdW5kZWQgZnJvemVuIHNuYXBzaG90IHJlcXVpcmVkJylcbiAgICBkZWYgc2lkZWNhcnMoKTpcbiAgICAgICAgaWRlbnRpdGllcyA9IHt9XG4gICAgICAgIGZvciBzdWZmaXggaW4gKCctd2FsJywgJy1zaG0nKTpcbiAgICAgICAgICAgIHRhcmdldCA9IFBhdGgoc3RyKHBhdGgpICsgc3VmZml4KVxuICAgICAgICAgICAgaWYgb3MucGF0aC5sZXhpc3RzKHRhcmdldCk6XG4gICAgICAgICAgICAgICAgaW5mbyA9IG1ldGFkYXRhKHRhcmdldClcbiAgICAgICAgICAgICAgICBpZiBpbmZvLnN0X3VpZCAhPSBtYWluLnN0X3VpZCBvciBpbmZvLnN0X2dpZCAhPSBtYWluLnN0X2dpZDpcbiAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc25hcHNob3Qgc2lkZWNhciBjdXN0b2R5IGNoYW5nZWQnKVxuICAgICAgICAgICAgICAgIGlmIHN1ZmZpeCA9PSAnLXdhbCcgYW5kIGluZm8uc3Rfc2l6ZSAhPSAwOlxuICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbmFwc2hvdCBoYXMgV0FMIGZyYW1lczsgaW1tdXRhYmxlIHJlYWQgcmVmdXNlZCcpXG4gICAgICAgICAgICAgICAgaWRlbnRpdGllc1tzdWZmaXhdID0gKGluZm8uc3RfZGV2LCBpbmZvLnN0X2lubywgaW5mby5zdF9zaXplLCBpbmZvLnN0X210aW1lX25zKVxuICAgICAgICByZXR1cm4gaWRlbnRpdGllc1xuICAgIGJlZm9yZV9zaWRlY2FycyA9IHNpZGVjYXJzKClcbiAgICBkZWYgZGlnZXN0KCk6XG4gICAgICAgIHZhbHVlID0gaGFzaGxpYi5zaGEyNTYoKVxuICAgICAgICB3aXRoIHBhdGgub3BlbigncmInKSBhcyBzdHJlYW06XG4gICAgICAgICAgICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6IHN0cmVhbS5yZWFkKDEwMjQqKjIpLCBiJycpOlxuICAgICAgICAgICAgICAgIHZhbHVlLnVwZGF0ZShibG9jaylcbiAgICAgICAgcmV0dXJuIHZhbHVlLmhleGRpZ2VzdCgpXG4gICAgaWYgZGlnZXN0KCkgIT0gZXhwZWN0ZWRfc2hhMjU2OlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdmcm96ZW4gbWFpbi1maWxlIGRpZ2VzdCBjaGFuZ2VkIGJlZm9yZSBpbnNwZWN0aW9uJylcbiAgICBwcm9vZiA9IGluc3BlY3RfcmVhZG9ubHkocGF0aCwgX2Nsb3NlZF9zbmFwc2hvdD1UcnVlKVxuICAgIGFmdGVyID0gbWV0YWRhdGEocGF0aClcbiAgICBpZiAoYWZ0ZXIuc3RfZGV2LCBhZnRlci5zdF9pbm8sIGFmdGVyLnN0X3VpZCwgYWZ0ZXIuc3RfZ2lkLCBhZnRlci5zdF9zaXplKSAhPSAobWFpbi5zdF9kZXYsIG1haW4uc3RfaW5vLCBtYWluLnN0X3VpZCwgbWFpbi5zdF9naWQsIG1haW4uc3Rfc2l6ZSk6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Zyb3plbiBtYWluLWZpbGUgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgaWYgZGlnZXN0KCkgIT0gZXhwZWN0ZWRfc2hhMjU2IG9yIHNpZGVjYXJzKCkgIT0gYmVmb3JlX3NpZGVjYXJzOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdmcm96ZW4gc25hcHNob3QgY2hhbmdlZCBkdXJpbmcgaW5zcGVjdGlvbicpXG4gICAgcmV0dXJuIHByb29mXG5cblxuaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzpcbiAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj1fX2RvY19fKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZGInLCB0eXBlPVBhdGgsIHJlcXVpcmVkPVRydWUpXG4gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKClcbiAgICB0cnk6XG4gICAgICAgIHByaW50KGpzb24uZHVtcHMoaW5zcGVjdF9yZWFkb25seShhcmdzLmRiKSwgc29ydF9rZXlzPVRydWUpKVxuICAgIGV4Y2VwdCBFeGNlcHRpb246XG4gICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoJ3JlYWQtb25seSBzY2hlbWE1L2ludGVncml0eS9jb3VudCBnYXRlIHJlZnVzZWQ7IG5vIFN0b3JlL2FkbWluIG9wZW4nKSBmcm9tIE5vbmVcbiIKICAgIH0sCiAgICAiY2hhbmdlX2d1YXJkLnB5IjogewogICAgICAic2hhMjU2IjogImIzZWUyYjg5ZGUxNGUyMDRlZmVkZDAxNmQzOTAwYjZlMzFmY2M5ZjBlYTBmMzEyNWQzYTQ3OTRkOTM4Y2EyMDEiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJSZWFkLW9ubHkgZXhhY3QgRGVwbG95bWVudCBhbmQgYWRtaXNzaW9uIGJvdW5kYXJpZXM7IG5vIG11dGF0aW9uIGF1dGhvcml0eS5cIlwiXCJcbmltcG9ydCBjb3B5XG5pbXBvcnQgaGFzaGxpYlxuaW1wb3J0IGpzb25cblxuQkFTRSA9ICdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EnXG5DQU5ESURBVEUgPSAnZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1NjpmNTU4OGY0OTZiMWYyNjdkMDdjZGM5ZjUyMDhlNmYyZjI0MWY3NGI3MzljMjM5MjRiMDM3MDJkZWMxM2E1YzIzJ1xuXG5cbmRlZiBkZXBlbmRlbmN5X3Byb2plY3Rpb24oY29uZmlnbWFwLCBwdmMpOlxuICAgIGlmIChjb25maWdtYXAuZ2V0KCdraW5kJykgIT0gJ0NvbmZpZ01hcCcgb3IgY29uZmlnbWFwLmdldCgnaW1tdXRhYmxlJykgaXMgbm90IFRydWVcbiAgICAgICAgICAgIG9yIGNvbmZpZ21hcFsnbWV0YWRhdGEnXVsnbmFtZXNwYWNlJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJ1xuICAgICAgICAgICAgb3IgY29uZmlnbWFwWydtZXRhZGF0YSddWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxJ1xuICAgICAgICAgICAgb3Igc2V0KGNvbmZpZ21hcC5nZXQoJ2RhdGEnLCB7fSkpICE9IHsncnVudGltZS5qc29uJ31cbiAgICAgICAgICAgIG9yIGNvbmZpZ21hcC5nZXQoJ2JpbmFyeURhdGEnKSk6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3VuZXhwZWN0ZWQgaW1tdXRhYmxlIHJ1bnRpbWUgY29uZmlnIGlkZW50aXR5JylcbiAgICBpZiAocHZjLmdldCgna2luZCcpICE9ICdQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nXG4gICAgICAgICAgICBvciBwdmNbJ21ldGFkYXRhJ11bJ25hbWVzcGFjZSddICE9ICdpbmZvcm1lZC1kZWNpc2lvbidcbiAgICAgICAgICAgIG9yIHB2Y1snbWV0YWRhdGEnXVsnbmFtZSddICE9ICdpbmZvcm1lZC1kZWNpc2lvbi1kYXRhJ1xuICAgICAgICAgICAgb3IgcHZjLmdldCgnc3RhdHVzJywge30pLmdldCgncGhhc2UnKSAhPSAnQm91bmQnXG4gICAgICAgICAgICBvciBub3QgcHZjLmdldCgnc3BlYycsIHt9KS5nZXQoJ3ZvbHVtZU5hbWUnKSk6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3VuZXhwZWN0ZWQgYm91bmQgUFZDIGN1c3RvZHknKVxuICAgIGNvbmZpZyA9IHByb2plY3Rpb24oY29uZmlnbWFwKVxuICAgIGNvbmZpZy5wb3AoJ2RhdGEnKVxuICAgIGNvbmZpZ1snY2Fub25pY2FsX2RhdGFfc2hhMjU2J10gPSBoYXNobGliLnNoYTI1Nihqc29uLmR1bXBzKFxuICAgICAgICBjb25maWdtYXBbJ2RhdGEnXSwgc29ydF9rZXlzPVRydWUsIHNlcGFyYXRvcnM9KCcsJywgJzonKSkuZW5jb2RlKCkpLmhleGRpZ2VzdCgpXG4gICAgcmV0dXJuIHsnY29uZmlnbWFwJzogY29uZmlnLCAncHZjJzogcHJvamVjdGlvbihwdmMpLCAncHZjX3BoYXNlJzogJ0JvdW5kJ31cblxuXG5kZWYgY2hlY2tfZGVwZW5kZW5jaWVzKGNvbmZpZ21hcCwgcHZjLCBzZWFsZWQpOlxuICAgIGlmIGRlcGVuZGVuY3lfcHJvamVjdGlvbihjb25maWdtYXAsIHB2YykgIT0gc2VhbGVkOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdydW50aW1lIGNvbmZpZyBvciBQVkMgaWRlbnRpdHkvY3VzdG9keSBjaGFuZ2VkJylcblxuXG5kZWYgcHJvamVjdGlvbih2YWx1ZSk6XG4gICAgdmFsdWUgPSBjb3B5LmRlZXBjb3B5KHZhbHVlKVxuICAgIHZhbHVlLnBvcCgnc3RhdHVzJywgTm9uZSlcbiAgICBmb3Iga2V5IGluICgncmVzb3VyY2VWZXJzaW9uJywgJ2dlbmVyYXRpb24nLCAnY3JlYXRpb25UaW1lc3RhbXAnLCAnbWFuYWdlZEZpZWxkcycpOlxuICAgICAgICB2YWx1ZVsnbWV0YWRhdGEnXS5wb3Aoa2V5LCBOb25lKVxuICAgIGZvciBrZXkgaW4gKCdrdWJlY3RsLmt1YmVybmV0ZXMuaW8vbGFzdC1hcHBsaWVkLWNvbmZpZ3VyYXRpb24nLCAnZGVwbG95bWVudC5rdWJlcm5ldGVzLmlvL3JldmlzaW9uJyk6XG4gICAgICAgIHZhbHVlWydtZXRhZGF0YSddLmdldCgnYW5ub3RhdGlvbnMnLCB7fSkucG9wKGtleSwgTm9uZSlcbiAgICByZXR1cm4gdmFsdWVcblxuXG5kZWYgY2hlY2tfY3VycmVudChjdXJyZW50LCBzZWFsZWQpOlxuICAgIGlmIHByb2plY3Rpb24oY3VycmVudCkgIT0gc2VhbGVkOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZWFsZWQgbGl2ZSBVSUQgb3IgY29uZmlndXJhdGlvbiBjaGFuZ2VkJylcblxuXG5kZWYgY2hlY2tfYWRtaXR0ZWQoYWRtaXR0ZWQsIHNlYWxlZCk6XG4gICAgZXhwZWN0ZWQgPSBjb3B5LmRlZXBjb3B5KHNlYWxlZClcbiAgICBjb250YWluZXJzID0gZXhwZWN0ZWRbJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11cbiAgICBpZiBsZW4oY29udGFpbmVycykgIT0gMSBvciBjb250YWluZXJzWzBdWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJyBvciBjb250YWluZXJzWzBdWydpbWFnZSddICE9IEJBU0U6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3VuZXhwZWN0ZWQgYmFzZWxpbmUgY29udGFpbmVyIGlkZW50aXR5JylcbiAgICBjb250YWluZXJzWzBdWydpbWFnZSddID0gQ0FORElEQVRFXG4gICAgaWYgcHJvamVjdGlvbihhZG1pdHRlZCkgIT0gZXhwZWN0ZWQ6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2FkbWlzc2lvbiBjaGFuZ2VkIGNvbmZpZ3VyYXRpb24gYmV5b25kIHRoZSBzb2xlIGltYWdlIHBpbicpXG5cblxuZGVmIHRyYW5zcG9ydF9yZXN1bHQoZXhpdF9jb2RlLCBvdXRwdXQpOlxuICAgIGltcG9ydCBqc29uXG4gICAgdHJ5OlxuICAgICAgICB2YWx1ZSA9IGpzb24ubG9hZHMob3V0cHV0KVxuICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKTpcbiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAnaW52YWxpZCB0cmFuc3BvcnQgcmVzdWx0J31cbiAgICBpZiBleGl0X2NvZGUgIT0gMCBvciBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCkgb3IgdmFsdWUuZ2V0KCdhbGxfY2hlY2tzX3Bhc3MnKSBpcyBub3QgVHJ1ZTpcbiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAncmVhZC1vbmx5IHByZWZsaWdodCByZWZ1c2VkJ31cbiAgICByZXR1cm4gdmFsdWVcbiIKICAgIH0sCiAgICAiY2hlY2tfaW5zdGFsbGVkLnB5IjogewogICAgICAic2hhMjU2IjogImEzNGE1MWJlOWM5ZjJiMTZhMDZhODgxNzNiNWM2YzQ5MmM5OTU3ZmUwMjFjZjQxMmE4NmExNzM3NzMwNjQwYWQiLAogICAgICAiY29udGVudCI6ICJpbXBvcnQgY29weSxqc29uLHRpbWVcbmZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLHRpbWV6b25lXG5mcm9tIGluZm9ybWVkX2RlY2lzaW9uLnBvbGljeSBpbXBvcnQgUG9saWN5Q2xpZW50LENPTlRSQUNULHN1Ym1pdHRlZF9kaWdlc3RcbnBpbj0nc2hhMjU2OicrJ2InKjY0XG5yZXE9eydpZCc6J2ltYWdlLXB1cnBvc2UtZml4dHVyZScsJ3RlbmFudCc6J3RlbmFudDpwbGF0Zm9ybScsJ3N1YmplY3QnOnsnaWQnOidzeW50aGV0aWMnLCd0eXBlJzonc2VydmljZScsJ3RlbmFudCc6J3RlbmFudDpwbGF0Zm9ybSd9LCdyZXNvdXJjZSc6eydpZCc6J21lbW86Zml4dHVyZScsJ3R5cGUnOidtZW1vJywnc3lzdGVtJzonaW5mb3JtZWQtZGVjaXNpb24nLCd0ZW5hbnQnOid0ZW5hbnQ6cGxhdGZvcm0nfSwnYWN0aW9uJzoncmVnaXN0ZXInLCdjb250ZXh0Jzp7fX1cbmNsYXNzIFRyYW5zcG9ydDpcbiBkZWYgcmVxdWVzdChzZWxmLCphcmdzLCoqa3dhcmdzKTpcbiAgbm93PXRpbWUudGltZSgpOyBzdGFtcD1sYW1iZGEgdDpkYXRldGltZS5mcm9tdGltZXN0YW1wKHQsdGltZXpvbmUudXRjKS5pc29mb3JtYXQoKVxuICBiPXsqKmNvcHkuZGVlcGNvcHkoe2s6cmVxW2tdIGZvciBrIGluICgndGVuYW50Jywnc3ViamVjdCcsJ2FjdGlvbicsJ3Jlc291cmNlJywnY29udGV4dCcpfSksJ3JlcXVlc3RfZGlnZXN0Jzonc2hhMjU2OicrJ2UnKjY0LCdzdWJtaXR0ZWRfcmVxdWVzdF9kaWdlc3QnOnN1Ym1pdHRlZF9kaWdlc3QocmVxKX1cbiAgaWYgc2VsZi5wdXJwb3NlIT0nQUJTRU5UJzpiWydwdXJwb3NlJ109c2VsZi5wdXJwb3NlXG4gIGQ9eydpZCc6J3N5bnRoZXRpYy1kZWNpc2lvbicsJ2NvbnRyYWN0X3ZlcnNpb24nOkNPTlRSQUNULCdyZXF1ZXN0X2lkJzpyZXFbJ2lkJ10sJ2VmZmVjdCc6J2FsbG93JywnbWF0Y2hlZF9wb2xpY3lfdmVyc2lvbic6J3YxJywnc3ViamVjdCc6cmVxWydzdWJqZWN0J10sJ3Jlc291cmNlJzpyZXFbJ3Jlc291cmNlJ10sJ2JpbmRpbmcnOmIsJ2xpZmV0aW1lJzp7J2tpbmQnOid0dGwnLCdub3RfYmVmb3JlJzpzdGFtcChub3ctMSksJ2V4cGlyZXNfYXQnOnN0YW1wKG5vdys2MCl9LCdwcm92ZW5hbmNlJzp7J3BvbGljeV9wYWNrYWdlJzonZml4dHVyZScsJ3BvbGljeV92ZXJzaW9uJzondjEnLCdwb2xpY3lfcGFja2FnZV9kaWdlc3QnOnBpbiwncmVnaXN0cnlfc25hcHNob3RfZGlnZXN0Jzonc2hhMjU2OicrJ2MnKjY0LCdldmFsdWF0b3InOidmbGV4LWF1dGgvZml4dHVyZScsJ2RlY2lzaW9uX3RpbWUnOnN0YW1wKG5vdyl9fVxuICByZXR1cm4gMjAwLGRcbmNoZWNrcz1bXVxuZm9yIHB1cnBvc2UgaW4gKCdBQlNFTlQnLCcnLCdyZWFkYmFjaycsJ2VuZm9yY2VtZW50JywndW5rbm93bicsTm9uZSxGYWxzZSwwLFtdLHt9KTpcbiB0PVRyYW5zcG9ydCgpO3QucHVycG9zZT1wdXJwb3NlXG4gYz1Qb2xpY3lDbGllbnQoJ2h0dHBzOi8vZml4dHVyZS5pbnZhbGlkJyxsYW1iZGE6J3N5bnRoZXRpYy1vbmx5JyxwYWNrYWdlPSdmaXh0dXJlJyx2ZXJzaW9uPSd2MScscGFja2FnZV9kaWdlc3Q9cGluLHRyYW5zcG9ydD10KVxuIG89Yy5jaGVjayhyZXEpXG4gaWYgcHVycG9zZSBpbiAoJ0FCU0VOVCcsJycpOmFzc2VydCBvLm91dGNvbWU9PSdhbGxvdyc7by5yZXF1aXJlX2N1cnJlbnQodGltZS50aW1lKCkpXG4gZWxzZTphc3NlcnQgby5vdXRjb21lPT0naW52YWxpZF9kZWNpc2lvbicgYW5kIG8uZGVjaXNpb25fanNvbiBpcyBOb25lXG4gY2hlY2tzLmFwcGVuZChzdHIocHVycG9zZSkpXG5wcmludChqc29uLmR1bXBzKHsnaW5zdGFsbGVkX2ltYWdlX3B1cnBvc2VfdmFyaWFudHMnOmxlbihjaGVja3MpLCdiaW5kaW5nX2Zvcm1zX2FsbG93ZWQnOjIsJ2Fkdmlzb3J5X29yX21hbGZvcm1lZF9yZWZ1c2VkJzo4LCdzeW50aGV0aWNfb25seSc6VHJ1ZSwnbmF0aXZlX3Byb3ZpZGVyJzpGYWxzZX0pKVxuIgogICAgfSwKICAgICJwb3N0LXJlYWR5LW5hdGl2ZS1vdXRjb21lcy1jb21tYW5kLnB5IjogewogICAgICAic2hhMjU2IjogImNlODhhY2E1ZTJkNmNkNWFiNzUzMzg5OGJjOWIyNDZiZDE1OTQ4MmM0YWNjY2IwYWZlNGM0NTFlZTg4ZjU3ZmEiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJSdW4gb25seSBpbnNpZGUgZXhpc3RpbmcgYWRtaXR0ZWQgU3RhdGVIdWIgUG9kIEFGVEVSIHZlcmlmaWVkIGNhbmRpZGF0ZSBSZWFkeS5cblxuVGhlIGZpeGVkIGV4aXN0aW5nIGRpc3BhdGNoZXIgbG9hZHMgaXRzIGludGVybmFsIGNyZWRlbnRpYWw7IHJvb3QgbmV2ZXIgcmVhZHNcbml0LiBIVFRQIHN1Y2Nlc3MgcHJvdmVzIGNhbm9uaWNhbCBsaWZlY3ljbGUub3V0Y29tZXMgUERQIGdhdGUgcmV0dXJuZWQsIG5vdCBhblxuYWR2aXNvcnkgdmVyZGljdCBlbWlzc2lvbiBvciBhIHN1YnN0aXR1dGUgZm9yIHNlcGFyYXRlIGV2aWRlbmNlIG9ibGlnYXRpb25zLlxuUm9vdCByZWNvcmRzIHRoaXMgYm91bmRlZCBtZXRhZGF0YSByZWNlaXB0IHdpdGggdmVyaWZpZWQgUG9kVUlEL2ltYWdlL3NvdXJjZS5cblRoaXMgcHJlcGFyYXRpb24gb25seSB3cml0ZXMgc291cmNlOyBubyByZXF1ZXN0IGlzIG1hZGUgaGVyZS5cblwiXCJcIlxuaW1wb3J0IGRhdGV0aW1lLGpzb24sdXJsbGliLnJlcXVlc3QsdXJsbGliLmVycm9yXG5mcm9tIGFwaS5zZXJ2aWNlcy5tZW1vX2Rpc3BhdGNoIGltcG9ydCBPUklHSU4sTm9SZWRpcmVjdCx0b2tlbl9maWxlXG5pZD0naW5mZC0yMDI2MTAxMS16bGliLXJlbWVkaWF0aW9uLXIxJ1xucmVxPXVybGxpYi5yZXF1ZXN0LlJlcXVlc3QoT1JJR0lOKycvdjEvZGVjaXNpb25zLycraWQrJy9vdXRjb21lcz92ZXJzaW9uPTEnLGhlYWRlcnM9eydBdXRob3JpemF0aW9uJzonQmVhcmVyICcrdG9rZW5fZmlsZSgnL3Zhci9ydW4vc2VjcmV0cy9zdGF0ZS1odWIvaW5mb3JtZWQtZGVjaXNpb24vbGlmZWN5Y2xlLXRva2VuJyl9KVxub3BlbmVyPXVybGxpYi5yZXF1ZXN0LmJ1aWxkX29wZW5lcih1cmxsaWIucmVxdWVzdC5Qcm94eUhhbmRsZXIoe30pLE5vUmVkaXJlY3QoKSlcbnRyeTpcbiB3aXRoIG9wZW5lci5vcGVuKHJlcSx0aW1lb3V0PTE1KSBhcyByZXNwb25zZTpcbiAgcmF3PXJlc3BvbnNlLnJlYWQoMTA0ODU3NylcbiAgaWYgbGVuKHJhdyk+MTA0ODU3NjpyYWlzZSBWYWx1ZUVycm9yKCdvdmVyc2l6ZScpXG4gIHI9anNvbi5sb2FkcyhyYXcpXG4gcHJpbnQoanNvbi5kdW1wcyh7J21lbW9faWQnOmlkLCdzb3VyY2VfbWVtb192ZXJzaW9uJzoxLCdvYnNlcnZlZF9hdCc6ZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0YykuaXNvZm9ybWF0KCksJ25hdGl2ZV9hdXRoZW50aWNhdGVkX2Nhbm9uaWNhbF9saWZlY3ljbGVfb3V0Y29tZXMnOlRydWUsJ25hdGl2ZV9wcm92aWRlcl9wYXRoX3JldHVybmVkJzpUcnVlLCdjcmVkZW50aWFsX21hdGVyaWFsX291dHB1dCc6RmFsc2UsJ3Jldmlldyc6ci5nZXQoJ3JldmlldycpLCdkaXNwb3NpdGlvbl9jb3VudCc6bGVuKHIuZ2V0KCdkaXNwb3NpdGlvbnMnLFtdKSksJ2Rpc3Bvc2l0aW9ucyc6W3trOmQuZ2V0KGspIGZvciBrIGluICgnaWQnLCdhcHByb3ZhbF9pZCcsJ3N1Ym1pc3Npb25fc3RhdGUnLCdkaXNwb3NpdGlvbicsJ2FwcHJvdmVkX2F0JywnZGVjaWRlZF9hdCcpfSBmb3IgZCBpbiByLmdldCgnZGlzcG9zaXRpb25zJyxbXSldfSkpXG5leGNlcHQgRXhjZXB0aW9uIGFzIGU6cHJpbnQoanNvbi5kdW1wcyh7J21lbW9faWQnOmlkLCdzdGF0dXMnOid1bnZlcmlmaWVkJywnZXJyb3JfY2xhc3MnOnR5cGUoZSkuX19uYW1lX199KSk7cmFpc2UgU3lzdGVtRXhpdCgxKVxuIgogICAgfSwKICAgICJpbnN0YWxsZWQtemxpYi1wcm9vZi5qc29uIjogewogICAgICAic2hhMjU2IjogIjZhZjYyZjg2ZjUwYWMxODVmYWI5NDE2M2MyNGFjODE1MGVhZDY5ZTYyZjhkODI1YjBkY2UxZTc1YTVhNTdiNjgiLAogICAgICAiY29udGVudCI6ICJ7XG4gIFwiaW1hZ2VcIjogXCJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OmY1NTg4ZjQ5NmIxZjI2N2QwN2NkYzlmNTIwOGU2ZjJmMjQxZjc0YjczOWMyMzkyNGIwMzcwMmRlYzEzYTVjMjNcIixcbiAgXCJ6bGliX3BhY2thZ2VcIjogXCIxLjMuMi1yMVwiLFxuICBcImZpbGVzXCI6IHtcbiAgICBcImxpYi9hcGsvZGIvaW5zdGFsbGVkXCI6IFtcbiAgICAgIFwiZmlsZVwiLFxuICAgICAgNDIwLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBcImY1OTA3NjIxOTY3MTBlMjVjMGU5ZjcyZGEwNjQyY2FkOGE1ZGNiYTBhYTllNThhMGNiYWE2NTY4NGQxNWMwMDFcIlxuICAgIF0sXG4gICAgXCJ1c3IvbGliL2xpYnouc28uMS4zLjJcIjogW1xuICAgICAgXCJmaWxlXCIsXG4gICAgICA0OTMsXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIFwiZWNjOGI5ZGZjNDVlYjdmYTI5YjQxMGZmYWNhNjI1Nzg3Mzg5MGRlNTNiODBmZTkxNzM1NzM3YjQ5MDY3YzVmMlwiXG4gICAgXVxuICB9XG59XG4iCiAgICB9CiAgfQp9Cg=="
|
|
}
|
|
]
|
|
},
|
|
"publish": {
|
|
"version": 1,
|
|
"audience": {
|
|
"subjects": [],
|
|
"groups": [
|
|
"net-kingdom-admins"
|
|
]
|
|
}
|
|
},
|
|
"review": {
|
|
"version": 1,
|
|
"options": {
|
|
"submitter": "state-hub",
|
|
"memo_class": "decision-record",
|
|
"review_group": "net-kingdom-admins",
|
|
"approval_intent": {
|
|
"action": "administer",
|
|
"principal": "informed-decision",
|
|
"purpose": "Approve only exact zlib85091 image-only T05 release and fresh protected native backup/restore gates; no prior T04 approval reuse or unrelated grant.",
|
|
"target": {
|
|
"id": "INFD-WP-0009-T05/zlib85091-r1",
|
|
"type": "runtime-change",
|
|
"system": "railiance01"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|