From 4775a3ca98e93a360133c291c4948d4e71375fef Mon Sep 17 00:00:00 2001 From: AgentRun Codex Date: Wed, 15 Jul 2026 10:06:50 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=A9=E5=87=8F=20AgentRun=20PaC=20?= =?UTF-8?q?=E5=86=85=E5=B5=8C=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tekton/agentrun-nc01-v02.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tekton/agentrun-nc01-v02.yaml b/.tekton/agentrun-nc01-v02.yaml index b02fdc8..b19ab36 100644 --- a/.tekton/agentrun-nc01-v02.yaml +++ b/.tekton/agentrun-nc01-v02.yaml @@ -253,7 +253,7 @@ spec: name: pac-gitea-agentrun-nc01-v02 key: token optional: true - script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwidjAuMlwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS12MDIuanNvbiIsImNvbnRlbnQiOiJ7XG4gIFwibGFuZVwiOiBcInYwLjJcIixcbiAgXCJzb3VyY2VCcmFuY2hcIjogXCJ2MC4yXCIsXG4gIFwiZ2l0b3BzQnJhbmNoXCI6IFwibmMwMS12MC4yLWdpdG9wc1wiLFxuICBcInNvdXJjZUNvbW1pdElkXCI6IFwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcbiAgXCJzdW1tYXJ5XCI6IFwiYnVpbGQ9MSByZXVzZT0wIHBsYWNlaG9sZGVyPTBcIixcbiAgXCJzZXJ2aWNlc1wiOiBbXG4gICAge1xuICAgICAgXCJzZXJ2aWNlSWRcIjogXCJhZ2VudHJ1bi1tZ3JcIixcbiAgICAgIFwiYXJ0aWZhY3RLaW5kXCI6IFwiZW52LXJldXNlXCIsXG4gICAgICBcInN0YXR1c1wiOiBcIl9fQUdFTlRSVU5fSU1BR0VfU1RBVFVTX19cIixcbiAgICAgIFwiaW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwicmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiaW1hZ2VUYWdcIjogXCJfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImVudklkZW50aXR5XCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJbWFnZVwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnY6X19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZEaWdlc3RcIjogXCJzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYVwiLFxuICAgICAgXCJlbnZSZXBvc2l0b3J5RGlnZXN0XCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudkBzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYVwiLFxuICAgICAgXCJib290Q29tbWl0XCI6IFwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcbiAgICAgIFwiYm9vdFNjcmlwdFwiOiBcImRlcGxveS9ydW50aW1lL2Jvb3QvYWdlbnRydW4tYm9vdC5zaFwiLFxuICAgICAgXCJwcm92ZW5hbmNlXCI6IHtcbiAgICAgICAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICAgIFwic291cmNlXCI6IFwidW5pZGVzay15YW1sLW9ubHlcIixcbiAgICAgICAgXCJjb25maWdTb3VyY2VcIjogXCJjb25maWcvYWdlbnRydW4ueWFtbFwiLFxuICAgICAgICBcInZhbHVlc1ByaW50ZWRcIjogZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIF1cbn1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL2FyZ29jZC9wcm9qZWN0LnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IGFyZ29wcm9qLmlvL3YxYWxwaGExLGtpbmQ6IEFwcFByb2plY3QsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMixuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogdjAuMixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtkZXNjcmlwdGlvbjogQWdlbnRSdW4gdjAuMiBHaXRPcHMgbGFuZSxzb3VyY2VSZXBvczogW2h0dHA6Ly9naXQtbWlycm9yLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjgwODAvcGlrYXNUZWNoL2FnZW50cnVuLmdpdCxodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXRdLGRlc3RpbmF0aW9uczogW3tzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXYwMn1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tdjAyLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IGFyZ29wcm9qLmlvL3YxYWxwaGExLGtpbmQ6IEFwcGxpY2F0aW9uLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDIsbmFtZXNwYWNlOiBhcmdvY2QsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7cHJvamVjdDogYWdlbnRydW4tbmMwMS12MDIsc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXYwLjItZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtdjAyfSxkZXN0aW5hdGlvbjoge3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyfSxzeW5jUG9saWN5OiB7YXV0b21hdGVkOiB7cHJ1bmU6IGZhbHNlLHNlbGZIZWFsOiB0cnVlfSxzeW5jT3B0aW9uczogW0NyZWF0ZU5hbWVzcGFjZT10cnVlLEFwcGx5T3V0T2ZTeW5jT25seT10cnVlXX19fVxuIn0seyJwYXRoIjoiZGVwbG95L2dpdG9wcy9ub2RlL25jMDEvcnVudGltZS12MDIva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXYwMi9uYW1lc3BhY2UueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogTmFtZXNwYWNlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXYwMi9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3IsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbi0tLVxue2FwaVZlcnNpb246IHYxLGtpbmQ6IFNlcnZpY2UsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1tZ3IsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57YXBpVmVyc2lvbjogYXBwcy92MSxraW5kOiBEZXBsb3ltZW50LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge3JlcGxpY2FzOiAxLHNlbGVjdG9yOiB7bWF0Y2hMYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9fSx0ZW1wbGF0ZToge21ldGFkYXRhOiB7bGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDEsYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogYWdlbnRydW4tbWdyfSxhbm5vdGF0aW9uczoge2FnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9zb3VyY2UtY29tbWl0OiBfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfXyxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvZW52LWlkZW50aXR5OiBfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9ffX0sc3BlYzoge3NlcnZpY2VBY2NvdW50TmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLGNvbnRhaW5lcnM6IFt7bmFtZTogbWdyLGltYWdlOiAxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50LHBvcnRzOiBbe25hbWU6IGh0dHAsY29udGFpbmVyUG9ydDogODA4MH1dLGVudjogW3tuYW1lOiBBR0VOVFJVTl9MQU5FLHZhbHVlOiB2MC4yfSx7bmFtZTogREFUQUJBU0VfVVJMLHZhbHVlRnJvbToge3NlY3JldEtleVJlZjoge25hbWU6IGFnZW50cnVuLXYwMi1tZ3ItZGIsa2V5OiBEQVRBQkFTRV9VUkx9fX0se25hbWU6IEFHRU5UUlVOX1NPVVJDRV9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9NT0RFLHZhbHVlOiBtZ3J9LHtuYW1lOiBBR0VOVFJVTl9CT09UX1JFUE9fVVJMLHZhbHVlOiBodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXR9LHtuYW1lOiBBR0VOVFJVTl9FTlZfSURFTlRJVFksdmFsdWU6IF9fQUdFTlRSVU5fRU5WX0lERU5USVRZX199LHtuYW1lOiBBR0VOVFJVTl9SVU5USU1FX05BTUVTUEFDRSx2YWx1ZTogYWdlbnRydW4tdjAyfSx7bmFtZTogQUdFTlRSVU5fSU5URVJOQUxfTUdSX1VSTCx2YWx1ZTogaHR0cDovL2FnZW50cnVuLW1nci5hZ2VudHJ1bi12MDIuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MH0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9JTUFHRSx2YWx1ZTogMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudkBzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYX0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlQsdmFsdWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVgsdmFsdWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FLHZhbHVlOiBhZ2VudHJ1bi12MDItYXBpLWtleX0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVksdmFsdWU6IEhXTEFCX0FQSV9LRVl9LHtuYW1lOiBBR0VOVFJVTl9HSVRfTUlSUk9SX0JBU0VfVVJMLHZhbHVlOiBodHRwOi8vZ2l0LW1pcnJvci1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo4MDgwfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0lETEVfVElNRU9VVF9NUyx2YWx1ZTogXCI2MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTLHZhbHVlOiBcIjVcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfSU5JVElBTF9CQUNLT0ZGX01TLHZhbHVlOiBcIjEwMDBcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0JBQ0tPRkZfTVMsdmFsdWU6IFwiMzAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlMsdmFsdWU6IFwiMjBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQ0xFQU5VUF9PUkRFUix2YWx1ZTogb2xkZXN0LWluYWN0aXZlLWxhc3QtYWN0aXZlLWZpcnN0fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVMsdmFsdWU6IFwiOTAwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX1NUQUxFX1BFTkRJTkdfTUFYX0FHRV9NUyx2YWx1ZTogXCI5MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFUQ0hfTEFCRUxTX0pTT04sdmFsdWU6IFwie1xcXCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXFxcIjpcXFwiYWdlbnRydW5cXFwiLFxcXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXFxcIjpcXFwiYWdlbnRydW4tcnVubmVyXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50XFxcIjpcXFwicnVubmVyXFxcIn1cIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVMsdmFsdWU6IFwiYWdlbnRydW4tbmMwMS12MDItcnVubmVyLGFnZW50cnVuLXYwMi1ydW5uZXIsYWdlbnRydW4tdjAxLXJ1bm5lclwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BR0VfQkFTRURfQ0xFQU5VUF9FTkFCTEVELHZhbHVlOiBcImZhbHNlXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FHRV9CQVNFRF9NQVhfQUdFX0hPVVJTLHZhbHVlOiBcIjQ4XCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERSx2YWx1ZTogbWFuYWdlci1lcG9jaH0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9HUkFDRUZVTF9BQk9SVF9NUyx2YWx1ZTogXCIxNTAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX1NUQUxFX0hFQVJUQkVBVF9GRU5DSU5HX01TLHZhbHVlOiBcIjkwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0xBVEVfV1JJVEVfRkVOQ0lOR19FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVMsdmFsdWU6IFwiYWNjZXB0ZWQscGVyc2lzdGVkLGRlbGl2ZXJlZCxhYm9ydGluZyx0ZXJtaW5hbGl6ZWQsZmVuY2VkLGxhdGUtd3JpdGUtcmVqZWN0ZWRcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9FR1JFU1NfUFJPWFlfVVJMLHZhbHVlOiBodHRwOi8vMTAuNDIuMC4xOjEwODA4fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBLHZhbHVlOiBcImxvY2FsaG9zdCwxMjcuMC4wLjEsOjoxLC5zdmMsLnN2Yy5jbHVzdGVyLmxvY2FsLC5jbHVzdGVyLmxvY2FsLGh5dWVhcGkuY29tLC5oeXVlYXBpLmNvbSxhcGkucGlrYXB5dGhvbi5jb20sLnBpa2FweXRob24uY29tXCJ9LHtuYW1lOiBBR0VOVFJVTl9BUElfS0VZLHZhbHVlRnJvbToge3NlY3JldEtleVJlZjoge25hbWU6IGFnZW50cnVuLXYwMi1hcGkta2V5LGtleTogSFdMQUJfQVBJX0tFWX19fSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlMsdmFsdWU6IHBsYXRmb3JtLWluZnJhLWthZmthLWthZmthLWJvb3RzdHJhcC5wbGF0Zm9ybS1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lELHZhbHVlOiBhZ2VudHJ1bi12MDItbWFuYWdlcn0se25hbWU6IEFHRU5UUlVOX0tBRktBX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfRVZFTlRfVE9QSUMsdmFsdWU6IGFnZW50cnVuLmV2ZW50LnYxfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkUsdmFsdWU6IFwiMTAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfSU5URVJWQUxfTVMsdmFsdWU6IFwiNTAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfTEVBU0VfTVMsdmFsdWU6IFwiNjAwMDBcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TLHZhbHVlOiBcIjUwMDBcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX0NMSUVOVF9JRCx2YWx1ZTogYWdlbnRydW4tdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX1BST0RVQ0VfRU5BQkxFRCx2YWx1ZTogXCJ0cnVlXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9TVERJT19UT1BJQyx2YWx1ZTogY29kZXgtc3RkaW8ucmF3LnYxfSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0JBVENIX1NJWkUsdmFsdWU6IFwiMjBcIn0se25hbWU6IEFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVgsdmFsdWU6IFwiNFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfQVRURU1QVF9USU1FT1VUX01TLHZhbHVlOiBcIjkwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9CQVRDSF9TSVpFLHZhbHVlOiBcIjEwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0lOVEVSVkFMX01TLHZhbHVlOiBcIjEwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0xFQVNFX01TLHZhbHVlOiBcIjEyMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTLHZhbHVlOiBcIjVcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX1JFVFJZX0JBQ0tPRkZfTVMsdmFsdWU6IFwiNTAwMFwifSx7bmFtZTogSFdMQUJfUlVOVElNRV9MQU5FLHZhbHVlOiB2MC4zfSx7bmFtZTogT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVCx2YWx1ZTogaHR0cDovL290ZWwtY29sbGVjdG9yLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjQzMTgvdjEvdHJhY2VzfSx7bmFtZTogT1RFTF9TRVJWSUNFX05BTUUsdmFsdWU6IGFnZW50cnVuLW1hbmFnZXJ9LHtuYW1lOiBVTklERVNLX05PREVfSUQsdmFsdWU6IE5DMDF9LHtuYW1lOiBVTklERVNLX01BSU5fU0VSVkVSX0lQLHZhbHVlOiAxNTIuNTMuMjI5LjE0OH1dLHJlYWRpbmVzc1Byb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvcmVhZGluZXNzLHBvcnQ6IGh0dHB9LHRpbWVvdXRTZWNvbmRzOiAyfSxsaXZlbmVzc1Byb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvbGl2ZSxwb3J0OiBodHRwfSx0aW1lb3V0U2Vjb25kczogMn0sc3RhcnR1cFByb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvbGl2ZSxwb3J0OiBodHRwfSxwZXJpb2RTZWNvbmRzOiAxMCx0aW1lb3V0U2Vjb25kczogMixmYWlsdXJlVGhyZXNob2xkOiA5MH0scmVzb3VyY2VzOiB7cmVxdWVzdHM6IHtjcHU6IDEwMG0sbWVtb3J5OiAyNTZNaX0sbGltaXRzOiB7Y3B1OiA4MDBtLG1lbW9yeTogMUdpfX19XX19fX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxydWxlczogW3thcGlHcm91cHM6IFtiYXRjaF0scmVzb3VyY2VzOiBbam9ic10sdmVyYnM6IFtjcmVhdGUsZGVsZXRlLGdldCxsaXN0LHdhdGNoXX0se2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3BvZHNdLHZlcmJzOiBbZGVsZXRlLGdldCxsaXN0LHdhdGNoXX0se2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW2V2ZW50c10sdmVyYnM6IFtnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwZXJzaXN0ZW50dm9sdW1lY2xhaW1zXSx2ZXJiczogW2NyZWF0ZSxnZXQsbGlzdCx3YXRjaCxkZWxldGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcixuYW1lc3BhY2U6IGFnZW50cnVuLXYwMixsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogdjAuMixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1ncn1dLHJvbGVSZWY6IHthcGlHcm91cDogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyxraW5kOiBSb2xlLG5hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXJ9fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbc2VjcmV0c10sdmVyYnM6IFtjcmVhdGUsZGVsZXRlLGdldCxsaXN0LHBhdGNoLHVwZGF0ZV19XX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZUJpbmRpbmcsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3ItcHJvdmlkZXItc2VjcmV0LW1hbmFnZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3ItcHJvdmlkZXItc2VjcmV0LW1hbmFnZXJ9fVxuIn0seyJwYXRoIjoiZGVwbG95L2dpdG9wcy9ub2RlL25jMDEvcnVudGltZS12MDIvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbc2VjcmV0c10sdmVyYnM6IFtnZXRdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItcnVubmVyLXNlY3JldC1yZWFkZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXJ9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXItc2VjcmV0LXJlYWRlcn19XG4ifV0=\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-v02'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! cat >\"$feature_config_ajv_bundle\" <<'NODE_UNIDESK_AJV2020_BUNDLE'\n/* ajv 8.17.1 (ajv2020): Another JSON Schema Validator */\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).ajv2020=e()}}((function(){return function e(t,r,o){function s(n,i){if(!r[n]){if(!t[n]){var c=\"function\"==typeof require&&require;if(!i&&c)return c(n,!0);if(a)return a(n,!0);var d=new Error(\"Cannot find module '\"+n+\"'\");throw d.code=\"MODULE_NOT_FOUND\",d}var l=r[n]={exports:{}};t[n][0].call(l.exports,(function(e){return s(t[n][1][e]||e)}),l,l.exports,e,t,r,o)}return r[n].exports}for(var a=\"function\"==typeof require&&require,n=0;n1)return!1;const e=this._items[0];return\"\"===e||'\"\"'===e}get str(){var e;return null!==(e=this._str)&&void 0!==e?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),\"\")}get names(){var e;return null!==(e=this._names)&&void 0!==e?e:this._names=this._items.reduce(((e,t)=>(t instanceof s&&(e[t.str]=(e[t.str]||0)+1),e)),{})}}function n(e,...t){const r=[e[0]];let o=0;for(;o\"),GTE:new o._Code(\">=\"),LT:new o._Code(\"<\"),LTE:new o._Code(\"<=\"),EQ:new o._Code(\"===\"),NEQ:new o._Code(\"!==\"),NOT:new o._Code(\"!\"),OR:new o._Code(\"||\"),AND:new o._Code(\"&&\"),ADD:new o._Code(\"+\")};class i{optimizeNodes(){return this}optimizeNames(e,t){return this}}class c extends i{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r}render({es5:e,_n:t}){return`${e?s.varKinds.var:this.varKind} ${this.name}${void 0===this.rhs?\"\":` = ${this.rhs}`};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=I(this.rhs,e,t)),this}get names(){return this.rhs instanceof o._CodeOrName?this.rhs.names:{}}}class d extends i{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof o.Name)||e[this.lhs.str]||this.sideEffects)return this.rhs=I(this.rhs,e,t),this}get names(){return R(this.lhs instanceof o.Name?{}:{...this.lhs.names},this.rhs)}}class l extends d{constructor(e,t,r,o){super(e,r,o),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class u extends i{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}}class m extends i{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:\"\"};`+e}}class f extends i{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class p extends i{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=I(this.code,e,t),this}get names(){return this.code instanceof o._CodeOrName?this.code.names:{}}}class h extends i{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),\"\")}optimizeNodes(){const{nodes:e}=this;let t=e.length;for(;t--;){const r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){const{nodes:r}=this;let o=r.length;for(;o--;){const s=r[o];s.optimizeNames(e,t)||(x(e,s.names),r.splice(o,1))}return r.length>0?this:void 0}get names(){return this.nodes.reduce(((e,t)=>O(e,t.names)),{})}}class y extends h{render(e){return\"{\"+e._n+super.render(e)+\"}\"+e._n}}class v extends h{}class g extends y{}g.kind=\"else\";class $ extends y{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=\"else \"+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(!0===e)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new g(e):e}return t?!1===e?t instanceof $?t:t.nodes:this.nodes.length?this:new $(C(e),t instanceof $?[t]:t.nodes):!1!==e&&this.nodes.length?this:void 0}optimizeNames(e,t){var r;if(this.else=null===(r=this.else)||void 0===r?void 0:r.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=I(this.condition,e,t),this}get names(){const e=super.names;return R(e,this.condition),this.else&&O(e,this.else.names),e}}$.kind=\"if\";class _ extends y{}_.kind=\"for\";class b extends _{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=I(this.iteration,e,t),this}get names(){return O(super.names,this.iteration.names)}}class w extends _{constructor(e,t,r,o){super(),this.varKind=e,this.name=t,this.from=r,this.to=o}render(e){const t=e.es5?s.varKinds.var:this.varKind,{name:r,from:o,to:a}=this;return`for(${t} ${r}=${o}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){const e=R(super.names,this.from);return R(e,this.to)}}class P extends _{constructor(e,t,r,o){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=o}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=I(this.iterable,e,t),this}get names(){return O(super.names,this.iterable.names)}}class E extends y{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r}render(e){return`${this.async?\"async \":\"\"}function ${this.name}(${this.args})`+super.render(e)}}E.kind=\"func\";class S extends h{render(e){return\"return \"+super.render(e)}}S.kind=\"return\";class j extends y{render(e){let t=\"try\"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),null===(e=this.catch)||void 0===e||e.optimizeNodes(),null===(t=this.finally)||void 0===t||t.optimizeNodes(),this}optimizeNames(e,t){var r,o;return super.optimizeNames(e,t),null===(r=this.catch)||void 0===r||r.optimizeNames(e,t),null===(o=this.finally)||void 0===o||o.optimizeNames(e,t),this}get names(){const e=super.names;return this.catch&&O(e,this.catch.names),this.finally&&O(e,this.finally.names),e}}class k extends y{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}k.kind=\"catch\";class N extends y{render(e){return\"finally\"+super.render(e)}}N.kind=\"finally\";function O(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function R(e,t){return t instanceof o._CodeOrName?O(e,t.names):e}function I(e,t,r){return e instanceof o.Name?a(e):(s=e)instanceof o._Code&&s._items.some((e=>e instanceof o.Name&&1===t[e.str]&&void 0!==r[e.str]))?new o._Code(e._items.reduce(((e,t)=>(t instanceof o.Name&&(t=a(t)),t instanceof o._Code?e.push(...t._items):e.push(t),e)),[])):e;var s;function a(e){const o=r[e.str];return void 0===o||1!==t[e.str]?e:(delete t[e.str],o)}}function x(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function C(e){return\"boolean\"==typeof e||\"number\"==typeof e||null===e?!e:o._`!${D(e)}`}r.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?\"\\n\":\"\"},this._extScope=e,this._scope=new s.Scope({parent:e}),this._nodes=[new v]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);return(this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,o){const s=this._scope.toName(t);return void 0!==r&&o&&(this._constants[s.str]=r),this._leafNode(new c(e,s,r)),s}const(e,t,r){return this._def(s.varKinds.const,e,t,r)}let(e,t,r){return this._def(s.varKinds.let,e,t,r)}var(e,t,r){return this._def(s.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new d(e,t,r))}add(e,t){return this._leafNode(new l(e,r.operators.ADD,t))}code(e){return\"function\"==typeof e?e():e!==o.nil&&this._leafNode(new p(e)),this}object(...e){const t=[\"{\"];for(const[r,s]of e)t.length>1&&t.push(\",\"),t.push(r),(r!==s||this.opts.es5)&&(t.push(\":\"),(0,o.addCodeArg)(t,s));return t.push(\"}\"),new o._Code(t)}if(e,t,r){if(this._blockNode(new $(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: \"else\" body without \"then\" body');return this}elseIf(e){return this._elseNode(new $(e))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode($,g)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new b(e),t)}forRange(e,t,r,o,a=(this.opts.es5?s.varKinds.var:s.varKinds.let)){const n=this._scope.toName(e);return this._for(new w(a,n,t,r),(()=>o(n)))}forOf(e,t,r,a=s.varKinds.const){const n=this._scope.toName(e);if(this.opts.es5){const e=t instanceof o.Name?t:this.var(\"_arr\",t);return this.forRange(\"_i\",0,o._`${e}.length`,(t=>{this.var(n,o._`${e}[${t}]`),r(n)}))}return this._for(new P(\"of\",a,n,t),(()=>r(n)))}forIn(e,t,r,a=(this.opts.es5?s.varKinds.var:s.varKinds.const)){if(this.opts.ownProperties)return this.forOf(e,o._`Object.keys(${t})`,r);const n=this._scope.toName(e);return this._for(new P(\"in\",a,n,t),(()=>r(n)))}endFor(){return this._endBlockNode(_)}label(e){return this._leafNode(new u(e))}break(e){return this._leafNode(new m(e))}return(e){const t=new S;if(this._blockNode(t),this.code(e),1!==t.nodes.length)throw new Error('CodeGen: \"return\" should have one node');return this._endBlockNode(S)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');const o=new j;if(this._blockNode(o),this.code(e),t){const e=this.name(\"e\");this._currNode=o.catch=new k(e),t(e)}return r&&(this._currNode=o.finally=new N,this.code(r)),this._endBlockNode(k,N)}throw(e){return this._leafNode(new f(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){const t=this._blockStarts.pop();if(void 0===t)throw new Error(\"CodeGen: not in self-balancing block\");const r=this._nodes.length-t;if(r<0||void 0!==e&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=o.nil,r,s){return this._blockNode(new E(e,t,r)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(E)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block \"${t?`${e.kind}/${t.kind}`:e.kind}\"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof $))throw new Error('CodeGen: \"else\" without \"if\"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}},r.not=C;const T=M(r.operators.AND);r.and=function(...e){return e.reduce(T)};const A=M(r.operators.OR);function M(e){return(t,r)=>t===o.nil?r:r===o.nil?t:o._`${D(t)} ${e} ${D(r)}`}function D(e){return e instanceof o.Name?e:o._`(${e})`}r.or=function(...e){return e.reduce(A)}},{\"./code\":1,\"./scope\":3}],3:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.ValueScope=r.ValueScopeName=r.Scope=r.varKinds=r.UsedValueState=void 0;const o=e(\"./code\");class s extends Error{constructor(e){super(`CodeGen: \"code\" for ${e} not defined`),this.value=e.value}}var a;!function(e){e[e.Started=0]=\"Started\",e[e.Completed=1]=\"Completed\"}(a||(r.UsedValueState=a={})),r.varKinds={const:new o.Name(\"const\"),let:new o.Name(\"let\"),var:new o.Name(\"var\")};class n{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof o.Name?e:this.name(e)}name(e){return new o.Name(this._newName(e))}_newName(e){return`${e}${(this._names[e]||this._nameGroup(e)).index++}`}_nameGroup(e){var t,r;if((null===(r=null===(t=this._parent)||void 0===t?void 0:t._prefixes)||void 0===r?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix \"${e}\" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}}r.Scope=n;class i extends o.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=o._`.${new o.Name(t)}[${r}]`}}r.ValueScopeName=i;const c=o._`\\n`;r.ValueScope=class extends n{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?c:o.nil}}get(){return this._scope}name(e){return new i(e,this._newName(e))}value(e,t){var r;if(void 0===t.ref)throw new Error(\"CodeGen: ref must be passed in value\");const o=this.toName(e),{prefix:s}=o,a=null!==(r=t.key)&&void 0!==r?r:t.ref;let n=this._values[s];if(n){const e=n.get(a);if(e)return e}else n=this._values[s]=new Map;n.set(a,o);const i=this._scope[s]||(this._scope[s]=[]),c=i.length;return i[c]=t.ref,o.setValue(t,{property:s,itemIndex:c}),o}getValue(e,t){const r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(void 0===t.scopePath)throw new Error(`CodeGen: name \"${t}\" has no value`);return o._`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(void 0===e.value)throw new Error(`CodeGen: name \"${e}\" has no value`);return e.value.code}),t,r)}_reduceValues(e,t,n={},i){let c=o.nil;for(const d in e){const l=e[d];if(!l)continue;const u=n[d]=n[d]||new Map;l.forEach((e=>{if(u.has(e))return;u.set(e,a.Started);let n=t(e);if(n){c=o._`${c}${this.opts.es5?r.varKinds.var:r.varKinds.const} ${e} = ${n};${this.opts._n}`}else{if(!(n=null==i?void 0:i(e)))throw new s(e);c=o._`${c}${n}${this.opts._n}`}u.set(e,a.Completed)}))}return c}}},{\"./code\":1}],4:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.extendErrors=r.resetErrorsCount=r.reportExtraError=r.reportError=r.keyword$DataError=r.keywordError=void 0;const o=e(\"./codegen\"),s=e(\"./util\"),a=e(\"./names\");function n(e,t){const r=e.const(\"err\",t);e.if(o._`${a.default.vErrors} === null`,(()=>e.assign(a.default.vErrors,o._`[${r}]`)),o._`${a.default.vErrors}.push(${r})`),e.code(o._`${a.default.errors}++`)}function i(e,t){const{gen:r,validateName:s,schemaEnv:a}=e;a.$async?r.throw(o._`new ${e.ValidationError}(${t})`):(r.assign(o._`${s}.errors`,t),r.return(!1))}r.keywordError={message({keyword:e}){return o.str`must pass \"${e}\" keyword validation`}},r.keyword$DataError={message({keyword:e,schemaType:t}){return t?o.str`\"${e}\" keyword must be ${t} ($data)`:o.str`\"${e}\" keyword is invalid ($data)`}},r.reportError=function(e,t=r.keywordError,s,a){const{it:c}=e,{gen:l,compositeRule:u,allErrors:m}=c,f=d(e,t,s);(null!=a?a:u||m)?n(l,f):i(c,o._`[${f}]`)},r.reportExtraError=function(e,t=r.keywordError,o){const{it:s}=e,{gen:c,compositeRule:l,allErrors:u}=s;n(c,d(e,t,o)),l||u||i(s,a.default.vErrors)},r.resetErrorsCount=function(e,t){e.assign(a.default.errors,t),e.if(o._`${a.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign(o._`${a.default.vErrors}.length`,t)),(()=>e.assign(a.default.vErrors,null)))))},r.extendErrors=function({gen:e,keyword:t,schemaValue:r,data:s,errsCount:n,it:i}){if(void 0===n)throw new Error(\"ajv implementation error\");const c=e.name(\"err\");e.forRange(\"i\",n,a.default.errors,(n=>{e.const(c,o._`${a.default.vErrors}[${n}]`),e.if(o._`${c}.instancePath === undefined`,(()=>e.assign(o._`${c}.instancePath`,(0,o.strConcat)(a.default.instancePath,i.errorPath)))),e.assign(o._`${c}.schemaPath`,o.str`${i.errSchemaPath}/${t}`),i.opts.verbose&&(e.assign(o._`${c}.schema`,r),e.assign(o._`${c}.data`,s))}))};const c={keyword:new o.Name(\"keyword\"),schemaPath:new o.Name(\"schemaPath\"),params:new o.Name(\"params\"),propertyName:new o.Name(\"propertyName\"),message:new o.Name(\"message\"),schema:new o.Name(\"schema\"),parentSchema:new o.Name(\"parentSchema\")};function d(e,t,r){const{createErrors:s}=e.it;return!1===s?o._`{}`:function(e,t,r={}){const{gen:s,it:n}=e,i=[l(n,r),u(e,r)];return function(e,{params:t,message:r},s){const{keyword:n,data:i,schemaValue:d,it:l}=e,{opts:u,propertyName:m,topSchemaRef:f,schemaPath:p}=l;s.push([c.keyword,n],[c.params,\"function\"==typeof t?t(e):t||o._`{}`]),u.messages&&s.push([c.message,\"function\"==typeof r?r(e):r]);u.verbose&&s.push([c.schema,d],[c.parentSchema,o._`${f}${p}`],[a.default.data,i]);m&&s.push([c.propertyName,m])}(e,t,i),s.object(...i)}(e,t,r)}function l({errorPath:e},{instancePath:t}){const r=t?o.str`${e}${(0,s.getErrorPath)(t,s.Type.Str)}`:e;return[a.default.instancePath,(0,o.strConcat)(a.default.instancePath,r)]}function u({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:a}){let n=a?t:o.str`${t}/${e}`;return r&&(n=o.str`${n}${(0,s.getErrorPath)(r,s.Type.Str)}`),[c.schemaPath,n]}},{\"./codegen\":2,\"./names\":6,\"./util\":10}],5:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.resolveSchema=r.getCompilingSchema=r.resolveRef=r.compileSchema=r.SchemaEnv=void 0;const o=e(\"./codegen\"),s=e(\"../runtime/validation_error\"),a=e(\"./names\"),n=e(\"./resolve\"),i=e(\"./util\"),c=e(\"./validate\");class d{constructor(e){var t;let r;this.refs={},this.dynamicAnchors={},\"object\"==typeof e.schema&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=null!==(t=e.baseId)&&void 0!==t?t:(0,n.normalizeId)(null==r?void 0:r[e.schemaId||\"$id\"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=null==r?void 0:r.$async,this.refs={}}}function l(e){const t=m.call(this,e);if(t)return t;const r=(0,n.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:i,lines:d}=this.opts.code,{ownProperties:l}=this.opts,u=new o.CodeGen(this.scope,{es5:i,lines:d,ownProperties:l});let f;e.$async&&(f=u.scopeValue(\"Error\",{ref:s.default,code:o._`require(\"ajv/dist/runtime/validation_error\").default`}));const p=u.scopeName(\"validate\");e.validateName=p;const h={gen:u,allErrors:this.opts.allErrors,data:a.default.data,parentData:a.default.parentData,parentDataProperty:a.default.parentDataProperty,dataNames:[a.default.data],dataPathArr:[o.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:u.scopeValue(\"schema\",!0===this.opts.code.source?{ref:e.schema,code:(0,o.stringify)(e.schema)}:{ref:e.schema}),validateName:p,ValidationError:f,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:o.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?\"\":\"#\"),errorPath:o._`\"\"`,opts:this.opts,self:this};let y;try{this._compilations.add(e),(0,c.validateFunctionCode)(h),u.optimize(this.opts.code.optimize);const t=u.toString();y=`${u.scopeRefs(a.default.scope)}return ${t}`,this.opts.code.process&&(y=this.opts.code.process(y,e));const r=new Function(`${a.default.self}`,`${a.default.scope}`,y)(this,this.scope.get());if(this.scope.value(p,{ref:r}),r.errors=null,r.schema=e.schema,r.schemaEnv=e,e.$async&&(r.$async=!0),!0===this.opts.code.source&&(r.source={validateName:p,validateCode:t,scopeValues:u._values}),this.opts.unevaluated){const{props:e,items:t}=h;r.evaluated={props:e instanceof o.Name?void 0:e,items:t instanceof o.Name?void 0:t,dynamicProps:e instanceof o.Name,dynamicItems:t instanceof o.Name},r.source&&(r.source.evaluated=(0,o.stringify)(r.evaluated))}return e.validate=r,e}catch(t){throw delete e.validate,delete e.validateName,y&&this.logger.error(\"Error compiling schema, function code:\",y),t}finally{this._compilations.delete(e)}}function u(e){return(0,n.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:l.call(this,e)}function m(e){for(const o of this._compilations)if((t=o).schema===(r=e).schema&&t.root===r.root&&t.baseId===r.baseId)return o;var t,r}function f(e,t){let r;for(;\"string\"==typeof(r=this.refs[t]);)t=r;return r||this.schemas[t]||p.call(this,e,t)}function p(e,t){const r=this.opts.uriResolver.parse(t),o=(0,n._getFullPath)(this.opts.uriResolver,r);let s=(0,n.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&o===s)return y.call(this,r,e);const a=(0,n.normalizeId)(o),i=this.refs[a]||this.schemas[a];if(\"string\"==typeof i){const t=p.call(this,e,i);if(\"object\"!=typeof(null==t?void 0:t.schema))return;return y.call(this,r,t)}if(\"object\"==typeof(null==i?void 0:i.schema)){if(i.validate||l.call(this,i),a===(0,n.normalizeId)(t)){const{schema:t}=i,{schemaId:r}=this.opts,o=t[r];return o&&(s=(0,n.resolveUrl)(this.opts.uriResolver,s,o)),new d({schema:t,schemaId:r,root:e,baseId:s})}return y.call(this,r,i)}}r.SchemaEnv=d,r.compileSchema=l,r.resolveRef=function(e,t,r){var o;r=(0,n.resolveUrl)(this.opts.uriResolver,t,r);const s=e.refs[r];if(s)return s;let a=f.call(this,e,r);if(void 0===a){const s=null===(o=e.localRefs)||void 0===o?void 0:o[r],{schemaId:n}=this.opts;s&&(a=new d({schema:s,schemaId:n,root:e,baseId:t}))}return void 0!==a?e.refs[r]=u.call(this,a):void 0},r.getCompilingSchema=m,r.resolveSchema=p;const h=new Set([\"properties\",\"patternProperties\",\"enum\",\"dependencies\",\"definitions\"]);function y(e,{baseId:t,schema:r,root:o}){var s;if(\"/\"!==(null===(s=e.fragment)||void 0===s?void 0:s[0]))return;for(const o of e.fragment.slice(1).split(\"/\")){if(\"boolean\"==typeof r)return;const e=r[(0,i.unescapeFragment)(o)];if(void 0===e)return;const s=\"object\"==typeof(r=e)&&r[this.opts.schemaId];!h.has(o)&&s&&(t=(0,n.resolveUrl)(this.opts.uriResolver,t,s))}let a;if(\"boolean\"!=typeof r&&r.$ref&&!(0,i.schemaHasRulesButRef)(r,this.RULES)){const e=(0,n.resolveUrl)(this.opts.uriResolver,t,r.$ref);a=p.call(this,o,e)}const{schemaId:c}=this.opts;return a=a||new d({schema:r,schemaId:c,root:o,baseId:t}),a.schema!==a.root.schema?a:void 0}},{\"../runtime/validation_error\":32,\"./codegen\":2,\"./names\":6,\"./resolve\":8,\"./util\":10,\"./validate\":15}],6:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./codegen\"),s={data:new o.Name(\"data\"),valCxt:new o.Name(\"valCxt\"),instancePath:new o.Name(\"instancePath\"),parentData:new o.Name(\"parentData\"),parentDataProperty:new o.Name(\"parentDataProperty\"),rootData:new o.Name(\"rootData\"),dynamicAnchors:new o.Name(\"dynamicAnchors\"),vErrors:new o.Name(\"vErrors\"),errors:new o.Name(\"errors\"),this:new o.Name(\"this\"),self:new o.Name(\"self\"),scope:new o.Name(\"scope\"),json:new o.Name(\"json\"),jsonPos:new o.Name(\"jsonPos\"),jsonLen:new o.Name(\"jsonLen\"),jsonPart:new o.Name(\"jsonPart\")};r.default=s},{\"./codegen\":2}],7:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./resolve\");class s extends Error{constructor(e,t,r,s){super(s||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0,o.resolveUrl)(e,t,r),this.missingSchema=(0,o.normalizeId)((0,o.getFullPath)(e,this.missingRef))}}r.default=s},{\"./resolve\":8}],8:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.getSchemaRefs=r.resolveUrl=r.normalizeId=r._getFullPath=r.getFullPath=r.inlineRef=void 0;const o=e(\"./util\"),s=e(\"fast-deep-equal\"),a=e(\"json-schema-traverse\"),n=new Set([\"type\",\"format\",\"pattern\",\"maxLength\",\"minLength\",\"maxProperties\",\"minProperties\",\"maxItems\",\"minItems\",\"maximum\",\"minimum\",\"uniqueItems\",\"multipleOf\",\"required\",\"enum\",\"const\"]);r.inlineRef=function(e,t=!0){return\"boolean\"==typeof e||(!0===t?!c(e):!!t&&d(e)<=t)};const i=new Set([\"$ref\",\"$recursiveRef\",\"$recursiveAnchor\",\"$dynamicRef\",\"$dynamicAnchor\"]);function c(e){for(const t in e){if(i.has(t))return!0;const r=e[t];if(Array.isArray(r)&&r.some(c))return!0;if(\"object\"==typeof r&&c(r))return!0}return!1}function d(e){let t=0;for(const r in e){if(\"$ref\"===r)return Infinity;if(t++,!n.has(r)&&(\"object\"==typeof e[r]&&(0,o.eachItem)(e[r],(e=>t+=d(e))),Infinity===t))return Infinity}return t}function l(e,t=\"\",r){!1!==r&&(t=f(t));const o=e.parse(t);return u(e,o)}function u(e,t){return e.serialize(t).split(\"#\")[0]+\"#\"}r.getFullPath=l,r._getFullPath=u;const m=/#\\/?$/;function f(e){return e?e.replace(m,\"\"):\"\"}r.normalizeId=f,r.resolveUrl=function(e,t,r){return r=f(r),e.resolve(t,r)};const p=/^[a-z_][-a-z0-9._]*$/i;r.getSchemaRefs=function(e,t){if(\"boolean\"==typeof e)return{};const{schemaId:r,uriResolver:o}=this.opts,n=f(e[r]||t),i={\"\":n},c=l(o,n,!1),d={},u=new Set;return a(e,{allKeys:!0},((e,t,o,s)=>{if(void 0===s)return;const a=c+t;let n=i[s];function l(t){if(t=f(n?(0,this.opts.uriResolver.resolve)(n,t):t),u.has(t))throw h(t);u.add(t);let r=this.refs[t];return\"string\"==typeof r&&(r=this.refs[r]),\"object\"==typeof r?m(e,r.schema,t):t!==f(a)&&(\"#\"===t[0]?(m(e,d[t],t),d[t]=e):this.refs[t]=a),t}function y(e){if(\"string\"==typeof e){if(!p.test(e))throw new Error(`invalid anchor \"${e}\"`);l.call(this,`#${e}`)}}\"string\"==typeof e[r]&&(n=l.call(this,e[r])),y.call(this,e.$anchor),y.call(this,e.$dynamicAnchor),i[t]=n})),d;function m(e,t,r){if(void 0!==t&&!s(e,t))throw h(r)}function h(e){return new Error(`reference \"${e}\" resolves to more than one schema`)}}},{\"./util\":10,\"fast-deep-equal\":83,\"json-schema-traverse\":88}],9:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.getRules=r.isJSONType=void 0;const o=new Set([\"string\",\"number\",\"integer\",\"boolean\",\"null\",\"object\",\"array\"]);r.isJSONType=function(e){return\"string\"==typeof e&&o.has(e)},r.getRules=function(){const e={number:{type:\"number\",rules:[]},string:{type:\"string\",rules:[]},array:{type:\"array\",rules:[]},object:{type:\"object\",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}},{}],10:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.checkStrictMode=r.getErrorPath=r.Type=r.useFunc=r.setEvaluated=r.evaluatedPropsToName=r.mergeEvaluated=r.eachItem=r.unescapeJsonPointer=r.escapeJsonPointer=r.escapeFragment=r.unescapeFragment=r.schemaRefOrVal=r.schemaHasRulesButRef=r.schemaHasRules=r.checkUnknownRules=r.alwaysValidSchema=r.toHash=void 0;const o=e(\"./codegen\"),s=e(\"./codegen/code\");function a(e,t=e.schema){const{opts:r,self:o}=e;if(!r.strictSchema)return;if(\"boolean\"==typeof t)return;const s=o.RULES.keywords;for(const r in t)s[r]||p(e,`unknown keyword: \"${r}\"`)}function n(e,t){if(\"boolean\"==typeof e)return!e;for(const r in e)if(t[r])return!0;return!1}function i(e){return\"number\"==typeof e?`${e}`:e.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")}function c(e){return e.replace(/~1/g,\"/\").replace(/~0/g,\"~\")}function d({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:s}){return(a,n,i,c)=>{const d=void 0===i?n:i instanceof o.Name?(n instanceof o.Name?e(a,n,i):t(a,n,i),i):n instanceof o.Name?(t(a,i,n),n):r(n,i);return c!==o.Name||d instanceof o.Name?d:s(a,d)}}function l(e,t){if(!0===t)return e.var(\"props\",!0);const r=e.var(\"props\",o._`{}`);return void 0!==t&&u(e,r,t),r}function u(e,t,r){Object.keys(r).forEach((r=>e.assign(o._`${t}${(0,o.getProperty)(r)}`,!0)))}r.toHash=function(e){const t={};for(const r of e)t[r]=!0;return t},r.alwaysValidSchema=function(e,t){return\"boolean\"==typeof t?t:0===Object.keys(t).length||(a(e,t),!n(t,e.self.RULES.all))},r.checkUnknownRules=a,r.schemaHasRules=n,r.schemaHasRulesButRef=function(e,t){if(\"boolean\"==typeof e)return!e;for(const r in e)if(\"$ref\"!==r&&t.all[r])return!0;return!1},r.schemaRefOrVal=function({topSchemaRef:e,schemaPath:t},r,s,a){if(!a){if(\"number\"==typeof r||\"boolean\"==typeof r)return r;if(\"string\"==typeof r)return o._`${r}`}return o._`${e}${t}${(0,o.getProperty)(s)}`},r.unescapeFragment=function(e){return c(decodeURIComponent(e))},r.escapeFragment=function(e){return encodeURIComponent(i(e))},r.escapeJsonPointer=i,r.unescapeJsonPointer=c,r.eachItem=function(e,t){if(Array.isArray(e))for(const r of e)t(r);else t(e)},r.mergeEvaluated={props:d({mergeNames(e,t,r){return e.if(o._`${r} !== true && ${t} !== undefined`,(()=>{e.if(o._`${t} === true`,(()=>e.assign(r,!0)),(()=>e.assign(r,o._`${r} || {}`).code(o._`Object.assign(${r}, ${t})`)))}))},mergeToName(e,t,r){return e.if(o._`${r} !== true`,(()=>{!0===t?e.assign(r,!0):(e.assign(r,o._`${r} || {}`),u(e,r,t))}))},mergeValues(e,t){return!0===e||{...e,...t}},resultToName:l}),items:d({mergeNames(e,t,r){return e.if(o._`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,o._`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)))},mergeToName(e,t,r){return e.if(o._`${r} !== true`,(()=>e.assign(r,!0===t||o._`${r} > ${t} ? ${r} : ${t}`)))},mergeValues(e,t){return!0===e||Math.max(e,t)},resultToName(e,t){return e.var(\"items\",t)}})},r.evaluatedPropsToName=l,r.setEvaluated=u;const m={};var f;function p(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,!0===r)throw new Error(t);e.self.logger.warn(t)}}r.useFunc=function(e,t){return e.scopeValue(\"func\",{ref:t,code:m[t.code]||(m[t.code]=new s._Code(t.code))})},function(e){e[e.Num=0]=\"Num\",e[e.Str=1]=\"Str\"}(f||(r.Type=f={})),r.getErrorPath=function(e,t,r){if(e instanceof o.Name){const s=t===f.Num;return r?s?o._`\"[\" + ${e} + \"]\"`:o._`\"['\" + ${e} + \"']\"`:s?o._`\"/\" + ${e}`:o._`\"/\" + ${e}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`}return r?(0,o.getProperty)(e).toString():\"/\"+i(e)},r.checkStrictMode=p},{\"./codegen\":2,\"./codegen/code\":1}],11:[function(e,t,r){\"use strict\";function o(e,t){return t.rules.some((t=>s(e,t)))}function s(e,t){var r;return void 0!==e[t.keyword]||(null===(r=t.definition.implements)||void 0===r?void 0:r.some((t=>void 0!==e[t])))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.shouldUseRule=r.shouldUseGroup=r.schemaHasRulesForType=void 0,r.schemaHasRulesForType=function({schema:e,self:t},r){const s=t.RULES.types[r];return s&&!0!==s&&o(e,s)},r.shouldUseGroup=o,r.shouldUseRule=s},{}],12:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.boolOrEmptySchema=r.topBoolOrEmptySchema=void 0;const o=e(\"../errors\"),s=e(\"../codegen\"),a=e(\"../names\"),n={message:\"boolean schema is false\"};function i(e,t){const{gen:r,data:s}=e;(0,o.reportError)({gen:r,keyword:\"false schema\",data:s,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e},n,void 0,t)}r.topBoolOrEmptySchema=function(e){const{gen:t,schema:r,validateName:o}=e;!1===r?i(e,!1):\"object\"==typeof r&&!0===r.$async?t.return(a.default.data):(t.assign(s._`${o}.errors`,null),t.return(!0))},r.boolOrEmptySchema=function(e,t){const{gen:r,schema:o}=e;!1===o?(r.var(t,!1),i(e)):r.var(t,!0)}},{\"../codegen\":2,\"../errors\":4,\"../names\":6}],13:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.reportTypeError=r.checkDataTypes=r.checkDataType=r.coerceAndCheckDataType=r.getJSONTypes=r.getSchemaTypes=r.DataType=void 0;const o=e(\"../rules\"),s=e(\"./applicability\"),a=e(\"../errors\"),n=e(\"../codegen\"),i=e(\"../util\");var c;function d(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(o.isJSONType))return t;throw new Error(\"type must be JSONType or JSONType[]: \"+t.join(\",\"))}!function(e){e[e.Correct=0]=\"Correct\",e[e.Wrong=1]=\"Wrong\"}(c||(r.DataType=c={})),r.getSchemaTypes=function(e){const t=d(e.type);if(t.includes(\"null\")){if(!1===e.nullable)throw new Error(\"type: null contradicts nullable: false\")}else{if(!t.length&&void 0!==e.nullable)throw new Error('\"nullable\" cannot be used without \"type\"');!0===e.nullable&&t.push(\"null\")}return t},r.getJSONTypes=d,r.coerceAndCheckDataType=function(e,t){const{gen:r,data:o,opts:a}=e,i=function(e,t){return t?e.filter((e=>l.has(e)||\"array\"===t&&\"array\"===e)):[]}(t,a.coerceTypes),d=t.length>0&&!(0===i.length&&1===t.length&&(0,s.schemaHasRulesForType)(e,t[0]));if(d){const s=m(t,o,a.strictNumbers,c.Wrong);r.if(s,(()=>{i.length?function(e,t,r){const{gen:o,data:s,opts:a}=e,i=o.let(\"dataType\",n._`typeof ${s}`),c=o.let(\"coerced\",n._`undefined`);\"array\"===a.coerceTypes&&o.if(n._`${i} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,(()=>o.assign(s,n._`${s}[0]`).assign(i,n._`typeof ${s}`).if(m(t,s,a.strictNumbers),(()=>o.assign(c,s)))));o.if(n._`${c} !== undefined`);for(const e of r)(l.has(e)||\"array\"===e&&\"array\"===a.coerceTypes)&&d(e);function d(e){switch(e){case\"string\":return void o.elseIf(n._`${i} == \"number\" || ${i} == \"boolean\"`).assign(c,n._`\"\" + ${s}`).elseIf(n._`${s} === null`).assign(c,n._`\"\"`);case\"number\":return void o.elseIf(n._`${i} == \"boolean\" || ${s} === null\n || (${i} == \"string\" && ${s} && ${s} == +${s})`).assign(c,n._`+${s}`);case\"integer\":return void o.elseIf(n._`${i} === \"boolean\" || ${s} === null\n || (${i} === \"string\" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(c,n._`+${s}`);case\"boolean\":return void o.elseIf(n._`${s} === \"false\" || ${s} === 0 || ${s} === null`).assign(c,!1).elseIf(n._`${s} === \"true\" || ${s} === 1`).assign(c,!0);case\"null\":return o.elseIf(n._`${s} === \"\" || ${s} === 0 || ${s} === false`),void o.assign(c,null);case\"array\":o.elseIf(n._`${i} === \"string\" || ${i} === \"number\"\n || ${i} === \"boolean\" || ${s} === null`).assign(c,n._`[${s}]`)}}o.else(),p(e),o.endIf(),o.if(n._`${c} !== undefined`,(()=>{o.assign(s,c),function({gen:e,parentData:t,parentDataProperty:r},o){e.if(n._`${t} !== undefined`,(()=>e.assign(n._`${t}[${r}]`,o)))}(e,c)}))}(e,t,i):p(e)}))}return d};const l=new Set([\"string\",\"number\",\"integer\",\"boolean\",\"null\"]);function u(e,t,r,o=c.Correct){const s=o===c.Correct?n.operators.EQ:n.operators.NEQ;let a;switch(e){case\"null\":return n._`${t} ${s} null`;case\"array\":a=n._`Array.isArray(${t})`;break;case\"object\":a=n._`${t} && typeof ${t} == \"object\" && !Array.isArray(${t})`;break;case\"integer\":a=i(n._`!(${t} % 1) && !isNaN(${t})`);break;case\"number\":a=i();break;default:return n._`typeof ${t} ${s} ${e}`}return o===c.Correct?a:(0,n.not)(a);function i(e=n.nil){return(0,n.and)(n._`typeof ${t} == \"number\"`,e,r?n._`isFinite(${t})`:n.nil)}}function m(e,t,r,o){if(1===e.length)return u(e[0],t,r,o);let s;const a=(0,i.toHash)(e);if(a.array&&a.object){const e=n._`typeof ${t} != \"object\"`;s=a.null?e:n._`!${t} || ${e}`,delete a.null,delete a.array,delete a.object}else s=n.nil;a.number&&delete a.integer;for(const e in a)s=(0,n.and)(s,u(e,t,r,o));return s}r.checkDataType=u,r.checkDataTypes=m;const f={message({schema:e}){return`must be ${e}`},params({schema:e,schemaValue:t}){return\"string\"==typeof e?n._`{type: ${e}}`:n._`{type: ${t}}`}};function p(e){const t=function(e){const{gen:t,data:r,schema:o}=e,s=(0,i.schemaRefOrVal)(e,o,\"type\");return{gen:t,keyword:\"type\",data:r,schema:o.type,schemaCode:s,schemaValue:s,parentSchema:o,params:{},it:e}}(e);(0,a.reportError)(t,f)}r.reportTypeError=p},{\"../codegen\":2,\"../errors\":4,\"../rules\":9,\"../util\":10,\"./applicability\":11}],14:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.assignDefaults=void 0;const o=e(\"../codegen\"),s=e(\"../util\");function a(e,t,r){const{gen:a,compositeRule:n,data:i,opts:c}=e;if(void 0===r)return;const d=o._`${i}${(0,o.getProperty)(t)}`;if(n)return void(0,s.checkStrictMode)(e,`default is ignored for: ${d}`);let l=o._`${d} === undefined`;\"empty\"===c.useDefaults&&(l=o._`${l} || ${d} === null || ${d} === \"\"`),a.if(l,o._`${d} = ${(0,o.stringify)(r)}`)}r.assignDefaults=function(e,t){const{properties:r,items:o}=e.schema;if(\"object\"===t&&r)for(const t in r)a(e,t,r[t].default);else\"array\"===t&&Array.isArray(o)&&o.forEach(((t,r)=>a(e,r,t.default)))}},{\"../codegen\":2,\"../util\":10}],15:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.getData=r.KeywordCxt=r.validateFunctionCode=void 0;const o=e(\"./boolSchema\"),s=e(\"./dataType\"),a=e(\"./applicability\"),n=e(\"./dataType\"),i=e(\"./defaults\"),c=e(\"./keyword\"),d=e(\"./subschema\"),l=e(\"../codegen\"),u=e(\"../names\"),m=e(\"../resolve\"),f=e(\"../util\"),p=e(\"../errors\");function h({gen:e,validateName:t,schema:r,schemaEnv:o,opts:s},a){s.code.es5?e.func(t,l._`${u.default.data}, ${u.default.valCxt}`,o.$async,(()=>{e.code(l._`\"use strict\"; ${y(r,s)}`),function(e,t){e.if(u.default.valCxt,(()=>{e.var(u.default.instancePath,l._`${u.default.valCxt}.${u.default.instancePath}`),e.var(u.default.parentData,l._`${u.default.valCxt}.${u.default.parentData}`),e.var(u.default.parentDataProperty,l._`${u.default.valCxt}.${u.default.parentDataProperty}`),e.var(u.default.rootData,l._`${u.default.valCxt}.${u.default.rootData}`),t.dynamicRef&&e.var(u.default.dynamicAnchors,l._`${u.default.valCxt}.${u.default.dynamicAnchors}`)}),(()=>{e.var(u.default.instancePath,l._`\"\"`),e.var(u.default.parentData,l._`undefined`),e.var(u.default.parentDataProperty,l._`undefined`),e.var(u.default.rootData,u.default.data),t.dynamicRef&&e.var(u.default.dynamicAnchors,l._`{}`)}))}(e,s),e.code(a)})):e.func(t,l._`${u.default.data}, ${function(e){return l._`{${u.default.instancePath}=\"\", ${u.default.parentData}, ${u.default.parentDataProperty}, ${u.default.rootData}=${u.default.data}${e.dynamicRef?l._`, ${u.default.dynamicAnchors}={}`:l.nil}}={}`}(s)}`,o.$async,(()=>e.code(y(r,s)).code(a)))}function y(e,t){const r=\"object\"==typeof e&&e[t.schemaId];return r&&(t.code.source||t.code.process)?l._`/*# sourceURL=${r} */`:l.nil}function v(e,t){$(e)&&(_(e),g(e))?function(e,t){const{schema:r,gen:o,opts:s}=e;s.$comment&&r.$comment&&w(e);(function(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,m.resolveUrl)(e.opts.uriResolver,e.baseId,t))})(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error(\"async schema in sync schema\")}(e);const a=o.const(\"_errs\",u.default.errors);b(e,a),o.var(t,l._`${a} === ${u.default.errors}`)}(e,t):(0,o.boolOrEmptySchema)(e,t)}function g({schema:e,self:t}){if(\"boolean\"==typeof e)return!e;for(const r in e)if(t.RULES.all[r])return!0;return!1}function $(e){return\"boolean\"!=typeof e.schema}function _(e){(0,f.checkUnknownRules)(e),function(e){const{schema:t,errSchemaPath:r,opts:o,self:s}=e;t.$ref&&o.ignoreKeywordsWithRef&&(0,f.schemaHasRulesButRef)(t,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path \"${r}\"`)}(e)}function b(e,t){if(e.opts.jtd)return P(e,[],!1,t);const r=(0,s.getSchemaTypes)(e.schema);P(e,r,!(0,s.coerceAndCheckDataType)(e,r),t)}function w({gen:e,schemaEnv:t,schema:r,errSchemaPath:o,opts:s}){const a=r.$comment;if(!0===s.$comment)e.code(l._`${u.default.self}.logger.log(${a})`);else if(\"function\"==typeof s.$comment){const r=l.str`${o}/$comment`,s=e.scopeValue(\"root\",{ref:t.root});e.code(l._`${u.default.self}.opts.$comment(${a}, ${r}, ${s}.schema)`)}}function P(e,t,r,o){const{gen:s,schema:i,data:c,allErrors:d,opts:m,self:p}=e,{RULES:h}=p;function y(f){(0,a.shouldUseGroup)(i,f)&&(f.type?(s.if((0,n.checkDataType)(f.type,c,m.strictNumbers)),E(e,f),1===t.length&&t[0]===f.type&&r&&(s.else(),(0,n.reportTypeError)(e)),s.endIf()):E(e,f),d||s.if(l._`${u.default.errors} === ${o||0}`))}!i.$ref||!m.ignoreKeywordsWithRef&&(0,f.schemaHasRulesButRef)(i,h)?(m.jtd||function(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;(function(e,t){if(!t.length)return;if(!e.dataTypes.length)return void(e.dataTypes=t);t.forEach((t=>{j(e.dataTypes,t)||k(e,`type \"${t}\" not allowed by context \"${e.dataTypes.join(\",\")}\"`)})),function(e,t){const r=[];for(const o of e.dataTypes)j(t,o)?r.push(o):t.includes(\"integer\")&&\"number\"===o&&r.push(\"integer\");e.dataTypes=r}(e,t)})(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes(\"null\"))&&k(e,\"use allowUnionTypes to allow union type keyword\")}(e,t);!function(e,t){const r=e.self.RULES.all;for(const o in r){const s=r[o];if(\"object\"==typeof s&&(0,a.shouldUseRule)(e.schema,s)){const{type:r}=s.definition;r.length&&!r.some((e=>S(t,e)))&&k(e,`missing type \"${r.join(\",\")}\" for keyword \"${o}\"`)}}}(e,e.dataTypes)}(e,t),s.block((()=>{for(const e of h.rules)y(e);y(h.post)}))):s.block((()=>O(e,\"$ref\",h.all.$ref.definition)))}function E(e,t){const{gen:r,schema:o,opts:{useDefaults:s}}=e;s&&(0,i.assignDefaults)(e,t.type),r.block((()=>{for(const r of t.rules)(0,a.shouldUseRule)(o,r)&&O(e,r.keyword,r.definition,t.type)}))}function S(e,t){return e.includes(t)||\"number\"===t&&e.includes(\"integer\")}function j(e,t){return e.includes(t)||\"integer\"===t&&e.includes(\"number\")}function k(e,t){(0,f.checkStrictMode)(e,t+=` at \"${e.schemaEnv.baseId+e.errSchemaPath}\" (strictTypes)`,e.opts.strictTypes)}r.validateFunctionCode=function(e){$(e)&&(_(e),g(e))?function(e){const{schema:t,opts:r,gen:o}=e;h(e,(()=>{r.$comment&&t.$comment&&w(e),function(e){const{schema:t,opts:r}=e;void 0!==t.default&&r.useDefaults&&r.strictSchema&&(0,f.checkStrictMode)(e,\"default is ignored in the schema root\")}(e),o.let(u.default.vErrors,null),o.let(u.default.errors,0),r.unevaluated&&function(e){const{gen:t,validateName:r}=e;e.evaluated=t.const(\"evaluated\",l._`${r}.evaluated`),t.if(l._`${e.evaluated}.dynamicProps`,(()=>t.assign(l._`${e.evaluated}.props`,l._`undefined`))),t.if(l._`${e.evaluated}.dynamicItems`,(()=>t.assign(l._`${e.evaluated}.items`,l._`undefined`)))}(e),b(e),function(e){const{gen:t,schemaEnv:r,validateName:o,ValidationError:s,opts:a}=e;r.$async?t.if(l._`${u.default.errors} === 0`,(()=>t.return(u.default.data)),(()=>t.throw(l._`new ${s}(${u.default.vErrors})`))):(t.assign(l._`${o}.errors`,u.default.vErrors),a.unevaluated&&function({gen:e,evaluated:t,props:r,items:o}){r instanceof l.Name&&e.assign(l._`${t}.props`,r);o instanceof l.Name&&e.assign(l._`${t}.items`,o)}(e),t.return(l._`${u.default.errors} === 0`))}(e)}))}(e):h(e,(()=>(0,o.topBoolOrEmptySchema)(e)))};class N{constructor(e,t,r){if((0,c.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,f.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const(\"vSchema\",x(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,c.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);(\"code\"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const(\"_errs\",u.default.errors))}result(e,t,r){this.failResult((0,l.not)(e),t,r)}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,l.not)(e),void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(l._`${t} !== undefined && (${(0,l.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t)return this.setParams(t),this._error(e,r),void this.setParams({});this._error(e,r)}_error(e,t){(e?p.reportExtraError:p.reportError)(this,this.def.error,t)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add \"trackErrors\" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,r=l.nil){this.gen.block((()=>{this.check$data(e,r),t()}))}check$data(e=l.nil,t=l.nil){if(!this.$data)return;const{gen:r,schemaCode:o,schemaType:s,def:a}=this;r.if((0,l.or)(l._`${o} === undefined`,t)),e!==l.nil&&r.assign(e,!0),(s.length||a.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==l.nil&&r.assign(e,!1)),r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:o,it:s}=this;return(0,l.or)(function(){if(r.length){if(!(t instanceof l.Name))throw new Error(\"ajv implementation error\");const e=Array.isArray(r)?r:[r];return l._`${(0,n.checkDataTypes)(e,t,s.opts.strictNumbers,n.DataType.Wrong)}`}return l.nil}(),function(){if(o.validateSchema){const r=e.scopeValue(\"validate$data\",{ref:o.validateSchema});return l._`!${r}(${t})`}return l.nil}())}subschema(e,t){const r=(0,d.getSubschema)(this.it,e);(0,d.extendSubschemaData)(r,this.it,e),(0,d.extendSubschemaMode)(r,e);const o={...this.it,...r,items:void 0,props:void 0};return v(o,t),o}mergeEvaluated(e,t){const{it:r,gen:o}=this;r.opts.unevaluated&&(!0!==r.props&&void 0!==e.props&&(r.props=f.mergeEvaluated.props(o,e.props,r.props,t)),!0!==r.items&&void 0!==e.items&&(r.items=f.mergeEvaluated.items(o,e.items,r.items,t)))}mergeValidEvaluated(e,t){const{it:r,gen:o}=this;if(r.opts.unevaluated&&(!0!==r.props||!0!==r.items))return o.if(t,(()=>this.mergeEvaluated(e,l.Name))),!0}}function O(e,t,r,o){const s=new N(e,r,t);\"code\"in r?r.code(s,o):s.$data&&r.validate?(0,c.funcKeywordCode)(s,r):\"macro\"in r?(0,c.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,c.funcKeywordCode)(s,r)}r.KeywordCxt=N;const R=/^\\/(?:[^~]|~0|~1)*$/,I=/^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;function x(e,{dataLevel:t,dataNames:r,dataPathArr:o}){let s,a;if(\"\"===e)return u.default.rootData;if(\"/\"===e[0]){if(!R.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);s=e,a=u.default.rootData}else{const n=I.exec(e);if(!n)throw new Error(`Invalid JSON-pointer: ${e}`);const i=+n[1];if(s=n[2],\"#\"===s){if(i>=t)throw new Error(c(\"property/index\",i));return o[t-i]}if(i>t)throw new Error(c(\"data\",i));if(a=r[t-i],!s)return a}let n=a;const i=s.split(\"/\");for(const e of i)e&&(a=l._`${a}${(0,l.getProperty)((0,f.unescapeJsonPointer)(e))}`,n=l._`${n} && ${a}`);return n;function c(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}r.getData=x},{\"../codegen\":2,\"../errors\":4,\"../names\":6,\"../resolve\":8,\"../util\":10,\"./applicability\":11,\"./boolSchema\":12,\"./dataType\":13,\"./defaults\":14,\"./keyword\":16,\"./subschema\":17}],16:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.validateKeywordUsage=r.validSchemaType=r.funcKeywordCode=r.macroKeywordCode=void 0;const o=e(\"../codegen\"),s=e(\"../names\"),a=e(\"../../vocabularies/code\"),n=e(\"../errors\");function i(e){const{gen:t,data:r,it:s}=e;t.if(s.parentData,(()=>t.assign(r,o._`${s.parentData}[${s.parentDataProperty}]`)))}function c(e,t,r){if(void 0===r)throw new Error(`keyword \"${t}\" failed to compile`);return e.scopeValue(\"keyword\",\"function\"==typeof r?{ref:r}:{ref:r,code:(0,o.stringify)(r)})}r.macroKeywordCode=function(e,t){const{gen:r,keyword:s,schema:a,parentSchema:n,it:i}=e,d=t.macro.call(i.self,a,n,i),l=c(r,s,d);!1!==i.opts.validateSchema&&i.self.validateSchema(d,!0);const u=r.name(\"valid\");e.subschema({schema:d,schemaPath:o.nil,errSchemaPath:`${i.errSchemaPath}/${s}`,topSchemaRef:l,compositeRule:!0},u),e.pass(u,(()=>e.error(!0)))},r.funcKeywordCode=function(e,t){var r;const{gen:d,keyword:l,schema:u,parentSchema:m,$data:f,it:p}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error(\"async keyword in sync schema\")}(p,t);const h=!f&&t.compile?t.compile.call(p.self,u,m,p):t.validate,y=c(d,l,h),v=d.let(\"valid\");function g(r=(t.async?o._`await `:o.nil)){d.assign(v,o._`${r}${(0,a.callValidateCode)(e,y,p.opts.passContext?s.default.this:s.default.self,!(\"compile\"in t&&!f||!1===t.schema))}`,t.modifying)}function $(e){var r;d.if((0,o.not)(null!==(r=t.valid)&&void 0!==r?r:v),e)}e.block$data(v,(function(){if(!1===t.errors)g(),t.modifying&&i(e),$((()=>e.error()));else{const r=t.async?function(){const e=d.let(\"ruleErrs\",null);return d.try((()=>g(o._`await `)),(t=>d.assign(v,!1).if(o._`${t} instanceof ${p.ValidationError}`,(()=>d.assign(e,o._`${t}.errors`)),(()=>d.throw(t))))),e}():function(){const e=o._`${y}.errors`;return d.assign(e,null),g(o.nil),e}();t.modifying&&i(e),$((()=>function(e,t){const{gen:r}=e;r.if(o._`Array.isArray(${t})`,(()=>{r.assign(s.default.vErrors,o._`${s.default.vErrors} === null ? ${t} : ${s.default.vErrors}.concat(${t})`).assign(s.default.errors,o._`${s.default.vErrors}.length`),(0,n.extendErrors)(e)}),(()=>e.error()))}(e,r)))}})),e.ok(null!==(r=t.valid)&&void 0!==r?r:v)},r.validSchemaType=function(e,t,r=!1){return!t.length||t.some((t=>\"array\"===t?Array.isArray(e):\"object\"===t?e&&\"object\"==typeof e&&!Array.isArray(e):typeof e==t||r&&void 0===e))},r.validateKeywordUsage=function({schema:e,opts:t,self:r,errSchemaPath:o},s,a){if(Array.isArray(s.keyword)?!s.keyword.includes(a):s.keyword!==a)throw new Error(\"ajv implementation error\");const n=s.dependencies;if(null==n?void 0:n.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${a}: ${n.join(\",\")}`);if(s.validateSchema){if(!s.validateSchema(e[a])){const e=`keyword \"${a}\" value is invalid at path \"${o}\": `+r.errorsText(s.validateSchema.errors);if(\"log\"!==t.validateSchema)throw new Error(e);r.logger.error(e)}}}},{\"../../vocabularies/code\":51,\"../codegen\":2,\"../errors\":4,\"../names\":6}],17:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.extendSubschemaMode=r.extendSubschemaData=r.getSubschema=void 0;const o=e(\"../codegen\"),s=e(\"../util\");r.getSubschema=function(e,{keyword:t,schemaProp:r,schema:a,schemaPath:n,errSchemaPath:i,topSchemaRef:c}){if(void 0!==t&&void 0!==a)throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');if(void 0!==t){const a=e.schema[t];return void 0===r?{schema:a,schemaPath:o._`${e.schemaPath}${(0,o.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:a[r],schemaPath:o._`${e.schemaPath}${(0,o.getProperty)(t)}${(0,o.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,s.escapeFragment)(r)}`}}if(void 0!==a){if(void 0===n||void 0===i||void 0===c)throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');return{schema:a,schemaPath:n,topSchemaRef:c,errSchemaPath:i}}throw new Error('either \"keyword\" or \"schema\" must be passed')},r.extendSubschemaData=function(e,t,{dataProp:r,dataPropType:a,data:n,dataTypes:i,propertyName:c}){if(void 0!==n&&void 0!==r)throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');const{gen:d}=t;if(void 0!==r){const{errorPath:n,dataPathArr:i,opts:c}=t;l(d.let(\"data\",o._`${t.data}${(0,o.getProperty)(r)}`,!0)),e.errorPath=o.str`${n}${(0,s.getErrorPath)(r,a,c.jsPropertySyntax)}`,e.parentDataProperty=o._`${r}`,e.dataPathArr=[...i,e.parentDataProperty]}if(void 0!==n){l(n instanceof o.Name?n:d.let(\"data\",n,!0)),void 0!==c&&(e.propertyName=c)}function l(r){e.data=r,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,r]}i&&(e.dataTypes=i)},r.extendSubschemaMode=function(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:o,createErrors:s,allErrors:a}){void 0!==o&&(e.compositeRule=o),void 0!==s&&(e.createErrors=s),void 0!==a&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=r}},{\"../codegen\":2,\"../util\":10}],18:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.CodeGen=r.Name=r.nil=r.stringify=r.str=r._=r.KeywordCxt=void 0;var o=e(\"./compile/validate\");Object.defineProperty(r,\"KeywordCxt\",{enumerable:!0,get(){return o.KeywordCxt}});var s=e(\"./compile/codegen\");Object.defineProperty(r,\"_\",{enumerable:!0,get(){return s._}}),Object.defineProperty(r,\"str\",{enumerable:!0,get(){return s.str}}),Object.defineProperty(r,\"stringify\",{enumerable:!0,get(){return s.stringify}}),Object.defineProperty(r,\"nil\",{enumerable:!0,get(){return s.nil}}),Object.defineProperty(r,\"Name\",{enumerable:!0,get(){return s.Name}}),Object.defineProperty(r,\"CodeGen\",{enumerable:!0,get(){return s.CodeGen}});const a=e(\"./runtime/validation_error\"),n=e(\"./compile/ref_error\"),i=e(\"./compile/rules\"),c=e(\"./compile\"),d=e(\"./compile/codegen\"),l=e(\"./compile/resolve\"),u=e(\"./compile/validate/dataType\"),m=e(\"./compile/util\"),f=e(\"./refs/data.json\"),p=e(\"./runtime/uri\"),h=(e,t)=>new RegExp(e,t);h.code=\"new RegExp\";const y=[\"removeAdditional\",\"useDefaults\",\"coerceTypes\"],v=new Set([\"validate\",\"serialize\",\"parse\",\"wrapper\",\"root\",\"schema\",\"keyword\",\"pattern\",\"formats\",\"validate$data\",\"func\",\"obj\",\"Error\"]),g={errorDataPath:\"\",format:\"`validateFormats: false` can be used instead.\",nullable:'\"nullable\" keyword is supported by default.',jsonPointers:\"Deprecated jsPropertySyntax can be used instead.\",extendRefs:\"Deprecated ignoreKeywordsWithRef can be used instead.\",missingRefs:\"Pass empty schema with $id that should be ignored to ajv.addSchema.\",processCode:\"Use option `code: {process: (code, schemaEnv: object) => string}`\",sourceCode:\"Use option `code: {source: true}`\",strictDefaults:\"It is default now, see option `strict`.\",strictKeywords:\"It is default now, see option `strict`.\",uniqueItems:'\"uniqueItems\" keyword is always validated.',unknownFormats:\"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",cache:\"Map is used as cache, schema object as key.\",serialize:\"Map is used as cache, schema object as key.\",ajvErrors:\"It is default now.\"},$={ignoreKeywordsWithRef:\"\",jsPropertySyntax:\"\",unicode:'\"minLength\"/\"maxLength\" account for unicode characters by default.'};function _(e){var t,r,o,s,a,n,i,c,d,l,u,m,f,y,v,g,$,_,b,w,P,E,S,j,k;const N=e.strict,O=null===(t=e.code)||void 0===t?void 0:t.optimize,R=!0===O||void 0===O?1:O||0,I=null!==(o=null===(r=e.code)||void 0===r?void 0:r.regExp)&&void 0!==o?o:h,x=null!==(s=e.uriResolver)&&void 0!==s?s:p.default;return{strictSchema:null===(n=null!==(a=e.strictSchema)&&void 0!==a?a:N)||void 0===n||n,strictNumbers:null===(c=null!==(i=e.strictNumbers)&&void 0!==i?i:N)||void 0===c||c,strictTypes:null!==(l=null!==(d=e.strictTypes)&&void 0!==d?d:N)&&void 0!==l?l:\"log\",strictTuples:null!==(m=null!==(u=e.strictTuples)&&void 0!==u?u:N)&&void 0!==m?m:\"log\",strictRequired:null!==(y=null!==(f=e.strictRequired)&&void 0!==f?f:N)&&void 0!==y&&y,code:e.code?{...e.code,optimize:R,regExp:I}:{optimize:R,regExp:I},loopRequired:null!==(v=e.loopRequired)&&void 0!==v?v:200,loopEnum:null!==(g=e.loopEnum)&&void 0!==g?g:200,meta:null===($=e.meta)||void 0===$||$,messages:null===(_=e.messages)||void 0===_||_,inlineRefs:null===(b=e.inlineRefs)||void 0===b||b,schemaId:null!==(w=e.schemaId)&&void 0!==w?w:\"$id\",addUsedSchema:null===(P=e.addUsedSchema)||void 0===P||P,validateSchema:null===(E=e.validateSchema)||void 0===E||E,validateFormats:null===(S=e.validateFormats)||void 0===S||S,unicodeRegExp:null===(j=e.unicodeRegExp)||void 0===j||j,int32range:null===(k=e.int32range)||void 0===k||k,uriResolver:x}}class b{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,..._(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new d.ValueScope({scope:{},prefixes:v,es5:t,lines:r}),this.logger=function(e){if(!1===e)return N;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error(\"logger must implement log, warn and error methods\")}(e.logger);const o=e.validateFormats;e.validateFormats=!1,this.RULES=(0,i.getRules)(),w.call(this,g,e,\"NOT SUPPORTED\"),w.call(this,$,e,\"DEPRECATED\",\"warn\"),this._metaOpts=k.call(this),e.formats&&S.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&j.call(this,e.keywords),\"object\"==typeof e.meta&&this.addMetaSchema(e.meta),E.call(this),e.validateFormats=o}_addVocabularies(){this.addKeyword(\"$async\")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let o=f;\"id\"===r&&(o={...f},o.id=o.$id,delete o.$id),t&&e&&this.addMetaSchema(o,o[r],!1)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=\"object\"==typeof e?e[t]||e:void 0}validate(e,t){let r;if(\"string\"==typeof e){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref \"${e}\"`)}else r=this.compile(e);const o=r(t);return\"$async\"in r||(this.errors=r.errors),o}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(\"function\"!=typeof this.opts.loadSchema)throw new Error(\"options.loadSchema should be a function\");const{loadSchema:r}=this.opts;return o.call(this,e,t);async function o(e,t){await s.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||a.call(this,r)}async function s(e){e&&!this.getSchema(e)&&await o.call(this,{$ref:e},!0)}async function a(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof n.default))throw t;return i.call(this,t),await c.call(this,t.missingSchema),a.call(this,e)}}function i({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function c(e){const r=await d.call(this,e);this.refs[e]||await s.call(this,r.$schema),this.refs[e]||this.addSchema(r,e,t)}async function d(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,o=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,r,o);return this}let s;if(\"object\"==typeof e){const{schemaId:t}=this.opts;if(s=e[t],void 0!==s&&\"string\"!=typeof s)throw new Error(`schema ${t} must be string`)}return t=(0,l.normalizeId)(t||s),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,o,!0),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,!0,r),this}validateSchema(e,t){if(\"boolean\"==typeof e)return!0;let r;if(r=e.$schema,void 0!==r&&\"string\"!=typeof r)throw new Error(\"$schema must be a string\");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn(\"meta-schema not available\"),this.errors=null,!0;const o=this.validate(r,e);if(!o&&t){const e=\"schema is invalid: \"+this.errorsText();if(\"log\"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return o}getSchema(e){let t;for(;\"string\"==typeof(t=P.call(this,e));)e=t;if(void 0===t){const{schemaId:r}=this.opts,o=new c.SchemaEnv({schema:{},schemaId:r});if(t=c.resolveSchema.call(this,o,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case\"undefined\":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case\"string\":{const t=P.call(this,e);return\"object\"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case\"object\":{this._cache.delete(e);let t=e[this.opts.schemaId];return t&&(t=(0,l.normalizeId)(t),delete this.schemas[t],delete this.refs[t]),this}default:throw new Error(\"ajv.removeSchema: invalid parameter\")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(\"string\"==typeof e)r=e,\"object\"==typeof t&&(this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\"),t.keyword=r);else{if(\"object\"!=typeof e||void 0!==t)throw new Error(\"invalid addKeywords parameters\");if(r=(t=e).keyword,Array.isArray(r)&&!r.length)throw new Error(\"addKeywords: keyword must be string or non-empty array\")}if(R.call(this,r,t),!t)return(0,m.eachItem)(r,(e=>I.call(this,e))),this;C.call(this,t);const o={...t,type:(0,u.getJSONTypes)(t.type),schemaType:(0,u.getJSONTypes)(t.schemaType)};return(0,m.eachItem)(r,0===o.type.length?e=>I.call(this,e,o):e=>o.type.forEach((t=>I.call(this,e,o,t)))),this}getKeyword(e){const t=this.RULES.all[e];return\"object\"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));t>=0&&r.rules.splice(t,1)}return this}addFormat(e,t){return\"string\"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=\", \",dataVar:r=\"data\"}={}){return e&&0!==e.length?e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r)):\"No errors\"}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const o of t){const t=o.split(\"/\").slice(1);let s=e;for(const e of t)s=s[e];for(const e in r){const t=r[e];if(\"object\"!=typeof t)continue;const{$data:o}=t.definition,a=s[e];o&&a&&(s[e]=A(a))}}return e}_removeAllSchemas(e,t){for(const r in e){const o=e[r];t&&!t.test(r)||(\"string\"==typeof o?delete e[r]:o&&!o.meta&&(this._cache.delete(o.schema),delete e[r]))}}_addSchema(e,t,r,o=this.opts.validateSchema,s=this.opts.addUsedSchema){let a;const{schemaId:n}=this.opts;if(\"object\"==typeof e)a=e[n];else{if(this.opts.jtd)throw new Error(\"schema must be object\");if(\"boolean\"!=typeof e)throw new Error(\"schema must be object or boolean\")}let i=this._cache.get(e);if(void 0!==i)return i;r=(0,l.normalizeId)(a||r);const d=l.getSchemaRefs.call(this,e,r);return i=new c.SchemaEnv({schema:e,schemaId:n,meta:t,baseId:r,localRefs:d}),this._cache.set(i.schema,i),s&&!r.startsWith(\"#\")&&(r&&this._checkUnique(r),this.refs[r]=i),o&&this.validateSchema(e,!0),i}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id \"${e}\" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):c.compileSchema.call(this,e),!e.validate)throw new Error(\"ajv implementation error\");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{c.compileSchema.call(this,e)}finally{this.opts=t}}}function w(e,t,r,o=\"error\"){for(const s in e){s in t&&this.logger[o](`${r}: option ${s}. ${e[s]}`)}}function P(e){return e=(0,l.normalizeId)(e),this.schemas[e]||this.refs[e]}function E(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function S(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function j(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn(\"keywords option as map is deprecated, pass array\");for(const t in e){const r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}}function k(){const e={...this.opts};for(const t of y)delete e[t];return e}b.ValidationError=a.default,b.MissingRefError=n.default,r.default=b;const N={log(){},warn(){},error(){}};const O=/^[a-z_$][a-z0-9_$:-]*$/i;function R(e,t){const{RULES:r}=this;if((0,m.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!O.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!(\"code\"in t)&&!(\"validate\"in t))throw new Error('$data keyword must have \"code\" or \"validate\" function')}function I(e,t,r){var o;const s=null==t?void 0:t.post;if(r&&s)throw new Error('keyword with \"post\" flag cannot have \"type\"');const{RULES:a}=this;let n=s?a.post:a.rules.find((({type:e})=>e===r));if(n||(n={type:r,rules:[]},a.rules.push(n)),a.keywords[e]=!0,!t)return;const i={keyword:e,definition:{...t,type:(0,u.getJSONTypes)(t.type),schemaType:(0,u.getJSONTypes)(t.schemaType)}};t.before?x.call(this,n,i,t.before):n.rules.push(i),a.all[e]=i,null===(o=t.implements)||void 0===o||o.forEach((e=>this.addKeyword(e)))}function x(e,t,r){const o=e.rules.findIndex((e=>e.keyword===r));o>=0?e.rules.splice(o,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function C(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=A(t)),e.validateSchema=this.compile(t,!0))}const T={$ref:\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\"};function A(e){return{anyOf:[e,T]}}},{\"./compile\":5,\"./compile/codegen\":2,\"./compile/ref_error\":7,\"./compile/resolve\":8,\"./compile/rules\":9,\"./compile/util\":10,\"./compile/validate\":15,\"./compile/validate/dataType\":13,\"./refs/data.json\":19,\"./runtime/uri\":31,\"./runtime/validation_error\":32}],19:[function(e,t,r){t.exports={$id:\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",description:\"Meta-schema for $data reference (JSON AnySchema extension proposal)\",type:\"object\",required:[\"$data\"],properties:{$data:{type:\"string\",anyOf:[{format:\"relative-json-pointer\"},{format:\"json-pointer\"}]}},additionalProperties:!1}},{}],20:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./schema.json\"),s=e(\"./meta/applicator.json\"),a=e(\"./meta/unevaluated.json\"),n=e(\"./meta/content.json\"),i=e(\"./meta/core.json\"),c=e(\"./meta/format-annotation.json\"),d=e(\"./meta/meta-data.json\"),l=e(\"./meta/validation.json\"),u=[\"/properties\"];r.default=function(e){return[o,s,a,n,i,t(this,c),d,t(this,l)].forEach((e=>this.addMetaSchema(e,void 0,!1))),this;function t(t,r){return e?t.$dataMetaSchema(r,u):r}}},{\"./meta/applicator.json\":21,\"./meta/content.json\":22,\"./meta/core.json\":23,\"./meta/format-annotation.json\":24,\"./meta/meta-data.json\":25,\"./meta/unevaluated.json\":26,\"./meta/validation.json\":27,\"./schema.json\":28}],21:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/applicator\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/applicator\":!0},$dynamicAnchor:\"meta\",title:\"Applicator vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{prefixItems:{$ref:\"#/$defs/schemaArray\"},items:{$dynamicRef:\"#meta\"},contains:{$dynamicRef:\"#meta\"},additionalProperties:{$dynamicRef:\"#meta\"},properties:{type:\"object\",additionalProperties:{$dynamicRef:\"#meta\"},default:{}},patternProperties:{type:\"object\",additionalProperties:{$dynamicRef:\"#meta\"},propertyNames:{format:\"regex\"},default:{}},dependentSchemas:{type:\"object\",additionalProperties:{$dynamicRef:\"#meta\"},default:{}},propertyNames:{$dynamicRef:\"#meta\"},if:{$dynamicRef:\"#meta\"},then:{$dynamicRef:\"#meta\"},else:{$dynamicRef:\"#meta\"},allOf:{$ref:\"#/$defs/schemaArray\"},anyOf:{$ref:\"#/$defs/schemaArray\"},oneOf:{$ref:\"#/$defs/schemaArray\"},not:{$dynamicRef:\"#meta\"}},$defs:{schemaArray:{type:\"array\",minItems:1,items:{$dynamicRef:\"#meta\"}}}}},{}],22:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/content\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/content\":!0},$dynamicAnchor:\"meta\",title:\"Content vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{contentEncoding:{type:\"string\"},contentMediaType:{type:\"string\"},contentSchema:{$dynamicRef:\"#meta\"}}}},{}],23:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/core\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/core\":!0},$dynamicAnchor:\"meta\",title:\"Core vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{$id:{$ref:\"#/$defs/uriReferenceString\",$comment:\"Non-empty fragments not allowed.\",pattern:\"^[^#]*#?$\"},$schema:{$ref:\"#/$defs/uriString\"},$ref:{$ref:\"#/$defs/uriReferenceString\"},$anchor:{$ref:\"#/$defs/anchorString\"},$dynamicRef:{$ref:\"#/$defs/uriReferenceString\"},$dynamicAnchor:{$ref:\"#/$defs/anchorString\"},$vocabulary:{type:\"object\",propertyNames:{$ref:\"#/$defs/uriString\"},additionalProperties:{type:\"boolean\"}},$comment:{type:\"string\"},$defs:{type:\"object\",additionalProperties:{$dynamicRef:\"#meta\"}}},$defs:{anchorString:{type:\"string\",pattern:\"^[A-Za-z_][-A-Za-z0-9._]*$\"},uriString:{type:\"string\",format:\"uri\"},uriReferenceString:{type:\"string\",format:\"uri-reference\"}}}},{}],24:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/format-annotation\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/format-annotation\":!0},$dynamicAnchor:\"meta\",title:\"Format vocabulary meta-schema for annotation results\",type:[\"object\",\"boolean\"],properties:{format:{type:\"string\"}}}},{}],25:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/meta-data\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/meta-data\":!0},$dynamicAnchor:\"meta\",title:\"Meta-data vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{title:{type:\"string\"},description:{type:\"string\"},default:!0,deprecated:{type:\"boolean\",default:!1},readOnly:{type:\"boolean\",default:!1},writeOnly:{type:\"boolean\",default:!1},examples:{type:\"array\",items:!0}}}},{}],26:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/unevaluated\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/unevaluated\":!0},$dynamicAnchor:\"meta\",title:\"Unevaluated applicator vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{unevaluatedItems:{$dynamicRef:\"#meta\"},unevaluatedProperties:{$dynamicRef:\"#meta\"}}}},{}],27:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/meta/validation\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/validation\":!0},$dynamicAnchor:\"meta\",title:\"Validation vocabulary meta-schema\",type:[\"object\",\"boolean\"],properties:{type:{anyOf:[{$ref:\"#/$defs/simpleTypes\"},{type:\"array\",items:{$ref:\"#/$defs/simpleTypes\"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:\"array\",items:!0},multipleOf:{type:\"number\",exclusiveMinimum:0},maximum:{type:\"number\"},exclusiveMaximum:{type:\"number\"},minimum:{type:\"number\"},exclusiveMinimum:{type:\"number\"},maxLength:{$ref:\"#/$defs/nonNegativeInteger\"},minLength:{$ref:\"#/$defs/nonNegativeIntegerDefault0\"},pattern:{type:\"string\",format:\"regex\"},maxItems:{$ref:\"#/$defs/nonNegativeInteger\"},minItems:{$ref:\"#/$defs/nonNegativeIntegerDefault0\"},uniqueItems:{type:\"boolean\",default:!1},maxContains:{$ref:\"#/$defs/nonNegativeInteger\"},minContains:{$ref:\"#/$defs/nonNegativeInteger\",default:1},maxProperties:{$ref:\"#/$defs/nonNegativeInteger\"},minProperties:{$ref:\"#/$defs/nonNegativeIntegerDefault0\"},required:{$ref:\"#/$defs/stringArray\"},dependentRequired:{type:\"object\",additionalProperties:{$ref:\"#/$defs/stringArray\"}}},$defs:{nonNegativeInteger:{type:\"integer\",minimum:0},nonNegativeIntegerDefault0:{$ref:\"#/$defs/nonNegativeInteger\",default:0},simpleTypes:{enum:[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},stringArray:{type:\"array\",items:{type:\"string\"},uniqueItems:!0,default:[]}}}},{}],28:[function(e,t,r){t.exports={$schema:\"https://json-schema.org/draft/2020-12/schema\",$id:\"https://json-schema.org/draft/2020-12/schema\",$vocabulary:{\"https://json-schema.org/draft/2020-12/vocab/core\":!0,\"https://json-schema.org/draft/2020-12/vocab/applicator\":!0,\"https://json-schema.org/draft/2020-12/vocab/unevaluated\":!0,\"https://json-schema.org/draft/2020-12/vocab/validation\":!0,\"https://json-schema.org/draft/2020-12/vocab/meta-data\":!0,\"https://json-schema.org/draft/2020-12/vocab/format-annotation\":!0,\"https://json-schema.org/draft/2020-12/vocab/content\":!0},$dynamicAnchor:\"meta\",title:\"Core and Validation specifications meta-schema\",allOf:[{$ref:\"meta/core\"},{$ref:\"meta/applicator\"},{$ref:\"meta/unevaluated\"},{$ref:\"meta/validation\"},{$ref:\"meta/meta-data\"},{$ref:\"meta/format-annotation\"},{$ref:\"meta/content\"}],type:[\"object\",\"boolean\"],$comment:\"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.\",properties:{definitions:{$comment:'\"definitions\" has been replaced by \"$defs\".',type:\"object\",additionalProperties:{$dynamicRef:\"#meta\"},deprecated:!0,default:{}},dependencies:{$comment:'\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.',type:\"object\",additionalProperties:{anyOf:[{$dynamicRef:\"#meta\"},{$ref:\"meta/validation#/$defs/stringArray\"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".',$ref:\"meta/core#/$defs/anchorString\",deprecated:!0},$recursiveRef:{$comment:'\"$recursiveRef\" has been replaced by \"$dynamicRef\".',$ref:\"meta/core#/$defs/uriReferenceString\",deprecated:!0}}}},{}],29:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"fast-deep-equal\");o.code='require(\"ajv/dist/runtime/equal\").default',r.default=o},{\"fast-deep-equal\":83}],30:[function(e,t,r){\"use strict\";function o(e){const t=e.length;let r,o=0,s=0;for(;s=55296&&r<=56319&&sfunction(a){r.forRange(\"i\",t.length,d,(t=>{e.subschema({keyword:i,dataProp:t,dataPropType:s.Type.Num},a),c.allErrors||r.if((0,o.not)(a),(()=>r.break()))}))}(a))),e.ok(a)}}r.validateAdditionalItems=n,r.default=a},{\"../../compile/codegen\":2,\"../../compile/util\":10}],34:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../code\"),s=e(\"../../compile/codegen\"),a=e(\"../../compile/names\"),n=e(\"../../compile/util\");r.default={keyword:\"additionalProperties\",type:[\"object\"],schemaType:[\"boolean\",\"object\"],allowUndefined:!0,trackErrors:!0,error:{message:\"must NOT have additional properties\",params({params:e}){return s._`{additionalProperty: ${e.additionalProperty}}`}},code(e){const{gen:t,schema:r,parentSchema:i,data:c,errsCount:d,it:l}=e;if(!d)throw new Error(\"ajv implementation error\");const{allErrors:u,opts:m}=l;if(l.props=!0,\"all\"!==m.removeAdditional&&(0,n.alwaysValidSchema)(l,r))return;const f=(0,o.allSchemaProperties)(i.properties),p=(0,o.allSchemaProperties)(i.patternProperties);function h(e){t.code(s._`delete ${c}[${e}]`)}function y(o){if(\"all\"===m.removeAdditional||m.removeAdditional&&!1===r)h(o);else{if(!1===r)return e.setParams({additionalProperty:o}),e.error(),void(u||t.break());if(\"object\"==typeof r&&!(0,n.alwaysValidSchema)(l,r)){const r=t.name(\"valid\");\"failing\"===m.removeAdditional?(v(o,r,!1),t.if((0,s.not)(r),(()=>{e.reset(),h(o)}))):(v(o,r),u||t.if((0,s.not)(r),(()=>t.break())))}}}function v(t,r,o){const s={keyword:\"additionalProperties\",dataProp:t,dataPropType:n.Type.Str};!1===o&&Object.assign(s,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(s,r)}t.forIn(\"key\",c,(r=>{f.length||p.length?t.if(function(r){let a;if(f.length>8){const e=(0,n.schemaRefOrVal)(l,i.properties,\"properties\");a=(0,o.isOwnProperty)(t,e,r)}else a=f.length?(0,s.or)(...f.map((e=>s._`${r} === ${e}`))):s.nil;return p.length&&(a=(0,s.or)(a,...p.map((t=>s._`${(0,o.usePattern)(e,t)}.test(${r})`)))),(0,s.not)(a)}(r),(()=>y(r))):y(r)})),e.ok(s._`${d} === ${a.default.errors}`)}}},{\"../../compile/codegen\":2,\"../../compile/names\":6,\"../../compile/util\":10,\"../code\":51}],35:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/util\");r.default={keyword:\"allOf\",schemaType:\"array\",code(e){const{gen:t,schema:r,it:s}=e;if(!Array.isArray(r))throw new Error(\"ajv implementation error\");const a=t.name(\"valid\");r.forEach(((t,r)=>{if((0,o.alwaysValidSchema)(s,t))return;const n=e.subschema({keyword:\"allOf\",schemaProp:r},a);e.ok(a),e.mergeEvaluated(n)}))}}},{\"../../compile/util\":10}],36:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../code\");r.default={keyword:\"anyOf\",schemaType:\"array\",trackErrors:!0,code:o.validateUnion,error:{message:\"must match a schema in anyOf\"}}},{\"../code\":51}],37:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\");r.default={keyword:\"contains\",type:\"array\",schemaType:[\"object\",\"boolean\"],before:\"uniqueItems\",trackErrors:!0,error:{message({params:{min:e,max:t}}){return void 0===t?o.str`must contain at least ${e} valid item(s)`:o.str`must contain at least ${e} and no more than ${t} valid item(s)`},params({params:{min:e,max:t}}){return void 0===t?o._`{minContains: ${e}}`:o._`{minContains: ${e}, maxContains: ${t}}`}},code(e){const{gen:t,schema:r,parentSchema:a,data:n,it:i}=e;let c,d;const{minContains:l,maxContains:u}=a;i.opts.next?(c=void 0===l?1:l,d=u):c=1;const m=t.const(\"len\",o._`${n}.length`);if(e.setParams({min:c,max:d}),void 0===d&&0===c)return void(0,s.checkStrictMode)(i,'\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored');if(void 0!==d&&c>d)return(0,s.checkStrictMode)(i,'\"minContains\" > \"maxContains\" is always invalid'),void e.fail();if((0,s.alwaysValidSchema)(i,r)){let t=o._`${m} >= ${c}`;return void 0!==d&&(t=o._`${t} && ${m} <= ${d}`),void e.pass(t)}i.items=!0;const f=t.name(\"valid\");function p(){const e=t.name(\"_valid\"),r=t.let(\"count\",0);h(e,(()=>t.if(e,(()=>function(e){t.code(o._`${e}++`),void 0===d?t.if(o._`${e} >= ${c}`,(()=>t.assign(f,!0).break())):(t.if(o._`${e} > ${d}`,(()=>t.assign(f,!1).break())),1===c?t.assign(f,!0):t.if(o._`${e} >= ${c}`,(()=>t.assign(f,!0))))}(r)))))}function h(r,o){t.forRange(\"i\",0,m,(t=>{e.subschema({keyword:\"contains\",dataProp:t,dataPropType:s.Type.Num,compositeRule:!0},r),o()}))}void 0===d&&1===c?h(f,(()=>t.if(f,(()=>t.break())))):0===c?(t.let(f,!0),void 0!==d&&t.if(o._`${n}.length > 0`,p)):(t.let(f,!1),p()),e.result(f,(()=>e.reset()))}}},{\"../../compile/codegen\":2,\"../../compile/util\":10}],38:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.validateSchemaDeps=r.validatePropertyDeps=r.error=void 0;const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../code\");r.error={message({params:{property:e,depsCount:t,deps:r}}){return o.str`must have ${1===t?\"property\":\"properties\"} ${r} when property ${e} is present`},params({params:{property:e,depsCount:t,deps:r,missingProperty:s}}){return o._`{property: ${e},\n missingProperty: ${s},\n depsCount: ${t},\n deps: ${r}}`}};const n={keyword:\"dependencies\",type:\"object\",schemaType:\"object\",error:r.error,code(e){const[t,r]=function({schema:e}){const t={},r={};for(const o in e){if(\"__proto__\"===o)continue;(Array.isArray(e[o])?t:r)[o]=e[o]}return[t,r]}(e);i(e,t),c(e,r)}};function i(e,t=e.schema){const{gen:r,data:s,it:n}=e;if(0===Object.keys(t).length)return;const i=r.let(\"missing\");for(const c in t){const d=t[c];if(0===d.length)continue;const l=(0,a.propertyInData)(r,s,c,n.opts.ownProperties);e.setParams({property:c,depsCount:d.length,deps:d.join(\", \")}),n.allErrors?r.if(l,(()=>{for(const t of d)(0,a.checkReportMissingProp)(e,t)})):(r.if(o._`${l} && (${(0,a.checkMissingProp)(e,d,i)})`),(0,a.reportMissingProp)(e,i),r.else())}}function c(e,t=e.schema){const{gen:r,data:o,keyword:n,it:i}=e,c=r.name(\"valid\");for(const d in t)(0,s.alwaysValidSchema)(i,t[d])||(r.if((0,a.propertyInData)(r,o,d,i.opts.ownProperties),(()=>{const t=e.subschema({keyword:n,schemaProp:d},c);e.mergeValidEvaluated(t,c)}),(()=>r.var(c,!0))),e.ok(c))}r.validatePropertyDeps=i,r.validateSchemaDeps=c,r.default=n},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../code\":51}],39:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./dependencies\");r.default={keyword:\"dependentSchemas\",type:\"object\",schemaType:\"object\",code(e){return(0,o.validateSchemaDeps)(e)}}},{\"./dependencies\":38}],40:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\");function a(e,t){const r=e.schema[t];return void 0!==r&&!(0,s.alwaysValidSchema)(e,r)}r.default={keyword:\"if\",schemaType:[\"object\",\"boolean\"],trackErrors:!0,error:{message({params:e}){return o.str`must match \"${e.ifClause}\" schema`},params({params:e}){return o._`{failingKeyword: ${e.ifClause}}`}},code(e){const{gen:t,parentSchema:r,it:n}=e;void 0===r.then&&void 0===r.else&&(0,s.checkStrictMode)(n,'\"if\" without \"then\" and \"else\" is ignored');const i=a(n,\"then\"),c=a(n,\"else\");if(!i&&!c)return;const d=t.let(\"valid\",!0),l=t.name(\"_valid\");if(function(){const t=e.subschema({keyword:\"if\",compositeRule:!0,createErrors:!1,allErrors:!1},l);e.mergeEvaluated(t)}(),e.reset(),i&&c){const r=t.let(\"ifClause\");e.setParams({ifClause:r}),t.if(l,u(\"then\",r),u(\"else\",r))}else i?t.if(l,u(\"then\")):t.if((0,o.not)(l),u(\"else\"));function u(r,s){return()=>{const a=e.subschema({keyword:r},l);t.assign(d,l),e.mergeValidEvaluated(a,d),s?t.assign(s,o._`${r}`):e.setParams({ifClause:r})}}e.pass(d,(()=>e.error(!0)))}}},{\"../../compile/codegen\":2,\"../../compile/util\":10}],41:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./additionalItems\"),s=e(\"./prefixItems\"),a=e(\"./items\"),n=e(\"./items2020\"),i=e(\"./contains\"),c=e(\"./dependencies\"),d=e(\"./propertyNames\"),l=e(\"./additionalProperties\"),u=e(\"./properties\"),m=e(\"./patternProperties\"),f=e(\"./not\"),p=e(\"./anyOf\"),h=e(\"./oneOf\"),y=e(\"./allOf\"),v=e(\"./if\"),g=e(\"./thenElse\");r.default=function(e=!1){const t=[f.default,p.default,h.default,y.default,v.default,g.default,d.default,l.default,c.default,u.default,m.default];return e?t.push(s.default,n.default):t.push(o.default,a.default),t.push(i.default),t}},{\"./additionalItems\":33,\"./additionalProperties\":34,\"./allOf\":35,\"./anyOf\":36,\"./contains\":37,\"./dependencies\":38,\"./if\":40,\"./items\":42,\"./items2020\":43,\"./not\":44,\"./oneOf\":45,\"./patternProperties\":46,\"./prefixItems\":47,\"./properties\":48,\"./propertyNames\":49,\"./thenElse\":50}],42:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.validateTuple=void 0;const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../code\"),n={keyword:\"items\",type:\"array\",schemaType:[\"object\",\"array\",\"boolean\"],before:\"uniqueItems\",code(e){const{schema:t,it:r}=e;if(Array.isArray(t))return i(e,\"additionalItems\",t);r.items=!0,(0,s.alwaysValidSchema)(r,t)||e.ok((0,a.validateArray)(e))}};function i(e,t,r=e.schema){const{gen:a,parentSchema:n,data:i,keyword:c,it:d}=e;!function(e){const{opts:o,errSchemaPath:a}=d,n=r.length,i=n===e.minItems&&(n===e.maxItems||!1===e[t]);if(o.strictTuples&&!i){(0,s.checkStrictMode)(d,`\"${c}\" is ${n}-tuple, but minItems or maxItems/${t} are not specified or different at path \"${a}\"`,o.strictTuples)}}(n),d.opts.unevaluated&&r.length&&!0!==d.items&&(d.items=s.mergeEvaluated.items(a,r.length,d.items));const l=a.name(\"valid\"),u=a.const(\"len\",o._`${i}.length`);r.forEach(((t,r)=>{(0,s.alwaysValidSchema)(d,t)||(a.if(o._`${u} > ${r}`,(()=>e.subschema({keyword:c,schemaProp:r,dataProp:r},l))),e.ok(l))}))}r.validateTuple=i,r.default=n},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../code\":51}],43:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../code\"),n=e(\"./additionalItems\");r.default={keyword:\"items\",type:\"array\",schemaType:[\"object\",\"boolean\"],before:\"uniqueItems\",error:{message({params:{len:e}}){return o.str`must NOT have more than ${e} items`},params({params:{len:e}}){return o._`{limit: ${e}}`}},code(e){const{schema:t,parentSchema:r,it:o}=e,{prefixItems:i}=r;o.items=!0,(0,s.alwaysValidSchema)(o,t)||(i?(0,n.validateAdditionalItems)(e,i):e.ok((0,a.validateArray)(e)))}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../code\":51,\"./additionalItems\":33}],44:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/util\");r.default={keyword:\"not\",schemaType:[\"object\",\"boolean\"],trackErrors:!0,code(e){const{gen:t,schema:r,it:s}=e;if((0,o.alwaysValidSchema)(s,r))return void e.fail();const a=t.name(\"valid\");e.subschema({keyword:\"not\",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,(()=>e.reset()),(()=>e.error()))},error:{message:\"must NOT be valid\"}}},{\"../../compile/util\":10}],45:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\");r.default={keyword:\"oneOf\",schemaType:\"array\",trackErrors:!0,error:{message:\"must match exactly one schema in oneOf\",params({params:e}){return o._`{passingSchemas: ${e.passing}}`}},code(e){const{gen:t,schema:r,parentSchema:a,it:n}=e;if(!Array.isArray(r))throw new Error(\"ajv implementation error\");if(n.opts.discriminator&&a.discriminator)return;const i=r,c=t.let(\"valid\",!1),d=t.let(\"passing\",null),l=t.name(\"_valid\");e.setParams({passing:d}),t.block((function(){i.forEach(((r,a)=>{let i;(0,s.alwaysValidSchema)(n,r)?t.var(l,!0):i=e.subschema({keyword:\"oneOf\",schemaProp:a,compositeRule:!0},l),a>0&&t.if(o._`${l} && ${c}`).assign(c,!1).assign(d,o._`[${d}, ${a}]`).else(),t.if(l,(()=>{t.assign(c,!0),t.assign(d,a),i&&e.mergeEvaluated(i,o.Name)}))}))})),e.result(c,(()=>e.reset()),(()=>e.error(!0)))}}},{\"../../compile/codegen\":2,\"../../compile/util\":10}],46:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../code\"),s=e(\"../../compile/codegen\"),a=e(\"../../compile/util\"),n=e(\"../../compile/util\");r.default={keyword:\"patternProperties\",type:\"object\",schemaType:\"object\",code(e){const{gen:t,schema:r,data:i,parentSchema:c,it:d}=e,{opts:l}=d,u=(0,o.allSchemaProperties)(r),m=u.filter((e=>(0,a.alwaysValidSchema)(d,r[e])));if(0===u.length||m.length===u.length&&(!d.opts.unevaluated||!0===d.props))return;const f=l.strictSchema&&!l.allowMatchingProperties&&c.properties,p=t.name(\"valid\");!0===d.props||d.props instanceof s.Name||(d.props=(0,n.evaluatedPropsToName)(t,d.props));const{props:h}=d;function y(e){for(const t in f)new RegExp(e).test(t)&&(0,a.checkStrictMode)(d,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(r){t.forIn(\"key\",i,(a=>{t.if(s._`${(0,o.usePattern)(e,r)}.test(${a})`,(()=>{const o=m.includes(r);o||e.subschema({keyword:\"patternProperties\",schemaProp:r,dataProp:a,dataPropType:n.Type.Str},p),d.opts.unevaluated&&!0!==h?t.assign(s._`${h}[${a}]`,!0):o||d.allErrors||t.if((0,s.not)(p),(()=>t.break()))}))}))}!function(){for(const e of u)f&&y(e),d.allErrors?v(e):(t.var(p,!0),v(e),t.if(p))}()}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../code\":51}],47:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./items\");r.default={keyword:\"prefixItems\",type:\"array\",schemaType:[\"array\"],before:\"uniqueItems\",code(e){return(0,o.validateTuple)(e,\"items\")}}},{\"./items\":42}],48:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/validate\"),s=e(\"../code\"),a=e(\"../../compile/util\"),n=e(\"./additionalProperties\");r.default={keyword:\"properties\",type:\"object\",schemaType:\"object\",code(e){const{gen:t,schema:r,parentSchema:i,data:c,it:d}=e;\"all\"===d.opts.removeAdditional&&void 0===i.additionalProperties&&n.default.code(new o.KeywordCxt(d,n.default,\"additionalProperties\"));const l=(0,s.allSchemaProperties)(r);for(const e of l)d.definedProperties.add(e);d.opts.unevaluated&&l.length&&!0!==d.props&&(d.props=a.mergeEvaluated.props(t,(0,a.toHash)(l),d.props));const u=l.filter((e=>!(0,a.alwaysValidSchema)(d,r[e])));if(0===u.length)return;const m=t.name(\"valid\");for(const r of u)f(r)?p(r):(t.if((0,s.propertyInData)(t,c,r,d.opts.ownProperties)),p(r),d.allErrors||t.else().var(m,!0),t.endIf()),e.it.definedProperties.add(r),e.ok(m);function f(e){return d.opts.useDefaults&&!d.compositeRule&&void 0!==r[e].default}function p(t){e.subschema({keyword:\"properties\",schemaProp:t,dataProp:t},m)}}}},{\"../../compile/util\":10,\"../../compile/validate\":15,\"../code\":51,\"./additionalProperties\":34}],49:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\");r.default={keyword:\"propertyNames\",type:\"object\",schemaType:[\"object\",\"boolean\"],error:{message:\"property name must be valid\",params({params:e}){return o._`{propertyName: ${e.propertyName}}`}},code(e){const{gen:t,schema:r,data:a,it:n}=e;if((0,s.alwaysValidSchema)(n,r))return;const i=t.name(\"valid\");t.forIn(\"key\",a,(r=>{e.setParams({propertyName:r}),e.subschema({keyword:\"propertyNames\",data:r,dataTypes:[\"string\"],propertyName:r,compositeRule:!0},i),t.if((0,o.not)(i),(()=>{e.error(!0),n.allErrors||t.break()}))})),e.ok(i)}}},{\"../../compile/codegen\":2,\"../../compile/util\":10}],50:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/util\");r.default={keyword:[\"then\",\"else\"],schemaType:[\"object\",\"boolean\"],code({keyword:e,parentSchema:t,it:r}){void 0===t.if&&(0,o.checkStrictMode)(r,`\"${e}\" without \"if\" is ignored`)}}},{\"../../compile/util\":10}],51:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.validateUnion=r.validateArray=r.usePattern=r.callValidateCode=r.schemaProperties=r.allSchemaProperties=r.noPropertyInData=r.propertyInData=r.isOwnProperty=r.hasPropFunc=r.reportMissingProp=r.checkMissingProp=r.checkReportMissingProp=void 0;const o=e(\"../compile/codegen\"),s=e(\"../compile/util\"),a=e(\"../compile/names\"),n=e(\"../compile/util\");function i(e){return e.scopeValue(\"func\",{ref:Object.prototype.hasOwnProperty,code:o._`Object.prototype.hasOwnProperty`})}function c(e,t,r){return o._`${i(e)}.call(${t}, ${r})`}function d(e,t,r,s){const a=o._`${t}${(0,o.getProperty)(r)} === undefined`;return s?(0,o.or)(a,(0,o.not)(c(e,t,r))):a}function l(e){return e?Object.keys(e).filter((e=>\"__proto__\"!==e)):[]}r.checkReportMissingProp=function(e,t){const{gen:r,data:s,it:a}=e;r.if(d(r,s,t,a.opts.ownProperties),(()=>{e.setParams({missingProperty:o._`${t}`},!0),e.error()}))},r.checkMissingProp=function({gen:e,data:t,it:{opts:r}},s,a){return(0,o.or)(...s.map((s=>(0,o.and)(d(e,t,s,r.ownProperties),o._`${a} = ${s}`))))},r.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},r.hasPropFunc=i,r.isOwnProperty=c,r.propertyInData=function(e,t,r,s){const a=o._`${t}${(0,o.getProperty)(r)} !== undefined`;return s?o._`${a} && ${c(e,t,r)}`:a},r.noPropertyInData=d,r.allSchemaProperties=l,r.schemaProperties=function(e,t){return l(t).filter((r=>!(0,s.alwaysValidSchema)(e,t[r])))},r.callValidateCode=function({schemaCode:e,data:t,it:{gen:r,topSchemaRef:s,schemaPath:n,errorPath:i},it:c},d,l,u){const m=u?o._`${e}, ${t}, ${s}${n}`:t,f=[[a.default.instancePath,(0,o.strConcat)(a.default.instancePath,i)],[a.default.parentData,c.parentData],[a.default.parentDataProperty,c.parentDataProperty],[a.default.rootData,a.default.rootData]];c.opts.dynamicRef&&f.push([a.default.dynamicAnchors,a.default.dynamicAnchors]);const p=o._`${m}, ${r.object(...f)}`;return l!==o.nil?o._`${d}.call(${l}, ${p})`:o._`${d}(${p})`};const u=o._`new RegExp`;r.usePattern=function({gen:e,it:{opts:t}},r){const s=t.unicodeRegExp?\"u\":\"\",{regExp:a}=t.code,i=a(r,s);return e.scopeValue(\"pattern\",{key:i.toString(),ref:i,code:o._`${\"new RegExp\"===a.code?u:(0,n.useFunc)(e,a)}(${r}, ${s})`})},r.validateArray=function(e){const{gen:t,data:r,keyword:a,it:n}=e,i=t.name(\"valid\");if(n.allErrors){const e=t.let(\"valid\",!0);return c((()=>t.assign(e,!1))),e}return t.var(i,!0),c((()=>t.break())),i;function c(n){const c=t.const(\"len\",o._`${r}.length`);t.forRange(\"i\",0,c,(r=>{e.subschema({keyword:a,dataProp:r,dataPropType:s.Type.Num},i),t.if((0,o.not)(i),n)}))}},r.validateUnion=function(e){const{gen:t,schema:r,keyword:a,it:n}=e;if(!Array.isArray(r))throw new Error(\"ajv implementation error\");if(r.some((e=>(0,s.alwaysValidSchema)(n,e)))&&!n.opts.unevaluated)return;const i=t.let(\"valid\",!1),c=t.name(\"_valid\");t.block((()=>r.forEach(((r,s)=>{const n=e.subschema({keyword:a,schemaProp:s,compositeRule:!0},c);t.assign(i,o._`${i} || ${c}`);e.mergeValidEvaluated(n,c)||t.if((0,o.not)(i))})))),e.result(i,(()=>e.reset()),(()=>e.error(!0)))}},{\"../compile/codegen\":2,\"../compile/names\":6,\"../compile/util\":10}],52:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});r.default={keyword:\"id\",code(){throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')}}},{}],53:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./id\"),s=e(\"./ref\");r.default=[\"$schema\",\"$id\",\"$defs\",\"$vocabulary\",{keyword:\"$comment\"},\"definitions\",o.default,s.default]},{\"./id\":52,\"./ref\":54}],54:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.callRef=r.getValidate=void 0;const o=e(\"../../compile/ref_error\"),s=e(\"../code\"),a=e(\"../../compile/codegen\"),n=e(\"../../compile/names\"),i=e(\"../../compile\"),c=e(\"../../compile/util\"),d={keyword:\"$ref\",schemaType:\"string\",code(e){const{gen:t,schema:r,it:s}=e,{baseId:n,schemaEnv:c,validateName:d,opts:m,self:f}=s,{root:p}=c;if((\"#\"===r||\"#/\"===r)&&n===p.baseId)return function(){if(c===p)return u(e,d,c,c.$async);const r=t.scopeValue(\"root\",{ref:p});return u(e,a._`${r}.validate`,p,p.$async)}();const h=i.resolveRef.call(f,p,n,r);if(void 0===h)throw new o.default(s.opts.uriResolver,n,r);return h instanceof i.SchemaEnv?function(t){const r=l(e,t);u(e,r,t,t.$async)}(h):function(o){const s=t.scopeValue(\"schema\",!0===m.code.source?{ref:o,code:(0,a.stringify)(o)}:{ref:o}),n=t.name(\"valid\"),i=e.subschema({schema:o,dataTypes:[],schemaPath:a.nil,topSchemaRef:s,errSchemaPath:r},n);e.mergeEvaluated(i),e.ok(n)}(h)}};function l(e,t){const{gen:r}=e;return t.validate?r.scopeValue(\"validate\",{ref:t.validate}):a._`${r.scopeValue(\"wrapper\",{ref:t})}.validate`}function u(e,t,r,o){const{gen:i,it:d}=e,{allErrors:l,schemaEnv:u,opts:m}=d,f=m.passContext?n.default.this:a.nil;function p(e){const t=a._`${e}.errors`;i.assign(n.default.vErrors,a._`${n.default.vErrors} === null ? ${t} : ${n.default.vErrors}.concat(${t})`),i.assign(n.default.errors,a._`${n.default.vErrors}.length`)}function h(e){var t;if(!d.opts.unevaluated)return;const o=null===(t=null==r?void 0:r.validate)||void 0===t?void 0:t.evaluated;if(!0!==d.props)if(o&&!o.dynamicProps)void 0!==o.props&&(d.props=c.mergeEvaluated.props(i,o.props,d.props));else{const t=i.var(\"props\",a._`${e}.evaluated.props`);d.props=c.mergeEvaluated.props(i,t,d.props,a.Name)}if(!0!==d.items)if(o&&!o.dynamicItems)void 0!==o.items&&(d.items=c.mergeEvaluated.items(i,o.items,d.items));else{const t=i.var(\"items\",a._`${e}.evaluated.items`);d.items=c.mergeEvaluated.items(i,t,d.items,a.Name)}}o?function(){if(!u.$async)throw new Error(\"async schema referenced by sync schema\");const r=i.let(\"valid\");i.try((()=>{i.code(a._`await ${(0,s.callValidateCode)(e,t,f)}`),h(t),l||i.assign(r,!0)}),(e=>{i.if(a._`!(${e} instanceof ${d.ValidationError})`,(()=>i.throw(e))),p(e),l||i.assign(r,!1)})),e.ok(r)}():e.result((0,s.callValidateCode)(e,t,f),(()=>h(t)),(()=>p(t)))}r.getValidate=l,r.callRef=u,r.default=d},{\"../../compile\":5,\"../../compile/codegen\":2,\"../../compile/names\":6,\"../../compile/ref_error\":7,\"../../compile/util\":10,\"../code\":51}],55:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../discriminator/types\"),a=e(\"../../compile\"),n=e(\"../../compile/ref_error\"),i=e(\"../../compile/util\");r.default={keyword:\"discriminator\",type:\"object\",schemaType:\"object\",error:{message({params:{discrError:e,tagName:t}}){return e===s.DiscrError.Tag?`tag \"${t}\" must be string`:`value of tag \"${t}\" must be in oneOf`},params({params:{discrError:e,tag:t,tagName:r}}){return o._`{error: ${e}, tag: ${r}, tagValue: ${t}}`}},code(e){const{gen:t,data:r,schema:c,parentSchema:d,it:l}=e,{oneOf:u}=d;if(!l.opts.discriminator)throw new Error(\"discriminator: requires discriminator option\");const m=c.propertyName;if(\"string\"!=typeof m)throw new Error(\"discriminator: requires propertyName\");if(c.mapping)throw new Error(\"discriminator: mapping is not supported\");if(!u)throw new Error(\"discriminator: requires oneOf keyword\");const f=t.let(\"valid\",!1),p=t.const(\"tag\",o._`${r}${(0,o.getProperty)(m)}`);function h(r){const s=t.name(\"valid\"),a=e.subschema({keyword:\"oneOf\",schemaProp:r},s);return e.mergeEvaluated(a,o.Name),s}t.if(o._`typeof ${p} == \"string\"`,(()=>function(){const r=function(){var e;const t={},r=s(d);let o=!0;for(let t=0;te.error(!1,{discrError:s.DiscrError.Tag,tag:p,tagName:m}))),e.ok(f)}}},{\"../../compile\":5,\"../../compile/codegen\":2,\"../../compile/ref_error\":7,\"../../compile/util\":10,\"../discriminator/types\":56}],56:[function(e,t,r){\"use strict\";var o;Object.defineProperty(r,\"__esModule\",{value:!0}),r.DiscrError=void 0,function(e){e.Tag=\"tag\",e.Mapping=\"mapping\"}(o||(r.DiscrError=o={}))},{}],57:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./core\"),s=e(\"./validation\"),a=e(\"./applicator\"),n=e(\"./dynamic\"),i=e(\"./next\"),c=e(\"./unevaluated\"),d=e(\"./format\"),l=e(\"./metadata\"),u=[n.default,o.default,s.default,(0,a.default)(!0),d.default,l.metadataVocabulary,l.contentVocabulary,i.default,c.default];r.default=u},{\"./applicator\":41,\"./core\":53,\"./dynamic\":60,\"./format\":64,\"./metadata\":65,\"./next\":66,\"./unevaluated\":67,\"./validation\":73}],58:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.dynamicAnchor=void 0;const o=e(\"../../compile/codegen\"),s=e(\"../../compile/names\"),a=e(\"../../compile\"),n=e(\"../core/ref\"),i={keyword:\"$dynamicAnchor\",schemaType:\"string\",code(e){return c(e,e.schema)}};function c(e,t){const{gen:r,it:i}=e;i.schemaEnv.root.dynamicAnchors[t]=!0;const c=o._`${s.default.dynamicAnchors}${(0,o.getProperty)(t)}`,d=\"#\"===i.errSchemaPath?i.validateName:function(e){const{schemaEnv:t,schema:r,self:o}=e.it,{root:s,baseId:i,localRefs:c,meta:d}=t.root,{schemaId:l}=o.opts,u=new a.SchemaEnv({schema:r,schemaId:l,root:s,baseId:i,localRefs:c,meta:d});return a.compileSchema.call(o,u),(0,n.getValidate)(e,u)}(e);r.if(o._`!${c}`,(()=>r.assign(c,d)))}r.dynamicAnchor=c,r.default=i},{\"../../compile\":5,\"../../compile/codegen\":2,\"../../compile/names\":6,\"../core/ref\":54}],59:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.dynamicRef=void 0;const o=e(\"../../compile/codegen\"),s=e(\"../../compile/names\"),a=e(\"../core/ref\"),n={keyword:\"$dynamicRef\",schemaType:\"string\",code(e){return i(e,e.schema)}};function i(e,t){const{gen:r,keyword:n,it:i}=e;if(\"#\"!==t[0])throw new Error(`\"${n}\" only supports hash fragment reference`);const c=t.slice(1);if(i.allErrors)d();else{const t=r.let(\"valid\",!1);d(t),e.ok(t)}function d(e){if(i.schemaEnv.root.dynamicAnchors[c]){const t=r.let(\"_v\",o._`${s.default.dynamicAnchors}${(0,o.getProperty)(c)}`);r.if(t,l(t,e),l(i.validateName,e))}else l(i.validateName,e)()}function l(t,o){return o?()=>r.block((()=>{(0,a.callRef)(e,t),r.let(o,!0)})):()=>(0,a.callRef)(e,t)}}r.dynamicRef=i,r.default=n},{\"../../compile/codegen\":2,\"../../compile/names\":6,\"../core/ref\":54}],60:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./dynamicAnchor\"),s=e(\"./dynamicRef\"),a=e(\"./recursiveAnchor\"),n=e(\"./recursiveRef\");r.default=[o.default,s.default,a.default,n.default]},{\"./dynamicAnchor\":58,\"./dynamicRef\":59,\"./recursiveAnchor\":61,\"./recursiveRef\":62}],61:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./dynamicAnchor\"),s=e(\"../../compile/util\");r.default={keyword:\"$recursiveAnchor\",schemaType:\"boolean\",code(e){e.schema?(0,o.dynamicAnchor)(e,\"\"):(0,s.checkStrictMode)(e.it,\"$recursiveAnchor: false is ignored\")}}},{\"../../compile/util\":10,\"./dynamicAnchor\":58}],62:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./dynamicRef\");r.default={keyword:\"$recursiveRef\",schemaType:\"string\",code(e){return(0,o.dynamicRef)(e,e.schema)}}},{\"./dynamicRef\":59}],63:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\");r.default={keyword:\"format\",type:[\"number\",\"string\"],schemaType:\"string\",$data:!0,error:{message({schemaCode:e}){return o.str`must match format \"${e}\"`},params({schemaCode:e}){return o._`{format: ${e}}`}},code(e,t){const{gen:r,data:s,$data:a,schema:n,schemaCode:i,it:c}=e,{opts:d,errSchemaPath:l,schemaEnv:u,self:m}=c;d.validateFormats&&(a?function(){const a=r.scopeValue(\"formats\",{ref:m.formats,code:d.code.formats}),n=r.const(\"fDef\",o._`${a}[${i}]`),c=r.let(\"fType\"),l=r.let(\"format\");r.if(o._`typeof ${n} == \"object\" && !(${n} instanceof RegExp)`,(()=>r.assign(c,o._`${n}.type || \"string\"`).assign(l,o._`${n}.validate`)),(()=>r.assign(c,o._`\"string\"`).assign(l,n))),e.fail$data((0,o.or)(!1===d.strictSchema?o.nil:o._`${i} && !${l}`,function(){const e=u.$async?o._`(${n}.async ? await ${l}(${s}) : ${l}(${s}))`:o._`${l}(${s})`,r=o._`(typeof ${l} == \"function\" ? ${e} : ${l}.test(${s}))`;return o._`${l} && ${l} !== true && ${c} === ${t} && !${r}`}()))}():function(){const a=m.formats[n];if(!a)return void function(){if(!1===d.strictSchema)return void m.logger.warn(e());throw new Error(e());function e(){return`unknown format \"${n}\" ignored in schema at path \"${l}\"`}}();if(!0===a)return;const[i,c,f]=function(e){const t=e instanceof RegExp?(0,o.regexpCode)(e):d.code.formats?o._`${d.code.formats}${(0,o.getProperty)(n)}`:void 0,s=r.scopeValue(\"formats\",{key:n,ref:e,code:t});if(\"object\"==typeof e&&!(e instanceof RegExp))return[e.type||\"string\",e.validate,o._`${s}.validate`];return[\"string\",e,s]}(a);i===t&&e.pass(function(){if(\"object\"==typeof a&&!(a instanceof RegExp)&&a.async){if(!u.$async)throw new Error(\"async format in sync schema\");return o._`await ${f}(${s})`}return\"function\"==typeof c?o._`${f}(${s})`:o._`${f}.test(${s})`}())}())}}},{\"../../compile/codegen\":2}],64:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./format\");r.default=[o.default]},{\"./format\":63}],65:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0}),r.contentVocabulary=r.metadataVocabulary=void 0,r.metadataVocabulary=[\"title\",\"description\",\"default\",\"deprecated\",\"readOnly\",\"writeOnly\",\"examples\"],r.contentVocabulary=[\"contentMediaType\",\"contentEncoding\",\"contentSchema\"]},{}],66:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./validation/dependentRequired\"),s=e(\"./applicator/dependentSchemas\"),a=e(\"./validation/limitContains\");r.default=[o.default,s.default,a.default]},{\"./applicator/dependentSchemas\":39,\"./validation/dependentRequired\":71,\"./validation/limitContains\":74}],67:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./unevaluatedProperties\"),s=e(\"./unevaluatedItems\");r.default=[o.default,s.default]},{\"./unevaluatedItems\":68,\"./unevaluatedProperties\":69}],68:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\");r.default={keyword:\"unevaluatedItems\",type:\"array\",schemaType:[\"boolean\",\"object\"],error:{message({params:{len:e}}){return o.str`must NOT have more than ${e} items`},params({params:{len:e}}){return o._`{limit: ${e}}`}},code(e){const{gen:t,schema:r,data:a,it:n}=e,i=n.items||0;if(!0===i)return;const c=t.const(\"len\",o._`${a}.length`);if(!1===r)e.setParams({len:i}),e.fail(o._`${c} > ${i}`);else if(\"object\"==typeof r&&!(0,s.alwaysValidSchema)(n,r)){const r=t.var(\"valid\",o._`${c} <= ${i}`);t.if((0,o.not)(r),(()=>function(r,a){t.forRange(\"i\",a,c,(a=>{e.subschema({keyword:\"unevaluatedItems\",dataProp:a,dataPropType:s.Type.Num},r),n.allErrors||t.if((0,o.not)(r),(()=>t.break()))}))}(r,i))),e.ok(r)}n.items=!0}}},{\"../../compile/codegen\":2,\"../../compile/util\":10}],69:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../../compile/names\");r.default={keyword:\"unevaluatedProperties\",type:\"object\",schemaType:[\"boolean\",\"object\"],trackErrors:!0,error:{message:\"must NOT have unevaluated properties\",params({params:e}){return o._`{unevaluatedProperty: ${e.unevaluatedProperty}}`}},code(e){const{gen:t,schema:r,data:n,errsCount:i,it:c}=e;if(!i)throw new Error(\"ajv implementation error\");const{allErrors:d,props:l}=c;function u(a){if(!1===r)return e.setParams({unevaluatedProperty:a}),e.error(),void(d||t.break());if(!(0,s.alwaysValidSchema)(c,r)){const r=t.name(\"valid\");e.subschema({keyword:\"unevaluatedProperties\",dataProp:a,dataPropType:s.Type.Str},r),d||t.if((0,o.not)(r),(()=>t.break()))}}l instanceof o.Name?t.if(o._`${l} !== true`,(()=>t.forIn(\"key\",n,(e=>t.if(function(e,t){return o._`!${e} || !${e}[${t}]`}(l,e),(()=>u(e))))))):!0!==l&&t.forIn(\"key\",n,(e=>void 0===l?u(e):t.if(function(e,t){const r=[];for(const s in e)!0===e[s]&&r.push(o._`${t} !== ${s}`);return(0,o.and)(...r)}(l,e),(()=>u(e))))),c.props=!0,e.ok(o._`${i} === ${a.default.errors}`)}}},{\"../../compile/codegen\":2,\"../../compile/names\":6,\"../../compile/util\":10}],70:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../../runtime/equal\");r.default={keyword:\"const\",$data:!0,error:{message:\"must be equal to constant\",params({schemaCode:e}){return o._`{allowedValue: ${e}}`}},code(e){const{gen:t,data:r,$data:n,schemaCode:i,schema:c}=e;n||c&&\"object\"==typeof c?e.fail$data(o._`!${(0,s.useFunc)(t,a.default)}(${r}, ${i})`):e.fail(o._`${c} !== ${r}`)}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../../runtime/equal\":29}],71:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../applicator/dependencies\");r.default={keyword:\"dependentRequired\",type:\"object\",schemaType:\"object\",error:o.error,code(e){return(0,o.validatePropertyDeps)(e)}}},{\"../applicator/dependencies\":38}],72:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../../runtime/equal\");r.default={keyword:\"enum\",schemaType:\"array\",$data:!0,error:{message:\"must be equal to one of the allowed values\",params({schemaCode:e}){return o._`{allowedValues: ${e}}`}},code(e){const{gen:t,data:r,$data:n,schema:i,schemaCode:c,it:d}=e;if(!n&&0===i.length)throw new Error(\"enum must have non-empty array\");let l;const u=()=>null!=l?l:l=(0,s.useFunc)(t,a.default);let m;if(i.length>=d.opts.loopEnum||n)m=t.let(\"valid\"),e.block$data(m,(function(){t.assign(m,!1),t.forOf(\"v\",c,(e=>t.if(o._`${u()}(${r}, ${e})`,(()=>t.assign(m,!0).break()))))}));else{if(!Array.isArray(i))throw new Error(\"ajv implementation error\");const e=t.const(\"vSchema\",c);m=(0,o.or)(...i.map(((t,s)=>function(e,t){const s=i[t];return\"object\"==typeof s&&null!==s?o._`${u()}(${r}, ${e}[${t}])`:o._`${r} === ${s}`}(e,s))))}e.pass(m)}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../../runtime/equal\":29}],73:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"./limitNumber\"),s=e(\"./multipleOf\"),a=e(\"./limitLength\"),n=e(\"./pattern\"),i=e(\"./limitProperties\"),c=e(\"./required\"),d=e(\"./limitItems\"),l=e(\"./uniqueItems\"),u=e(\"./const\"),m=e(\"./enum\");r.default=[o.default,s.default,a.default,n.default,i.default,c.default,d.default,l.default,{keyword:\"type\",schemaType:[\"string\",\"array\"]},{keyword:\"nullable\",schemaType:\"boolean\"},u.default,m.default]},{\"./const\":70,\"./enum\":72,\"./limitItems\":75,\"./limitLength\":76,\"./limitNumber\":77,\"./limitProperties\":78,\"./multipleOf\":79,\"./pattern\":80,\"./required\":81,\"./uniqueItems\":82}],74:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/util\");r.default={keyword:[\"maxContains\",\"minContains\"],type:\"array\",schemaType:\"number\",code({keyword:e,parentSchema:t,it:r}){void 0===t.contains&&(0,o.checkStrictMode)(r,`\"${e}\" without \"contains\" is ignored`)}}},{\"../../compile/util\":10}],75:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\");r.default={keyword:[\"maxItems\",\"minItems\"],type:\"array\",schemaType:\"number\",$data:!0,error:{message:({keyword:e,schemaCode:t})=>o.str`must NOT have ${\"maxItems\"===e?\"more\":\"fewer\"} than ${t} items`,params({schemaCode:e}){return o._`{limit: ${e}}`}},code(e){const{keyword:t,data:r,schemaCode:s}=e;e.fail$data(o._`${r}.length ${\"maxItems\"===t?o.operators.GT:o.operators.LT} ${s}`)}}},{\"../../compile/codegen\":2}],76:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=e(\"../../compile/util\"),a=e(\"../../runtime/ucs2length\");r.default={keyword:[\"maxLength\",\"minLength\"],type:\"string\",schemaType:\"number\",$data:!0,error:{message:({keyword:e,schemaCode:t})=>o.str`must NOT have ${\"maxLength\"===e?\"more\":\"fewer\"} than ${t} characters`,params({schemaCode:e}){return o._`{limit: ${e}}`}},code(e){const{keyword:t,data:r,schemaCode:n,it:i}=e,c=\"maxLength\"===t?o.operators.GT:o.operators.LT,d=!1===i.opts.unicode?o._`${r}.length`:o._`${(0,s.useFunc)(e.gen,a.default)}(${r})`;e.fail$data(o._`${d} ${c} ${n}`)}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../../runtime/ucs2length\":30}],77:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\"),s=o.operators,a={maximum:{okStr:\"<=\",ok:s.LTE,fail:s.GT},minimum:{okStr:\">=\",ok:s.GTE,fail:s.LT},exclusiveMaximum:{okStr:\"<\",ok:s.LT,fail:s.GTE},exclusiveMinimum:{okStr:\">\",ok:s.GT,fail:s.LTE}},n={message({keyword:e,schemaCode:t}){return o.str`must be ${a[e].okStr} ${t}`},params({keyword:e,schemaCode:t}){return o._`{comparison: ${a[e].okStr}, limit: ${t}}`}},i={keyword:Object.keys(a),type:\"number\",schemaType:\"number\",$data:!0,error:n,code(e){const{keyword:t,data:r,schemaCode:s}=e;e.fail$data(o._`${r} ${a[t].fail} ${s} || isNaN(${r})`)}};r.default=i},{\"../../compile/codegen\":2}],78:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\");r.default={keyword:[\"maxProperties\",\"minProperties\"],type:\"object\",schemaType:\"number\",$data:!0,error:{message:({keyword:e,schemaCode:t})=>o.str`must NOT have ${\"maxProperties\"===e?\"more\":\"fewer\"} than ${t} properties`,params({schemaCode:e}){return o._`{limit: ${e}}`}},code(e){const{keyword:t,data:r,schemaCode:s}=e;e.fail$data(o._`Object.keys(${r}).length ${\"maxProperties\"===t?o.operators.GT:o.operators.LT} ${s}`)}}},{\"../../compile/codegen\":2}],79:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/codegen\");r.default={keyword:\"multipleOf\",type:\"number\",schemaType:\"number\",$data:!0,error:{message({schemaCode:e}){return o.str`must be multiple of ${e}`},params({schemaCode:e}){return o._`{multipleOf: ${e}}`}},code(e){const{gen:t,data:r,schemaCode:s,it:a}=e,n=a.opts.multipleOfPrecision,i=t.let(\"res\"),c=n?o._`Math.abs(Math.round(${i}) - ${i}) > 1e-${n}`:o._`${i} !== parseInt(${i})`;e.fail$data(o._`(${s} === 0 || (${i} = ${r}/${s}, ${c}))`)}}},{\"../../compile/codegen\":2}],80:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../code\"),s=e(\"../../compile/codegen\");r.default={keyword:\"pattern\",type:\"string\",schemaType:\"string\",$data:!0,error:{message({schemaCode:e}){return s.str`must match pattern \"${e}\"`},params({schemaCode:e}){return s._`{pattern: ${e}}`}},code(e){const{data:t,$data:r,schema:a,schemaCode:n,it:i}=e,c=r?s._`(new RegExp(${n}, ${i.opts.unicodeRegExp?\"u\":\"\"}))`:(0,o.usePattern)(e,a);e.fail$data(s._`!${c}.test(${t})`)}}},{\"../../compile/codegen\":2,\"../code\":51}],81:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../code\"),s=e(\"../../compile/codegen\"),a=e(\"../../compile/util\");r.default={keyword:\"required\",type:\"object\",schemaType:\"array\",$data:!0,error:{message({params:{missingProperty:e}}){return s.str`must have required property '${e}'`},params({params:{missingProperty:e}}){return s._`{missingProperty: ${e}}`}},code(e){const{gen:t,schema:r,schemaCode:n,data:i,$data:c,it:d}=e,{opts:l}=d;if(!c&&0===r.length)return;const u=r.length>=l.loopRequired;if(d.allErrors?function(){if(u||c)e.block$data(s.nil,m);else for(const t of r)(0,o.checkReportMissingProp)(e,t)}():function(){const a=t.let(\"missing\");if(u||c){const r=t.let(\"valid\",!0);e.block$data(r,(()=>function(r,a){e.setParams({missingProperty:r}),t.forOf(r,n,(()=>{t.assign(a,(0,o.propertyInData)(t,i,r,l.ownProperties)),t.if((0,s.not)(a),(()=>{e.error(),t.break()}))}),s.nil)}(a,r))),e.ok(r)}else t.if((0,o.checkMissingProp)(e,r,a)),(0,o.reportMissingProp)(e,a),t.else()}(),l.strictRequired){const t=e.parentSchema.properties,{definedProperties:o}=e.it;for(const e of r)if(void 0===(null==t?void 0:t[e])&&!o.has(e)){(0,a.checkStrictMode)(d,`required property \"${e}\" is not defined at \"${d.schemaEnv.baseId+d.errSchemaPath}\" (strictRequired)`,d.opts.strictRequired)}}function m(){t.forOf(\"prop\",n,(r=>{e.setParams({missingProperty:r}),t.if((0,o.noPropertyInData)(t,i,r,l.ownProperties),(()=>e.error()))}))}}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../code\":51}],82:[function(e,t,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});const o=e(\"../../compile/validate/dataType\"),s=e(\"../../compile/codegen\"),a=e(\"../../compile/util\"),n=e(\"../../runtime/equal\");r.default={keyword:\"uniqueItems\",type:\"array\",schemaType:\"boolean\",$data:!0,error:{message({params:{i:e,j:t}}){return s.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`},params({params:{i:e,j:t}}){return s._`{i: ${e}, j: ${t}}`}},code(e){const{gen:t,data:r,$data:i,schema:c,parentSchema:d,schemaCode:l,it:u}=e;if(!i&&!c)return;const m=t.let(\"valid\"),f=d.items?(0,o.getSchemaTypes)(d.items):[];function p(a,n){const i=t.name(\"item\"),c=(0,o.checkDataTypes)(f,i,u.opts.strictNumbers,o.DataType.Wrong),d=t.const(\"indices\",s._`{}`);t.for(s._`;${a}--;`,(()=>{t.let(i,s._`${r}[${a}]`),t.if(c,s._`continue`),f.length>1&&t.if(s._`typeof ${i} == \"string\"`,s._`${i} += \"_\"`),t.if(s._`typeof ${d}[${i}] == \"number\"`,(()=>{t.assign(n,s._`${d}[${i}]`),e.error(),t.assign(m,!1).break()})).code(s._`${d}[${i}] = ${a}`)}))}function h(o,i){const c=(0,a.useFunc)(t,n.default),d=t.name(\"outer\");t.label(d).for(s._`;${o}--;`,(()=>t.for(s._`${i} = ${o}; ${i}--;`,(()=>t.if(s._`${c}(${r}[${o}], ${r}[${i}])`,(()=>{e.error(),t.assign(m,!1).break(d)}))))))}e.block$data(m,(function(){const o=t.let(\"i\",s._`${r}.length`),a=t.let(\"j\");e.setParams({i:o,j:a}),t.assign(m,!0),t.if(s._`${o} > 1`,(()=>(f.length>0&&!f.some((e=>\"object\"===e||\"array\"===e))?p:h)(o,a)))}),s._`${l} === false`),e.ok(m)}}},{\"../../compile/codegen\":2,\"../../compile/util\":10,\"../../compile/validate/dataType\":13,\"../../runtime/equal\":29}],83:[function(e,t,r){\"use strict\";t.exports=function e(t,r){if(t===r)return!0;if(t&&r&&\"object\"==typeof t&&\"object\"==typeof r){if(t.constructor!==r.constructor)return!1;var o,s,a;if(Array.isArray(t)){if((o=t.length)!=r.length)return!1;for(s=o;0!=s--;)if(!e(t[s],r[s]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((o=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(s=o;0!=s--;)if(!Object.prototype.hasOwnProperty.call(r,a[s]))return!1;for(s=o;0!=s--;){var n=a[s];if(!e(t[n],r[n]))return!1}return!0}return t!=t&&r!=r}},{}],84:[function(e,t,r){\"use strict\";const{normalizeIPv6:o,normalizeIPv4:s,removeDotSegments:a,recomposeAuthority:n,normalizeComponentEncoding:i}=e(\"./lib/utils\"),c=e(\"./lib/schemes\");function d(e,t,r,o){const s={};return o||(e=f(l(e,r),r),t=f(l(t,r),r)),!(r=r||{}).tolerant&&t.scheme?(s.scheme=t.scheme,s.userinfo=t.userinfo,s.host=t.host,s.port=t.port,s.path=a(t.path||\"\"),s.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(s.userinfo=t.userinfo,s.host=t.host,s.port=t.port,s.path=a(t.path||\"\"),s.query=t.query):(t.path?(\"/\"===t.path.charAt(0)?s.path=a(t.path):(s.path=void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?e.path.slice(0,e.path.lastIndexOf(\"/\")+1)+t.path:t.path:\"/\"+t.path,s.path=a(s.path)),s.query=t.query):(s.path=e.path,s.query=void 0!==t.query?t.query:e.query),s.userinfo=e.userinfo,s.host=e.host,s.port=e.port),s.scheme=e.scheme),s.fragment=t.fragment,s}function l(e,t){const r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:\"\"},o=Object.assign({},t),s=[],i=c[(o.scheme||r.scheme||\"\").toLowerCase()];i&&i.serialize&&i.serialize(r,o),void 0!==r.path&&(o.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),void 0!==r.scheme&&(r.path=r.path.split(\"%3A\").join(\":\")))),\"suffix\"!==o.reference&&r.scheme&&(s.push(r.scheme),s.push(\":\"));const d=n(r,o);if(void 0!==d&&(\"suffix\"!==o.reference&&s.push(\"//\"),s.push(d),r.path&&\"/\"!==r.path.charAt(0)&&s.push(\"/\")),void 0!==r.path){let e=r.path;o.absolutePath||i&&i.absolutePath||(e=a(e)),void 0===d&&(e=e.replace(/^\\/\\//u,\"/%2F\")),s.push(e)}return void 0!==r.query&&(s.push(\"?\"),s.push(r.query)),void 0!==r.fragment&&(s.push(\"#\"),s.push(r.fragment)),s.join(\"\")}const u=Array.from({length:127},((e,t)=>/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));const m=/^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u;function f(e,t){const r=Object.assign({},t),a={scheme:void 0,userinfo:void 0,host:\"\",port:void 0,path:\"\",query:void 0,fragment:void 0},n=-1!==e.indexOf(\"%\");let i=!1;\"suffix\"===r.reference&&(e=(r.scheme?r.scheme+\":\":\"\")+\"//\"+e);const d=e.match(m);if(d){if(a.scheme=d[1],a.userinfo=d[3],a.host=d[4],a.port=parseInt(d[5],10),a.path=d[6]||\"\",a.query=d[7],a.fragment=d[8],isNaN(a.port)&&(a.port=d[5]),a.host){const e=s(a.host);if(!1===e.isIPV4){const t=o(e.host,{isIPV4:!1});a.host=t.host.toLowerCase(),i=t.isIPV6}else a.host=e.host,i=!0}a.reference=void 0!==a.scheme||void 0!==a.userinfo||void 0!==a.host||void 0!==a.port||a.path||void 0!==a.query?void 0===a.scheme?\"relative\":void 0===a.fragment?\"absolute\":\"uri\":\"same-document\",r.reference&&\"suffix\"!==r.reference&&r.reference!==a.reference&&(a.error=a.error||\"URI is not a \"+r.reference+\" reference.\");const e=c[(r.scheme||a.scheme||\"\").toLowerCase()];if(!(r.unicodeSupport||e&&e.unicodeSupport)&&a.host&&(r.domainHost||e&&e.domainHost)&&!1===i&&function(e){let t=0;for(let r=0,o=e.length;r126||u[t])return!0;return!1}(a.host))try{a.host=URL.domainToASCII(a.host.toLowerCase())}catch(e){a.error=a.error||\"Host's domain name can not be converted to ASCII: \"+e}(!e||e&&!e.skipNormalize)&&(n&&void 0!==a.scheme&&(a.scheme=unescape(a.scheme)),n&&void 0!==a.userinfo&&(a.userinfo=unescape(a.userinfo)),n&&void 0!==a.host&&(a.host=unescape(a.host)),void 0!==a.path&&a.path.length&&(a.path=escape(unescape(a.path))),void 0!==a.fragment&&a.fragment.length&&(a.fragment=encodeURI(decodeURIComponent(a.fragment)))),e&&e.parse&&e.parse(a,r)}else a.error=a.error||\"URI can not be parsed.\";return a}const p={SCHEMES:c,normalize(e,t){return\"string\"==typeof e?e=l(f(e,t),t):\"object\"==typeof e&&(e=f(l(e,t),t)),e},resolve(e,t,r){const o=Object.assign({scheme:\"null\"},r);return l(d(f(e,o),f(t,o),o,!0),{...o,skipEscape:!0})},resolveComponents:d,equal(e,t,r){return\"string\"==typeof e?(e=unescape(e),e=l(i(f(e,r),!0),{...r,skipEscape:!0})):\"object\"==typeof e&&(e=l(i(e,!0),{...r,skipEscape:!0})),\"string\"==typeof t?(t=unescape(t),t=l(i(f(t,r),!0),{...r,skipEscape:!0})):\"object\"==typeof t&&(t=l(i(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()},serialize:l,parse:f};t.exports=p,t.exports.default=p,t.exports.fastUri=p},{\"./lib/schemes\":85,\"./lib/utils\":87}],85:[function(e,t,r){\"use strict\";const o=/^[\\da-f]{8}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{12}$/iu,s=/([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu;function a(e){return\"boolean\"==typeof e.secure?e.secure:\"wss\"===String(e.scheme).toLowerCase()}function n(e){return e.host||(e.error=e.error||\"HTTP URIs must have a host.\"),e}function i(e){const t=\"https\"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&\"\"!==e.port||(e.port=void 0),e.path||(e.path=\"/\"),e}const c={scheme:\"http\",domainHost:!0,parse:n,serialize:i},d={scheme:\"https\",domainHost:c.domainHost,parse:n,serialize:i},l={scheme:\"ws\",domainHost:!0,parse(e){return e.secure=a(e),e.resourceName=(e.path||\"/\")+(e.query?\"?\"+e.query:\"\"),e.path=void 0,e.query=void 0,e},serialize(e){if(e.port!==(a(e)?443:80)&&\"\"!==e.port||(e.port=void 0),\"boolean\"==typeof e.secure&&(e.scheme=e.secure?\"wss\":\"ws\",e.secure=void 0),e.resourceName){const[t,r]=e.resourceName.split(\"?\");e.path=t&&\"/\"!==t?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}},u={http:c,https:d,ws:l,wss:{scheme:\"wss\",domainHost:l.domainHost,parse:l.parse,serialize:l.serialize},urn:{scheme:\"urn\",parse(e,t){if(!e.path)return e.error=\"URN can not be parsed\",e;const r=e.path.match(s);if(r){const o=t.scheme||e.scheme||\"urn\";e.nid=r[1].toLowerCase(),e.nss=r[2];const s=u[`${o}:${t.nid||e.nid}`];e.path=void 0,s&&(e=s.parse(e,t))}else e.error=e.error||\"URN can not be parsed.\";return e},serialize(e,t){const r=t.scheme||e.scheme||\"urn\",o=e.nid.toLowerCase(),s=u[`${r}:${t.nid||o}`];s&&(e=s.serialize(e,t));const a=e;return a.path=`${o||t.nid}:${e.nss}`,t.skipEscape=!0,a},skipNormalize:!0},\"urn:uuid\":{scheme:\"urn:uuid\",parse(e,t){const r=e;return r.uuid=r.nss,r.nss=void 0,t.tolerant||r.uuid&&o.test(r.uuid)||(r.error=r.error||\"UUID is not valid.\"),r},serialize(e){const t=e;return t.nss=(e.uuid||\"\").toLowerCase(),t},skipNormalize:!0}};t.exports=u},{}],86:[function(e,t,r){\"use strict\";t.exports={HEX:{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15}}},{}],87:[function(e,t,r){\"use strict\";const{HEX:o}=e(\"./scopedChars\");function s(e){if(c(e,\".\")<3)return{host:e,isIPV4:!1};const t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:i(r,\".\"),isIPV4:!0}:{host:e,isIPV4:!1}}function a(e,t=!1){let r=\"\",s=!0;for(const t of e){if(void 0===o[t])return;\"0\"!==t&&!0===s&&(s=!1),s||(r+=t)}return t&&0===r.length&&(r=\"0\"),r}function n(e,t={}){if(c(e,\":\")<2)return{host:e,isIPV6:!1};const r=function(e){let t=0;const r={error:!1,address:\"\",zone:\"\"},o=[],s=[];let n=!1,i=!1,c=!1;function d(){if(s.length){if(!1===n){const e=a(s);if(void 0===e)return r.error=!0,!1;o.push(e)}s.length=0}return!0}for(let a=0;a7){r.error=!0;break}a-1>=0&&\":\"===e[a-1]&&(i=!0)}}return s.length&&(n?r.zone=s.join(\"\"):o.push(c?s.join(\"\"):a(s))),r.address=o.join(\"\"),r}(e);if(r.error)return{host:e,isIPV6:!1};{let e=r.address,t=r.address;return r.zone&&(e+=\"%\"+r.zone,t+=\"%25\"+r.zone),{host:e,escapedHost:t,isIPV6:!0}}}function i(e,t){let r=\"\",o=!0;const s=e.length;for(let a=0;athis.addVocabulary(e))),this.opts.discriminator&&this.addKeyword(a.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();const{$data:e,meta:t}=this.opts;t&&(n.default.call(this,e),this.refs[\"http://json-schema.org/schema\"]=i)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(i)?i:void 0)}}r.Ajv2020=c,t.exports=r=c,t.exports.Ajv2020=c,Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=c;var d=e(\"./compile/validate\");Object.defineProperty(r,\"KeywordCxt\",{enumerable:!0,get(){return d.KeywordCxt}});var l=e(\"./compile/codegen\");Object.defineProperty(r,\"_\",{enumerable:!0,get(){return l._}}),Object.defineProperty(r,\"str\",{enumerable:!0,get(){return l.str}}),Object.defineProperty(r,\"stringify\",{enumerable:!0,get(){return l.stringify}}),Object.defineProperty(r,\"nil\",{enumerable:!0,get(){return l.nil}}),Object.defineProperty(r,\"Name\",{enumerable:!0,get(){return l.Name}}),Object.defineProperty(r,\"CodeGen\",{enumerable:!0,get(){return l.CodeGen}});var u=e(\"./runtime/validation_error\");Object.defineProperty(r,\"ValidationError\",{enumerable:!0,get(){return u.default}});var m=e(\"./compile/ref_error\");Object.defineProperty(r,\"MissingRefError\",{enumerable:!0,get(){return m.default}})},{\"./compile/codegen\":2,\"./compile/ref_error\":7,\"./compile/validate\":15,\"./core\":18,\"./refs/json-schema-2020-12\":20,\"./runtime/validation_error\":32,\"./vocabularies/discriminator\":55,\"./vocabularies/draft2020\":57}]},{},[])(\"2020\")}));\n//# sourceMappingURL=ajv2020.min.js.map\nNODE_UNIDESK_AJV2020_BUNDLE\n then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\n#!/usr/bin/env node\nimport { randomBytes } from \"node:crypto\";\nimport { existsSync, lstatSync, readFileSync, readdirSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { createRequire } from \"node:module\";\nimport { pathToFileURL } from \"node:url\";\n\nconst require = createRequire(import.meta.url);\nconst cwdRequire = createRequire(path.join(process.cwd(), \"package.json\"));\nconst YAML = globalThis.unideskYaml ?? optionalRequire(\"yaml\") ?? optionalRequire(\"yaml\", cwdRequire);\nconst VALIDATOR_UNAVAILABLE = \"FEATURE_CONFIG_VALIDATOR_UNAVAILABLE\";\n\nexport const FEATURE_CONFIG_SCHEMA_PATH = \"config/feature-config.schema.json\";\n\nexport function validateFeatureConfigSchema(options = {}) {\n const repoDir = path.resolve(options.repoDir ?? process.cwd());\n const schemaPath = FEATURE_CONFIG_SCHEMA_PATH;\n const absoluteSchemaPath = path.join(repoDir, schemaPath);\n if (!existsSync(absoluteSchemaPath)) return result(\"feature-config-schema-missing\", \"schema file is missing\", 1, null);\n\n let schema;\n try {\n schema = JSON.parse(readFileSync(absoluteSchemaPath, \"utf8\"));\n } catch (error) {\n return result(\"feature-config-schema-invalid\", `schema JSON parse failed: ${errorMessage(error)}`, 1, null);\n }\n\n const featureErrors = featureDeclarationErrors(schema);\n if (featureErrors.invalid.length > 0) return result(\"feature-config-schema-invalid\", featureErrors.invalid[0], featureErrors.invalid.length, null);\n if (featureErrors.duplicates.length > 0) return result(\"feature-config-variable-duplicate\", featureErrors.duplicates[0], featureErrors.duplicates.length, null);\n\n let validate;\n try {\n const Ajv2020 = ajv2020();\n const ajv = new Ajv2020({ allErrors: true, strict: true, validateFormats: false });\n ajv.addKeyword({ keyword: \"x-unidesk-feature\", schemaType: \"string\", valid: true });\n validate = ajv.compile(schema);\n } catch (error) {\n return result(\n error?.code === VALIDATOR_UNAVAILABLE ? \"feature-config-validator-unavailable\" : \"feature-config-schema-invalid\",\n errorMessage(error),\n 1,\n null,\n );\n }\n\n let candidate;\n try {\n candidate = options.candidate ?? renderedWorkloadCandidate({\n renderedRoot: options.renderedRoot,\n propertyNames: Object.keys(schema.properties),\n });\n } catch (error) {\n return result(\"feature-config-validator-failure\", errorMessage(error), 1, null);\n }\n if (candidate === null || !isRecord(candidate.values) || Object.keys(candidate.values).length === 0) {\n return result(\"feature-config-input-missing\", \"rendered workload candidate snapshot is missing\", 1, candidate?.summary ?? null);\n }\n\n if (!validate(candidate.values)) {\n const errors = Array.isArray(validate.errors) ? validate.errors : [];\n return result(\"feature-config-value-mismatch\", boundedAjvError(errors[0]), errors.length || 1, candidate.summary);\n }\n return result(\"feature-config-schema-valid\", null, 0, candidate.summary);\n}\n\nexport function emitFeatureConfigSchemaValidation(options = {}) {\n const validation = validateFeatureConfigSchema(options);\n process.stderr.write(`${JSON.stringify(validation)}\\n`);\n return validation;\n}\n\nexport async function runFeatureConfigSchemaValidation(options = {}) {\n let validation;\n try {\n validation = emitFeatureConfigSchemaValidation(options);\n } catch (error) {\n validation = result(\"feature-config-validator-failure\", errorMessage(error), 1, null);\n process.stderr.write(`${JSON.stringify(validation)}\\n`);\n }\n try {\n const endpoint = options.otelEndpoint ?? process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ?? \"\";\n const timeoutMs = positiveInteger(options.otelTimeoutMs ?? process.env.OTEL_EXPORTER_TIMEOUT_MS);\n const samplingRatio = samplingRatioValue(options.otelSamplingRatio ?? process.env.OTEL_TRACES_SAMPLER_ARG);\n if (endpoint.length === 0) {\n const exportWarning = otelWarning(\"ENDPOINT_MISSING\", null, false, null, timeoutMs);\n process.stderr.write(`${JSON.stringify(exportWarning)}\\n`);\n return { validation, otelPayload: null, otelWarning: exportWarning };\n }\n if (timeoutMs === null) {\n const exportWarning = otelWarning(\"TIMEOUT_MISSING\", null, false, null, null);\n process.stderr.write(`${JSON.stringify(exportWarning)}\\n`);\n return { validation, otelPayload: null, otelWarning: exportWarning };\n }\n const otelPayload = featureConfigOtelPayload(validation, {\n serviceName: options.otelServiceName ?? process.env.OTEL_SERVICE_NAME ?? \"unidesk-cicd\",\n consumer: options.consumer ?? process.env.UNIDESK_PAC_CONSUMER ?? null,\n samplingRatio,\n traceparent: options.traceparent ?? process.env.TRACEPARENT ?? process.env.traceparent ?? \"\",\n nowMs: options.nowMs,\n traceId: options.traceId,\n spanId: options.spanId,\n });\n const exportWarning = await exportFeatureConfigOtel(endpoint, otelPayload, timeoutMs, options.fetchImpl ?? fetch);\n if (exportWarning !== null) process.stderr.write(`${JSON.stringify(exportWarning)}\\n`);\n return { validation, otelPayload, otelWarning: exportWarning };\n } catch (error) {\n const exportWarning = otelWarning(\"EXPORT_INTERNAL_FAILURE\", null, false, error, positiveInteger(options.otelTimeoutMs ?? process.env.OTEL_EXPORTER_TIMEOUT_MS));\n process.stderr.write(`${JSON.stringify(exportWarning)}\\n`);\n return { validation, otelPayload: null, otelWarning: exportWarning };\n }\n}\n\nexport function featureConfigOtelPayload(validation, options = {}) {\n const parent = parseTraceparent(options.traceparent);\n const traceId = options.traceId ?? parent.traceId ?? randomBytes(16).toString(\"hex\");\n const spanId = options.spanId ?? randomBytes(8).toString(\"hex\");\n const nowMs = options.nowMs ?? Date.now();\n const startTimeUnixNano = String(BigInt(nowMs) * 1_000_000n);\n return {\n resourceSpans: [{\n resource: { attributes: otelAttributes({\n \"service.name\": options.serviceName ?? \"unidesk-cicd\",\n \"unidesk.pac.consumer\": options.consumer ?? null,\n \"unidesk.otel.sampling_ratio\": options.samplingRatio ?? null,\n \"unidesk.values_redacted\": true,\n }) },\n scopeSpans: [{\n scope: { name: \"unidesk.cicd.feature-config\", version: \"v1\" },\n spans: [{\n traceId,\n spanId,\n ...(parent.spanId === null ? {} : { parentSpanId: parent.spanId }),\n name: \"cicd.feature_config.schema\",\n kind: 1,\n startTimeUnixNano,\n endTimeUnixNano: startTimeUnixNano,\n attributes: otelAttributes({\n \"feature_config.warning\": validation.warning,\n \"feature_config.blocking\": false,\n \"feature_config.code\": validation.code,\n \"feature_config.schema_path\": validation.schemaPath,\n \"feature_config.error_count\": validation.errorCount,\n }),\n events: [{\n timeUnixNano: startTimeUnixNano,\n name: \"feature-config-schema-validation\",\n attributes: otelAttributes({\n \"feature_config.warning\": validation.warning,\n \"feature_config.code\": validation.code,\n \"feature_config.first_error\": validation.firstError,\n }),\n }],\n status: { code: 1 },\n }],\n }],\n }],\n };\n}\n\nasync function exportFeatureConfigOtel(endpoint, payload, timeoutMs, fetchImpl) {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const response = await fetchImpl(endpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(payload),\n signal: controller.signal,\n });\n if (response.ok) return null;\n return otelWarning(`HTTP_${response.status}`, response.status, false, null, timeoutMs);\n } catch (error) {\n return otelWarning(error instanceof Error && error.name === \"AbortError\" ? \"TIMEOUT\" : \"EXPORT_FAILED\", null, error instanceof Error && error.name === \"AbortError\", error, timeoutMs);\n } finally {\n clearTimeout(timeout);\n }\n}\n\nfunction featureDeclarationErrors(schema) {\n if (!isRecord(schema) || schema.type !== \"object\" || !isRecord(schema.properties)) {\n return { invalid: [\"schema root must be an object schema with properties\"], duplicates: [] };\n }\n const invalid = [];\n const variablesByFeature = new Map();\n for (const [propertyName, propertySchema] of Object.entries(schema.properties)) {\n if (!isRecord(propertySchema)) {\n invalid.push(`property ${propertyName} schema must be an object`);\n continue;\n }\n const feature = propertySchema[\"x-unidesk-feature\"];\n if (typeof feature !== \"string\" || feature.trim().length === 0) {\n invalid.push(`property ${propertyName} must declare x-unidesk-feature`);\n continue;\n }\n const variables = variablesByFeature.get(feature.trim()) ?? [];\n variables.push(propertyName);\n variablesByFeature.set(feature.trim(), variables);\n }\n const duplicates = [...variablesByFeature.entries()]\n .filter(([, variables]) => variables.length > 1)\n .map(([feature, variables]) => `feature ${feature} maps to multiple properties: ${variables.join(\",\")}`);\n return { invalid, duplicates };\n}\n\nfunction renderedWorkloadCandidate({ renderedRoot, propertyNames }) {\n if (typeof renderedRoot !== \"string\" || renderedRoot.length === 0 || !existsSync(renderedRoot) || YAML === null) return null;\n const wanted = new Set(propertyNames);\n const values = {};\n let fileCount = 0;\n let workloadCount = 0;\n let matchedValueCount = 0;\n for (const file of listStructuredFiles(renderedRoot)) {\n fileCount += 1;\n for (const document of parseDocuments(file)) {\n for (const item of kubernetesItems(document)) {\n const podSpec = item?.spec?.template?.spec;\n if (!isRecord(podSpec)) continue;\n workloadCount += 1;\n for (const group of [\"containers\", \"initContainers\"]) {\n for (const container of Array.isArray(podSpec[group]) ? podSpec[group] : []) {\n for (const env of Array.isArray(container?.env) ? container.env : []) {\n if (!wanted.has(env?.name) || typeof env?.value !== \"string\") continue;\n values[env.name] = parseRenderedValue(env.value);\n matchedValueCount += 1;\n }\n }\n }\n }\n }\n }\n return {\n values,\n summary: {\n source: \"rendered-workload-env\",\n renderedRoot: path.relative(process.cwd(), path.resolve(renderedRoot)) || \".\",\n fileCount,\n workloadCount,\n matchedValueCount,\n propertyCount: propertyNames.length,\n valuesPrinted: false,\n },\n };\n}\n\nfunction listStructuredFiles(root) {\n const maxFiles = 2_000;\n const maxDirectories = 2_000;\n const files = [];\n const pending = [path.resolve(root)];\n let directoryCount = 0;\n while (pending.length > 0) {\n const current = pending.pop();\n directoryCount += 1;\n if (directoryCount > maxDirectories) throw new Error(`rendered workload directory limit exceeded: ${maxDirectories}`);\n for (const name of readdirSync(current)) {\n const file = path.join(current, name);\n const stat = lstatSync(file);\n if (stat.isSymbolicLink()) continue;\n if (stat.isDirectory()) pending.push(file);\n else if (/\\.(?:ya?ml|json)$/iu.test(name)) {\n files.push(file);\n if (files.length > maxFiles) throw new Error(`rendered workload file limit exceeded: ${maxFiles}`);\n }\n }\n }\n return files.sort();\n}\n\nfunction parseDocuments(file) {\n const text = readFileSync(file, \"utf8\");\n if (/\\.json$/iu.test(file)) {\n try { return [JSON.parse(text)]; } catch { return []; }\n }\n try { return YAML.parseAllDocuments(text).map((document) => document.toJS()).filter((document) => document !== null); } catch { return []; }\n}\n\nfunction kubernetesItems(document) {\n return document?.kind === \"List\" && Array.isArray(document.items) ? document.items : [document];\n}\n\nfunction parseRenderedValue(value) {\n try { return JSON.parse(value); } catch { return value; }\n}\n\nfunction boundedAjvError(error) {\n if (!isRecord(error)) return \"candidate does not match schema\";\n const instancePath = typeof error.instancePath === \"string\" ? error.instancePath : \"\";\n const keyword = typeof error.keyword === \"string\" ? error.keyword : \"validation\";\n const message = typeof error.message === \"string\" ? error.message : \"failed\";\n return `${instancePath || \"/\"} ${keyword} ${message}`;\n}\n\nfunction result(code, firstError, errorCount, candidate) {\n const warning = errorCount > 0;\n const boundedError = typeof firstError === \"string\" ? firstError.replace(/\\s+/gu, \" \").trim().slice(0, 240) : null;\n return {\n event: \"feature-config-schema-validation\",\n warning,\n blocking: false,\n code,\n schemaPath: FEATURE_CONFIG_SCHEMA_PATH,\n errorCount,\n firstError: boundedError,\n candidate,\n mutation: false,\n valuesPrinted: false,\n otel: {\n spanEvent: \"cicd.feature_config.schema\",\n attributes: {\n \"feature_config.warning\": warning,\n \"feature_config.code\": code,\n \"feature_config.schema_path\": FEATURE_CONFIG_SCHEMA_PATH,\n \"feature_config.error_count\": errorCount,\n \"feature_config.blocking\": false,\n },\n },\n };\n}\n\nfunction optionalRequire(name, loader = require) {\n try { return loader(name); } catch { return null; }\n}\n\nfunction ajv2020() {\n if (globalThis.unideskAjv2020) return globalThis.unideskAjv2020;\n if (typeof process.env.UNIDESK_AJV2020_BUNDLE === \"string\" && process.env.UNIDESK_AJV2020_BUNDLE.length > 0) {\n return bundledAjv(process.env.UNIDESK_AJV2020_BUNDLE);\n }\n try {\n return require(\"ajv-dist/dist/ajv2020.bundle.js\");\n } catch {\n throw validatorUnavailable(\"Ajv 2020 validator dependency is unavailable\");\n }\n}\n\nfunction bundledAjv(file) {\n if (!existsSync(file)) throw validatorUnavailable(\"Ajv 2020 validator bundle is missing\");\n try {\n const module = { exports: {} };\n Function(\"module\", \"exports\", readFileSync(file, \"utf8\"))(module, module.exports);\n const exported = module.exports.default ?? module.exports;\n if (typeof exported !== \"function\") throw new TypeError(\"bundle export is not a constructor\");\n return exported;\n } catch (error) {\n if (error?.code === VALIDATOR_UNAVAILABLE) throw error;\n throw validatorUnavailable(`Ajv 2020 validator bundle is corrupt (${error instanceof Error ? error.name : \"Error\"})`);\n }\n}\n\nfunction validatorUnavailable(message) {\n const error = new Error(message);\n error.code = VALIDATOR_UNAVAILABLE;\n return error;\n}\n\nfunction isRecord(value) {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction errorMessage(error) {\n return error instanceof Error ? error.message : String(error);\n}\n\nfunction positiveInteger(value) {\n const parsed = Number(value);\n return Number.isInteger(parsed) && parsed > 0 ? parsed : null;\n}\n\nfunction samplingRatioValue(value) {\n const parsed = Number(value);\n return Number.isFinite(parsed) && parsed >= 0 && parsed <= 1 ? parsed : null;\n}\n\nfunction parseTraceparent(value) {\n const match = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/iu.exec(String(value));\n return { traceId: match?.[1]?.toLowerCase() ?? null, spanId: match?.[2]?.toLowerCase() ?? null };\n}\n\nfunction otelAttributes(values) {\n return Object.entries(values).filter(([, value]) => value !== null && value !== undefined).map(([key, value]) => ({\n key,\n value: typeof value === \"boolean\"\n ? { boolValue: value }\n : typeof value === \"number\"\n ? { intValue: String(value) }\n : { stringValue: String(value) },\n }));\n}\n\nfunction otelWarning(causeCode, httpStatus, timedOut, error, timeoutMs) {\n return {\n event: \"cicd.otel.export\",\n warning: true,\n blocking: false,\n causeCode,\n ...(httpStatus === null ? {} : { httpStatus }),\n timedOut,\n errorType: error instanceof Error ? error.name : null,\n timeoutMs,\n valuesRedacted: true,\n };\n}\n\nif (import.meta.url === pathToFileURL(process.argv[1] ?? \"\").href) {\n const renderedRootIndex = process.argv.indexOf(\"--rendered-root\");\n await runFeatureConfigSchemaValidation({ renderedRoot: renderedRootIndex === -1 ? null : process.argv[renderedRootIndex + 1] });\n process.exitCode = 0;\n}\nawait runFeatureConfigSchemaValidation({\n repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR,\n renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT,\n consumer: process.env.UNIDESK_PAC_CONSUMER,\n});\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nbuild_result=\"$root/build-result.json\"\ntest -s \"$build_result\"\ntemplates_b64=\"W3sicGF0aCI6InNvdXJjZS5qc29uIiwiY29udGVudCI6IntcbiAgXCJsYW5lXCI6IFwidjAuMlwiLFxuICBcInNvdXJjZUNvbW1pdFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gIFwiZ2VuZXJhdGVkQnlcIjogXCJ1bmlkZXNrIGNvbmZpZy9hZ2VudHJ1bi55YW1sXCIsXG4gIFwiY29uZmlnU291cmNlXCI6IFwiY29uZmlnL2FnZW50cnVuLnlhbWxcIlxufVxuIn0seyJwYXRoIjoiZGVwbG95L2FydGlmYWN0LWNhdGFsb2cubmMwMS12MDIuanNvbiIsImNvbnRlbnQiOiJ7XG4gIFwibGFuZVwiOiBcInYwLjJcIixcbiAgXCJzb3VyY2VCcmFuY2hcIjogXCJ2MC4yXCIsXG4gIFwiZ2l0b3BzQnJhbmNoXCI6IFwibmMwMS12MC4yLWdpdG9wc1wiLFxuICBcInNvdXJjZUNvbW1pdElkXCI6IFwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcbiAgXCJzdW1tYXJ5XCI6IFwiYnVpbGQ9MSByZXVzZT0wIHBsYWNlaG9sZGVyPTBcIixcbiAgXCJzZXJ2aWNlc1wiOiBbXG4gICAge1xuICAgICAgXCJzZXJ2aWNlSWRcIjogXCJhZ2VudHJ1bi1tZ3JcIixcbiAgICAgIFwiYXJ0aWZhY3RLaW5kXCI6IFwiZW52LXJldXNlXCIsXG4gICAgICBcInN0YXR1c1wiOiBcIl9fQUdFTlRSVU5fSU1BR0VfU1RBVFVTX19cIixcbiAgICAgIFwiaW1hZ2VcIjogXCIxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52Ol9fQUdFTlRSVU5fRU5WX0lERU5USVRZX19cIixcbiAgICAgIFwiZGlnZXN0XCI6IFwic2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwicmVwb3NpdG9yeURpZ2VzdFwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnZAc2hhMjU2OmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFcIixcbiAgICAgIFwiaW1hZ2VUYWdcIjogXCJfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9fXCIsXG4gICAgICBcImVudklkZW50aXR5XCI6IFwiX19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZJbWFnZVwiOiBcIjEyNy4wLjAuMTo1MDAwL2FnZW50cnVuL2FnZW50cnVuLW1nci1lbnY6X19BR0VOVFJVTl9FTlZfSURFTlRJVFlfX1wiLFxuICAgICAgXCJlbnZEaWdlc3RcIjogXCJzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYVwiLFxuICAgICAgXCJlbnZSZXBvc2l0b3J5RGlnZXN0XCI6IFwiMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudkBzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYVwiLFxuICAgICAgXCJib290Q29tbWl0XCI6IFwiX19BR0VOVFJVTl9TT1VSQ0VfQ09NTUlUX19cIixcbiAgICAgIFwiYm9vdFNjcmlwdFwiOiBcImRlcGxveS9ydW50aW1lL2Jvb3QvYWdlbnRydW4tYm9vdC5zaFwiLFxuICAgICAgXCJwcm92ZW5hbmNlXCI6IHtcbiAgICAgICAgXCJzb3VyY2VDb21taXRJZFwiOiBcIl9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9fXCIsXG4gICAgICAgIFwic291cmNlXCI6IFwidW5pZGVzay15YW1sLW9ubHlcIixcbiAgICAgICAgXCJjb25maWdTb3VyY2VcIjogXCJjb25maWcvYWdlbnRydW4ueWFtbFwiLFxuICAgICAgICBcInZhbHVlc1ByaW50ZWRcIjogZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIF1cbn1cbiJ9LHsicGF0aCI6ImRlcGxveS9naXRvcHMvbm9kZS9uYzAxL2FyZ29jZC9wcm9qZWN0LnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IGFyZ29wcm9qLmlvL3YxYWxwaGExLGtpbmQ6IEFwcFByb2plY3QsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMixuYW1lc3BhY2U6IGFyZ29jZCxsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogdjAuMixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHNwZWM6IHtkZXNjcmlwdGlvbjogQWdlbnRSdW4gdjAuMiBHaXRPcHMgbGFuZSxzb3VyY2VSZXBvczogW2h0dHA6Ly9naXQtbWlycm9yLWh0dHAuZGV2b3BzLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjgwODAvcGlrYXNUZWNoL2FnZW50cnVuLmdpdCxodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXRdLGRlc3RpbmF0aW9uczogW3tzZXJ2ZXI6IGh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2YyxuYW1lc3BhY2U6IGFnZW50cnVuLXYwMn1dLGNsdXN0ZXJSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCJcIixraW5kOiBOYW1lc3BhY2V9XSxuYW1lc3BhY2VSZXNvdXJjZVdoaXRlbGlzdDogW3tncm91cDogXCIqXCIsa2luZDogXCIqXCJ9XX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9hcmdvY2QvYXBwbGljYXRpb24tdjAyLnlhbWwiLCJjb250ZW50Ijoie2FwaVZlcnNpb246IGFyZ29wcm9qLmlvL3YxYWxwaGExLGtpbmQ6IEFwcGxpY2F0aW9uLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDIsbmFtZXNwYWNlOiBhcmdvY2QsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7cHJvamVjdDogYWdlbnRydW4tbmMwMS12MDIsc291cmNlOiB7cmVwb1VSTDogaHR0cDovL2dpdC1taXJyb3ItaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MC9waWthc1RlY2gvYWdlbnRydW4uZ2l0LHRhcmdldFJldmlzaW9uOiBuYzAxLXYwLjItZ2l0b3BzLHBhdGg6IGRlcGxveS9naXRvcHMvbm9kZS9uYzAxL3J1bnRpbWUtdjAyfSxkZXN0aW5hdGlvbjoge3NlcnZlcjogaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyfSxzeW5jUG9saWN5OiB7YXV0b21hdGVkOiB7cHJ1bmU6IGZhbHNlLHNlbGZIZWFsOiB0cnVlfSxzeW5jT3B0aW9uczogW0NyZWF0ZU5hbWVzcGFjZT10cnVlLEFwcGx5T3V0T2ZTeW5jT25seT10cnVlXX19fVxuIn0seyJwYXRoIjoiZGVwbG95L2dpdG9wcy9ub2RlL25jMDEvcnVudGltZS12MDIva3VzdG9taXphdGlvbi55YW1sIiwiY29udGVudCI6InthcGlWZXJzaW9uOiBrdXN0b21pemUuY29uZmlnLms4cy5pby92MWJldGExLGtpbmQ6IEt1c3RvbWl6YXRpb24scmVzb3VyY2VzOiBbbmFtZXNwYWNlLnlhbWwsbWdyLnlhbWwscnVubmVyLXJiYWMueWFtbF19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXYwMi9uYW1lc3BhY2UueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogTmFtZXNwYWNlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX19XG4ifSx7InBhdGgiOiJkZXBsb3kvZ2l0b3BzL25vZGUvbmMwMS9ydW50aW1lLXYwMi9tZ3IueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3IsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbi0tLVxue2FwaVZlcnNpb246IHYxLGtpbmQ6IFNlcnZpY2UsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1tZ3IsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzcGVjOiB7c2VsZWN0b3I6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9LHBvcnRzOiBbe25hbWU6IGh0dHAscG9ydDogODA4MCx0YXJnZXRQb3J0OiBodHRwfV19fVxuLS0tXG57YXBpVmVyc2lvbjogYXBwcy92MSxraW5kOiBEZXBsb3ltZW50LG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbWdyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0sc3BlYzoge3JlcGxpY2FzOiAxLHNlbGVjdG9yOiB7bWF0Y2hMYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9uYW1lOiBhZ2VudHJ1bi1tZ3J9fSx0ZW1wbGF0ZToge21ldGFkYXRhOiB7bGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDEsYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogYWdlbnRydW4tbWdyfSxhbm5vdGF0aW9uczoge2FnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9zb3VyY2UtY29tbWl0OiBfX0FHRU5UUlVOX1NPVVJDRV9DT01NSVRfXyxhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvZW52LWlkZW50aXR5OiBfX0FHRU5UUlVOX0VOVl9JREVOVElUWV9ffX0sc3BlYzoge3NlcnZpY2VBY2NvdW50TmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLGNvbnRhaW5lcnM6IFt7bmFtZTogbWdyLGltYWdlOiAxMjcuMC4wLjE6NTAwMC9hZ2VudHJ1bi9hZ2VudHJ1bi1tZ3ItZW52QHNoYTI1NjphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50LHBvcnRzOiBbe25hbWU6IGh0dHAsY29udGFpbmVyUG9ydDogODA4MH1dLGVudjogW3tuYW1lOiBBR0VOVFJVTl9MQU5FLHZhbHVlOiB2MC4yfSx7bmFtZTogREFUQUJBU0VfVVJMLHZhbHVlRnJvbToge3NlY3JldEtleVJlZjoge25hbWU6IGFnZW50cnVuLXYwMi1tZ3ItZGIsa2V5OiBEQVRBQkFTRV9VUkx9fX0se25hbWU6IEFHRU5UUlVOX1NPVVJDRV9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9DT01NSVQsdmFsdWU6IF9fQUdFTlRSVU5fU09VUkNFX0NPTU1JVF9ffSx7bmFtZTogQUdFTlRSVU5fQk9PVF9NT0RFLHZhbHVlOiBtZ3J9LHtuYW1lOiBBR0VOVFJVTl9CT09UX1JFUE9fVVJMLHZhbHVlOiBodHRwOi8vZ2l0ZWEtaHR0cC5kZXZvcHMtaW5mcmEuc3ZjLmNsdXN0ZXIubG9jYWw6MzAwMC9taXJyb3JzL3Bpa2FzVGVjaC1hZ2VudHJ1bi5naXR9LHtuYW1lOiBBR0VOVFJVTl9FTlZfSURFTlRJVFksdmFsdWU6IF9fQUdFTlRSVU5fRU5WX0lERU5USVRZX199LHtuYW1lOiBBR0VOVFJVTl9SVU5USU1FX05BTUVTUEFDRSx2YWx1ZTogYWdlbnRydW4tdjAyfSx7bmFtZTogQUdFTlRSVU5fSU5URVJOQUxfTUdSX1VSTCx2YWx1ZTogaHR0cDovL2FnZW50cnVuLW1nci5hZ2VudHJ1bi12MDIuc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MH0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9JTUFHRSx2YWx1ZTogMTI3LjAuMC4xOjUwMDAvYWdlbnRydW4vYWdlbnRydW4tbWdyLWVudkBzaGEyNTY6YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYX0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9TRVJWSUNFX0FDQ09VTlQsdmFsdWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9KT0JfTkFNRV9QUkVGSVgsdmFsdWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9OQU1FLHZhbHVlOiBhZ2VudHJ1bi12MDItYXBpLWtleX0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9BUElfS0VZX1NFQ1JFVF9LRVksdmFsdWU6IEhXTEFCX0FQSV9LRVl9LHtuYW1lOiBBR0VOVFJVTl9HSVRfTUlSUk9SX0JBU0VfVVJMLHZhbHVlOiBodHRwOi8vZ2l0LW1pcnJvci1odHRwLmRldm9wcy1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo4MDgwfSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0lETEVfVElNRU9VVF9NUyx2YWx1ZTogXCI2MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0FUVEVNUFRTLHZhbHVlOiBcIjVcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfSU5JVElBTF9CQUNLT0ZGX01TLHZhbHVlOiBcIjEwMDBcIn0se25hbWU6IEFHRU5UUlVOX0JBQ0tFTkRfUkVUUllfTUFYX0JBQ0tPRkZfTVMsdmFsdWU6IFwiMzAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFYX1JVTk5FUlMsdmFsdWU6IFwiMjBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fQ0xFQU5VUF9PUkRFUix2YWx1ZTogb2xkZXN0LWluYWN0aXZlLWxhc3QtYWN0aXZlLWZpcnN0fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BQ1RJVkVfSEVBUlRCRUFUX01BWF9BR0VfTVMsdmFsdWU6IFwiOTAwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX1NUQUxFX1BFTkRJTkdfTUFYX0FHRV9NUyx2YWx1ZTogXCI5MDAwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fTUFUQ0hfTEFCRUxTX0pTT04sdmFsdWU6IFwie1xcXCJhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mXFxcIjpcXFwiYWdlbnRydW5cXFwiLFxcXCJhcHAua3ViZXJuZXRlcy5pby9uYW1lXFxcIjpcXFwiYWdlbnRydW4tcnVubmVyXFxcIixcXFwiYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50XFxcIjpcXFwicnVubmVyXFxcIn1cIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9SRVRFTlRJT05fSk9CX05BTUVfUFJFRklYRVMsdmFsdWU6IFwiYWdlbnRydW4tbmMwMS12MDItcnVubmVyLGFnZW50cnVuLXYwMi1ydW5uZXIsYWdlbnRydW4tdjAxLXJ1bm5lclwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX1JFVEVOVElPTl9BR0VfQkFTRURfQ0xFQU5VUF9FTkFCTEVELHZhbHVlOiBcImZhbHNlXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfUkVURU5USU9OX0FHRV9CQVNFRF9NQVhfQUdFX0hPVVJTLHZhbHVlOiBcIjQ4XCJ9LHtuYW1lOiBBR0VOVFJVTl9DQU5DRUxfREVMSVZFUllfTU9ERSx2YWx1ZTogbWFuYWdlci1lcG9jaH0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9HUkFDRUZVTF9BQk9SVF9NUyx2YWx1ZTogXCIxNTAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0tJTExfRVNDQUxBVElPTl9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX1NUQUxFX0hFQVJUQkVBVF9GRU5DSU5HX01TLHZhbHVlOiBcIjkwMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fQ0FOQ0VMX0xBVEVfV1JJVEVfRkVOQ0lOR19FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX0NBTkNFTF9FVkVOVF9TVEFHRVMsdmFsdWU6IFwiYWNjZXB0ZWQscGVyc2lzdGVkLGRlbGl2ZXJlZCxhYm9ydGluZyx0ZXJtaW5hbGl6ZWQsZmVuY2VkLGxhdGUtd3JpdGUtcmVqZWN0ZWRcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9FR1JFU1NfUFJPWFlfVVJMLHZhbHVlOiBodHRwOi8vMTAuNDIuMC4xOjEwODA4fSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX05PX1BST1hZX0VYVFJBLHZhbHVlOiBcImxvY2FsaG9zdCwxMjcuMC4wLjEsOjoxLC5zdmMsLnN2Yy5jbHVzdGVyLmxvY2FsLC5jbHVzdGVyLmxvY2FsLGh5dWVhcGkuY29tLC5oeXVlYXBpLmNvbSxhcGkucGlrYXB5dGhvbi5jb20sLnBpa2FweXRob24uY29tXCJ9LHtuYW1lOiBBR0VOVFJVTl9BUElfS0VZLHZhbHVlRnJvbToge3NlY3JldEtleVJlZjoge25hbWU6IGFnZW50cnVuLXYwMi1hcGkta2V5LGtleTogSFdMQUJfQVBJX0tFWX19fSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQk9PVFNUUkFQX1NFUlZFUlMsdmFsdWU6IHBsYXRmb3JtLWluZnJhLWthZmthLWthZmthLWJvb3RzdHJhcC5wbGF0Zm9ybS1pbmZyYS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkyfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfQ0xJRU5UX0lELHZhbHVlOiBhZ2VudHJ1bi12MDItbWFuYWdlcn0se25hbWU6IEFHRU5UUlVOX0tBRktBX0VOQUJMRUQsdmFsdWU6IFwidHJ1ZVwifSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfRVZFTlRfVE9QSUMsdmFsdWU6IGFnZW50cnVuLmV2ZW50LnYxfSx7bmFtZTogQUdFTlRSVU5fS0FGS0FfT1VUQk9YX0JBVENIX1NJWkUsdmFsdWU6IFwiMTAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfSU5URVJWQUxfTVMsdmFsdWU6IFwiNTAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9PVVRCT1hfTEVBU0VfTVMsdmFsdWU6IFwiNjAwMDBcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX09VVEJPWF9SRVRSWV9CQUNLT0ZGX01TLHZhbHVlOiBcIjUwMDBcIn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX0NMSUVOVF9JRCx2YWx1ZTogYWdlbnRydW4tdjAyLXJ1bm5lcn0se25hbWU6IEFHRU5UUlVOX0tBRktBX1NURElPX1BST0RVQ0VfRU5BQkxFRCx2YWx1ZTogXCJ0cnVlXCJ9LHtuYW1lOiBBR0VOVFJVTl9LQUZLQV9TVERJT19UT1BJQyx2YWx1ZTogY29kZXgtc3RkaW8ucmF3LnYxfSx7bmFtZTogQUdFTlRSVU5fTUFOQUdFUl9SRUNPTkNJTEVSX0JBVENIX1NJWkUsdmFsdWU6IFwiMjBcIn0se25hbWU6IEFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX01BTkFHRVJfUkVDT05DSUxFUl9JTlRFUlZBTF9NUyx2YWx1ZTogXCIzMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUE9TVEdSRVNfUE9PTF9NQVgsdmFsdWU6IFwiNFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfQVRURU1QVF9USU1FT1VUX01TLHZhbHVlOiBcIjkwMDAwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9CQVRDSF9TSVpFLHZhbHVlOiBcIjEwXCJ9LHtuYW1lOiBBR0VOVFJVTl9SVU5ORVJfRElTUEFUQ0hFUl9FTkFCTEVELHZhbHVlOiBcInRydWVcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0lOVEVSVkFMX01TLHZhbHVlOiBcIjEwMDBcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX0xFQVNFX01TLHZhbHVlOiBcIjEyMDAwMFwifSx7bmFtZTogQUdFTlRSVU5fUlVOTkVSX0RJU1BBVENIRVJfTUFYX0FUVEVNUFRTLHZhbHVlOiBcIjVcIn0se25hbWU6IEFHRU5UUlVOX1JVTk5FUl9ESVNQQVRDSEVSX1JFVFJZX0JBQ0tPRkZfTVMsdmFsdWU6IFwiNTAwMFwifSx7bmFtZTogSFdMQUJfUlVOVElNRV9MQU5FLHZhbHVlOiB2MC4zfSx7bmFtZTogT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVCx2YWx1ZTogaHR0cDovL290ZWwtY29sbGVjdG9yLnBsYXRmb3JtLWluZnJhLnN2Yy5jbHVzdGVyLmxvY2FsOjQzMTgvdjEvdHJhY2VzfSx7bmFtZTogT1RFTF9TRVJWSUNFX05BTUUsdmFsdWU6IGFnZW50cnVuLW1hbmFnZXJ9LHtuYW1lOiBVTklERVNLX05PREVfSUQsdmFsdWU6IE5DMDF9LHtuYW1lOiBVTklERVNLX01BSU5fU0VSVkVSX0lQLHZhbHVlOiAxNTIuNTMuMjI5LjE0OH1dLHJlYWRpbmVzc1Byb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvcmVhZGluZXNzLHBvcnQ6IGh0dHB9LHRpbWVvdXRTZWNvbmRzOiAyfSxsaXZlbmVzc1Byb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvbGl2ZSxwb3J0OiBodHRwfSx0aW1lb3V0U2Vjb25kczogMn0sc3RhcnR1cFByb2JlOiB7aHR0cEdldDoge3BhdGg6IC9oZWFsdGgvbGl2ZSxwb3J0OiBodHRwfSxwZXJpb2RTZWNvbmRzOiAxMCx0aW1lb3V0U2Vjb25kczogMixmYWlsdXJlVGhyZXNob2xkOiA5MH0scmVzb3VyY2VzOiB7cmVxdWVzdHM6IHtjcHU6IDEwMG0sbWVtb3J5OiAyNTZNaX0sbGltaXRzOiB7Y3B1OiA4MDBtLG1lbW9yeTogMUdpfX19XX19fX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxydWxlczogW3thcGlHcm91cHM6IFtiYXRjaF0scmVzb3VyY2VzOiBbam9ic10sdmVyYnM6IFtjcmVhdGUsZGVsZXRlLGdldCxsaXN0LHdhdGNoXX0se2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW3BvZHNdLHZlcmJzOiBbZGVsZXRlLGdldCxsaXN0LHdhdGNoXX0se2FwaUdyb3VwczogW1wiXCJdLHJlc291cmNlczogW2V2ZW50c10sdmVyYnM6IFtnZXQsbGlzdCx3YXRjaF19LHthcGlHcm91cHM6IFtcIlwiXSxyZXNvdXJjZXM6IFtwZXJzaXN0ZW50dm9sdW1lY2xhaW1zXSx2ZXJiczogW2NyZWF0ZSxnZXQsbGlzdCx3YXRjaCxkZWxldGVdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLXJ1bm5lci1qb2ItY29udHJvbGxlcixuYW1lc3BhY2U6IGFnZW50cnVuLXYwMixsYWJlbHM6IHthcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBhZ2VudHJ1bixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbGFuZTogdjAuMixhZ2VudHJ1bi5waWthc3RlY2gubG9jYWwvbm9kZTogTkMwMX19LHN1YmplY3RzOiBbe2tpbmQ6IFNlcnZpY2VBY2NvdW50LG5hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1ncn1dLHJvbGVSZWY6IHthcGlHcm91cDogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyxraW5kOiBSb2xlLG5hbWU6IGFnZW50cnVuLW5jMDEtdjAyLW1nci1ydW5uZXItam9iLWNvbnRyb2xsZXJ9fVxuLS0tXG57YXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSxraW5kOiBSb2xlLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItbWdyLXByb3ZpZGVyLXNlY3JldC1tYW5hZ2VyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbc2VjcmV0c10sdmVyYnM6IFtjcmVhdGUsZGVsZXRlLGdldCxsaXN0LHBhdGNoLHVwZGF0ZV19XX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZUJpbmRpbmcsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3ItcHJvdmlkZXItc2VjcmV0LW1hbmFnZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3J9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1tZ3ItcHJvdmlkZXItc2VjcmV0LW1hbmFnZXJ9fVxuIn0seyJwYXRoIjoiZGVwbG95L2dpdG9wcy9ub2RlL25jMDEvcnVudGltZS12MDIvcnVubmVyLXJiYWMueWFtbCIsImNvbnRlbnQiOiJ7YXBpVmVyc2lvbjogdjEsa2luZDogU2VydmljZUFjY291bnQsbWV0YWRhdGE6IHtuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fX1cbi0tLVxue2FwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEsa2luZDogUm9sZSxtZXRhZGF0YToge25hbWU6IGFnZW50cnVuLW5jMDEtdjAyLXJ1bm5lci1zZWNyZXQtcmVhZGVyLG5hbWVzcGFjZTogYWdlbnRydW4tdjAyLGxhYmVsczoge2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IGFnZW50cnVuLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9sYW5lOiB2MC4yLGFnZW50cnVuLnBpa2FzdGVjaC5sb2NhbC9ub2RlOiBOQzAxfX0scnVsZXM6IFt7YXBpR3JvdXBzOiBbXCJcIl0scmVzb3VyY2VzOiBbc2VjcmV0c10sdmVyYnM6IFtnZXRdfV19XG4tLS1cbnthcGlWZXJzaW9uOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvL3YxLGtpbmQ6IFJvbGVCaW5kaW5nLG1ldGFkYXRhOiB7bmFtZTogYWdlbnRydW4tbmMwMS12MDItcnVubmVyLXNlY3JldC1yZWFkZXIsbmFtZXNwYWNlOiBhZ2VudHJ1bi12MDIsbGFiZWxzOiB7YXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogYWdlbnRydW4sYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL2xhbmU6IHYwLjIsYWdlbnRydW4ucGlrYXN0ZWNoLmxvY2FsL25vZGU6IE5DMDF9fSxzdWJqZWN0czogW3traW5kOiBTZXJ2aWNlQWNjb3VudCxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXJ9XSxyb2xlUmVmOiB7YXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8sa2luZDogUm9sZSxuYW1lOiBhZ2VudHJ1bi1uYzAxLXYwMi1ydW5uZXItc2VjcmV0LXJlYWRlcn19XG4ifV0=\"\ngit_write_url='$(params.git-write-url)'\ngit_auth_url=\"$git_write_url\"\nif printf '%s' \"$git_write_url\" | grep -q '^http://gitea-http\\.'; then\n test -n \"${GITEA_TOKEN:-}\"\n git_auth_url=$(printf '%s' \"$git_write_url\" | sed \"s#^http://#http://x-access-token:${GITEA_TOKEN}@#\")\nfi\nrm -rf \"$root/gitops\"\ngit clone \"$git_auth_url\" \"$root/gitops\"\ncd \"$root/gitops\"\ngit fetch origin \"$(params.gitops-branch)\" || true\nif git rev-parse --verify \"refs/remotes/origin/$(params.gitops-branch)^{commit}\" >/dev/null 2>&1; then git checkout -B \"$(params.gitops-branch)\" \"refs/remotes/origin/$(params.gitops-branch)\"; else git checkout --orphan \"$(params.gitops-branch)\"; git rm -rf . >/dev/null 2>&1 || true; fi\nincoming_source_commit='$(params.revision)'\nsource_branch='$(params.source-branch)'\nbranch_source_commit=$(git -C \"$root/repo\" rev-parse --verify \"refs/remotes/origin/${source_branch}^{commit}\")\ngitops_source_commit=$(node -e 'try { const value = JSON.parse(require(\"node:fs\").readFileSync(\"source.json\", \"utf8\")).sourceCommit; if (typeof value === \"string\") process.stdout.write(value); } catch {}')\nstale_reason=''\nif [ \"$incoming_source_commit\" != \"$branch_source_commit\" ]; then stale_reason='stale-source-revision'; fi\nif [ -z \"$stale_reason\" ] && [ -n \"$gitops_source_commit\" ] && [ \"$incoming_source_commit\" != \"$gitops_source_commit\" ]; then\n if ! git -C \"$root/repo\" cat-file -e \"${gitops_source_commit}^{commit}\" 2>/dev/null; then stale_reason='gitops-source-order-unverifiable';\n elif git -C \"$root/repo\" merge-base --is-ancestor \"$incoming_source_commit\" \"$gitops_source_commit\"; then stale_reason='stale-gitops-source-revision';\n elif ! git -C \"$root/repo\" merge-base --is-ancestor \"$gitops_source_commit\" \"$incoming_source_commit\"; then stale_reason='divergent-gitops-source-revision'; fi\nfi\nif [ -n \"$stale_reason\" ]; then\n gitops_commit=$(git rev-parse HEAD)\n INCOMING_SOURCE_COMMIT=\"$incoming_source_commit\" CURRENT_SOURCE_COMMIT=\"$branch_source_commit\" GITOPS_SOURCE_COMMIT=\"$gitops_source_commit\" GITOPS_COMMIT=\"$gitops_commit\" STALE_REASON=\"$stale_reason\" node <<'NODE'\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', reason: process.env.STALE_REASON, warning: true, blocking: false, changed: false, stale: true, gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: process.env.INCOMING_SOURCE_COMMIT, currentSourceCommit: process.env.CURRENT_SOURCE_COMMIT, gitopsSourceCommit: process.env.GITOPS_SOURCE_COMMIT || null, valuesPrinted: false }));\nNODE\n exit 0\nfi\ngit rm -rf --ignore-unmatch \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json >/dev/null 2>&1 || true\nrm -rf \"$(params.gitops-root)\" \"$(params.artifact-catalog)\" source.json\nTEMPLATES_B64=\"$templates_b64\" BUILD_RESULT=\"$build_result\" node <<'NODE'\nconst { mkdirSync, readFileSync, writeFileSync } = require('node:fs');\nconst { dirname } = require('node:path');\nconst templates = JSON.parse(Buffer.from(process.env.TEMPLATES_B64, 'base64').toString('utf8'));\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconst replacements = new Map([\n ['__AGENTRUN_SOURCE_COMMIT__', build.sourceCommit],\n ['__AGENTRUN_ENV_IDENTITY__', build.envIdentity],\n ['sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', build.digest],\n ['__AGENTRUN_IMAGE_STATUS__', build.status],\n]);\nfor (const file of templates) {\n let content = file.content;\n for (const [from, to] of replacements) content = content.split(from).join(to);\n mkdirSync(dirname(file.path), { recursive: true });\n writeFileSync(file.path, content);\n}\nNODE\nfeature_config_schema_started_ms=\"$(date +%s%3N 2>/dev/null || date +%s000)\"\nexport UNIDESK_FEATURE_CONFIG_REPO_DIR=\"$root\"\nexport UNIDESK_FEATURE_CONFIG_RENDERED_ROOT=\"$PWD/$(params.gitops-root)\"\nexport UNIDESK_PAC_CONSUMER='agentrun-nc01-v02'\nexport OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces'\nexport OTEL_SERVICE_NAME='unidesk-cicd'\nexport OTEL_TRACES_SAMPLER_ARG='1'\nexport OTEL_EXPORTER_TIMEOUT_MS='300'\nfeature_config_validator_base=''\nfeature_config_validator=''\nif feature_config_validator_base=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-feature-config-validator.XXXXXX\" 2>/dev/null)\"; then\n feature_config_validator=\"${feature_config_validator_base}.mjs\"\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_validator\"; then\n rm -f \"$feature_config_validator_base\" \"$feature_config_validator\" || true\n feature_config_validator=''\n fi\n rm -f \"$feature_config_validator_base\" || true\nfi\nfeature_config_ajv_bundle=''\nif feature_config_ajv_bundle=\"$(mktemp \"${TMPDIR:-/tmp}/unidesk-ajv2020.XXXXXX\" 2>/dev/null)\"; then\n if ! printf '%s' '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' | base64 -d | gzip -d >\"$feature_config_ajv_bundle\"; then\n rm -f \"$feature_config_ajv_bundle\" || true\n feature_config_ajv_bundle=''\n fi\nfi\nexport UNIDESK_AJV2020_BUNDLE=\"${feature_config_ajv_bundle:-${TMPDIR:-/tmp}/unidesk-ajv2020-unavailable}\"\nexport UNIDESK_FEATURE_CONFIG_VALIDATOR=\"${feature_config_validator:-${TMPDIR:-/tmp}/unidesk-feature-config-validator-unavailable.mjs}\"\nif ! node --input-type=module <<'NODE_UNIDESK_FEATURE_CONFIG_SCHEMA'\nimport { pathToFileURL } from 'node:url';\nconst validator = await import(pathToFileURL(process.env.UNIDESK_FEATURE_CONFIG_VALIDATOR).href);\nawait validator.runFeatureConfigSchemaValidation({ repoDir: process.env.UNIDESK_FEATURE_CONFIG_REPO_DIR, renderedRoot: process.env.UNIDESK_FEATURE_CONFIG_RENDERED_ROOT, consumer: process.env.UNIDESK_PAC_CONSUMER });\nNODE_UNIDESK_FEATURE_CONFIG_SCHEMA\nthen\n printf '{\"event\":\"feature-config-schema-validation\",\"warning\":true,\"blocking\":false,\"code\":\"feature-config-validator-process-failure\",\"mutation\":false,\"valuesPrinted\":false}\\n' >&2\nfi\nif [ -n \"$feature_config_validator\" ]; then rm -f \"$feature_config_validator\" || true; fi\nif [ -n \"$feature_config_ajv_bundle\" ]; then rm -f \"$feature_config_ajv_bundle\" || true; fi\nif command -v ci_timing_emit >/dev/null 2>&1; then\n ci_timing_emit feature-config-schema-validation succeeded \"$feature_config_schema_started_ms\"\nelse\n printf '{\"event\":\"ci.stage.timing\",\"stage\":\"feature-config-schema-validation\",\"status\":\"succeeded\",\"blocking\":false}\\n' >&2\nfi\ngit add source.json \"$(params.artifact-catalog)\" \"$(params.gitops-root)\"\nif git diff --quiet --cached; then changed=false; else changed=true; git -c user.email=agentrun@unidesk.local -c user.name='UniDesk AgentRun PaC' commit -m \"deploy: render AgentRun $(params.gitops-branch) from PaC\"; fi\ngit remote set-url origin \"$git_auth_url\"\ngit push -u origin \"$(params.gitops-branch)\"\ngitops_commit=$(git rev-parse HEAD)\nBUILD_RESULT=\"$build_result\" CHANGED=\"$changed\" GITOPS_COMMIT=\"$gitops_commit\" node <<'NODE'\nconst { readFileSync } = require('node:fs');\nconst build = JSON.parse(readFileSync(process.env.BUILD_RESULT, 'utf8'));\nconsole.log(JSON.stringify({ ok: true, status: 'succeeded', phase: 'gitops-publish', changed: process.env.CHANGED === 'true', gitopsCommit: process.env.GITOPS_COMMIT, sourceCommit: build.sourceCommit, envIdentity: build.envIdentity, imageStatus: build.status, digest: build.digest, valuesPrinted: false }));\nNODE" params: *params1 when: