@beesolve/lambda-keep-active 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdk.js +3 -3
- package/dist/lambda/handler.mjs +4 -0
- package/package.json +1 -1
- package/dist/chunk-3cawvvw3.js +0 -5
- package/dist/chunk-4pkw7jk4.js +0 -5
- package/dist/chunk-7bag664c.js +0 -5
- package/dist/chunk-9zmzw25z.js +0 -8
- package/dist/chunk-bh9mv7m6.js +0 -4
- package/dist/chunk-dkk1zwm0.js +0 -5
- package/dist/chunk-dyyrwzgp.js +0 -5
- package/dist/chunk-e9mt878v.js +0 -5
- package/dist/chunk-ekwpcdh4.js +0 -5
- package/dist/chunk-fbbbv2d4.js +0 -16
- package/dist/chunk-ggeka6d3.js +0 -5
- package/dist/chunk-jxb3myh9.js +0 -4
- package/dist/chunk-kvnavsh3.js +0 -5
- package/dist/chunk-m1zv7mtv.js +0 -4
- package/dist/chunk-p85vag28.js +0 -32
- package/dist/chunk-pqhmh7nm.js +0 -4
- package/dist/chunk-r8mj3nq7.js +0 -5
- package/dist/chunk-rea1s8cr.js +0 -4
- package/dist/chunk-rn0z3e77.js +0 -4
- package/dist/chunk-t5j8kj9p.js +0 -11
- package/dist/chunk-whenq5kz.js +0 -5
- package/dist/chunk-x343hkb8.js +0 -5
- package/dist/handler.js +0 -12
package/dist/cdk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Duration as z,Tags as H}from"aws-cdk-lib";import{Rule as J,RuleTargetInput as K,Schedule as M}from"aws-cdk-lib/aws-events";import{LambdaFunction as O}from"aws-cdk-lib/aws-events-targets";import{Effect as Q,PolicyStatement as V}from"aws-cdk-lib/aws-iam";import{Architecture as X,Code as Y,Runtime as Z}from"aws-cdk-lib/aws-lambda";import{NodejsFunction as $}from"aws-cdk-lib/aws-lambda-nodejs";import{Construct as y}from"constructs";import{dirname as A}from"node:path";import{fileURLToPath as E}from"node:url";var N=E(import.meta.url),U=A(N);class W extends y{constructor(q,B,G){super(q,B);let x=new $(this,"LambdaKeepActive",{description:"LambdaKeepActive handler",code:Y.fromAsset(`${U}/
|
|
1
|
+
import{Duration as z,Tags as H}from"aws-cdk-lib";import{Rule as J,RuleTargetInput as K,Schedule as M}from"aws-cdk-lib/aws-events";import{LambdaFunction as O}from"aws-cdk-lib/aws-events-targets";import{Effect as Q,PolicyStatement as V}from"aws-cdk-lib/aws-iam";import{Architecture as X,Code as Y,Runtime as Z}from"aws-cdk-lib/aws-lambda";import{NodejsFunction as $}from"aws-cdk-lib/aws-lambda-nodejs";import{Construct as y}from"constructs";import{dirname as A}from"node:path";import{fileURLToPath as E}from"node:url";var N=E(import.meta.url),U=A(N);class W extends y{constructor(q,B,G){super(q,B);let x=new $(this,"LambdaKeepActive",{description:"LambdaKeepActive handler",code:Y.fromAsset(`${U}/lambda`),handler:"handler.handler",memorySize:128,timeout:z.minutes(5),runtime:Z.NODEJS_22_X,architecture:X.ARM_64,environment:{NODE_ENV:"production",ENABLE_LOGS:String(G?.enableLogs??!0)}});new J(this,"KeepActive",{schedule:M.rate(z.days(3)),targets:[new O(x,{event:K.fromObject({action:"lambdaKeepActive"})})]}),x.addToRolePolicy(new V({actions:["lambda:InvokeFunction","tag:GetResources"],resources:["*"],effect:Q.ALLOW}))}keepActive=(q)=>{H.of(q).add("keepActive","true")}}export{W as LambdaKeepActive};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vY2RrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IER1cmF0aW9uLCBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSdWxlLCBSdWxlVGFyZ2V0SW5wdXQsIFNjaGVkdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBDb2RlLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgZGlybmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSk7XG5cbmludGVyZmFjZSBMYW1iZGFLZWVwQWN0aXZlUHJvcHMge1xuICAvKipcbiAgICogSWYgZGlzYWJsZWQgbm8gbG9ncyBhcmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFLZWVwQWN0aXZlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/
|
|
3
|
+
//# debugId=6B40CA4DD0371D9764756E2164756E21
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vY2RrLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB7IER1cmF0aW9uLCBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSdWxlLCBSdWxlVGFyZ2V0SW5wdXQsIFNjaGVkdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUgeyBJRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBDb2RlLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgZGlybmFtZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIjtcblxuY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSk7XG5cbmludGVyZmFjZSBMYW1iZGFLZWVwQWN0aXZlUHJvcHMge1xuICAvKipcbiAgICogSWYgZGlzYWJsZWQgbm8gbG9ncyBhcmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTG9ncz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFLZWVwQWN0aXZlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBMYW1iZGFLZWVwQWN0aXZlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcIkxhbWJkYUtlZXBBY3RpdmVcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiTGFtYmRhS2VlcEFjdGl2ZSBoYW5kbGVyXCIsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgICAgaGFuZGxlcjogXCJoYW5kbGVyLmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMl9YLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTk9ERV9FTlY6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBFTkFCTEVfTE9HUzogU3RyaW5nKHByb3BzPy5lbmFibGVMb2dzID8/IHRydWUpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBSdWxlKHRoaXMsIFwiS2VlcEFjdGl2ZVwiLCB7XG4gICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5kYXlzKDMpKSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IExhbWJkYUZ1bmN0aW9uKGhhbmRsZXIsIHtcbiAgICAgICAgICBldmVudDogUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgYWN0aW9uOiBcImxhbWJkYUtlZXBBY3RpdmVcIixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsIFwidGFnOkdldFJlc291cmNlc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICByZWFkb25seSBrZWVwQWN0aXZlID0gKGxhbWJkYTogSUZ1bmN0aW9uKSA9PiB7XG4gICAgVGFncy5vZihsYW1iZGEpLmFkZChcImtlZXBBY3RpdmVcIiwgXCJ0cnVlXCIpO1xuICB9O1xufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIkFBQUEsbUJBQVMsVUFBVSxvQkFDbkIsZUFBUyxxQkFBTSxjQUFpQiwrQkFDaEMseUJBQVMsdUNBQ1QsaUJBQVMscUJBQVEsNEJBRWpCLHVCQUFTLFVBQWMsYUFBTSwrQkFDN0IseUJBQVMsc0NBQ1Qsb0JBQVMsbUJBQ1Qsa0JBQVMsa0JBQ1Qsd0JBQVMsaUJBRVQsSUFBTSxFQUFhLEVBQWMsWUFBWSxHQUFHLEVBQzFDLEVBQVksRUFBUSxDQUFVLEVBVzdCLE1BQU0sVUFBeUIsQ0FBVSxDQUM5QyxXQUFXLENBQUMsRUFBa0IsRUFBWSxFQUErQixDQUN2RSxNQUFNLEVBQU8sQ0FBRSxFQUVmLElBQU0sRUFBVSxJQUFJLEVBQWUsS0FBTSxtQkFBb0IsQ0FDM0QsWUFBYSwyQkFDYixLQUFNLEVBQUssVUFBVSxHQUFHLFVBQWtCLEVBQzFDLFFBQVMsa0JBQ1QsV0FBWSxJQUNaLFFBQVMsRUFBUyxRQUFRLENBQUMsRUFDM0IsUUFBUyxFQUFRLFlBQ2pCLGFBQWMsRUFBYSxPQUMzQixZQUFhLENBQ1gsU0FBVSxhQUNWLFlBQWEsT0FBTyxHQUFPLFlBQWMsRUFBSSxDQUMvQyxDQUNGLENBQUMsRUFFRCxJQUFJLEVBQUssS0FBTSxhQUFjLENBQzNCLFNBQVUsRUFBUyxLQUFLLEVBQVMsS0FBSyxDQUFDLENBQUMsRUFDeEMsUUFBUyxDQUNQLElBQUksRUFBZSxFQUFTLENBQzFCLE1BQU8sRUFBZ0IsV0FBVyxDQUNoQyxPQUFRLGtCQUNWLENBQUMsQ0FDSCxDQUFDLENBQ0gsQ0FDRixDQUFDLEVBRUQsRUFBUSxnQkFDTixJQUFJLEVBQWdCLENBQ2xCLFFBQVMsQ0FBQyx3QkFBeUIsa0JBQWtCLEVBQ3JELFVBQVcsQ0FBQyxHQUFHLEVBQ2YsT0FBUSxFQUFPLEtBQ2pCLENBQUMsQ0FDSCxFQUdPLFdBQWEsQ0FBQyxJQUFzQixDQUMzQyxFQUFLLEdBQUcsQ0FBTSxFQUFFLElBQUksYUFBYyxNQUFNLEVBRTVDIiwKICAiZGVidWdJZCI6ICI2QjQwQ0E0REQwMzcxRDk3NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{InvokeCommand as B,LambdaClient as D}from"@aws-sdk/client-lambda";import{GetResourcesCommand as E,ResourceGroupsTaggingAPIClient as F}from"@aws-sdk/client-resource-groups-tagging-api";var q="$$keepActivePing$$";var H=new D,J=new F,K=process.env.ENABLE_LOGS==="true",U=async(y)=>{let{action:f}=y;if(f==null)return;if(f!=="lambdaKeepActive")return;let $;do{let{ResourceTagMappingList:z=[],PaginationToken:A}=await J.send(new E({ResourceTypeFilters:["lambda:function"],ResourcesPerPage:25,TagFilters:[{Key:"keepActive",Values:["true"]}],PaginationToken:$}));$=A,await Promise.all(z.map(async(j)=>{if(await H.send(new B({FunctionName:j.ResourceARN,InvocationType:"Event",Payload:JSON.stringify({[q]:!0})})),K)console.info(`Invoked ${j.ResourceARN}`)}))}while($!=null&&$!=="")};export{U as handler};
|
|
2
|
+
|
|
3
|
+
//# debugId=04DAB14BF39910A664756E2164756E21
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vaGFuZGxlci50cyIsICIuLi8uLi9zaGFyZWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0IHsgSW52b2tlQ29tbWFuZCwgTGFtYmRhQ2xpZW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1sYW1iZGFcIjtcbmltcG9ydCB7XG4gIEdldFJlc291cmNlc0NvbW1hbmQsXG4gIFJlc291cmNlR3JvdXBzVGFnZ2luZ0FQSUNsaWVudCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1yZXNvdXJjZS1ncm91cHMtdGFnZ2luZy1hcGlcIjtcbmltcG9ydCB7IGtlZXBBY3RpdmVQaW5nIH0gZnJvbSBcIi4vc2hhcmVkXCI7XG5cbmNvbnN0IGxhbWJkYUNsaWVudCA9IG5ldyBMYW1iZGFDbGllbnQoKTtcbmNvbnN0IHRhZ2dpbmdDbGllbnQgPSBuZXcgUmVzb3VyY2VHcm91cHNUYWdnaW5nQVBJQ2xpZW50KCk7XG5jb25zdCBlbmFibGVMb2dzID0gcHJvY2Vzcy5lbnYuRU5BQkxFX0xPR1MgPT09IFwidHJ1ZVwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogeyBhY3Rpb246IFwibGFtYmRhS2VlcEFjdGl2ZVwiIH0pID0+IHtcbiAgY29uc3QgeyBhY3Rpb24gfSA9IGV2ZW50O1xuXG4gIGlmIChhY3Rpb24gPT0gbnVsbCkgcmV0dXJuO1xuICBpZiAoYWN0aW9uICE9PSBcImxhbWJkYUtlZXBBY3RpdmVcIikgcmV0dXJuO1xuXG4gIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZG8ge1xuICAgIGNvbnN0IHsgUmVzb3VyY2VUYWdNYXBwaW5nTGlzdCA9IFtdLCBQYWdpbmF0aW9uVG9rZW4gfSA9XG4gICAgICBhd2FpdCB0YWdnaW5nQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBHZXRSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgICBSZXNvdXJjZVR5cGVGaWx0ZXJzOiBbXCJsYW1iZGE6ZnVuY3Rpb25cIl0sXG4gICAgICAgICAgUmVzb3VyY2VzUGVyUGFnZTogMjUsXG4gICAgICAgICAgVGFnRmlsdGVyczogW3sgS2V5OiBcImtlZXBBY3RpdmVcIiwgVmFsdWVzOiBbXCJ0cnVlXCJdIH1dLFxuICAgICAgICAgIFBhZ2luYXRpb25Ub2tlbjogbmV4dFRva2VuLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBuZXh0VG9rZW4gPSBQYWdpbmF0aW9uVG9rZW47XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIFJlc291cmNlVGFnTWFwcGluZ0xpc3QubWFwKGFzeW5jIChyZXNvdXJjZSkgPT4ge1xuICAgICAgICBhd2FpdCBsYW1iZGFDbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgSW52b2tlQ29tbWFuZCh7XG4gICAgICAgICAgICBGdW5jdGlvbk5hbWU6IHJlc291cmNlLlJlc291cmNlQVJOLFxuICAgICAgICAgICAgSW52b2NhdGlvblR5cGU6IFwiRXZlbnRcIixcbiAgICAgICAgICAgIFBheWxvYWQ6IEpTT04uc3RyaW5naWZ5KHsgW2tlZXBBY3RpdmVQaW5nXTogdHJ1ZSB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZW5hYmxlTG9ncykge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhgSW52b2tlZCAke3Jlc291cmNlLlJlc291cmNlQVJOfWApO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9IHdoaWxlIChuZXh0VG9rZW4gIT0gbnVsbCAmJiBuZXh0VG9rZW4gIT09IFwiXCIpO1xufTtcbiIsCiAgICAiZXhwb3J0IGNvbnN0IGtlZXBBY3RpdmVQaW5nID0gYCQka2VlcEFjdGl2ZVBpbmckJGA7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiQUFBQSx3QkFBUyxrQkFBZSwrQkFDeEIsOEJBQ0Usb0NBQ0Esb0RDSEssSUFBTSxFQUFpQixxQkRPOUIsSUFBTSxFQUFlLElBQUksRUFDbkIsRUFBZ0IsSUFBSSxFQUNwQixFQUFhLFFBQVEsSUFBSSxjQUFnQixPQUVsQyxFQUFVLE1BQU8sSUFBMEMsQ0FDdEUsSUFBUSxVQUFXLEVBRW5CLEdBQUksR0FBVSxLQUFNLE9BQ3BCLEdBQUksSUFBVyxtQkFBb0IsT0FFbkMsSUFBSSxFQUNKLEVBQUcsQ0FDRCxJQUFRLHlCQUF5QixDQUFDLEVBQUcsbUJBQ25DLE1BQU0sRUFBYyxLQUNsQixJQUFJLEVBQW9CLENBQ3RCLG9CQUFxQixDQUFDLGlCQUFpQixFQUN2QyxpQkFBa0IsR0FDbEIsV0FBWSxDQUFDLENBQUUsSUFBSyxhQUFjLE9BQVEsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUNwRCxnQkFBaUIsQ0FDbkIsQ0FBQyxDQUNILEVBRUYsRUFBWSxFQUVaLE1BQU0sUUFBUSxJQUNaLEVBQXVCLElBQUksTUFBTyxJQUFhLENBUzdDLEdBUkEsTUFBTSxFQUFhLEtBQ2pCLElBQUksRUFBYyxDQUNoQixhQUFjLEVBQVMsWUFDdkIsZUFBZ0IsUUFDaEIsUUFBUyxLQUFLLFVBQVUsRUFBRyxHQUFpQixFQUFLLENBQUMsQ0FDcEQsQ0FBQyxDQUNILEVBRUksRUFDRixRQUFRLEtBQUssV0FBVyxFQUFTLGFBQWEsRUFFakQsQ0FDSCxRQUNPLEdBQWEsTUFBUSxJQUFjIiwKICAiZGVidWdJZCI6ICIwNERBQjE0QkYzOTkxMEE2NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/package.json
CHANGED
package/dist/chunk-3cawvvw3.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{R as a}from"./chunk-t5j8kj9p.js";import{S as p}from"./chunk-4pkw7jk4.js";import{U as i}from"./chunk-e9mt878v.js";var u=i((V)=>{var v=a(),T=p(),_="AWS_ACCESS_KEY_ID",N="AWS_SECRET_ACCESS_KEY",S="AWS_SESSION_TOKEN",C="AWS_CREDENTIAL_EXPIRATION",A="AWS_CREDENTIAL_SCOPE",I="AWS_ACCOUNT_ID",d=(e)=>async()=>{e?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");let r=process.env[_],s=process.env[N],E=process.env[S],o=process.env[C],n=process.env[A],t=process.env[I];if(r&&s){let c={accessKeyId:r,secretAccessKey:s,...E&&{sessionToken:E},...o&&{expiration:new Date(o)},...n&&{credentialScope:n},...t&&{accountId:t}};return v.setCredentialFeature(c,"CREDENTIALS_ENV_VARS","g"),c}throw new T.CredentialsProviderError("Unable to find environment variable credentials.",{logger:e?.logger})};V.ENV_ACCOUNT_ID=I;V.ENV_CREDENTIAL_SCOPE=A;V.ENV_EXPIRATION=C;V.ENV_KEY=_;V.ENV_SECRET=N;V.ENV_SESSION=S;V.fromEnv=d});export default u();
|
|
2
|
-
export{u as Q};
|
|
3
|
-
|
|
4
|
-
//# debugId=A138E2EB5FE122E964756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItZW52L2Rpc3QtY2pzL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIid1c2Ugc3RyaWN0JztcblxudmFyIGNsaWVudCA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NvcmUvY2xpZW50Jyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcblxuY29uc3QgRU5WX0tFWSA9IFwiQVdTX0FDQ0VTU19LRVlfSURcIjtcbmNvbnN0IEVOVl9TRUNSRVQgPSBcIkFXU19TRUNSRVRfQUNDRVNTX0tFWVwiO1xuY29uc3QgRU5WX1NFU1NJT04gPSBcIkFXU19TRVNTSU9OX1RPS0VOXCI7XG5jb25zdCBFTlZfRVhQSVJBVElPTiA9IFwiQVdTX0NSRURFTlRJQUxfRVhQSVJBVElPTlwiO1xuY29uc3QgRU5WX0NSRURFTlRJQUxfU0NPUEUgPSBcIkFXU19DUkVERU5USUFMX1NDT1BFXCI7XG5jb25zdCBFTlZfQUNDT1VOVF9JRCA9IFwiQVdTX0FDQ09VTlRfSURcIjtcbmNvbnN0IGZyb21FbnYgPSAoaW5pdCkgPT4gYXN5bmMgKCkgPT4ge1xuICAgIGluaXQ/LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWVudiAtIGZyb21FbnZcIik7XG4gICAgY29uc3QgYWNjZXNzS2V5SWQgPSBwcm9jZXNzLmVudltFTlZfS0VZXTtcbiAgICBjb25zdCBzZWNyZXRBY2Nlc3NLZXkgPSBwcm9jZXNzLmVudltFTlZfU0VDUkVUXTtcbiAgICBjb25zdCBzZXNzaW9uVG9rZW4gPSBwcm9jZXNzLmVudltFTlZfU0VTU0lPTl07XG4gICAgY29uc3QgZXhwaXJ5ID0gcHJvY2Vzcy5lbnZbRU5WX0VYUElSQVRJT05dO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxTY29wZSA9IHByb2Nlc3MuZW52W0VOVl9DUkVERU5USUFMX1NDT1BFXTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBwcm9jZXNzLmVudltFTlZfQUNDT1VOVF9JRF07XG4gICAgaWYgKGFjY2Vzc0tleUlkICYmIHNlY3JldEFjY2Vzc0tleSkge1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgLi4uKHNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbiB9KSxcbiAgICAgICAgICAgIC4uLihleHBpcnkgJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShleHBpcnkpIH0pLFxuICAgICAgICAgICAgLi4uKGNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZSB9KSxcbiAgICAgICAgICAgIC4uLihhY2NvdW50SWQgJiYgeyBhY2NvdW50SWQgfSksXG4gICAgICAgIH07XG4gICAgICAgIGNsaWVudC5zZXRDcmVkZW50aWFsRmVhdHVyZShjcmVkZW50aWFscywgXCJDUkVERU5USUFMU19FTlZfVkFSU1wiLCBcImdcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9XG4gICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKFwiVW5hYmxlIHRvIGZpbmQgZW52aXJvbm1lbnQgdmFyaWFibGUgY3JlZGVudGlhbHMuXCIsIHsgbG9nZ2VyOiBpbml0Py5sb2dnZXIgfSk7XG59O1xuXG5leHBvcnRzLkVOVl9BQ0NPVU5UX0lEID0gRU5WX0FDQ09VTlRfSUQ7XG5leHBvcnRzLkVOVl9DUkVERU5USUFMX1NDT1BFID0gRU5WX0NSRURFTlRJQUxfU0NPUEU7XG5leHBvcnRzLkVOVl9FWFBJUkFUSU9OID0gRU5WX0VYUElSQVRJT047XG5leHBvcnRzLkVOVl9LRVkgPSBFTlZfS0VZO1xuZXhwb3J0cy5FTlZfU0VDUkVUID0gRU5WX1NFQ1JFVDtcbmV4cG9ydHMuRU5WX1NFU1NJT04gPSBFTlZfU0VTU0lPTjtcbmV4cG9ydHMuZnJvbUVudiA9IGZyb21FbnY7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAia0pBRUEsRkFBSSxBQUNBLE1BRUUsRUFBVSxvQkFDVixFQUFhLHdCQUNiLEVBQWMsb0JBQ2QsRUFBaUIsNEJBQ2pCLEVBQXVCLHVCQUN2QixFQUFpQixpQkFDakIsRUFBVSxDQUFDLElBQVMsU0FBWSxDQUNsQyxHQUFNLFFBQVEsTUFBTSw0Q0FBNEMsRUFDaEUsSUFBTSxFQUFjLFFBQVEsSUFBSSxHQUMxQixFQUFrQixRQUFRLElBQUksR0FDOUIsRUFBZSxRQUFRLElBQUksR0FDM0IsRUFBUyxRQUFRLElBQUksR0FDckIsRUFBa0IsUUFBUSxJQUFJLEdBQzlCLEVBQVksUUFBUSxJQUFJLEdBQzlCLEdBQUksR0FBZSxFQUFpQixDQUNoQyxJQUFNLEVBQWMsQ0FDaEIsY0FDQSxxQkFDSSxHQUFnQixDQUFFLGNBQWEsS0FDL0IsR0FBVSxDQUFFLFdBQVksSUFBSSxLQUFLLENBQU0sQ0FBRSxLQUN6QyxHQUFtQixDQUFFLGlCQUFnQixLQUNyQyxHQUFhLENBQUUsV0FBVSxDQUNqQyxFQUVBLE9BREEsRUFBTyxxQkFBcUIsRUFBYSx1QkFBd0IsR0FBRyxFQUM3RCxFQUVYLE1BQU0sSUFBSSxFQUFpQix5QkFBeUIsbURBQW9ELENBQUUsT0FBUSxHQUFNLE1BQU8sQ0FBQyxHQUc1SCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsYUFBYSxFQUNiLGNBQWMsRUFDZCxVQUFVIiwKICAiZGVidWdJZCI6ICJBMTM4RTJFQjVGRTEyMkU5NjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/dist/chunk-4pkw7jk4.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{U as y}from"./chunk-e9mt878v.js";var v=y((x)=>{class s extends Error{name="ProviderError";tryNextLink;constructor(r,t=!0){let n,e=!0;if(typeof t==="boolean")n=void 0,e=t;else if(t!=null&&typeof t==="object")n=t.logger,e=t.tryNextLink??!0;super(r);this.tryNextLink=e,Object.setPrototypeOf(this,s.prototype),n?.debug?.(`@smithy/property-provider ${e?"->":"(!)"} ${r}`)}static from(r,t=!0){return Object.assign(new this(r.message,t),r)}}class f extends s{name="CredentialsProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,f.prototype)}}class l extends s{name="TokenProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,l.prototype)}}var p=(...r)=>async()=>{if(r.length===0)throw new s("No providers in chain");let t;for(let n of r)try{return await n()}catch(e){if(t=e,e?.tryNextLink)continue;throw e}throw t},d=(r)=>()=>Promise.resolve(r),h=(r,t,n)=>{let e,o,i,c=!1,a=async()=>{if(!o)o=r();try{e=await o,i=!0,c=!1}finally{o=void 0}return e};if(t===void 0)return async(u)=>{if(!i||u?.forceRefresh)e=await a();return e};return async(u)=>{if(!i||u?.forceRefresh)e=await a();if(c)return e;if(n&&!n(e))return c=!0,e;if(t(e))return await a(),e;return e}};x.CredentialsProviderError=f;x.ProviderError=s;x.TokenProviderError=l;x.chain=p;x.fromStatic=d;x.memoize=h});
|
|
2
|
-
export{v as S};
|
|
3
|
-
|
|
4
|
-
//# debugId=D1488EB32F6C6A1164756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXIvZGlzdC1janMvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG5jbGFzcyBQcm92aWRlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIG5hbWUgPSBcIlByb3ZpZGVyRXJyb3JcIjtcbiAgICB0cnlOZXh0TGluaztcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBvcHRpb25zID0gdHJ1ZSkge1xuICAgICAgICBsZXQgbG9nZ2VyO1xuICAgICAgICBsZXQgdHJ5TmV4dExpbmsgPSB0cnVlO1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBsb2dnZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0cnlOZXh0TGluayA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob3B0aW9ucyAhPSBudWxsICYmIHR5cGVvZiBvcHRpb25zID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBsb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICAgICAgICAgIHRyeU5leHRMaW5rID0gb3B0aW9ucy50cnlOZXh0TGluayA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnRyeU5leHRMaW5rID0gdHJ5TmV4dExpbms7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBQcm92aWRlckVycm9yLnByb3RvdHlwZSk7XG4gICAgICAgIGxvZ2dlcj8uZGVidWc/LihgQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlciAke3RyeU5leHRMaW5rID8gXCItPlwiIDogXCIoISlcIn0gJHttZXNzYWdlfWApO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbShlcnJvciwgb3B0aW9ucyA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMoZXJyb3IubWVzc2FnZSwgb3B0aW9ucyksIGVycm9yKTtcbiAgICB9XG59XG5cbmNsYXNzIENyZWRlbnRpYWxzUHJvdmlkZXJFcnJvciBleHRlbmRzIFByb3ZpZGVyRXJyb3Ige1xuICAgIG5hbWUgPSBcIkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvclwiO1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG9wdGlvbnMgPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UsIG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ3JlZGVudGlhbHNQcm92aWRlckVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG5jbGFzcyBUb2tlblByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBQcm92aWRlckVycm9yIHtcbiAgICBuYW1lID0gXCJUb2tlblByb3ZpZGVyRXJyb3JcIjtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBvcHRpb25zID0gdHJ1ZSkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRva2VuUHJvdmlkZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuY29uc3QgY2hhaW4gPSAoLi4ucHJvdmlkZXJzKSA9PiBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJObyBwcm92aWRlcnMgaW4gY2hhaW5cIik7XG4gICAgfVxuICAgIGxldCBsYXN0UHJvdmlkZXJFcnJvcjtcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHByb3ZpZGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBwcm92aWRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxhc3RQcm92aWRlckVycm9yID0gZXJyO1xuICAgICAgICAgICAgaWYgKGVycj8udHJ5TmV4dExpbmspIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBsYXN0UHJvdmlkZXJFcnJvcjtcbn07XG5cbmNvbnN0IGZyb21TdGF0aWMgPSAoc3RhdGljVmFsdWUpID0+ICgpID0+IFByb21pc2UucmVzb2x2ZShzdGF0aWNWYWx1ZSk7XG5cbmNvbnN0IG1lbW9pemUgPSAocHJvdmlkZXIsIGlzRXhwaXJlZCwgcmVxdWlyZXNSZWZyZXNoKSA9PiB7XG4gICAgbGV0IHJlc29sdmVkO1xuICAgIGxldCBwZW5kaW5nO1xuICAgIGxldCBoYXNSZXN1bHQ7XG4gICAgbGV0IGlzQ29uc3RhbnQgPSBmYWxzZTtcbiAgICBjb25zdCBjb2FsZXNjZVByb3ZpZGVyID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIXBlbmRpbmcpIHtcbiAgICAgICAgICAgIHBlbmRpbmcgPSBwcm92aWRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IGF3YWl0IHBlbmRpbmc7XG4gICAgICAgICAgICBoYXNSZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgaXNDb25zdGFudCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgfTtcbiAgICBpZiAoaXNFeHBpcmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWhhc1Jlc3VsdCB8fCBvcHRpb25zPy5mb3JjZVJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZCA9IGF3YWl0IGNvYWxlc2NlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghaGFzUmVzdWx0IHx8IG9wdGlvbnM/LmZvcmNlUmVmcmVzaCkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSBhd2FpdCBjb2FsZXNjZVByb3ZpZGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ29uc3RhbnQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWlyZXNSZWZyZXNoICYmICFyZXF1aXJlc1JlZnJlc2gocmVzb2x2ZWQpKSB7XG4gICAgICAgICAgICBpc0NvbnN0YW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFeHBpcmVkKHJlc29sdmVkKSkge1xuICAgICAgICAgICAgYXdhaXQgY29hbGVzY2VQcm92aWRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNvbHZlZDtcbiAgICB9O1xufTtcblxuZXhwb3J0cy5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IgPSBDcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3I7XG5leHBvcnRzLlByb3ZpZGVyRXJyb3IgPSBQcm92aWRlckVycm9yO1xuZXhwb3J0cy5Ub2tlblByb3ZpZGVyRXJyb3IgPSBUb2tlblByb3ZpZGVyRXJyb3I7XG5leHBvcnRzLmNoYWluID0gY2hhaW47XG5leHBvcnRzLmZyb21TdGF0aWMgPSBmcm9tU3RhdGljO1xuZXhwb3J0cy5tZW1vaXplID0gbWVtb2l6ZTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICJzREFFQSxNQUFNLFVBQXNCLEtBQU0sQ0FDOUIsS0FBTyxnQkFDUCxZQUNBLFdBQVcsQ0FBQyxFQUFTLEVBQVUsR0FBTSxDQUNqQyxJQUFJLEVBQ0EsRUFBYyxHQUNsQixHQUFJLE9BQU8sSUFBWSxVQUNuQixFQUFTLE9BQ1QsRUFBYyxFQUViLFFBQUksR0FBVyxNQUFRLE9BQU8sSUFBWSxTQUMzQyxFQUFTLEVBQVEsT0FDakIsRUFBYyxFQUFRLGFBQWUsR0FFekMsTUFBTSxDQUFPLEVBQ2IsS0FBSyxZQUFjLEVBQ25CLE9BQU8sZUFBZSxLQUFNLEVBQWMsU0FBUyxFQUNuRCxHQUFRLFFBQVEsNkJBQTZCLEVBQWMsS0FBTyxTQUFTLEdBQVMsUUFFakYsS0FBSSxDQUFDLEVBQU8sRUFBVSxHQUFNLENBQy9CLE9BQU8sT0FBTyxPQUFPLElBQUksS0FBSyxFQUFNLFFBQVMsQ0FBTyxFQUFHLENBQUssRUFFcEUsQ0FFQSxNQUFNLFVBQWlDLENBQWMsQ0FDakQsS0FBTywyQkFDUCxXQUFXLENBQUMsRUFBUyxFQUFVLEdBQU0sQ0FDakMsTUFBTSxFQUFTLENBQU8sRUFDdEIsT0FBTyxlQUFlLEtBQU0sRUFBeUIsU0FBUyxFQUV0RSxDQUVBLE1BQU0sVUFBMkIsQ0FBYyxDQUMzQyxLQUFPLHFCQUNQLFdBQVcsQ0FBQyxFQUFTLEVBQVUsR0FBTSxDQUNqQyxNQUFNLEVBQVMsQ0FBTyxFQUN0QixPQUFPLGVBQWUsS0FBTSxFQUFtQixTQUFTLEVBRWhFLENBRUEsSUFBTSxFQUFRLElBQUksSUFBYyxTQUFZLENBQ3hDLEdBQUksRUFBVSxTQUFXLEVBQ3JCLE1BQU0sSUFBSSxFQUFjLHVCQUF1QixFQUVuRCxJQUFJLEVBQ0osUUFBVyxLQUFZLEVBQ25CLEdBQUksQ0FFQSxPQURvQixNQUFNLEVBQVMsRUFHdkMsTUFBTyxFQUFLLENBRVIsR0FEQSxFQUFvQixFQUNoQixHQUFLLFlBQ0wsU0FFSixNQUFNLEVBR2QsTUFBTSxHQUdKLEVBQWEsQ0FBQyxJQUFnQixJQUFNLFFBQVEsUUFBUSxDQUFXLEVBRS9ELEVBQVUsQ0FBQyxFQUFVLEVBQVcsSUFBb0IsQ0FDdEQsSUFBSSxFQUNBLEVBQ0EsRUFDQSxFQUFhLEdBQ1gsRUFBbUIsU0FBWSxDQUNqQyxHQUFJLENBQUMsRUFDRCxFQUFVLEVBQVMsRUFFdkIsR0FBSSxDQUNBLEVBQVcsTUFBTSxFQUNqQixFQUFZLEdBQ1osRUFBYSxVQUVqQixDQUNJLEVBQVUsT0FFZCxPQUFPLEdBRVgsR0FBSSxJQUFjLE9BQ2QsTUFBTyxPQUFPLElBQVksQ0FDdEIsR0FBSSxDQUFDLEdBQWEsR0FBUyxhQUN2QixFQUFXLE1BQU0sRUFBaUIsRUFFdEMsT0FBTyxHQUdmLE1BQU8sT0FBTyxJQUFZLENBQ3RCLEdBQUksQ0FBQyxHQUFhLEdBQVMsYUFDdkIsRUFBVyxNQUFNLEVBQWlCLEVBRXRDLEdBQUksRUFDQSxPQUFPLEVBRVgsR0FBSSxHQUFtQixDQUFDLEVBQWdCLENBQVEsRUFFNUMsT0FEQSxFQUFhLEdBQ04sRUFFWCxHQUFJLEVBQVUsQ0FBUSxFQUVsQixPQURBLE1BQU0sRUFBaUIsRUFDaEIsRUFFWCxPQUFPLElBSVAsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLGFBQWEsRUFDYixVQUFVIiwKICAiZGVidWdJZCI6ICJEMTQ4OEVCMzJGNkM2QTExNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/dist/chunk-7bag664c.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{w as k,x as g}from"./chunk-dkk1zwm0.js";import"./chunk-r8mj3nq7.js";import"./chunk-kvnavsh3.js";import{S as m}from"./chunk-4pkw7jk4.js";import{V as u,W as M}from"./chunk-e9mt878v.js";function j(z){return new Promise((G,U)=>{let K=d.request({method:"GET",...z,hostname:z.hostname?.replace(/^\[(.+)\]$/,"$1")});K.on("error",(Q)=>{U(Object.assign(new Z.ProviderError("Unable to connect to instance metadata service"),Q)),K.destroy()}),K.on("timeout",()=>{U(new Z.ProviderError("TimeoutError from instance metadata service")),K.destroy()}),K.on("response",(Q)=>{let{statusCode:X=400}=Q;if(X<200||300<=X)U(Object.assign(new Z.ProviderError("Error response received from instance metadata service"),{statusCode:X})),K.destroy();let w=[];Q.on("data",($)=>{w.push($)}),Q.on("end",()=>{G(p.Buffer.concat(w)),K.destroy()})}),K.end()})}var Z,c,p,d,V,l,T=(z)=>Boolean(z)&&typeof z==="object"&&typeof z.AccessKeyId==="string"&&typeof z.SecretAccessKey==="string"&&typeof z.Token==="string"&&typeof z.Expiration==="string",b=(z)=>({accessKeyId:z.AccessKeyId,secretAccessKey:z.SecretAccessKey,sessionToken:z.Token,expiration:new Date(z.Expiration),...z.AccountId&&{accountId:z.AccountId}}),F=1000,v=0,h=({maxRetries:z=v,timeout:G=F})=>({maxRetries:z,timeout:G}),N=(z,G)=>{let U=z();for(let K=0;K<G;K++)U=U.catch(z);return U},L="AWS_CONTAINER_CREDENTIALS_FULL_URI",_="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",P="AWS_CONTAINER_AUTHORIZATION_TOKEN",a=(z={})=>{let{timeout:G,maxRetries:U}=h(z);return()=>N(async()=>{let K=await i({logger:z.logger}),Q=JSON.parse(await s(G,K));if(!T(Q))throw new Z.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:z.logger});return b(Q)},U)},s=async(z,G)=>{if(process.env[P])G.headers={...G.headers,Authorization:process.env[P]};return(await j({...G,timeout:z})).toString()},n="169.254.170.2",o,t,i=async({logger:z})=>{if(process.env[_])return{hostname:n,path:process.env[_]};if(process.env[L]){let G=c.parse(process.env[L]);if(!G.hostname||!(G.hostname in o))throw new Z.CredentialsProviderError(`${G.hostname} is not a valid container metadata service hostname`,{tryNextLink:!1,logger:z});if(!G.protocol||!(G.protocol in t))throw new Z.CredentialsProviderError(`${G.protocol} is not a valid container metadata service protocol`,{tryNextLink:!1,logger:z});return{...G,port:G.port?parseInt(G.port,10):void 0}}throw new Z.CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${_} or ${L} environment variable is set`,{tryNextLink:!1,logger:z})},q,S=void 0,r="AWS_EC2_METADATA_SERVICE_ENDPOINT",e="ec2_metadata_service_endpoint",zz,A,Gz="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",Kz="ec2_metadata_service_endpoint_mode",Qz,x=async()=>l.parseUrl(await Uz()||await Xz()),Uz=async()=>V.loadConfig(zz)(),Xz=async()=>{let z=await V.loadConfig(Qz)();switch(z){case A.IPv4:return S.IPv4;case A.IPv6:return S.IPv6;default:throw Error(`Unsupported endpoint mode: ${z}. Select from ${Object.values(A)}`)}},Zz=300,$z=300,Hz="https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html",I=(z,G)=>{let U=Zz+Math.floor(Math.random()*$z),K=new Date(Date.now()+U*1000);G.warn(`Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(K)}.
|
|
2
|
-
For more information, please visit: `+Hz);let Q=z.originalExpiration??z.expiration;return{...z,...Q?{originalExpiration:Q}:{},expiration:K}},Jz=(z,G={})=>{let U=G?.logger||console,K;return async()=>{let Q;try{if(Q=await z(),Q.expiration&&Q.expiration.getTime()<Date.now())Q=I(Q,U)}catch(X){if(K)U.warn("Credential renew failed: ",X),Q=I(K,U);else throw X}return K=Q,Q}},E="/latest/meta-data/iam/security-credentials/",Yz="/latest/api/token",B="AWS_EC2_METADATA_V1_DISABLED",y="ec2_metadata_v1_disabled",C="x-aws-ec2-metadata-token",wz=(z={})=>Jz(Dz(z),{logger:z.logger}),Dz=(z={})=>{let G=!1,{logger:U,profile:K}=z,{timeout:Q,maxRetries:X}=h(z),w=async($,D)=>{if(G||D.headers?.[C]==null){let H=!1,J=!1,f=await V.loadConfig({environmentVariableSelector:(Y)=>{let W=Y[B];if(J=!!W&&W!=="false",W===void 0)throw new Z.CredentialsProviderError(`${B} not set in env, checking config file next.`,{logger:z.logger});return J},configFileSelector:(Y)=>{let W=Y[y];return H=!!W&&W!=="false",H},default:!1},{profile:K})();if(z.ec2MetadataV1Disabled||f){let Y=[];if(z.ec2MetadataV1Disabled)Y.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");if(H)Y.push(`config file profile (${y})`);if(J)Y.push(`process environment variable (${B})`);throw new q(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${Y.join(", ")}].`)}}let R=(await N(async()=>{let H;try{H=await Az(D)}catch(J){if(J.statusCode===401)G=!1;throw J}return H},$)).trim();return N(async()=>{let H;try{H=await Oz(R,D,z)}catch(J){if(J.statusCode===401)G=!1;throw J}return H},$)};return async()=>{let $=await x();if(G)return U?.debug("AWS SDK Instance Metadata","using v1 fallback (no token fetch)"),w(X,{...$,timeout:Q});else{let D;try{D=(await Wz({...$,timeout:Q})).toString()}catch(O){if(O?.statusCode===400)throw Object.assign(O,{message:"EC2 Metadata token request returned error"});else if(O.message==="TimeoutError"||[403,404,405].includes(O.statusCode))G=!0;return U?.debug("AWS SDK Instance Metadata","using v1 fallback (initial)"),w(X,{...$,timeout:Q})}return w(X,{...$,headers:{[C]:D},timeout:Q})}}},Wz=async(z)=>j({...z,path:Yz,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}}),Az=async(z)=>(await j({...z,path:E})).toString(),Oz=async(z,G,U)=>{let K=JSON.parse((await j({...G,path:E+z})).toString());if(!T(K))throw new Z.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:U.logger});return b(K)},Sz,jz,Lz,_z,Bz,Nz,Pz,Mz,Vz,hz;var qz=u(()=>{Z=m(),c=M("url"),p=M("buffer"),d=M("http"),V=g(),l=k();o={localhost:!0,"127.0.0.1":!0},t={"http:":!0,"https:":!0};q=class q extends Z.CredentialsProviderError{tryNextLink;name="InstanceMetadataV1FallbackError";constructor(z,G=!0){super(z,G);this.tryNextLink=G,Object.setPrototypeOf(this,q.prototype)}};(function(z){z.IPv4="http://169.254.169.254",z.IPv6="http://[fd00:ec2::254]"})(S||(S={}));zz={environmentVariableSelector:(z)=>z[r],configFileSelector:(z)=>z[e],default:void 0};(function(z){z.IPv4="IPv4",z.IPv6="IPv6"})(A||(A={}));Qz={environmentVariableSelector:(z)=>z[Gz],configFileSelector:(z)=>z[Kz],default:A.IPv4};Sz=v,jz=F,Lz=P,_z=L,Bz=_,Nz=a,Pz=wz,Mz=x,Vz=j,hz=h});qz();export{hz as providerConfigFromInit,Vz as httpRequest,Mz as getInstanceMetadataEndpoint,Pz as fromInstanceMetadata,Nz as fromContainerMetadata,S as Endpoint,Bz as ENV_CMDS_RELATIVE_URI,_z as ENV_CMDS_FULL_URI,Lz as ENV_CMDS_AUTH_TOKEN,jz as DEFAULT_TIMEOUT,Sz as DEFAULT_MAX_RETRIES};export default {get providerConfigFromInit(){return hz},get httpRequest(){return Vz},get getInstanceMetadataEndpoint(){return Mz},get fromInstanceMetadata(){return Pz},get fromContainerMetadata(){return Nz},get Endpoint(){return S},get ENV_CMDS_RELATIVE_URI(){return Bz},get ENV_CMDS_FULL_URI(){return _z},get ENV_CMDS_AUTH_TOKEN(){return Lz},get DEFAULT_TIMEOUT(){return jz},get DEFAULT_MAX_RETRIES(){return Sz}};
|
|
3
|
-
|
|
4
|
-
//# debugId=D1247B39501761B864756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvY3JlZGVudGlhbC1wcm92aWRlci1pbWRzL2Rpc3QtY2pzL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgdXJsID0gcmVxdWlyZSgndXJsJyk7XG52YXIgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJyk7XG52YXIgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbnZhciBub2RlQ29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyJyk7XG52YXIgdXJsUGFyc2VyID0gcmVxdWlyZSgnQHNtaXRoeS91cmwtcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGh0dHBSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZXEgPSBodHRwLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGhvc3RuYW1lOiBvcHRpb25zLmhvc3RuYW1lPy5yZXBsYWNlKC9eXFxbKC4rKVxcXSQvLCBcIiQxXCIpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVxLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KE9iamVjdC5hc3NpZ24obmV3IHByb3BlcnR5UHJvdmlkZXIuUHJvdmlkZXJFcnJvcihcIlVuYWJsZSB0byBjb25uZWN0IHRvIGluc3RhbmNlIG1ldGFkYXRhIHNlcnZpY2VcIiksIGVycikpO1xuICAgICAgICAgICAgcmVxLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcS5vbihcInRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBwcm9wZXJ0eVByb3ZpZGVyLlByb3ZpZGVyRXJyb3IoXCJUaW1lb3V0RXJyb3IgZnJvbSBpbnN0YW5jZSBtZXRhZGF0YSBzZXJ2aWNlXCIpKTtcbiAgICAgICAgICAgIHJlcS5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXEub24oXCJyZXNwb25zZVwiLCAocmVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXR1c0NvZGUgPSA0MDAgfSA9IHJlcztcbiAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlIDwgMjAwIHx8IDMwMCA8PSBzdGF0dXNDb2RlKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KE9iamVjdC5hc3NpZ24obmV3IHByb3BlcnR5UHJvdmlkZXIuUHJvdmlkZXJFcnJvcihcIkVycm9yIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gaW5zdGFuY2UgbWV0YWRhdGEgc2VydmljZVwiKSwgeyBzdGF0dXNDb2RlIH0pKTtcbiAgICAgICAgICAgICAgICByZXEuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICAgICAgICByZXMub24oXCJkYXRhXCIsIChjaHVuaykgPT4ge1xuICAgICAgICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzLm9uKFwiZW5kXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGJ1ZmZlci5CdWZmZXIuY29uY2F0KGNodW5rcykpO1xuICAgICAgICAgICAgICAgIHJlcS5kZXN0cm95KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcS5lbmQoKTtcbiAgICB9KTtcbn1cblxuY29uc3QgaXNJbWRzQ3JlZGVudGlhbHMgPSAoYXJnKSA9PiBCb29sZWFuKGFyZykgJiZcbiAgICB0eXBlb2YgYXJnID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGFyZy5BY2Nlc3NLZXlJZCA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcuU2VjcmV0QWNjZXNzS2V5ID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGFyZy5Ub2tlbiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhcmcuRXhwaXJhdGlvbiA9PT0gXCJzdHJpbmdcIjtcbmNvbnN0IGZyb21JbWRzQ3JlZGVudGlhbHMgPSAoY3JlZHMpID0+ICh7XG4gICAgYWNjZXNzS2V5SWQ6IGNyZWRzLkFjY2Vzc0tleUlkLFxuICAgIHNlY3JldEFjY2Vzc0tleTogY3JlZHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgIHNlc3Npb25Ub2tlbjogY3JlZHMuVG9rZW4sXG4gICAgZXhwaXJhdGlvbjogbmV3IERhdGUoY3JlZHMuRXhwaXJhdGlvbiksXG4gICAgLi4uKGNyZWRzLkFjY291bnRJZCAmJiB7IGFjY291bnRJZDogY3JlZHMuQWNjb3VudElkIH0pLFxufSk7XG5cbmNvbnN0IERFRkFVTFRfVElNRU9VVCA9IDEwMDA7XG5jb25zdCBERUZBVUxUX01BWF9SRVRSSUVTID0gMDtcbmNvbnN0IHByb3ZpZGVyQ29uZmlnRnJvbUluaXQgPSAoeyBtYXhSZXRyaWVzID0gREVGQVVMVF9NQVhfUkVUUklFUywgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVCwgfSkgPT4gKHsgbWF4UmV0cmllcywgdGltZW91dCB9KTtcblxuY29uc3QgcmV0cnkgPSAodG9SZXRyeSwgbWF4UmV0cmllcykgPT4ge1xuICAgIGxldCBwcm9taXNlID0gdG9SZXRyeSgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UmV0cmllczsgaSsrKSB7XG4gICAgICAgIHByb21pc2UgPSBwcm9taXNlLmNhdGNoKHRvUmV0cnkpO1xuICAgIH1cbiAgICByZXR1cm4gcHJvbWlzZTtcbn07XG5cbmNvbnN0IEVOVl9DTURTX0ZVTExfVVJJID0gXCJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJXCI7XG5jb25zdCBFTlZfQ01EU19SRUxBVElWRV9VUkkgPSBcIkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJXCI7XG5jb25zdCBFTlZfQ01EU19BVVRIX1RPS0VOID0gXCJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU5cIjtcbmNvbnN0IGZyb21Db250YWluZXJNZXRhZGF0YSA9IChpbml0ID0ge30pID0+IHtcbiAgICBjb25zdCB7IHRpbWVvdXQsIG1heFJldHJpZXMgfSA9IHByb3ZpZGVyQ29uZmlnRnJvbUluaXQoaW5pdCk7XG4gICAgcmV0dXJuICgpID0+IHJldHJ5KGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSBhd2FpdCBnZXRDbWRzVXJpKHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgY29uc3QgY3JlZHNSZXNwb25zZSA9IEpTT04ucGFyc2UoYXdhaXQgcmVxdWVzdEZyb21FY3NJbWRzKHRpbWVvdXQsIHJlcXVlc3RPcHRpb25zKSk7XG4gICAgICAgIGlmICghaXNJbWRzQ3JlZGVudGlhbHMoY3JlZHNSZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkludmFsaWQgcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSBpbnN0YW5jZSBtZXRhZGF0YSBzZXJ2aWNlLlwiLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmcm9tSW1kc0NyZWRlbnRpYWxzKGNyZWRzUmVzcG9uc2UpO1xuICAgIH0sIG1heFJldHJpZXMpO1xufTtcbmNvbnN0IHJlcXVlc3RGcm9tRWNzSW1kcyA9IGFzeW5jICh0aW1lb3V0LCBvcHRpb25zKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9DTURTX0FVVEhfVE9LRU5dKSB7XG4gICAgICAgIG9wdGlvbnMuaGVhZGVycyA9IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IHByb2Nlc3MuZW52W0VOVl9DTURTX0FVVEhfVE9LRU5dLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBodHRwUmVxdWVzdCh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHRpbWVvdXQsXG4gICAgfSk7XG4gICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpO1xufTtcbmNvbnN0IENNRFNfSVAgPSBcIjE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEdSRUVOR1JBU1NfSE9TVFMgPSB7XG4gICAgbG9jYWxob3N0OiB0cnVlLFxuICAgIFwiMTI3LjAuMC4xXCI6IHRydWUsXG59O1xuY29uc3QgR1JFRU5HUkFTU19QUk9UT0NPTFMgPSB7XG4gICAgXCJodHRwOlwiOiB0cnVlLFxuICAgIFwiaHR0cHM6XCI6IHRydWUsXG59O1xuY29uc3QgZ2V0Q21kc1VyaSA9IGFzeW5jICh7IGxvZ2dlciB9KSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9DTURTX1JFTEFUSVZFX1VSSV0pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhvc3RuYW1lOiBDTURTX0lQLFxuICAgICAgICAgICAgcGF0aDogcHJvY2Vzcy5lbnZbRU5WX0NNRFNfUkVMQVRJVkVfVVJJXSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52W0VOVl9DTURTX0ZVTExfVVJJXSkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSB1cmwucGFyc2UocHJvY2Vzcy5lbnZbRU5WX0NNRFNfRlVMTF9VUkldKTtcbiAgICAgICAgaWYgKCFwYXJzZWQuaG9zdG5hbWUgfHwgIShwYXJzZWQuaG9zdG5hbWUgaW4gR1JFRU5HUkFTU19IT1NUUykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgJHtwYXJzZWQuaG9zdG5hbWV9IGlzIG5vdCBhIHZhbGlkIGNvbnRhaW5lciBtZXRhZGF0YSBzZXJ2aWNlIGhvc3RuYW1lYCwge1xuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhcnNlZC5wcm90b2NvbCB8fCAhKHBhcnNlZC5wcm90b2NvbCBpbiBHUkVFTkdSQVNTX1BST1RPQ09MUykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgJHtwYXJzZWQucHJvdG9jb2x9IGlzIG5vdCBhIHZhbGlkIGNvbnRhaW5lciBtZXRhZGF0YSBzZXJ2aWNlIHByb3RvY29sYCwge1xuICAgICAgICAgICAgICAgIHRyeU5leHRMaW5rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucGFyc2VkLFxuICAgICAgICAgICAgcG9ydDogcGFyc2VkLnBvcnQgPyBwYXJzZUludChwYXJzZWQucG9ydCwgMTApIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJUaGUgY29udGFpbmVyIG1ldGFkYXRhIGNyZWRlbnRpYWwgcHJvdmlkZXIgY2Fubm90IGJlIHVzZWQgdW5sZXNzXCIgK1xuICAgICAgICBgIHRoZSAke0VOVl9DTURTX1JFTEFUSVZFX1VSSX0gb3IgJHtFTlZfQ01EU19GVUxMX1VSSX0gZW52aXJvbm1lbnRgICtcbiAgICAgICAgXCIgdmFyaWFibGUgaXMgc2V0XCIsIHtcbiAgICAgICAgdHJ5TmV4dExpbms6IGZhbHNlLFxuICAgICAgICBsb2dnZXIsXG4gICAgfSk7XG59O1xuXG5jbGFzcyBJbnN0YW5jZU1ldGFkYXRhVjFGYWxsYmFja0Vycm9yIGV4dGVuZHMgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3Ige1xuICAgIHRyeU5leHRMaW5rO1xuICAgIG5hbWUgPSBcIkluc3RhbmNlTWV0YWRhdGFWMUZhbGxiYWNrRXJyb3JcIjtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCB0cnlOZXh0TGluayA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgdHJ5TmV4dExpbmspO1xuICAgICAgICB0aGlzLnRyeU5leHRMaW5rID0gdHJ5TmV4dExpbms7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBJbnN0YW5jZU1ldGFkYXRhVjFGYWxsYmFja0Vycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG5leHBvcnRzLkVuZHBvaW50ID0gdm9pZCAwO1xuKGZ1bmN0aW9uIChFbmRwb2ludCkge1xuICAgIEVuZHBvaW50W1wiSVB2NFwiXSA9IFwiaHR0cDovLzE2OS4yNTQuMTY5LjI1NFwiO1xuICAgIEVuZHBvaW50W1wiSVB2NlwiXSA9IFwiaHR0cDovL1tmZDAwOmVjMjo6MjU0XVwiO1xufSkoZXhwb3J0cy5FbmRwb2ludCB8fCAoZXhwb3J0cy5FbmRwb2ludCA9IHt9KSk7XG5cbmNvbnN0IEVOVl9FTkRQT0lOVF9OQU1FID0gXCJBV1NfRUMyX01FVEFEQVRBX1NFUlZJQ0VfRU5EUE9JTlRcIjtcbmNvbnN0IENPTkZJR19FTkRQT0lOVF9OQU1FID0gXCJlYzJfbWV0YWRhdGFfc2VydmljZV9lbmRwb2ludFwiO1xuY29uc3QgRU5EUE9JTlRfQ09ORklHX09QVElPTlMgPSB7XG4gICAgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yOiAoZW52KSA9PiBlbnZbRU5WX0VORFBPSU5UX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbQ09ORklHX0VORFBPSU5UX05BTUVdLFxuICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbn07XG5cbnZhciBFbmRwb2ludE1vZGU7XG4oZnVuY3Rpb24gKEVuZHBvaW50TW9kZSkge1xuICAgIEVuZHBvaW50TW9kZVtcIklQdjRcIl0gPSBcIklQdjRcIjtcbiAgICBFbmRwb2ludE1vZGVbXCJJUHY2XCJdID0gXCJJUHY2XCI7XG59KShFbmRwb2ludE1vZGUgfHwgKEVuZHBvaW50TW9kZSA9IHt9KSk7XG5cbmNvbnN0IEVOVl9FTkRQT0lOVF9NT0RFX05BTUUgPSBcIkFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVF9NT0RFXCI7XG5jb25zdCBDT05GSUdfRU5EUE9JTlRfTU9ERV9OQU1FID0gXCJlYzJfbWV0YWRhdGFfc2VydmljZV9lbmRwb2ludF9tb2RlXCI7XG5jb25zdCBFTkRQT0lOVF9NT0RFX0NPTkZJR19PUFRJT05TID0ge1xuICAgIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gZW52W0VOVl9FTkRQT0lOVF9NT0RFX05BTUVdLFxuICAgIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHByb2ZpbGVbQ09ORklHX0VORFBPSU5UX01PREVfTkFNRV0sXG4gICAgZGVmYXVsdDogRW5kcG9pbnRNb2RlLklQdjQsXG59O1xuXG5jb25zdCBnZXRJbnN0YW5jZU1ldGFkYXRhRW5kcG9pbnQgPSBhc3luYyAoKSA9PiB1cmxQYXJzZXIucGFyc2VVcmwoKGF3YWl0IGdldEZyb21FbmRwb2ludENvbmZpZygpKSB8fCAoYXdhaXQgZ2V0RnJvbUVuZHBvaW50TW9kZUNvbmZpZygpKSk7XG5jb25zdCBnZXRGcm9tRW5kcG9pbnRDb25maWcgPSBhc3luYyAoKSA9PiBub2RlQ29uZmlnUHJvdmlkZXIubG9hZENvbmZpZyhFTkRQT0lOVF9DT05GSUdfT1BUSU9OUykoKTtcbmNvbnN0IGdldEZyb21FbmRwb2ludE1vZGVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZW5kcG9pbnRNb2RlID0gYXdhaXQgbm9kZUNvbmZpZ1Byb3ZpZGVyLmxvYWRDb25maWcoRU5EUE9JTlRfTU9ERV9DT05GSUdfT1BUSU9OUykoKTtcbiAgICBzd2l0Y2ggKGVuZHBvaW50TW9kZSkge1xuICAgICAgICBjYXNlIEVuZHBvaW50TW9kZS5JUHY0OlxuICAgICAgICAgICAgcmV0dXJuIGV4cG9ydHMuRW5kcG9pbnQuSVB2NDtcbiAgICAgICAgY2FzZSBFbmRwb2ludE1vZGUuSVB2NjpcbiAgICAgICAgICAgIHJldHVybiBleHBvcnRzLkVuZHBvaW50LklQdjY7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGVuZHBvaW50IG1vZGU6ICR7ZW5kcG9pbnRNb2RlfS5gICsgYCBTZWxlY3QgZnJvbSAke09iamVjdC52YWx1ZXMoRW5kcG9pbnRNb2RlKX1gKTtcbiAgICB9XG59O1xuXG5jb25zdCBTVEFUSUNfU1RBQklMSVRZX1JFRlJFU0hfSU5URVJWQUxfU0VDT05EUyA9IDUgKiA2MDtcbmNvbnN0IFNUQVRJQ19TVEFCSUxJVFlfUkVGUkVTSF9JTlRFUlZBTF9KSVRURVJfV0lORE9XX1NFQ09ORFMgPSA1ICogNjA7XG5jb25zdCBTVEFUSUNfU1RBQklMSVRZX0RPQ19VUkwgPSBcImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZGtyZWYvbGF0ZXN0L2d1aWRlL2ZlYXR1cmUtc3RhdGljLWNyZWRlbnRpYWxzLmh0bWxcIjtcbmNvbnN0IGdldEV4dGVuZGVkSW5zdGFuY2VNZXRhZGF0YUNyZWRlbnRpYWxzID0gKGNyZWRlbnRpYWxzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCByZWZyZXNoSW50ZXJ2YWwgPSBTVEFUSUNfU1RBQklMSVRZX1JFRlJFU0hfSU5URVJWQUxfU0VDT05EUyArXG4gICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIFNUQVRJQ19TVEFCSUxJVFlfUkVGUkVTSF9JTlRFUlZBTF9KSVRURVJfV0lORE9XX1NFQ09ORFMpO1xuICAgIGNvbnN0IG5ld0V4cGlyYXRpb24gPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgcmVmcmVzaEludGVydmFsICogMTAwMCk7XG4gICAgbG9nZ2VyLndhcm4oXCJBdHRlbXB0aW5nIGNyZWRlbnRpYWwgZXhwaXJhdGlvbiBleHRlbnNpb24gZHVlIHRvIGEgY3JlZGVudGlhbCBzZXJ2aWNlIGF2YWlsYWJpbGl0eSBpc3N1ZS4gQSByZWZyZXNoIG9mIHRoZXNlIFwiICtcbiAgICAgICAgYGNyZWRlbnRpYWxzIHdpbGwgYmUgYXR0ZW1wdGVkIGFmdGVyICR7bmV3IERhdGUobmV3RXhwaXJhdGlvbil9LlxcbkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQ6IGAgK1xuICAgICAgICBTVEFUSUNfU1RBQklMSVRZX0RPQ19VUkwpO1xuICAgIGNvbnN0IG9yaWdpbmFsRXhwaXJhdGlvbiA9IGNyZWRlbnRpYWxzLm9yaWdpbmFsRXhwaXJhdGlvbiA/PyBjcmVkZW50aWFscy5leHBpcmF0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgICAuLi4ob3JpZ2luYWxFeHBpcmF0aW9uID8geyBvcmlnaW5hbEV4cGlyYXRpb24gfSA6IHt9KSxcbiAgICAgICAgZXhwaXJhdGlvbjogbmV3RXhwaXJhdGlvbixcbiAgICB9O1xufTtcblxuY29uc3Qgc3RhdGljU3RhYmlsaXR5UHJvdmlkZXIgPSAocHJvdmlkZXIsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGxvZ2dlciA9IG9wdGlvbnM/LmxvZ2dlciB8fCBjb25zb2xlO1xuICAgIGxldCBwYXN0Q3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgICAgbGV0IGNyZWRlbnRpYWxzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBhd2FpdCBwcm92aWRlcigpO1xuICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWxzLmV4cGlyYXRpb24gJiYgY3JlZGVudGlhbHMuZXhwaXJhdGlvbi5nZXRUaW1lKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHMgPSBnZXRFeHRlbmRlZEluc3RhbmNlTWV0YWRhdGFDcmVkZW50aWFscyhjcmVkZW50aWFscywgbG9nZ2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKHBhc3RDcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKFwiQ3JlZGVudGlhbCByZW5ldyBmYWlsZWQ6IFwiLCBlKTtcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFscyA9IGdldEV4dGVuZGVkSW5zdGFuY2VNZXRhZGF0YUNyZWRlbnRpYWxzKHBhc3RDcmVkZW50aWFscywgbG9nZ2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFzdENyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcblxuY29uc3QgSU1EU19QQVRIID0gXCIvbGF0ZXN0L21ldGEtZGF0YS9pYW0vc2VjdXJpdHktY3JlZGVudGlhbHMvXCI7XG5jb25zdCBJTURTX1RPS0VOX1BBVEggPSBcIi9sYXRlc3QvYXBpL3Rva2VuXCI7XG5jb25zdCBBV1NfRUMyX01FVEFEQVRBX1YxX0RJU0FCTEVEID0gXCJBV1NfRUMyX01FVEFEQVRBX1YxX0RJU0FCTEVEXCI7XG5jb25zdCBQUk9GSUxFX0FXU19FQzJfTUVUQURBVEFfVjFfRElTQUJMRUQgPSBcImVjMl9tZXRhZGF0YV92MV9kaXNhYmxlZFwiO1xuY29uc3QgWF9BV1NfRUMyX01FVEFEQVRBX1RPS0VOID0gXCJ4LWF3cy1lYzItbWV0YWRhdGEtdG9rZW5cIjtcbmNvbnN0IGZyb21JbnN0YW5jZU1ldGFkYXRhID0gKGluaXQgPSB7fSkgPT4gc3RhdGljU3RhYmlsaXR5UHJvdmlkZXIoZ2V0SW5zdGFuY2VNZXRhZGF0YVByb3ZpZGVyKGluaXQpLCB7IGxvZ2dlcjogaW5pdC5sb2dnZXIgfSk7XG5jb25zdCBnZXRJbnN0YW5jZU1ldGFkYXRhUHJvdmlkZXIgPSAoaW5pdCA9IHt9KSA9PiB7XG4gICAgbGV0IGRpc2FibGVGZXRjaFRva2VuID0gZmFsc2U7XG4gICAgY29uc3QgeyBsb2dnZXIsIHByb2ZpbGUgfSA9IGluaXQ7XG4gICAgY29uc3QgeyB0aW1lb3V0LCBtYXhSZXRyaWVzIH0gPSBwcm92aWRlckNvbmZpZ0Zyb21Jbml0KGluaXQpO1xuICAgIGNvbnN0IGdldENyZWRlbnRpYWxzID0gYXN5bmMgKG1heFJldHJpZXMsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgaXNJbWRzVjFGYWxsYmFjayA9IGRpc2FibGVGZXRjaFRva2VuIHx8IG9wdGlvbnMuaGVhZGVycz8uW1hfQVdTX0VDMl9NRVRBREFUQV9UT0tFTl0gPT0gbnVsbDtcbiAgICAgICAgaWYgKGlzSW1kc1YxRmFsbGJhY2spIHtcbiAgICAgICAgICAgIGxldCBmYWxsYmFja0Jsb2NrZWRGcm9tUHJvZmlsZSA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGZhbGxiYWNrQmxvY2tlZEZyb21Qcm9jZXNzRW52ID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb25maWdWYWx1ZSA9IGF3YWl0IG5vZGVDb25maWdQcm92aWRlci5sb2FkQ29uZmlnKHtcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW52VmFsdWUgPSBlbnZbQVdTX0VDMl9NRVRBREFUQV9WMV9ESVNBQkxFRF07XG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrQmxvY2tlZEZyb21Qcm9jZXNzRW52ID0gISFlbnZWYWx1ZSAmJiBlbnZWYWx1ZSAhPT0gXCJmYWxzZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZW52VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGAke0FXU19FQzJfTUVUQURBVEFfVjFfRElTQUJMRUR9IG5vdCBzZXQgaW4gZW52LCBjaGVja2luZyBjb25maWcgZmlsZSBuZXh0LmAsIHsgbG9nZ2VyOiBpbml0LmxvZ2dlciB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2tCbG9ja2VkRnJvbVByb2Nlc3NFbnY7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2ZpbGVWYWx1ZSA9IHByb2ZpbGVbUFJPRklMRV9BV1NfRUMyX01FVEFEQVRBX1YxX0RJU0FCTEVEXTtcbiAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tCbG9ja2VkRnJvbVByb2ZpbGUgPSAhIXByb2ZpbGVWYWx1ZSAmJiBwcm9maWxlVmFsdWUgIT09IFwiZmFsc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrQmxvY2tlZEZyb21Qcm9maWxlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICBpZiAoaW5pdC5lYzJNZXRhZGF0YVYxRGlzYWJsZWQgfHwgY29uZmlnVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYXVzZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAoaW5pdC5lYzJNZXRhZGF0YVYxRGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgIGNhdXNlcy5wdXNoKFwiY3JlZGVudGlhbCBwcm92aWRlciBpbml0aWFsaXphdGlvbiAocnVudGltZSBvcHRpb24gZWMyTWV0YWRhdGFWMURpc2FibGVkKVwiKTtcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tCbG9ja2VkRnJvbVByb2ZpbGUpXG4gICAgICAgICAgICAgICAgICAgIGNhdXNlcy5wdXNoKGBjb25maWcgZmlsZSBwcm9maWxlICgke1BST0ZJTEVfQVdTX0VDMl9NRVRBREFUQV9WMV9ESVNBQkxFRH0pYCk7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrQmxvY2tlZEZyb21Qcm9jZXNzRW52KVxuICAgICAgICAgICAgICAgICAgICBjYXVzZXMucHVzaChgcHJvY2VzcyBlbnZpcm9ubWVudCB2YXJpYWJsZSAoJHtBV1NfRUMyX01FVEFEQVRBX1YxX0RJU0FCTEVEfSlgKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5zdGFuY2VNZXRhZGF0YVYxRmFsbGJhY2tFcnJvcihgQVdTIEVDMiBNZXRhZGF0YSB2MSBmYWxsYmFjayBoYXMgYmVlbiBibG9ja2VkIGJ5IEFXUyBTREsgY29uZmlndXJhdGlvbiBpbiB0aGUgZm9sbG93aW5nOiBbJHtjYXVzZXMuam9pbihcIiwgXCIpfV0uYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW1kc1Byb2ZpbGUgPSAoYXdhaXQgcmV0cnkoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHByb2ZpbGU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHByb2ZpbGUgPSBhd2FpdCBnZXRQcm9maWxlKG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzQ29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVGZXRjaFRva2VuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9maWxlO1xuICAgICAgICB9LCBtYXhSZXRyaWVzKSkudHJpbSgpO1xuICAgICAgICByZXR1cm4gcmV0cnkoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNyZWRzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjcmVkcyA9IGF3YWl0IGdldENyZWRlbnRpYWxzRnJvbVByb2ZpbGUoaW1kc1Byb2ZpbGUsIG9wdGlvbnMsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzQ29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVGZXRjaFRva2VuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjcmVkcztcbiAgICAgICAgfSwgbWF4UmV0cmllcyk7XG4gICAgfTtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBlbmRwb2ludCA9IGF3YWl0IGdldEluc3RhbmNlTWV0YWRhdGFFbmRwb2ludCgpO1xuICAgICAgICBpZiAoZGlzYWJsZUZldGNoVG9rZW4pIHtcbiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJBV1MgU0RLIEluc3RhbmNlIE1ldGFkYXRhXCIsIFwidXNpbmcgdjEgZmFsbGJhY2sgKG5vIHRva2VuIGZldGNoKVwiKTtcbiAgICAgICAgICAgIHJldHVybiBnZXRDcmVkZW50aWFscyhtYXhSZXRyaWVzLCB7IC4uLmVuZHBvaW50LCB0aW1lb3V0IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHRva2VuO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IChhd2FpdCBnZXRNZXRhZGF0YVRva2VuKHsgLi4uZW5kcG9pbnQsIHRpbWVvdXQgfSkpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3I/LnN0YXR1c0NvZGUgPT09IDQwMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKGVycm9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkVDMiBNZXRhZGF0YSB0b2tlbiByZXF1ZXN0IHJldHVybmVkIGVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChlcnJvci5tZXNzYWdlID09PSBcIlRpbWVvdXRFcnJvclwiIHx8IFs0MDMsIDQwNCwgNDA1XS5pbmNsdWRlcyhlcnJvci5zdGF0dXNDb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlRmV0Y2hUb2tlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoXCJBV1MgU0RLIEluc3RhbmNlIE1ldGFkYXRhXCIsIFwidXNpbmcgdjEgZmFsbGJhY2sgKGluaXRpYWwpXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRDcmVkZW50aWFscyhtYXhSZXRyaWVzLCB7IC4uLmVuZHBvaW50LCB0aW1lb3V0IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGdldENyZWRlbnRpYWxzKG1heFJldHJpZXMsIHtcbiAgICAgICAgICAgICAgICAuLi5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFtYX0FXU19FQzJfTUVUQURBVEFfVE9LRU5dOiB0b2tlbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRpbWVvdXQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuY29uc3QgZ2V0TWV0YWRhdGFUb2tlbiA9IGFzeW5jIChvcHRpb25zKSA9PiBodHRwUmVxdWVzdCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBwYXRoOiBJTURTX1RPS0VOX1BBVEgsXG4gICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJ4LWF3cy1lYzItbWV0YWRhdGEtdG9rZW4tdHRsLXNlY29uZHNcIjogXCIyMTYwMFwiLFxuICAgIH0sXG59KTtcbmNvbnN0IGdldFByb2ZpbGUgPSBhc3luYyAob3B0aW9ucykgPT4gKGF3YWl0IGh0dHBSZXF1ZXN0KHsgLi4ub3B0aW9ucywgcGF0aDogSU1EU19QQVRIIH0pKS50b1N0cmluZygpO1xuY29uc3QgZ2V0Q3JlZGVudGlhbHNGcm9tUHJvZmlsZSA9IGFzeW5jIChwcm9maWxlLCBvcHRpb25zLCBpbml0KSA9PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHNSZXNwb25zZSA9IEpTT04ucGFyc2UoKGF3YWl0IGh0dHBSZXF1ZXN0KHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgcGF0aDogSU1EU19QQVRIICsgcHJvZmlsZSxcbiAgICB9KSkudG9TdHJpbmcoKSk7XG4gICAgaWYgKCFpc0ltZHNDcmVkZW50aWFscyhjcmVkZW50aWFsc1Jlc3BvbnNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJJbnZhbGlkIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gaW5zdGFuY2UgbWV0YWRhdGEgc2VydmljZS5cIiwge1xuICAgICAgICAgICAgbG9nZ2VyOiBpbml0LmxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBmcm9tSW1kc0NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzUmVzcG9uc2UpO1xufTtcblxuZXhwb3J0cy5ERUZBVUxUX01BWF9SRVRSSUVTID0gREVGQVVMVF9NQVhfUkVUUklFUztcbmV4cG9ydHMuREVGQVVMVF9USU1FT1VUID0gREVGQVVMVF9USU1FT1VUO1xuZXhwb3J0cy5FTlZfQ01EU19BVVRIX1RPS0VOID0gRU5WX0NNRFNfQVVUSF9UT0tFTjtcbmV4cG9ydHMuRU5WX0NNRFNfRlVMTF9VUkkgPSBFTlZfQ01EU19GVUxMX1VSSTtcbmV4cG9ydHMuRU5WX0NNRFNfUkVMQVRJVkVfVVJJID0gRU5WX0NNRFNfUkVMQVRJVkVfVVJJO1xuZXhwb3J0cy5mcm9tQ29udGFpbmVyTWV0YWRhdGEgPSBmcm9tQ29udGFpbmVyTWV0YWRhdGE7XG5leHBvcnRzLmZyb21JbnN0YW5jZU1ldGFkYXRhID0gZnJvbUluc3RhbmNlTWV0YWRhdGE7XG5leHBvcnRzLmdldEluc3RhbmNlTWV0YWRhdGFFbmRwb2ludCA9IGdldEluc3RhbmNlTWV0YWRhdGFFbmRwb2ludDtcbmV4cG9ydHMuaHR0cFJlcXVlc3QgPSBodHRwUmVxdWVzdDtcbmV4cG9ydHMucHJvdmlkZXJDb25maWdGcm9tSW5pdCA9IHByb3ZpZGVyQ29uZmlnRnJvbUluaXQ7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAic05BU0EsR0FBUyxMQUFXLExBQUMsSkFBUyxDQUMxQixPQUFPLElBQUksUUFBUSxDQUFDLEVBQVMsSUFBVyxDQUNwQyxJQUFNLEVBQU0sRUFBSyxRQUFRLENBQ3JCLE9BQVEsU0FDTCxFQUNILFNBQVUsRUFBUSxVQUFVLFFBQVEsYUFBYyxJQUFJLENBQzFELENBQUMsRUFDRCxFQUFJLEdBQUcsUUFBUyxDQUFDLElBQVEsQ0FDckIsRUFBTyxPQUFPLE9BQU8sSUFBSSxFQUFpQixjQUFjLGdEQUFnRCxFQUFHLENBQUcsQ0FBQyxFQUMvRyxFQUFJLFFBQVEsRUFDZixFQUNELEVBQUksR0FBRyxVQUFXLElBQU0sQ0FDcEIsRUFBTyxJQUFJLEVBQWlC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NkJBQTZCLEVBQ2pFLEVBQWUsRUFBWSxJQUFLLEVBQVUsU0FBUSxDQUFDLEVBRTlELE9BQU8sRUFBZSxFQUFZLElBQzNCLEVBQ0gsUUFBUyxFQUNKLEdBQTJCLENBQ2hDLEVBQ0EsU0FDSixDQUFDLEtBSVAsR0FBbUIsTUFBTyxJQUFZLEVBQVksSUFDakQsRUFDSCxLQUFNLEdBQ04sT0FBUSxNQUNSLFFBQVMsQ0FDTCx1Q0FBd0MsT0FDNUMsQ0FDSixDQUFDLEVBQ0ssR0FBYSxNQUFPLEtBQWEsTUFBTSxFQUFZLElBQUssRUFBUyxLQUFNLENBQVUsQ0FBQyxHQUFHLFNBQVMsRUFDOUYsR0FBNEIsTUFBTyxFQUFTLEVBQVMsSUFBUyxDQUNoRSxJQUFNLEVBQXNCLEtBQUssT0FBTyxNQUFNLEVBQVksSUFDbkQsRUFDSCxLQUFNLEVBQVksQ0FDdEIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUNkLEdBQUksQ0FBQyxFQUFrQixDQUFtQixFQUN0QyxNQUFNLElBQUksRUFBaUIseUJBQXlCLDREQUE2RCxDQUM3RyxPQUFRLEVBQUssTUFDakIsQ0FBQyxFQUVMLE9BQU8sRUFBb0IsQ0FBbUIsR0FHMUMsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsaUJBalhKLE1BQ0EsV0FDQSxjQUNBLFlBQ0EsTUFDQSxNQTRGRSxFQUFtQixDQUNyQixVQUFXLEdBQ1gsWUFBYSxFQUNqQixFQUNNLEVBQXVCLENBQ3pCLFFBQVMsR0FDVCxTQUFVLEVBQ2QsRUFtQ00sRUFBTixNQUFNLFVBQXdDLEVBQWlCLHdCQUF5QixDQUNwRixZQUNBLEtBQU8sa0NBQ1AsV0FBVyxDQUFDLEVBQVMsRUFBYyxHQUFNLENBQ3JDLE1BQU0sRUFBUyxDQUFXLEVBQzFCLEtBQUssWUFBYyxFQUNuQixPQUFPLGVBQWUsS0FBTSxFQUFnQyxTQUFTLEVBRTdFLEdBR0MsUUFBUyxDQUFDLEVBQVUsQ0FDakIsRUFBUyxLQUFVLHlCQUNuQixFQUFTLEtBQVUsMkJBQ1osSUFBcUIsRUFBVyxDQUFDLEVBQUUsRUFJeEMsR0FBMEIsQ0FDNUIsNEJBQTZCLENBQUMsSUFBUSxFQUFJLEdBQzFDLG1CQUFvQixDQUFDLElBQVksRUFBUSxHQUN6QyxRQUFTLE1BQ2IsR0FHQyxRQUFTLENBQUMsRUFBYyxDQUNyQixFQUFhLEtBQVUsT0FDdkIsRUFBYSxLQUFVLFNBQ3hCLElBQWlCLEVBQWUsQ0FBQyxFQUFFLEVBSWhDLEdBQStCLENBQ2pDLDRCQUE2QixDQUFDLElBQVEsRUFBSSxJQUMxQyxtQkFBb0IsQ0FBQyxJQUFZLEVBQVEsSUFDekMsUUFBUyxFQUFhLElBQzFCLEVBeUxRLEdBQXNCLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQXNCLEVBQ3RCLEdBQW9CLEVBQ3BCLEdBQXdCLEVBQ3hCLEdBQXdCLEVBQ3hCLEdBQXVCLEdBQ3ZCLEdBQThCLEVBQzlCLEdBQWMsRUFDZCxHQUF5QiIsCiAgImRlYnVnSWQiOiAiRDEyNDdCMzk1MDE3NjFCODY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
package/dist/chunk-9zmzw25z.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{C as z,E as H,G as Q,K as N}from"./chunk-fbbbv2d4.js";import{L as M}from"./chunk-ekwpcdh4.js";import"./chunk-whenq5kz.js";import"./chunk-kvnavsh3.js";import{R as V}from"./chunk-t5j8kj9p.js";import{S as u}from"./chunk-4pkw7jk4.js";import{U as n,W as $}from"./chunk-e9mt878v.js";var P=n((y)=>{Object.defineProperty(y,"__esModule",{value:!0});y.checkUrl=void 0;var T=u(),R="169.254.170.2",j="169.254.170.23",q="[fd00:ec2::23]",A=(e,s)=>{if(e.protocol==="https:")return;if(e.hostname===R||e.hostname===j||e.hostname===q)return;if(e.hostname.includes("[")){if(e.hostname==="[::1]"||e.hostname==="[0000:0000:0000:0000:0000:0000:0000:0001]")return}else{if(e.hostname==="localhost")return;let c=e.hostname.split("."),r=(t)=>{let a=parseInt(t,10);return 0<=a&&a<=255};if(c[0]==="127"&&r(c[1])&&r(c[2])&&r(c[3])&&c.length===4)return}throw new T.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following:
|
|
2
|
-
- loopback CIDR 127.0.0.0/8 or [::1/128]
|
|
3
|
-
- ECS container host 169.254.170.2
|
|
4
|
-
- EKS container host 169.254.170.23 or [fd00:ec2::23]`,{logger:s})};y.checkUrl=A});var v=n((g)=>{Object.defineProperty(g,"__esModule",{value:!0});g.createGetRequest=D;g.getCredentials=G;var h=u(),k=M(),l=N(),B=H();function D(e){return new k.HttpRequest({protocol:e.protocol,hostname:e.hostname,port:Number(e.port),path:e.pathname,query:Array.from(e.searchParams.entries()).reduce((s,[c,r])=>{return s[c]=r,s},{}),fragment:e.hash})}async function G(e,s){let r=await(0,B.sdkStreamMixin)(e.body).transformToString();if(e.statusCode===200){let t=JSON.parse(r);if(typeof t.AccessKeyId!=="string"||typeof t.SecretAccessKey!=="string"||typeof t.Token!=="string"||typeof t.Expiration!=="string")throw new h.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }",{logger:s});return{accessKeyId:t.AccessKeyId,secretAccessKey:t.SecretAccessKey,sessionToken:t.Token,expiration:(0,l.parseRfc3339DateTime)(t.Expiration)}}if(e.statusCode>=400&&e.statusCode<500){let t={};try{t=JSON.parse(r)}catch(a){}throw Object.assign(new h.CredentialsProviderError(`Server responded with status: ${e.statusCode}`,{logger:s}),{Code:t.Code,Message:t.Message})}throw new h.CredentialsProviderError(`Server responded with status: ${e.statusCode}`,{logger:s})}});var p=n((S)=>{Object.defineProperty(S,"__esModule",{value:!0});S.retryWrapper=void 0;var W=(e,s,c)=>{return async()=>{for(let r=0;r<s;++r)try{return await e()}catch(t){await new Promise((a)=>setTimeout(a,c))}return await e()}};S.retryWrapper=W});var O=n((E)=>{Object.defineProperty(E,"__esModule",{value:!0});E.fromHttp=void 0;var X=Q(),Y=V(),L=z(),w=u(),Z=X.__importDefault($("fs/promises")),F=P(),x=v(),ee=p(),te="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",re="http://169.254.170.2",se="AWS_CONTAINER_CREDENTIALS_FULL_URI",ce="AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE",ae="AWS_CONTAINER_AUTHORIZATION_TOKEN",ne=(e={})=>{e.logger?.debug("@aws-sdk/credential-provider-http - fromHttp");let s,c=e.awsContainerCredentialsRelativeUri??process.env[te],r=e.awsContainerCredentialsFullUri??process.env[se],t=e.awsContainerAuthorizationToken??process.env[ae],a=e.awsContainerAuthorizationTokenFile??process.env[ce],o=e.logger?.constructor?.name==="NoOpLogger"||!e.logger?.warn?console.warn:e.logger.warn.bind(e.logger);if(c&&r)o("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."),o("awsContainerCredentialsFullUri will take precedence.");if(t&&a)o("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."),o("awsContainerAuthorizationToken will take precedence.");if(r)s=r;else if(c)s=`${re}${c}`;else throw new w.CredentialsProviderError(`No HTTP credential provider host provided.
|
|
5
|
-
Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`,{logger:e.logger});let m=new URL(s);(0,F.checkUrl)(m,e.logger);let b=L.NodeHttpHandler.create({requestTimeout:e.timeout??1000,connectionTimeout:e.timeout??1000});return(0,ee.retryWrapper)(async()=>{let d=(0,x.createGetRequest)(m);if(t)d.headers.Authorization=t;else if(a)d.headers.Authorization=(await Z.default.readFile(a)).toString();try{let i=await b.handle(d);return(0,x.getCredentials)(i.response).then((K)=>(0,Y.setCredentialFeature)(K,"CREDENTIALS_HTTP","z"))}catch(i){throw new w.CredentialsProviderError(String(i),{logger:e.logger})}},e.maxRetries??3,e.timeout??1000)};E.fromHttp=ne});var ie=n((f)=>{Object.defineProperty(f,"__esModule",{value:!0});f.fromHttp=void 0;var oe=O();Object.defineProperty(f,"fromHttp",{enumerable:!0,get:function(){return oe.fromHttp}})});export default ie();
|
|
6
|
-
|
|
7
|
-
//# debugId=E8FA38774A0516D364756E2164756E21
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cC9kaXN0LWNqcy9mcm9tSHR0cC9jaGVja1VybC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL3JlcXVlc3RIZWxwZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvZnJvbUh0dHAvcmV0cnktd3JhcHBlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwL2Rpc3QtY2pzL2Zyb21IdHRwL2Zyb21IdHRwLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHAvZGlzdC1janMvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNoZWNrVXJsID0gdm9pZCAwO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY0ID0gXCIxMjcuMC4wLjAvOFwiO1xuY29uc3QgTE9PUEJBQ0tfQ0lEUl9JUHY2ID0gXCI6OjEvMTI4XCI7XG5jb25zdCBFQ1NfQ09OVEFJTkVSX0hPU1QgPSBcIjE2OS4yNTQuMTcwLjJcIjtcbmNvbnN0IEVLU19DT05UQUlORVJfSE9TVF9JUHY0ID0gXCIxNjkuMjU0LjE3MC4yM1wiO1xuY29uc3QgRUtTX0NPTlRBSU5FUl9IT1NUX0lQdjYgPSBcIltmZDAwOmVjMjo6MjNdXCI7XG5jb25zdCBjaGVja1VybCA9ICh1cmwsIGxvZ2dlcikgPT4ge1xuICAgIGlmICh1cmwucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodXJsLmhvc3RuYW1lID09PSBFQ1NfQ09OVEFJTkVSX0hPU1QgfHxcbiAgICAgICAgdXJsLmhvc3RuYW1lID09PSBFS1NfQ09OVEFJTkVSX0hPU1RfSVB2NCB8fFxuICAgICAgICB1cmwuaG9zdG5hbWUgPT09IEVLU19DT05UQUlORVJfSE9TVF9JUHY2KSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVybC5ob3N0bmFtZS5pbmNsdWRlcyhcIltcIikpIHtcbiAgICAgICAgaWYgKHVybC5ob3N0bmFtZSA9PT0gXCJbOjoxXVwiIHx8IHVybC5ob3N0bmFtZSA9PT0gXCJbMDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAxXVwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmICh1cmwuaG9zdG5hbWUgPT09IFwibG9jYWxob3N0XCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpcENvbXBvbmVudHMgPSB1cmwuaG9zdG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBpblJhbmdlID0gKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gcGFyc2VJbnQoY29tcG9uZW50LCAxMCk7XG4gICAgICAgICAgICByZXR1cm4gMCA8PSBudW0gJiYgbnVtIDw9IDI1NTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlwQ29tcG9uZW50c1swXSA9PT0gXCIxMjdcIiAmJlxuICAgICAgICAgICAgaW5SYW5nZShpcENvbXBvbmVudHNbMV0pICYmXG4gICAgICAgICAgICBpblJhbmdlKGlwQ29tcG9uZW50c1syXSkgJiZcbiAgICAgICAgICAgIGluUmFuZ2UoaXBDb21wb25lbnRzWzNdKSAmJlxuICAgICAgICAgICAgaXBDb21wb25lbnRzLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgVVJMIG5vdCBhY2NlcHRlZC4gSXQgbXVzdCBlaXRoZXIgYmUgSFRUUFMgb3IgbWF0Y2ggb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC0gbG9vcGJhY2sgQ0lEUiAxMjcuMC4wLjAvOCBvciBbOjoxLzEyOF1cbiAgLSBFQ1MgY29udGFpbmVyIGhvc3QgMTY5LjI1NC4xNzAuMlxuICAtIEVLUyBjb250YWluZXIgaG9zdCAxNjkuMjU0LjE3MC4yMyBvciBbZmQwMDplYzI6OjIzXWAsIHsgbG9nZ2VyIH0pO1xufTtcbmV4cG9ydHMuY2hlY2tVcmwgPSBjaGVja1VybDtcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmNyZWF0ZUdldFJlcXVlc3QgPSBjcmVhdGVHZXRSZXF1ZXN0O1xuZXhwb3J0cy5nZXRDcmVkZW50aWFscyA9IGdldENyZWRlbnRpYWxzO1xuY29uc3QgcHJvcGVydHlfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyXCIpO1xuY29uc3QgcHJvdG9jb2xfaHR0cF8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvdG9jb2wtaHR0cFwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX3N0cmVhbV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1zdHJlYW1cIik7XG5mdW5jdGlvbiBjcmVhdGVHZXRSZXF1ZXN0KHVybCkge1xuICAgIHJldHVybiBuZXcgcHJvdG9jb2xfaHR0cF8xLkh0dHBSZXF1ZXN0KHtcbiAgICAgICAgcHJvdG9jb2w6IHVybC5wcm90b2NvbCxcbiAgICAgICAgaG9zdG5hbWU6IHVybC5ob3N0bmFtZSxcbiAgICAgICAgcG9ydDogTnVtYmVyKHVybC5wb3J0KSxcbiAgICAgICAgcGF0aDogdXJsLnBhdGhuYW1lLFxuICAgICAgICBxdWVyeTogQXJyYXkuZnJvbSh1cmwuc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkucmVkdWNlKChhY2MsIFtrLCB2XSkgPT4ge1xuICAgICAgICAgICAgYWNjW2tdID0gdjtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgZnJhZ21lbnQ6IHVybC5oYXNoLFxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHMocmVzcG9uc2UsIGxvZ2dlcikge1xuICAgIGNvbnN0IHN0cmVhbSA9ICgwLCB1dGlsX3N0cmVhbV8xLnNka1N0cmVhbU1peGluKShyZXNwb25zZS5ib2R5KTtcbiAgICBjb25zdCBzdHIgPSBhd2FpdCBzdHJlYW0udHJhbnNmb3JtVG9TdHJpbmcoKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJzZWQuQWNjZXNzS2V5SWQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuU2VjcmV0QWNjZXNzS2V5ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLlRva2VuICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICB0eXBlb2YgcGFyc2VkLkV4cGlyYXRpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihcIkhUVFAgY3JlZGVudGlhbCBwcm92aWRlciByZXNwb25zZSBub3Qgb2YgdGhlIHJlcXVpcmVkIGZvcm1hdCwgYW4gb2JqZWN0IG1hdGNoaW5nOiBcIiArXG4gICAgICAgICAgICAgICAgXCJ7IEFjY2Vzc0tleUlkOiBzdHJpbmcsIFNlY3JldEFjY2Vzc0tleTogc3RyaW5nLCBUb2tlbjogc3RyaW5nLCBFeHBpcmF0aW9uOiBzdHJpbmcocmZjMzMzOSkgfVwiLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IHBhcnNlZC5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogcGFyc2VkLlNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogcGFyc2VkLlRva2VuLFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogKDAsIHNtaXRoeV9jbGllbnRfMS5wYXJzZVJmYzMzMzlEYXRlVGltZSkocGFyc2VkLkV4cGlyYXRpb24pLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDUwMCkge1xuICAgICAgICBsZXQgcGFyc2VkQm9keSA9IHt9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGFyc2VkQm9keSA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkgeyB9XG4gICAgICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IHByb3BlcnR5X3Byb3ZpZGVyXzEuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c0NvZGV9YCwgeyBsb2dnZXIgfSksIHtcbiAgICAgICAgICAgIENvZGU6IHBhcnNlZEJvZHkuQ29kZSxcbiAgICAgICAgICAgIE1lc3NhZ2U6IHBhcnNlZEJvZHkuTWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWAsIHsgbG9nZ2VyIH0pO1xufVxuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gdm9pZCAwO1xuY29uc3QgcmV0cnlXcmFwcGVyID0gKHRvUmV0cnksIG1heFJldHJpZXMsIGRlbGF5TXMpID0+IHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heFJldHJpZXM7ICsraSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdG9SZXRyeSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRvUmV0cnkoKTtcbiAgICB9O1xufTtcbmV4cG9ydHMucmV0cnlXcmFwcGVyID0gcmV0cnlXcmFwcGVyO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgY2xpZW50XzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9jbGllbnRcIik7XG5jb25zdCBub2RlX2h0dHBfaGFuZGxlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXJcIik7XG5jb25zdCBwcm9wZXJ0eV9wcm92aWRlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvcHJvcGVydHktcHJvdmlkZXJcIik7XG5jb25zdCBwcm9taXNlc18xID0gdHNsaWJfMS5fX2ltcG9ydERlZmF1bHQocmVxdWlyZShcImZzL3Byb21pc2VzXCIpKTtcbmNvbnN0IGNoZWNrVXJsXzEgPSByZXF1aXJlKFwiLi9jaGVja1VybFwiKTtcbmNvbnN0IHJlcXVlc3RIZWxwZXJzXzEgPSByZXF1aXJlKFwiLi9yZXF1ZXN0SGVscGVyc1wiKTtcbmNvbnN0IHJldHJ5X3dyYXBwZXJfMSA9IHJlcXVpcmUoXCIuL3JldHJ5LXdyYXBwZXJcIik7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUklcIjtcbmNvbnN0IERFRkFVTFRfTElOS19MT0NBTF9IT1NUID0gXCJodHRwOi8vMTY5LjI1NC4xNzAuMlwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSSA9IFwiQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19GVUxMX1VSSVwiO1xuY29uc3QgQVdTX0NPTlRBSU5FUl9BVVRIT1JJWkFUSU9OX1RPS0VOX0ZJTEUgPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXCI7XG5jb25zdCBBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4gPSBcIkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTlwiO1xuY29uc3QgZnJvbUh0dHAgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgb3B0aW9ucy5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1odHRwIC0gZnJvbUh0dHBcIik7XG4gICAgbGV0IGhvc3Q7XG4gICAgY29uc3QgcmVsYXRpdmUgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzUmVsYXRpdmVVcmkgPz8gcHJvY2Vzcy5lbnZbQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkldO1xuICAgIGNvbnN0IGZ1bGwgPSBvcHRpb25zLmF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSA/PyBwcm9jZXNzLmVudltBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX0ZVTExfVVJJXTtcbiAgICBjb25zdCB0b2tlbiA9IG9wdGlvbnMuYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl07XG4gICAgY29uc3QgdG9rZW5GaWxlID0gb3B0aW9ucy5hd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW5GaWxlID8/IHByb2Nlc3MuZW52W0FXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTl9GSUxFXTtcbiAgICBjb25zdCB3YXJuID0gb3B0aW9ucy5sb2dnZXI/LmNvbnN0cnVjdG9yPy5uYW1lID09PSBcIk5vT3BMb2dnZXJcIiB8fCAhb3B0aW9ucy5sb2dnZXI/Lndhcm5cbiAgICAgICAgPyBjb25zb2xlLndhcm5cbiAgICAgICAgOiBvcHRpb25zLmxvZ2dlci53YXJuLmJpbmQob3B0aW9ucy5sb2dnZXIpO1xuICAgIGlmIChyZWxhdGl2ZSAmJiBmdWxsKSB7XG4gICAgICAgIHdhcm4oXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLWh0dHA6IFwiICtcbiAgICAgICAgICAgIFwieW91IGhhdmUgc2V0IGJvdGggYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNSZWxhdGl2ZVVyaSBhbmQgYXdzQ29udGFpbmVyQ3JlZGVudGlhbHNGdWxsVXJpLlwiKTtcbiAgICAgICAgd2FybihcImF3c0NvbnRhaW5lckNyZWRlbnRpYWxzRnVsbFVyaSB3aWxsIHRha2UgcHJlY2VkZW5jZS5cIik7XG4gICAgfVxuICAgIGlmICh0b2tlbiAmJiB0b2tlbkZpbGUpIHtcbiAgICAgICAgd2FybihcIkBhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItaHR0cDogXCIgK1xuICAgICAgICAgICAgXCJ5b3UgaGF2ZSBzZXQgYm90aCBhd3NDb250YWluZXJBdXRob3JpemF0aW9uVG9rZW4gYW5kIGF3c0NvbnRhaW5lckF1dGhvcml6YXRpb25Ub2tlbkZpbGUuXCIpO1xuICAgICAgICB3YXJuKFwiYXdzQ29udGFpbmVyQXV0aG9yaXphdGlvblRva2VuIHdpbGwgdGFrZSBwcmVjZWRlbmNlLlwiKTtcbiAgICB9XG4gICAgaWYgKGZ1bGwpIHtcbiAgICAgICAgaG9zdCA9IGZ1bGw7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJlbGF0aXZlKSB7XG4gICAgICAgIGhvc3QgPSBgJHtERUZBVUxUX0xJTktfTE9DQUxfSE9TVH0ke3JlbGF0aXZlfWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYE5vIEhUVFAgY3JlZGVudGlhbCBwcm92aWRlciBob3N0IHByb3ZpZGVkLlxuU2V0IEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUkkgb3IgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkuYCwgeyBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH0pO1xuICAgIH1cbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGhvc3QpO1xuICAgICgwLCBjaGVja1VybF8xLmNoZWNrVXJsKSh1cmwsIG9wdGlvbnMubG9nZ2VyKTtcbiAgICBjb25zdCByZXF1ZXN0SGFuZGxlciA9IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZSh7XG4gICAgICAgIHJlcXVlc3RUaW1lb3V0OiBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCxcbiAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IG9wdGlvbnMudGltZW91dCA/PyAxMDAwLFxuICAgIH0pO1xuICAgIHJldHVybiAoMCwgcmV0cnlfd3JhcHBlcl8xLnJldHJ5V3JhcHBlcikoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKDAsIHJlcXVlc3RIZWxwZXJzXzEuY3JlYXRlR2V0UmVxdWVzdCkodXJsKTtcbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IHRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRva2VuRmlsZSkge1xuICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLkF1dGhvcml6YXRpb24gPSAoYXdhaXQgcHJvbWlzZXNfMS5kZWZhdWx0LnJlYWRGaWxlKHRva2VuRmlsZSkpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3RIYW5kbGVyLmhhbmRsZShyZXF1ZXN0KTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgcmVxdWVzdEhlbHBlcnNfMS5nZXRDcmVkZW50aWFscykocmVzdWx0LnJlc3BvbnNlKS50aGVuKChjcmVkcykgPT4gKDAsIGNsaWVudF8xLnNldENyZWRlbnRpYWxGZWF0dXJlKShjcmVkcywgXCJDUkVERU5USUFMU19IVFRQXCIsIFwielwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eV9wcm92aWRlcl8xLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihTdHJpbmcoZSksIHsgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB9KTtcbiAgICAgICAgfVxuICAgIH0sIG9wdGlvbnMubWF4UmV0cmllcyA/PyAzLCBvcHRpb25zLnRpbWVvdXQgPz8gMTAwMCk7XG59O1xuZXhwb3J0cy5mcm9tSHR0cCA9IGZyb21IdHRwO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbUh0dHAgPSB2b2lkIDA7XG52YXIgZnJvbUh0dHBfMSA9IHJlcXVpcmUoXCIuL2Zyb21IdHRwL2Zyb21IdHRwXCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZnJvbUh0dHBcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZyb21IdHRwXzEuZnJvbUh0dHA7IH0gfSk7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOFVBQ0EsQ0FBTyxTQUFlLEpBQVMsT0FBYyxMQUFFLEFBQU8sRUFBSyxDQUFDLEVBQ3BELFdBQWdCLE9BQ3hCLElBQU0sTUFHQSxFQUFxQixnQkFDckIsRUFBMEIsaUJBQzFCLEVBQTBCLGlCQUMxQixFQUFXLENBQUMsRUFBSyxJQUFXLENBQzlCLEdBQUksRUFBSSxXQUFhLFNBQ2pCLE9BRUosR0FBSSxFQUFJLFdBQWEsR0FDakIsRUFBSSxXQUFhLEdBQ2pCLEVBQUksV0FBYSxFQUNqQixPQUVKLEdBQUksRUFBSSxTQUFTLFNBQVMsR0FBRyxHQUN6QixHQUFJLEVBQUksV0FBYSxTQUFXLEVBQUksV0FBYSw0Q0FDN0MsT0FHSCxLQUNELEdBQUksRUFBSSxXQUFhLFlBQ2pCLE9BRUosSUFBTSxFQUFlLEVBQUksU0FBUyxNQUFNLEdBQUcsRUFDckMsRUFBVSxDQUFDLElBQWMsQ0FDM0IsSUFBTSxFQUFNLFNBQVMsRUFBVyxFQUFFLEVBQ2xDLE1BQU8sSUFBSyxHQUFPLEdBQU8sS0FFOUIsR0FBSSxFQUFhLEtBQU8sT0FDcEIsRUFBUSxFQUFhLEVBQUUsR0FDdkIsRUFBUSxFQUFhLEVBQUUsR0FDdkIsRUFBUSxFQUFhLEVBQUUsR0FDdkIsRUFBYSxTQUFXLEVBQ3hCLE9BR1IsTUFBTSxJQUFJLEVBQW9CLHlCQUF5QjtBQUFBO0FBQUE7QUFBQSx5REFHRCxDQUFF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QUNSLEVBQVEsT0FBTyxLQUFLLEtBQUssRUFBUSxNQUFNLEVBQzdDLEdBQUksR0FBWSxFQUNaLEVBQUssNkhBQ3lGLEVBQzlGLEVBQUssc0RBQXNELEVBRS9ELEdBQUksR0FBUyxFQUNULEVBQUssNkhBQ3lGLEVBQzlGLEVBQUssc0RBQXNELEVBRS9ELEdBQUksRUFDQSxFQUFPLEVBRU4sUUFBSSxFQUNMLEVBQU8sR0FBRyxLQUEwQixJQUdwQyxXQUFNLElBQUksRUFBb0IseUJBQXlCO0FBQUEsbUZBQ3FCLENBQUUsT0FBUSxFQUFRLE1BQU8sQ0FBQyxFQUUxRyxJQUFNLEVBQU0sSUFBSSxJQUFJLENBQUksR0FDdkIsRUFBRyxFQUFXLFVBQVUsRUFBSyxFQUFRLE1BQU0sRUFDNUMsSUFBTSxFQUFpQixFQUFvQixnQkFBZ0IsT0FBTyxDQUM5RCxlQUFnQixFQUFRLFNBQVcsS0FDbkMsa0JBQW1CLEVBQVEsU0FBVyxJQUMxQyxDQUFDLEVBQ0QsT0FBUSxFQUFHLEdBQWdCLGNBQWMsU0FBWSxDQUNqRCxJQUFNLEdBQVcsRUFBRyxFQUFpQixrQkFBa0IsQ0FBRyxFQUMxRCxHQUFJLEVBQ0EsRUFBUSxRQUFRLGNBQWdCLEVBRS9CLFFBQUksRUFDTCxFQUFRLFFBQVEsZUFBaUIsTUFBTSxFQUFXLFFBQVEsU0FBUyxDQUFTLEdBQUcsU0FBUyxFQUU1RixHQUFJLENBQ0EsSUFBTSxFQUFTLE1BQU0sRUFBZSxPQUFPLENBQU8sRUFDbEQsT0FBUSxFQUFHLEVBQWlCLGdCQUFnQixFQUFPLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBVyxFQUFHLEVBQVMsc0JBQXNCLEVBQU8sbUJBQW9CLEdBQUcsQ0FBQyxFQUVuSixNQUFPLEVBQUcsQ0FDTixNQUFNLElBQUksRUFBb0IseUJBQXlCLE9BQU8sQ0FBQyxFQUFHLENBQUUsT0FBUSxFQUFRLE1BQU8sQ0FBQyxJQUVqRyxFQUFRLFlBQWMsRUFBRyxFQUFRLFNBQVcsSUFBSSxHQUUvQyxXQUFXLG9CQ3BFbkIsT0FBTyxlQUFlLEVBQVMsYUFBYyxDQUFFLE1BQU8sRUFBSyxDQUFDLEVBQ3BELFdBQWdCLE9BQ3hCLElBQUksT0FDSixPQUFPLGVBQWUsRUFBUyxXQUFZLENBQUUsV0FBWSxHQUFNLElBQUssUUFBUyxFQUFHLENBQUUsT0FBTyxHQUFXLFNBQVksQ0FBQyIsCiAgImRlYnVnSWQiOiAiRThGQTM4Nzc0QTA1MTZEMzY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
package/dist/chunk-bh9mv7m6.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{y as P}from"./chunk-r8mj3nq7.js";import"./chunk-kvnavsh3.js";import{R as w}from"./chunk-t5j8kj9p.js";import{S as p}from"./chunk-4pkw7jk4.js";import{V as u,W as a}from"./chunk-e9mt878v.js";var d,t,f,E,v,x=(r,e,s)=>{if(e.Version!==1)throw Error(`Profile ${r} credential_process did not return Version 1.`);if(e.AccessKeyId===void 0||e.SecretAccessKey===void 0)throw Error(`Profile ${r} credential_process returned invalid credentials.`);if(e.Expiration){let i=new Date;if(new Date(e.Expiration)<i)throw Error(`Profile ${r} credential_process returned expired credentials.`)}let o=e.AccountId;if(!o&&s?.[r]?.aws_account_id)o=s[r].aws_account_id;let n={accessKeyId:e.AccessKeyId,secretAccessKey:e.SecretAccessKey,...e.SessionToken&&{sessionToken:e.SessionToken},...e.Expiration&&{expiration:new Date(e.Expiration)},...e.CredentialScope&&{credentialScope:e.CredentialScope},...o&&{accountId:o}};return v.setCredentialFeature(n,"CREDENTIALS_PROCESS","w"),n},h=async(r,e,s)=>{let o=e[r];if(e[r]){let n=o.credential_process;if(n!==void 0){let i=E.promisify(d.externalDataInterceptor?.getTokenRecord?.().exec??f.exec);try{let{stdout:c}=await i(n),l;try{l=JSON.parse(c.trim())}catch{throw Error(`Profile ${r} credential_process returned invalid JSON.`)}return x(r,l,e)}catch(c){throw new t.CredentialsProviderError(c.message,{logger:s})}}else throw new t.CredentialsProviderError(`Profile ${r} did not contain credential_process.`,{logger:s})}else throw new t.CredentialsProviderError(`Profile ${r} could not be found in shared credentials file.`,{logger:s})},y=(r={})=>async({callerClientConfig:e}={})=>{r.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");let s=await d.parseKnownFiles(r);return h(d.getProfileName({profile:r.profile??e?.profile}),s,r.logger)},S;var _=u(()=>{d=P(),t=p(),f=a("child_process"),E=a("util"),v=w();S=y});_();export{S as fromProcess};export default {get fromProcess(){return S}};
|
|
2
|
-
|
|
3
|
-
//# debugId=5AAB3CC9622A87E964756E2164756E21
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItcHJvY2Vzcy9kaXN0LWNqcy9pbmRleC5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICIndXNlIHN0cmljdCc7XG5cbnZhciBzaGFyZWRJbmlGaWxlTG9hZGVyID0gcmVxdWlyZSgnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJyk7XG52YXIgcHJvcGVydHlQcm92aWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcHJvcGVydHktcHJvdmlkZXInKTtcbnZhciBjaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpO1xudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG52YXIgY2xpZW50ID0gcmVxdWlyZSgnQGF3cy1zZGsvY29yZS9jbGllbnQnKTtcblxuY29uc3QgZ2V0VmFsaWRhdGVkUHJvY2Vzc0NyZWRlbnRpYWxzID0gKHByb2ZpbGVOYW1lLCBkYXRhLCBwcm9maWxlcykgPT4ge1xuICAgIGlmIChkYXRhLlZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY3JlZGVudGlhbF9wcm9jZXNzIGRpZCBub3QgcmV0dXJuIFZlcnNpb24gMS5gKTtcbiAgICB9XG4gICAgaWYgKGRhdGEuQWNjZXNzS2V5SWQgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNlY3JldEFjY2Vzc0tleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIGNyZWRlbnRpYWxzLmApO1xuICAgIH1cbiAgICBpZiAoZGF0YS5FeHBpcmF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IG5ldyBEYXRlKGRhdGEuRXhwaXJhdGlvbik7XG4gICAgICAgIGlmIChleHBpcmVUaW1lIDwgY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBleHBpcmVkIGNyZWRlbnRpYWxzLmApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBhY2NvdW50SWQgPSBkYXRhLkFjY291bnRJZDtcbiAgICBpZiAoIWFjY291bnRJZCAmJiBwcm9maWxlcz8uW3Byb2ZpbGVOYW1lXT8uYXdzX2FjY291bnRfaWQpIHtcbiAgICAgICAgYWNjb3VudElkID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdLmF3c19hY2NvdW50X2lkO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGRhdGEuQWNjZXNzS2V5SWQsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogZGF0YS5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgIC4uLihkYXRhLlNlc3Npb25Ub2tlbiAmJiB7IHNlc3Npb25Ub2tlbjogZGF0YS5TZXNzaW9uVG9rZW4gfSksXG4gICAgICAgIC4uLihkYXRhLkV4cGlyYXRpb24gJiYgeyBleHBpcmF0aW9uOiBuZXcgRGF0ZShkYXRhLkV4cGlyYXRpb24pIH0pLFxuICAgICAgICAuLi4oZGF0YS5DcmVkZW50aWFsU2NvcGUgJiYgeyBjcmVkZW50aWFsU2NvcGU6IGRhdGEuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgIH07XG4gICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1BST0NFU1NcIiwgXCJ3XCIpO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5cbmNvbnN0IHJlc29sdmVQcm9jZXNzQ3JlZGVudGlhbHMgPSBhc3luYyAocHJvZmlsZU5hbWUsIHByb2ZpbGVzLCBsb2dnZXIpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gcHJvZmlsZXNbcHJvZmlsZU5hbWVdO1xuICAgIGlmIChwcm9maWxlc1twcm9maWxlTmFtZV0pIHtcbiAgICAgICAgY29uc3QgY3JlZGVudGlhbFByb2Nlc3MgPSBwcm9maWxlW1wiY3JlZGVudGlhbF9wcm9jZXNzXCJdO1xuICAgICAgICBpZiAoY3JlZGVudGlhbFByb2Nlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXhlY1Byb21pc2UgPSB1dGlsLnByb21pc2lmeShzaGFyZWRJbmlGaWxlTG9hZGVyLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKCkuZXhlYyA/PyBjaGlsZF9wcm9jZXNzLmV4ZWMpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXhlY1Byb21pc2UoY3JlZGVudGlhbFByb2Nlc3MpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKHN0ZG91dC50cmltKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBQcm9maWxlICR7cHJvZmlsZU5hbWV9IGNyZWRlbnRpYWxfcHJvY2VzcyByZXR1cm5lZCBpbnZhbGlkIEpTT04uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRWYWxpZGF0ZWRQcm9jZXNzQ3JlZGVudGlhbHMocHJvZmlsZU5hbWUsIGRhdGEsIHByb2ZpbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihlcnJvci5tZXNzYWdlLCB7IGxvZ2dlciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBwcm9wZXJ0eVByb3ZpZGVyLkNyZWRlbnRpYWxzUHJvdmlkZXJFcnJvcihgUHJvZmlsZSAke3Byb2ZpbGVOYW1lfSBkaWQgbm90IGNvbnRhaW4gY3JlZGVudGlhbF9wcm9jZXNzLmAsIHsgbG9nZ2VyIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlQcm92aWRlci5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoYFByb2ZpbGUgJHtwcm9maWxlTmFtZX0gY291bGQgbm90IGJlIGZvdW5kIGluIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLmAsIHtcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuY29uc3QgZnJvbVByb2Nlc3MgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoeyBjYWxsZXJDbGllbnRDb25maWcgfSA9IHt9KSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci1wcm9jZXNzIC0gZnJvbVByb2Nlc3NcIik7XG4gICAgY29uc3QgcHJvZmlsZXMgPSBhd2FpdCBzaGFyZWRJbmlGaWxlTG9hZGVyLnBhcnNlS25vd25GaWxlcyhpbml0KTtcbiAgICByZXR1cm4gcmVzb2x2ZVByb2Nlc3NDcmVkZW50aWFscyhzaGFyZWRJbmlGaWxlTG9hZGVyLmdldFByb2ZpbGVOYW1lKHtcbiAgICAgICAgcHJvZmlsZTogaW5pdC5wcm9maWxlID8/IGNhbGxlckNsaWVudENvbmZpZz8ucHJvZmlsZSxcbiAgICB9KSwgcHJvZmlsZXMsIGluaXQubG9nZ2VyKTtcbn07XG5cbmV4cG9ydHMuZnJvbVByb2Nlc3MgPSBmcm9tUHJvY2VzcztcbiIKICBdLAogICJtYXBwaW5ncyI6ICIrTkFFSSxKQUNBLEpBQ0EsSkFDQSxKQUNBLEVBRUUsRUFBaUMsQ0FBQyxFQUFhLEVBQU0sSUFBYSxDQUNwRSxHQUFJLEVBQUssVUFBWSxFQUNqQixNQUFNLE1BQU0sV0FBVyxnREFBMEQsRUFFckYsR0FBSSxFQUFLLGNBQWdCLFFBQWEsRUFBSyxrQkFBb0IsT0FDM0QsTUFBTSxNQUFNLFdBQVcsb0RBQThELEVBRXpGLEdBQUksRUFBSyxXQUFZLENBQ2pCLElBQU0sRUFBYyxJQUFJLEtBRXhCLEdBRG1CLElBQUksS0FBSyxFQUFLLFVBQVUsRUFDMUIsRUFDYixNQUFNLE1BQU0sV0FBVyxvREFBOEQsRUFHN0YsSUFBSSxFQUFZLEVBQUssVUFDckIsR0FBSSxDQUFDLEdBQWEsSUFBVyxJQUFjLGVBQ3ZDLEVBQVksRUFBUyxHQUFhLGVBRXRDLElBQU0sRUFBYyxDQUNoQixZQUFhLEVBQUssWUFDbEIsZ0JBQWlCLEVBQUssbUJBQ2xCLEVBQUssY0FBZ0IsQ0FBRSxhQUFjLEVBQUssWUFBYSxLQUN2RCxFQUFLLFlBQWMsQ0FBRSxXQUFZLElBQUksS0FBSyxFQUFLLFVBQVUsQ0FBRSxLQUMzRCxFQUFLLGlCQUFtQixDQUFFLGdCQUFpQixFQUFLLGVBQWdCLEtBQ2hFLEdBQWEsQ0FBRSxXQUFVLENBQ2pDLEVBRUEsT0FEQSxFQUFPLHFCQUFxQixFQUFhLHNCQUF1QixHQUFHLEVBQzVELEdBR0wsRUFBNEIsTUFBTyxFQUFhLEVBQVUsSUFBVyxDQUN2RSxJQUFNLEVBQVUsRUFBUyxHQUN6QixHQUFJLEVBQVMsR0FBYyxDQUN2QixJQUFNLEVBQW9CLEVBQVEsbUJBQ2xDLEdBQUksSUFBc0IsT0FBVyxDQUNqQyxJQUFNLEVBQWMsRUFBSyxVQUFVLEVBQW9CLHlCQUF5QixpQkFBaUIsRUFBRSxNQUFRLEVBQWMsSUFBSSxFQUM3SCxHQUFJLENBQ0EsSUFBUSxVQUFXLE1BQU0sRUFBWSxDQUFpQixFQUNsRCxFQUNKLEdBQUksQ0FDQSxFQUFPLEtBQUssTUFBTSxFQUFPLEtBQUssQ0FBQyxFQUVuQyxLQUFNLENBQ0YsTUFBTSxNQUFNLFdBQVcsNkNBQXVELEVBRWxGLE9BQU8sRUFBK0IsRUFBYSxFQUFNLENBQVEsRUFFckUsTUFBTyxFQUFPLENBQ1YsTUFBTSxJQUFJLEVBQWlCLHlCQUF5QixFQUFNLFFBQVMsQ0FBRSxRQUFPLENBQUMsR0FJakYsV0FBTSxJQUFJLEVBQWlCLHlCQUF5QixXQUFXLHdDQUFtRCxDQUFFLFFBQU8sQ0FBQyxFQUloSSxXQUFNLElBQUksRUFBaUIseUJBQXlCLFdBQVcsbURBQThELENBQ3pILFFBQ0osQ0FBQyxHQUlILEVBQWMsQ0FBQyxFQUFPLENBQUMsSUFBTSxPQUFTLHNCQUF1QixDQUFDLElBQU0sQ0FDdEUsRUFBSyxRQUFRLE1BQU0sb0RBQW9ELEVBQ3ZFLElBQU0sRUFBVyxNQUFNLEVBQW9CLGdCQUFnQixDQUFJLEVBQy9ELE9BQU8sRUFBMEIsRUFBb0IsZUFBZSxDQUNoRSxRQUFTLEVBQUssU0FBVyxHQUFvQixPQUNqRCxDQUFDLEVBQUcsRUFBVSxFQUFLLE1BQU0sR0FHckIsZUE1RUosTUFDQSxNQUNBLHFCQUNBLFlBQ0EsTUF3RUksRUFBYyIsCiAgImRlYnVnSWQiOiAiNUFBQjNDQzk2MjJBODdFOTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
package/dist/chunk-dkk1zwm0.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{y as P}from"./chunk-r8mj3nq7.js";import{S}from"./chunk-4pkw7jk4.js";import{U as a}from"./chunk-e9mt878v.js";var p=a((w)=>{function y(e){let r={};if(e=e.replace(/^\?/,""),e)for(let t of e.split("&")){let[o,n=null]=t.split("=");if(o=decodeURIComponent(o),n)n=decodeURIComponent(n);if(!(o in r))r[o]=n;else if(Array.isArray(r[o]))r[o].push(n);else r[o]=[r[o],n]}return r}w.parseQueryString=y});var N=a((v)=>{var F=p(),d=(e)=>{if(typeof e==="string")return d(new URL(e));let{hostname:r,pathname:t,port:o,protocol:n,search:i}=e,s;if(i)s=F.parseQueryString(i);return{hostname:r,port:o?parseInt(o):void 0,protocol:n,path:t,query:s}};v.parseUrl=d});var Q=a((q)=>{var c=S(),u=P();function m(e){try{let r=new Set(Array.from(e.match(/([A-Z_]){3,}/g)??[]));return r.delete("CONFIG"),r.delete("CONFIG_PREFIX_SEPARATOR"),r.delete("ENV"),[...r].join(", ")}catch(r){return e}}var I=(e,r)=>async()=>{try{let t=e(process.env,r);if(t===void 0)throw Error();return t}catch(t){throw new c.CredentialsProviderError(t.message||`Not found in ENV: ${m(e.toString())}`,{logger:r?.logger})}},A=(e,{preferredFile:r="config",...t}={})=>async()=>{let o=u.getProfileName(t),{configFile:n,credentialsFile:i}=await u.loadSharedConfigFiles(t),s=i[o]||{},f=n[o]||{},h=r==="config"?{...s,...f}:{...f,...s};try{let g=e(h,r==="config"?n:i);if(g===void 0)throw Error();return g}catch(l){throw new c.CredentialsProviderError(l.message||`Not found in config files w/ profile [${o}]: ${m(e.toString())}`,{logger:t.logger})}},R=(e)=>typeof e==="function",U=(e)=>R(e)?async()=>await e():c.fromStatic(e),O=({environmentVariableSelector:e,configFileSelector:r,default:t},o={})=>{let{signingName:n,logger:i}=o,s={signingName:n,logger:i};return c.memoize(c.chain(I(e,s),A(r,o),U(t)))};q.loadConfig=O});
|
|
2
|
-
export{N as w,Q as x};
|
|
3
|
-
|
|
4
|
-
//# debugId=7DACEC938334C48664756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvcXVlcnlzdHJpbmctcGFyc2VyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9Ac21pdGh5L3VybC1wYXJzZXIvZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvbm9kZS1jb25maWctcHJvdmlkZXIvZGlzdC1janMvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBwYXJzZVF1ZXJ5U3RyaW5nKHF1ZXJ5c3RyaW5nKSB7XG4gICAgY29uc3QgcXVlcnkgPSB7fTtcbiAgICBxdWVyeXN0cmluZyA9IHF1ZXJ5c3RyaW5nLnJlcGxhY2UoL15cXD8vLCBcIlwiKTtcbiAgICBpZiAocXVlcnlzdHJpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBwYWlyIG9mIHF1ZXJ5c3RyaW5nLnNwbGl0KFwiJlwiKSkge1xuICAgICAgICAgICAgbGV0IFtrZXksIHZhbHVlID0gbnVsbF0gPSBwYWlyLnNwbGl0KFwiPVwiKTtcbiAgICAgICAgICAgIGtleSA9IGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoa2V5IGluIHF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVtrZXldLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcXVlcnlba2V5XSA9IFtxdWVyeVtrZXldLCB2YWx1ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5O1xufVxuXG5leHBvcnRzLnBhcnNlUXVlcnlTdHJpbmcgPSBwYXJzZVF1ZXJ5U3RyaW5nO1xuIiwKICAgICIndXNlIHN0cmljdCc7XG5cbnZhciBxdWVyeXN0cmluZ1BhcnNlciA9IHJlcXVpcmUoJ0BzbWl0aHkvcXVlcnlzdHJpbmctcGFyc2VyJyk7XG5cbmNvbnN0IHBhcnNlVXJsID0gKHVybCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdXJsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBwYXJzZVVybChuZXcgVVJMKHVybCkpO1xuICAgIH1cbiAgICBjb25zdCB7IGhvc3RuYW1lLCBwYXRobmFtZSwgcG9ydCwgcHJvdG9jb2wsIHNlYXJjaCB9ID0gdXJsO1xuICAgIGxldCBxdWVyeTtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgIHF1ZXJ5ID0gcXVlcnlzdHJpbmdQYXJzZXIucGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBob3N0bmFtZSxcbiAgICAgICAgcG9ydDogcG9ydCA/IHBhcnNlSW50KHBvcnQpIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgcGF0aDogcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgIH07XG59O1xuXG5leHBvcnRzLnBhcnNlVXJsID0gcGFyc2VVcmw7XG4iLAogICAgIid1c2Ugc3RyaWN0JztcblxudmFyIHByb3BlcnR5UHJvdmlkZXIgPSByZXF1aXJlKCdAc21pdGh5L3Byb3BlcnR5LXByb3ZpZGVyJyk7XG52YXIgc2hhcmVkSW5pRmlsZUxvYWRlciA9IHJlcXVpcmUoJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcicpO1xuXG5mdW5jdGlvbiBnZXRTZWxlY3Rvck5hbWUoZnVuY3Rpb25TdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25zdGFudHMgPSBuZXcgU2V0KEFycmF5LmZyb20oZnVuY3Rpb25TdHJpbmcubWF0Y2goLyhbQS1aX10pezMsfS9nKSA/PyBbXSkpO1xuICAgICAgICBjb25zdGFudHMuZGVsZXRlKFwiQ09ORklHXCIpO1xuICAgICAgICBjb25zdGFudHMuZGVsZXRlKFwiQ09ORklHX1BSRUZJWF9TRVBBUkFUT1JcIik7XG4gICAgICAgIGNvbnN0YW50cy5kZWxldGUoXCJFTlZcIik7XG4gICAgICAgIHJldHVybiBbLi4uY29uc3RhbnRzXS5qb2luKFwiLCBcIik7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvblN0cmluZztcbiAgICB9XG59XG5cbmNvbnN0IGZyb21FbnYgPSAoZW52VmFyU2VsZWN0b3IsIG9wdGlvbnMpID0+IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBlbnZWYXJTZWxlY3Rvcihwcm9jZXNzLmVudiwgb3B0aW9ucyk7XG4gICAgICAgIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGUubWVzc2FnZSB8fCBgTm90IGZvdW5kIGluIEVOVjogJHtnZXRTZWxlY3Rvck5hbWUoZW52VmFyU2VsZWN0b3IudG9TdHJpbmcoKSl9YCwgeyBsb2dnZXI6IG9wdGlvbnM/LmxvZ2dlciB9KTtcbiAgICB9XG59O1xuXG5jb25zdCBmcm9tU2hhcmVkQ29uZmlnRmlsZXMgPSAoY29uZmlnU2VsZWN0b3IsIHsgcHJlZmVycmVkRmlsZSA9IFwiY29uZmlnXCIsIC4uLmluaXQgfSA9IHt9KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvZmlsZSA9IHNoYXJlZEluaUZpbGVMb2FkZXIuZ2V0UHJvZmlsZU5hbWUoaW5pdCk7XG4gICAgY29uc3QgeyBjb25maWdGaWxlLCBjcmVkZW50aWFsc0ZpbGUgfSA9IGF3YWl0IHNoYXJlZEluaUZpbGVMb2FkZXIubG9hZFNoYXJlZENvbmZpZ0ZpbGVzKGluaXQpO1xuICAgIGNvbnN0IHByb2ZpbGVGcm9tQ3JlZGVudGlhbHMgPSBjcmVkZW50aWFsc0ZpbGVbcHJvZmlsZV0gfHwge307XG4gICAgY29uc3QgcHJvZmlsZUZyb21Db25maWcgPSBjb25maWdGaWxlW3Byb2ZpbGVdIHx8IHt9O1xuICAgIGNvbnN0IG1lcmdlZFByb2ZpbGUgPSBwcmVmZXJyZWRGaWxlID09PSBcImNvbmZpZ1wiXG4gICAgICAgID8geyAuLi5wcm9maWxlRnJvbUNyZWRlbnRpYWxzLCAuLi5wcm9maWxlRnJvbUNvbmZpZyB9XG4gICAgICAgIDogeyAuLi5wcm9maWxlRnJvbUNvbmZpZywgLi4ucHJvZmlsZUZyb21DcmVkZW50aWFscyB9O1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNmZ0ZpbGUgPSBwcmVmZXJyZWRGaWxlID09PSBcImNvbmZpZ1wiID8gY29uZmlnRmlsZSA6IGNyZWRlbnRpYWxzRmlsZTtcbiAgICAgICAgY29uc3QgY29uZmlnVmFsdWUgPSBjb25maWdTZWxlY3RvcihtZXJnZWRQcm9maWxlLCBjZmdGaWxlKTtcbiAgICAgICAgaWYgKGNvbmZpZ1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25maWdWYWx1ZTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IHByb3BlcnR5UHJvdmlkZXIuQ3JlZGVudGlhbHNQcm92aWRlckVycm9yKGUubWVzc2FnZSB8fCBgTm90IGZvdW5kIGluIGNvbmZpZyBmaWxlcyB3LyBwcm9maWxlIFske3Byb2ZpbGV9XTogJHtnZXRTZWxlY3Rvck5hbWUoY29uZmlnU2VsZWN0b3IudG9TdHJpbmcoKSl9YCwgeyBsb2dnZXI6IGluaXQubG9nZ2VyIH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGlzRnVuY3Rpb24gPSAoZnVuYykgPT4gdHlwZW9mIGZ1bmMgPT09IFwiZnVuY3Rpb25cIjtcbmNvbnN0IGZyb21TdGF0aWMgPSAoZGVmYXVsdFZhbHVlKSA9PiBpc0Z1bmN0aW9uKGRlZmF1bHRWYWx1ZSkgPyBhc3luYyAoKSA9PiBhd2FpdCBkZWZhdWx0VmFsdWUoKSA6IHByb3BlcnR5UHJvdmlkZXIuZnJvbVN0YXRpYyhkZWZhdWx0VmFsdWUpO1xuXG5jb25zdCBsb2FkQ29uZmlnID0gKHsgZW52aXJvbm1lbnRWYXJpYWJsZVNlbGVjdG9yLCBjb25maWdGaWxlU2VsZWN0b3IsIGRlZmF1bHQ6IGRlZmF1bHRWYWx1ZSB9LCBjb25maWd1cmF0aW9uID0ge30pID0+IHtcbiAgICBjb25zdCB7IHNpZ25pbmdOYW1lLCBsb2dnZXIgfSA9IGNvbmZpZ3VyYXRpb247XG4gICAgY29uc3QgZW52T3B0aW9ucyA9IHsgc2lnbmluZ05hbWUsIGxvZ2dlciB9O1xuICAgIHJldHVybiBwcm9wZXJ0eVByb3ZpZGVyLm1lbW9pemUocHJvcGVydHlQcm92aWRlci5jaGFpbihmcm9tRW52KGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvciwgZW52T3B0aW9ucyksIGZyb21TaGFyZWRDb25maWdGaWxlcyhjb25maWdGaWxlU2VsZWN0b3IsIGNvbmZpZ3VyYXRpb24pLCBmcm9tU3RhdGljKGRlZmF1bHRWYWx1ZSkpKTtcbn07XG5cbmV4cG9ydHMubG9hZENvbmZpZyA9IGxvYWRDb25maWc7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiNklBRUEsR0FBUyxMQUFnQixDQUFDLEVBQWEsQ0FDbkMsSUFBTSxFQUFRLENBQUMsRUFFZixHQURBLEVBQWMsRUFBWSxRQUFRLE1BQU8sRUFBRSxFQUN2QyxFQUNBLFFBQVcsS0FBUSxFQUFZLE1BQU0sR0FBRyxFQUFHLENBQ3ZDLElB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
|
package/dist/chunk-dyyrwzgp.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{b as Mt}from"./chunk-ggeka6d3.js";import{c as xt,d as ft,e as Ct,f as ee,g as at,h as nt,j as Z,k as gt,l as We,m as ed,n as cr,o as Gt,p as xe,q as Rt,r as kt,s as Tt,t as ct,u as Ot,v as ar}from"./chunk-p85vag28.js";import{w as It,x as Ut}from"./chunk-dkk1zwm0.js";import"./chunk-r8mj3nq7.js";import{A as vt,C as wt,F as Ir,G as _t,K as O,z as $r}from"./chunk-fbbbv2d4.js";import{L as mt}from"./chunk-ekwpcdh4.js";import{O as Pt}from"./chunk-whenq5kz.js";import"./chunk-kvnavsh3.js";import{R as id}from"./chunk-t5j8kj9p.js";import"./chunk-4pkw7jk4.js";import{U as c}from"./chunk-e9mt878v.js";var $=c((le)=>{Object.defineProperty(le,"__esModule",{value:!0});le.resolveHttpAuthSchemeConfig=le.resolveStsAuthConfig=le.defaultSTSHttpAuthSchemeProvider=le.defaultSTSHttpAuthSchemeParametersProvider=void 0;var mr=Z(),X=$r(),Wr=m(),xr=async(e,r,d)=>{return{operation:(0,X.getSmithyContext)(r).operation,region:await(0,X.normalizeProvider)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}};le.defaultSTSHttpAuthSchemeParametersProvider=xr;function fr(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:e.region},propertiesExtractor:(r,d)=>({signingProperties:{config:r,context:d}})}}function Cr(e){return{schemeId:"smithy.api#noAuth"}}var gr=(e)=>{let r=[];switch(e.operation){case"AssumeRoleWithWebIdentity":{r.push(Cr(e));break}default:r.push(fr(e))}return r};le.defaultSTSHttpAuthSchemeProvider=gr;var et=(e)=>Object.assign(e,{stsClientCtor:Wr.STSClient});le.resolveStsAuthConfig=et;var rt=(e)=>{let r=le.resolveStsAuthConfig(e),d=(0,mr.resolveAwsSdkSigV4Config)(r);return Object.assign(d,{authSchemePreference:(0,X.normalizeProvider)(e.authSchemePreference??[])})};le.resolveHttpAuthSchemeConfig=rt});var W=c((Ee)=>{Object.defineProperty(Ee,"__esModule",{value:!0});Ee.commonParams=Ee.resolveClientEndpointParameters=void 0;var ot=(e)=>{return Object.assign(e,{useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,useGlobalEndpoint:e.useGlobalEndpoint??!1,defaultSigningName:"sts"})};Ee.resolveClientEndpointParameters=ot;Ee.commonParams={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var Be=c((Ve)=>{Object.defineProperty(Ve,"__esModule",{value:!0});Ve.ruleSet=void 0;var we="required",t="type",u="fn",s="argv",y="ref",ve=!1,x=!0,S="booleanEquals",p="stringEquals",_e="sigv4",Ue="sts",Ge="us-east-1",n="endpoint",Ie="https://sts.{Region}.{PartitionResult#dnsSuffix}",D="tree",T="error",C="getAttr",ce={[we]:!1,[t]:"string"},f={[we]:!0,default:!1,[t]:"boolean"},Me={[y]:"Endpoint"},De={[u]:"isSet",[s]:[{[y]:"Region"}]},E={[y]:"Region"},Ne={[u]:"aws.partition",[s]:[E],assign:"PartitionResult"},Re={[y]:"UseFIPS"},ke={[y]:"UseDualStack"},v={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:_e,signingName:Ue,signingRegion:Ge}]},headers:{}},I={},Se={conditions:[{[u]:p,[s]:[E,"aws-global"]}],[n]:v,[t]:n},Te={[u]:S,[s]:[Re,!0]},Oe={[u]:S,[s]:[ke,!0]},ye={[u]:C,[s]:[{[y]:"PartitionResult"},"supportsFIPS"]},je={[y]:"PartitionResult"},be={[u]:S,[s]:[!0,{[u]:C,[s]:[je,"supportsDualStack"]}]},Fe=[{[u]:"isSet",[s]:[Me]}],he=[Te],qe=[Oe],st={version:"1.0",parameters:{Region:ce,UseDualStack:f,UseFIPS:f,Endpoint:ce,UseGlobalEndpoint:f},rules:[{conditions:[{[u]:S,[s]:[{[y]:"UseGlobalEndpoint"},x]},{[u]:"not",[s]:Fe},De,Ne,{[u]:S,[s]:[Re,ve]},{[u]:S,[s]:[ke,ve]}],rules:[{conditions:[{[u]:p,[s]:[E,"ap-northeast-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"ap-south-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"ap-southeast-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"ap-southeast-2"]}],endpoint:v,[t]:n},Se,{conditions:[{[u]:p,[s]:[E,"ca-central-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"eu-central-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"eu-north-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"eu-west-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"eu-west-2"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"eu-west-3"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"sa-east-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,Ge]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"us-east-2"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"us-west-1"]}],endpoint:v,[t]:n},{conditions:[{[u]:p,[s]:[E,"us-west-2"]}],endpoint:v,[t]:n},{endpoint:{url:Ie,properties:{authSchemes:[{name:_e,signingName:Ue,signingRegion:"{Region}"}]},headers:I},[t]:n}],[t]:D},{conditions:Fe,rules:[{conditions:he,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[t]:T},{conditions:qe,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[t]:T},{endpoint:{url:Me,properties:I,headers:I},[t]:n}],[t]:D},{conditions:[De],rules:[{conditions:[Ne],rules:[{conditions:[Te,Oe],rules:[{conditions:[{[u]:S,[s]:[x,ye]},be],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:I,headers:I},[t]:n}],[t]:D},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[t]:T}],[t]:D},{conditions:he,rules:[{conditions:[{[u]:S,[s]:[ye,x]}],rules:[{conditions:[{[u]:p,[s]:[{[u]:C,[s]:[je,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:I,headers:I},[t]:n},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:I,headers:I},[t]:n}],[t]:D},{error:"FIPS is enabled but this partition does not support FIPS",[t]:T}],[t]:D},{conditions:qe,rules:[{conditions:[be],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:I,headers:I},[t]:n}],[t]:D},{error:"DualStack is enabled but this partition does not support DualStack",[t]:T}],[t]:D},Se,{endpoint:{url:Ie,properties:I,headers:I},[t]:n}],[t]:D}],[t]:D},{error:"Invalid Configuration: Missing Region",[t]:T}]};Ve.ruleSet=st});var ze=c((Le)=>{Object.defineProperty(Le,"__esModule",{value:!0});Le.defaultEndpointResolver=void 0;var lt=nt(),g=at(),it=Be(),pt=new g.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),Et=(e,r={})=>{return pt.get(e,()=>(0,g.resolveEndpoint)(it.ruleSet,{endpointParams:e,logger:r.logger}))};Le.defaultEndpointResolver=Et;g.customEndpointFunctions.aws=lt.awsEndpointFunctions});var Xe=c((Ke)=>{Object.defineProperty(Ke,"__esModule",{value:!0});Ke.getRuntimeConfig=void 0;var Dt=Z(),Nt=ct(),St=ee(),yt=O(),bt=It(),He=vt(),Je=Pt(),Ft=$(),ht=ze(),qt=(e)=>{return{apiVersion:"2011-06-15",base64Decoder:e?.base64Decoder??He.fromBase64,base64Encoder:e?.base64Encoder??He.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??ht.defaultEndpointResolver,extensions:e?.extensions??[],httpAuthSchemeProvider:e?.httpAuthSchemeProvider??Ft.defaultSTSHttpAuthSchemeProvider,httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(r)=>r.getIdentityProvider("aws.auth#sigv4"),signer:new Dt.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(r)=>r.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new St.NoAuthSigner}],logger:e?.logger??new yt.NoOpLogger,protocol:e?.protocol??new Nt.AwsQueryProtocol({defaultNamespace:"com.amazonaws.sts",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15"}),serviceId:e?.serviceId??"STS",urlParser:e?.urlParser??bt.parseUrl,utf8Decoder:e?.utf8Decoder??Je.fromUtf8,utf8Encoder:e?.utf8Encoder??Je.toUtf8}};Ke.getRuntimeConfig=qt});var ge=c((fe)=>{Object.defineProperty(fe,"__esModule",{value:!0});fe.getRuntimeConfig=void 0;var jt=_t(),Vt=jt.__importDefault(Mt()),re=Z(),Ze=Rt(),L=We(),At=ee(),Bt=kt(),$e=xe(),w=Ut(),me=wt(),Lt=Tt(),Yt=Gt(),zt=Xe(),Ht=O(),Jt=Ot(),Kt=O(),Qt=(e)=>{(0,Kt.emitWarningIfUnsupportedVersion)(process.version);let r=(0,Jt.resolveDefaultsModeConfig)(e),d=()=>r().then(Ht.loadConfigsForDefaultMode),l=(0,zt.getRuntimeConfig)(e);(0,re.emitWarningIfUnsupportedVersion)(process.version);let o={profile:e?.profile,logger:l.logger};return{...l,...e,runtime:"node",defaultsMode:r,authSchemePreference:e?.authSchemePreference??(0,w.loadConfig)(re.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,o),bodyLengthChecker:e?.bodyLengthChecker??Lt.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Ze.createDefaultUserAgentProvider)({serviceId:l.serviceId,clientVersion:Vt.default.version}),httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(P)=>P.getIdentityProvider("aws.auth#sigv4")||(async(i)=>await e.credentialDefaultProvider(i?.__config||{})()),signer:new re.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(P)=>P.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new At.NoAuthSigner}],maxAttempts:e?.maxAttempts??(0,w.loadConfig)($e.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,e),region:e?.region??(0,w.loadConfig)(L.NODE_REGION_CONFIG_OPTIONS,{...L.NODE_REGION_CONFIG_FILE_OPTIONS,...o}),requestHandler:me.NodeHttpHandler.create(e?.requestHandler??d),retryMode:e?.retryMode??(0,w.loadConfig)({...$e.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await d()).retryMode||Yt.DEFAULT_RETRY_MODE},e),sha256:e?.sha256??Bt.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??me.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,w.loadConfig)(L.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,o),useFipsEndpoint:e?.useFipsEndpoint??(0,w.loadConfig)(L.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,o),userAgentAppId:e?.userAgentAppId??(0,w.loadConfig)(Ze.NODE_APP_ID_CONFIG_OPTIONS,o)}};fe.getRuntimeConfig=Qt});var tr=c((er)=>{Object.defineProperty(er,"__esModule",{value:!0});er.resolveHttpAuthRuntimeConfig=er.getHttpAuthExtensionConfiguration=void 0;var Xt=(e)=>{let{httpAuthSchemes:r,httpAuthSchemeProvider:d,credentials:l}=e;return{setHttpAuthScheme(o){let P=r.findIndex((i)=>i.schemeId===o.schemeId);if(P===-1)r.push(o);else r.splice(P,1,o)},httpAuthSchemes(){return r},setHttpAuthSchemeProvider(o){d=o},httpAuthSchemeProvider(){return d},setCredentials(o){l=o},credentials(){return l}}};er.getHttpAuthExtensionConfiguration=Xt;var Zt=(e)=>{return{httpAuthSchemes:e.httpAuthSchemes(),httpAuthSchemeProvider:e.httpAuthSchemeProvider(),credentials:e.credentials()}};er.resolveHttpAuthRuntimeConfig=Zt});var ir=c((nr)=>{Object.defineProperty(nr,"__esModule",{value:!0});nr.resolveRuntimeExtensions=void 0;var dr=ar(),or=mt(),ur=O(),sr=tr(),Wt=(e,r)=>{let d=Object.assign((0,dr.getAwsRegionExtensionConfiguration)(e),(0,ur.getDefaultExtensionConfiguration)(e),(0,or.getHttpHandlerExtensionConfiguration)(e),(0,sr.getHttpAuthExtensionConfiguration)(e));return r.forEach((l)=>l.configure(d)),Object.assign(e,(0,dr.resolveAwsRegionExtensionConfiguration)(d),(0,ur.resolveDefaultRuntimeConfig)(d),(0,or.resolveHttpHandlerRuntimeConfig)(d),(0,sr.resolveHttpAuthRuntimeConfig)(d))};nr.resolveRuntimeExtensions=Wt});var m=c((de)=>{Object.defineProperty(de,"__esModule",{value:!0});de.STSClient=de.__Client=void 0;var pr=xt(),rd=ft(),td=Ct(),Er=gt(),dd=We(),te=ee(),od=Ir(),ud=ed(),sd=cr(),Pr=xe(),Dr=O();Object.defineProperty(de,"__Client",{enumerable:!0,get:function(){return Dr.Client}});var vr=$(),ad=W(),nd=ge(),ld=ir();class Nr extends Dr.Client{config;constructor(...[e]){let r=(0,nd.getRuntimeConfig)(e||{});super(r);this.initConfig=r;let d=(0,ad.resolveClientEndpointParameters)(r),l=(0,Er.resolveUserAgentConfig)(d),o=(0,Pr.resolveRetryConfig)(l),P=(0,dd.resolveRegionConfig)(o),i=(0,pr.resolveHostHeaderConfig)(P),F=(0,sd.resolveEndpointConfig)(i),h=(0,vr.resolveHttpAuthSchemeConfig)(F),q=(0,ld.resolveRuntimeExtensions)(h,e?.extensions||[]);this.config=q,this.middlewareStack.use((0,od.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,Er.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,Pr.getRetryPlugin)(this.config)),this.middlewareStack.use((0,ud.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,pr.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,rd.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,td.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,te.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:vr.defaultSTSHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async(k)=>new te.DefaultIdentityProviderConfig({"aws.auth#sigv4":k.credentials})})),this.middlewareStack.use((0,te.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}de.STSClient=Nr});var Ho=c((Y)=>{var V=m(),A=O(),yr=cr(),br=W(),b=Ir(),oe=id(),pd=ar(),N=class e extends A.ServiceException{constructor(r){super(r);Object.setPrototypeOf(this,e.prototype)}},Fr=class e extends N{name="ExpiredTokenException";$fault="client";constructor(r){super({name:"ExpiredTokenException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},hr=class e extends N{name="MalformedPolicyDocumentException";$fault="client";constructor(r){super({name:"MalformedPolicyDocumentException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},qr=class e extends N{name="PackedPolicyTooLargeException";$fault="client";constructor(r){super({name:"PackedPolicyTooLargeException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},wr=class e extends N{name="RegionDisabledException";$fault="client";constructor(r){super({name:"RegionDisabledException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},_r=class e extends N{name="IDPRejectedClaimException";$fault="client";constructor(r){super({name:"IDPRejectedClaimException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},Ur=class e extends N{name="InvalidIdentityTokenException";$fault="client";constructor(r){super({name:"InvalidIdentityTokenException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},Gr=class e extends N{name="IDPCommunicationErrorException";$fault="client";constructor(r){super({name:"IDPCommunicationErrorException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype)}},Ed="Arn",Pd="AccessKeyId",vd="AssumeRole",Id="AssumedRoleId",cd="AssumeRoleRequest",Dd="AssumeRoleResponse",ue="AssumedRoleUser",Nd="AssumeRoleWithWebIdentity",Sd="AssumeRoleWithWebIdentityRequest",yd="AssumeRoleWithWebIdentityResponse",bd="Audience",se="Credentials",Fd="ContextAssertion",Mr="DurationSeconds",hd="Expiration",qd="ExternalId",wd="ExpiredTokenException",_d="IDPCommunicationErrorException",Ud="IDPRejectedClaimException",Gd="InvalidIdentityTokenException",Md="Key",Rd="MalformedPolicyDocumentException",Rr="Policy",kr="PolicyArns",kd="ProviderArn",Td="ProvidedContexts",Od="ProvidedContextsListType",jd="ProvidedContext",Vd="PolicyDescriptorType",Ad="ProviderId",Tr="PackedPolicySize",Bd="PackedPolicyTooLargeException",Ld="Provider",Or="RoleArn",Yd="RegionDisabledException",jr="RoleSessionName",zd="SecretAccessKey",Hd="SubjectFromWebIdentityToken",ae="SourceIdentity",Jd="SerialNumber",Kd="SessionToken",Qd="Tags",Xd="TokenCode",Zd="TransitiveTagKeys",$d="Tag",md="Value",Wd="WebIdentityToken",xd="arn",fd="accessKeySecretType",_="awsQueryError",U="client",Cd="clientTokenType",G="error",M="httpError",R="message",gd="policyDescriptorListType",Vr="smithy.ts.sdk.synthetic.com.amazonaws.sts",eo="tagListType",a="com.amazonaws.sts",ro=[0,a,fd,8,0],to=[0,a,Cd,8,0],Ar=[3,a,ue,0,[Id,Ed],[0,0]],oo=[3,a,cd,0,[Or,jr,kr,Rr,Mr,Qd,Zd,qd,Jd,Xd,ae,Td],[0,0,()=>Lr,0,1,()=>yo,64,0,0,0,0,()=>So]],uo=[3,a,Dd,0,[se,ue,Tr,ae],[[()=>Br,0],()=>Ar,1,0]],so=[3,a,Sd,0,[Or,jr,Wd,Ad,kr,Rr,Mr],[0,0,[()=>to,0],0,()=>Lr,0,1]],ao=[3,a,yd,0,[se,Hd,ue,Tr,Ld,bd,ae],[[()=>Br,0],0,()=>Ar,1,0,0,0]],Br=[3,a,se,0,[Pd,zd,Kd,hd],[0,[()=>ro,0],0,4]],no=[-3,a,wd,{[G]:U,[M]:400,[_]:["ExpiredTokenException",400]},[R],[0]];b.TypeRegistry.for(a).registerError(no,Fr);var lo=[-3,a,_d,{[G]:U,[M]:400,[_]:["IDPCommunicationError",400]},[R],[0]];b.TypeRegistry.for(a).registerError(lo,Gr);var io=[-3,a,Ud,{[G]:U,[M]:403,[_]:["IDPRejectedClaim",403]},[R],[0]];b.TypeRegistry.for(a).registerError(io,_r);var po=[-3,a,Gd,{[G]:U,[M]:400,[_]:["InvalidIdentityToken",400]},[R],[0]];b.TypeRegistry.for(a).registerError(po,Ur);var Eo=[-3,a,Rd,{[G]:U,[M]:400,[_]:["MalformedPolicyDocument",400]},[R],[0]];b.TypeRegistry.for(a).registerError(Eo,hr);var Po=[-3,a,Bd,{[G]:U,[M]:400,[_]:["PackedPolicyTooLarge",400]},[R],[0]];b.TypeRegistry.for(a).registerError(Po,qr);var vo=[3,a,Vd,0,[xd],[0]],Io=[3,a,jd,0,[kd,Fd],[0,0]],co=[-3,a,Yd,{[G]:U,[M]:403,[_]:["RegionDisabledException",403]},[R],[0]];b.TypeRegistry.for(a).registerError(co,wr);var Do=[3,a,$d,0,[Md,md],[0,0]],No=[-3,Vr,"STSServiceException",0,[],[]];b.TypeRegistry.for(Vr).registerError(No,N);var Lr=[1,a,gd,0,()=>vo],So=[1,a,Od,0,()=>Io],yo=[1,a,eo,0,()=>Do],bo=[9,a,vd,0,()=>oo,()=>uo],Fo=[9,a,Nd,0,()=>so,()=>ao];class z extends A.Command.classBuilder().ep(br.commonParams).m(function(e,r,d,l){return[yr.getEndpointPlugin(d,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(bo).build(){}class H extends A.Command.classBuilder().ep(br.commonParams).m(function(e,r,d,l){return[yr.getEndpointPlugin(d,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(Fo).build(){}var ho={AssumeRoleCommand:z,AssumeRoleWithWebIdentityCommand:H};class ne extends V.STSClient{}A.createAggregatedClient(ho,ne);var Yr=(e)=>{if(typeof e?.Arn==="string"){let r=e.Arn.split(":");if(r.length>4&&r[4]!=="")return r[4]}return},zr=async(e,r,d,l={})=>{let o=typeof e==="function"?await e():e,P=typeof r==="function"?await r():r,i=await pd.stsRegionDefaultResolver(l)();return d?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${o} (credential provider clientConfig)`,`${P} (contextual client)`,`${i} (STS default: AWS_REGION, profile region, or us-east-1)`),o??P??i},qo=(e,r)=>{let d,l;return async(o,P)=>{if(l=o,!d){let{logger:k=e?.parentClientConfig?.logger,profile:j=e?.parentClientConfig?.profile,region:J,requestHandler:B=e?.parentClientConfig?.requestHandler,credentialProviderLogger:K,userAgentAppId:Q=e?.parentClientConfig?.userAgentAppId}=e,Xr=await zr(J,e?.parentClientConfig?.region,K,{logger:k,profile:j}),Zr=!Hr(B);d=new r({...e,userAgentAppId:Q,profile:j,credentialDefaultProvider:()=>async()=>l,region:Xr,requestHandler:Zr?B:void 0,logger:k})}let{Credentials:i,AssumedRoleUser:F}=await d.send(new z(P));if(!i||!i.AccessKeyId||!i.SecretAccessKey)throw Error(`Invalid response from STS.assumeRole call with role ${P.RoleArn}`);let h=Yr(F),q={accessKeyId:i.AccessKeyId,secretAccessKey:i.SecretAccessKey,sessionToken:i.SessionToken,expiration:i.Expiration,...i.CredentialScope&&{credentialScope:i.CredentialScope},...h&&{accountId:h}};return oe.setCredentialFeature(q,"CREDENTIALS_STS_ASSUME_ROLE","i"),q}},wo=(e,r)=>{let d;return async(l)=>{if(!d){let{logger:h=e?.parentClientConfig?.logger,profile:q=e?.parentClientConfig?.profile,region:k,requestHandler:j=e?.parentClientConfig?.requestHandler,credentialProviderLogger:J,userAgentAppId:B=e?.parentClientConfig?.userAgentAppId}=e,K=await zr(k,e?.parentClientConfig?.region,J,{logger:h,profile:q}),Q=!Hr(j);d=new r({...e,userAgentAppId:B,profile:q,region:K,requestHandler:Q?j:void 0,logger:h})}let{Credentials:o,AssumedRoleUser:P}=await d.send(new H(l));if(!o||!o.AccessKeyId||!o.SecretAccessKey)throw Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${l.RoleArn}`);let i=Yr(P),F={accessKeyId:o.AccessKeyId,secretAccessKey:o.SecretAccessKey,sessionToken:o.SessionToken,expiration:o.Expiration,...o.CredentialScope&&{credentialScope:o.CredentialScope},...i&&{accountId:i}};if(i)oe.setCredentialFeature(F,"RESOLVED_ACCOUNT_ID","T");return oe.setCredentialFeature(F,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),F}},Hr=(e)=>{return e?.metadata?.handlerProtocol==="h2"},Jr=(e,r)=>{if(!r)return e;else return class extends e{constructor(l){super(l);for(let o of r)this.middlewareStack.use(o)}}},Kr=(e={},r)=>qo(e,Jr(V.STSClient,r)),Qr=(e={},r)=>wo(e,Jr(V.STSClient,r)),_o=(e)=>(r)=>e({roleAssumer:Kr(r),roleAssumerWithWebIdentity:Qr(r),...r});Object.defineProperty(Y,"$Command",{enumerable:!0,get:function(){return A.Command}});Y.AssumeRoleCommand=z;Y.AssumeRoleWithWebIdentityCommand=H;Y.ExpiredTokenException=Fr;Y.IDPCommunicationErrorException=Gr;Y.IDPRejectedClaimException=_r;Y.InvalidIdentityTokenException=Ur;Y.MalformedPolicyDocumentException=hr;Y.PackedPolicyTooLargeException=qr;Y.RegionDisabledException=wr;Y.STS=ne;Y.STSServiceException=N;Y.decorateDefaultCredentialProvider=_o;Y.getDefaultRoleAssumer=Kr;Y.getDefaultRoleAssumerWithWebIdentity=Qr;Object.keys(V).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(Y,e))Object.defineProperty(Y,e,{enumerable:!0,get:function(){return V[e]}})})});export default Ho();
|
|
2
|
-
export{Ho as a};
|
|
3
|
-
|
|
4
|
-
//# debugId=6A5CF3ECC21D27B164756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zdHMvZW5kcG9pbnQvRW5kcG9pbnRQYXJhbWV0ZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9ydWxlc2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zdHMvcnVudGltZUNvbmZpZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zdHMvYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24uanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL3J1bnRpbWVFeHRlbnNpb25zLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3N0cy9TVFNDbGllbnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3RzL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLnJlc29sdmVTdHNBdXRoQ29uZmlnID0gZXhwb3J0cy5kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCB1dGlsX21pZGRsZXdhcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtbWlkZGxld2FyZVwiKTtcbmNvbnN0IFNUU0NsaWVudF8xID0gcmVxdWlyZShcIi4uL1NUU0NsaWVudFwiKTtcbmNvbnN0IGRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGFzeW5jIChjb25maWcsIGNvbnRleHQsIGlucHV0KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEuZ2V0U21pdGh5Q29udGV4dCkoY29udGV4dCkub3BlcmF0aW9uLFxuICAgICAgICByZWdpb246IChhd2FpdCAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5yZWdpb24pKCkpIHx8XG4gICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImV4cGVjdGVkIGByZWdpb25gIHRvIGJlIGNvbmZpZ3VyZWQgZm9yIGBhd3MuYXV0aCNzaWd2NGBcIik7XG4gICAgICAgICAgICB9KSgpLFxuICAgIH07XG59O1xuZXhwb3J0cy5kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI7XG5mdW5jdGlvbiBjcmVhdGVBd3NBdXRoU2lndjRIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBuYW1lOiBcInN0c1wiLFxuICAgICAgICAgICAgcmVnaW9uOiBhdXRoUGFyYW1ldGVycy5yZWdpb24sXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXNFeHRyYWN0b3I6IChjb25maWcsIGNvbnRleHQpID0+ICh7XG4gICAgICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICB9O1xufVxuY29uc3QgZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSAoYXV0aFBhcmFtZXRlcnMpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gW107XG4gICAgc3dpdGNoIChhdXRoUGFyYW1ldGVycy5vcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTVFNIdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlU3RzQXV0aENvbmZpZyA9IChpbnB1dCkgPT4gT2JqZWN0LmFzc2lnbihpbnB1dCwge1xuICAgIHN0c0NsaWVudEN0b3I6IFNUU0NsaWVudF8xLlNUU0NsaWVudCxcbn0pO1xuZXhwb3J0cy5yZXNvbHZlU3RzQXV0aENvbmZpZyA9IHJlc29sdmVTdHNBdXRoQ29uZmlnO1xuY29uc3QgcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ18wID0gKDAsIGV4cG9ydHMucmVzb2x2ZVN0c0F1dGhDb25maWcpKGNvbmZpZyk7XG4gICAgY29uc3QgY29uZmlnXzEgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnXzApO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18xLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5jb21tb25QYXJhbXMgPSBleHBvcnRzLnJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMgPSB2b2lkIDA7XG5jb25zdCByZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzID0gKG9wdGlvbnMpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7XG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IG9wdGlvbnMudXNlRmlwc0VuZHBvaW50ID8/IGZhbHNlLFxuICAgICAgICB1c2VHbG9iYWxFbmRwb2ludDogb3B0aW9ucy51c2VHbG9iYWxFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInN0c1wiLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnM7XG5leHBvcnRzLmNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VHbG9iYWxFbmRwb2ludDogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VHbG9iYWxFbmRwb2ludFwiIH0sXG4gICAgVXNlRklQUzogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VGaXBzRW5kcG9pbnRcIiB9LFxuICAgIEVuZHBvaW50OiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcImVuZHBvaW50XCIgfSxcbiAgICBSZWdpb246IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwicmVnaW9uXCIgfSxcbiAgICBVc2VEdWFsU3RhY2s6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwidXNlRHVhbHN0YWNrRW5kcG9pbnRcIiB9LFxufTtcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnJ1bGVTZXQgPSB2b2lkIDA7XG5jb25zdCBGID0gXCJyZXF1aXJlZFwiLCBHID0gXCJ0eXBlXCIsIEggPSBcImZuXCIsIEkgPSBcImFyZ3ZcIiwgSiA9IFwicmVmXCI7XG5jb25zdCBhID0gZmFsc2UsIGIgPSB0cnVlLCBjID0gXCJib29sZWFuRXF1YWxzXCIsIGQgPSBcInN0cmluZ0VxdWFsc1wiLCBlID0gXCJzaWd2NFwiLCBmID0gXCJzdHNcIiwgZyA9IFwidXMtZWFzdC0xXCIsIGggPSBcImVuZHBvaW50XCIsIGkgPSBcImh0dHBzOi8vc3RzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBqID0gXCJ0cmVlXCIsIGsgPSBcImVycm9yXCIsIGwgPSBcImdldEF0dHJcIiwgbSA9IHsgW0ZdOiBmYWxzZSwgW0ddOiBcInN0cmluZ1wiIH0sIG4gPSB7IFtGXTogdHJ1ZSwgXCJkZWZhdWx0XCI6IGZhbHNlLCBbR106IFwiYm9vbGVhblwiIH0sIG8gPSB7IFtKXTogXCJFbmRwb2ludFwiIH0sIHAgPSB7IFtIXTogXCJpc1NldFwiLCBbSV06IFt7IFtKXTogXCJSZWdpb25cIiB9XSB9LCBxID0geyBbSl06IFwiUmVnaW9uXCIgfSwgciA9IHsgW0hdOiBcImF3cy5wYXJ0aXRpb25cIiwgW0ldOiBbcV0sIFwiYXNzaWduXCI6IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgcyA9IHsgW0pdOiBcIlVzZUZJUFNcIiB9LCB0ID0geyBbSl06IFwiVXNlRHVhbFN0YWNrXCIgfSwgdSA9IHsgXCJ1cmxcIjogXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tXCIsIFwicHJvcGVydGllc1wiOiB7IFwiYXV0aFNjaGVtZXNcIjogW3sgXCJuYW1lXCI6IGUsIFwic2lnbmluZ05hbWVcIjogZiwgXCJzaWduaW5nUmVnaW9uXCI6IGcgfV0gfSwgXCJoZWFkZXJzXCI6IHt9IH0sIHYgPSB7fSwgdyA9IHsgXCJjb25kaXRpb25zXCI6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhd3MtZ2xvYmFsXCJdIH1dLCBbaF06IHUsIFtHXTogaCB9LCB4ID0geyBbSF06IGMsIFtJXTogW3MsIHRydWVdIH0sIHkgPSB7IFtIXTogYywgW0ldOiBbdCwgdHJ1ZV0gfSwgeiA9IHsgW0hdOiBsLCBbSV06IFt7IFtKXTogXCJQYXJ0aXRpb25SZXN1bHRcIiB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBBID0geyBbSl06IFwiUGFydGl0aW9uUmVzdWx0XCIgfSwgQiA9IHsgW0hdOiBjLCBbSV06IFt0cnVlLCB7IFtIXTogbCwgW0ldOiBbQSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCBDID0gW3sgW0hdOiBcImlzU2V0XCIsIFtJXTogW29dIH1dLCBEID0gW3hdLCBFID0gW3ldO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBtLCBVc2VEdWFsU3RhY2s6IG4sIFVzZUZJUFM6IG4sIEVuZHBvaW50OiBtLCBVc2VHbG9iYWxFbmRwb2ludDogbiB9LCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW0hdOiBjLCBbSV06IFt7IFtKXTogXCJVc2VHbG9iYWxFbmRwb2ludFwiIH0sIGJdIH0sIHsgW0hdOiBcIm5vdFwiLCBbSV06IEMgfSwgcCwgciwgeyBbSF06IGMsIFtJXTogW3MsIGFdIH0sIHsgW0hdOiBjLCBbSV06IFt0LCBhXSB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1ub3J0aGVhc3QtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJhcC1zb3V0aC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImFwLXNvdXRoZWFzdC0xXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImFwLXNvdXRoZWFzdC0yXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHcsIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImNhLWNlbnRyYWwtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS1jZW50cmFsLTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtbm9ydGgtMVwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJldS13ZXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwiZXUtd2VzdC0yXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcImV1LXdlc3QtM1wiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJzYS1lYXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIGddIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgY29uZGl0aW9uczogW3sgW0hdOiBkLCBbSV06IFtxLCBcInVzLWVhc3QtMlwiXSB9XSwgZW5kcG9pbnQ6IHUsIFtHXTogaCB9LCB7IGNvbmRpdGlvbnM6IFt7IFtIXTogZCwgW0ldOiBbcSwgXCJ1cy13ZXN0LTFcIl0gfV0sIGVuZHBvaW50OiB1LCBbR106IGggfSwgeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3EsIFwidXMtd2VzdC0yXCJdIH1dLCBlbmRwb2ludDogdSwgW0ddOiBoIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBpLCBwcm9wZXJ0aWVzOiB7IGF1dGhTY2hlbWVzOiBbeyBuYW1lOiBlLCBzaWduaW5nTmFtZTogZiwgc2lnbmluZ1JlZ2lvbjogXCJ7UmVnaW9ufVwiIH1dIH0sIGhlYWRlcnM6IHYgfSwgW0ddOiBoIH1dLCBbR106IGogfSwgeyBjb25kaXRpb25zOiBDLCBydWxlczogW3sgY29uZGl0aW9uczogRCwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgW0ddOiBrIH0sIHsgY29uZGl0aW9uczogRSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCBbR106IGsgfSwgeyBlbmRwb2ludDogeyB1cmw6IG8sIHByb3BlcnRpZXM6IHYsIGhlYWRlcnM6IHYgfSwgW0ddOiBoIH1dLCBbR106IGogfSwgeyBjb25kaXRpb25zOiBbcF0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcl0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeCwgeV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGMsIFtJXTogW2IsIHpdIH0sIEJdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IHYsIGhlYWRlcnM6IHYgfSwgW0ddOiBoIH1dLCBbR106IGogfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHsgY29uZGl0aW9uczogRCwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFtIXTogYywgW0ldOiBbeiwgYl0gfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbSF06IGQsIFtJXTogW3sgW0hdOiBsLCBbSV06IFtBLCBcIm5hbWVcIl0gfSwgXCJhd3MtdXMtZ292XCJdIH1dLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zdHMue1JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3N0cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgW0ddOiBrIH1dLCBbR106IGogfSwgeyBjb25kaXRpb25zOiBFLCBydWxlczogW3sgY29uZGl0aW9uczogW0JdLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc3RzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH0sIHsgZXJyb3I6IFwiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrXCIsIFtHXTogayB9XSwgW0ddOiBqIH0sIHcsIHsgZW5kcG9pbnQ6IHsgdXJsOiBpLCBwcm9wZXJ0aWVzOiB2LCBoZWFkZXJzOiB2IH0sIFtHXTogaCB9XSwgW0ddOiBqIH1dLCBbR106IGogfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIFtHXTogayB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiLCBcIlVzZUdsb2JhbEVuZHBvaW50XCJdLFxufSk7XG5jb25zdCBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IChlbmRwb2ludFBhcmFtcywgY29udGV4dCA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIGNhY2hlLmdldChlbmRwb2ludFBhcmFtcywgKCkgPT4gKDAsIHV0aWxfZW5kcG9pbnRzXzIucmVzb2x2ZUVuZHBvaW50KShydWxlc2V0XzEucnVsZVNldCwge1xuICAgICAgICBlbmRwb2ludFBhcmFtczogZW5kcG9pbnRQYXJhbXMsXG4gICAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgfSkpO1xufTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSBkZWZhdWx0RW5kcG9pbnRSZXNvbHZlcjtcbnV0aWxfZW5kcG9pbnRzXzIuY3VzdG9tRW5kcG9pbnRGdW5jdGlvbnMuYXdzID0gdXRpbF9lbmRwb2ludHNfMS5hd3NFbmRwb2ludEZ1bmN0aW9ucztcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHByb3RvY29sc18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmUvcHJvdG9jb2xzXCIpO1xuY29uc3QgY29yZV8yID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZVwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1cmxfcGFyc2VyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91cmwtcGFyc2VyXCIpO1xuY29uc3QgdXRpbF9iYXNlNjRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtYmFzZTY0XCIpO1xuY29uc3QgdXRpbF91dGY4XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXV0ZjhcIik7XG5jb25zdCBodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEgPSByZXF1aXJlKFwiLi9hdXRoL2h0dHBBdXRoU2NoZW1lUHJvdmlkZXJcIik7XG5jb25zdCBlbmRwb2ludFJlc29sdmVyXzEgPSByZXF1aXJlKFwiLi9lbmRwb2ludC9lbmRwb2ludFJlc29sdmVyXCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgYmFzZTY0RGVjb2RlcjogY29uZmlnPy5iYXNlNjREZWNvZGVyID8/IHV0aWxfYmFzZTY0XzEuZnJvbUJhc2U2NCxcbiAgICAgICAgYmFzZTY0RW5jb2RlcjogY29uZmlnPy5iYXNlNjRFbmNvZGVyID8/IHV0aWxfYmFzZTY0XzEudG9CYXNlNjQsXG4gICAgICAgIGRpc2FibGVIb3N0UHJlZml4OiBjb25maWc/LmRpc2FibGVIb3N0UHJlZml4ID8/IGZhbHNlLFxuICAgICAgICBlbmRwb2ludFByb3ZpZGVyOiBjb25maWc/LmVuZHBvaW50UHJvdmlkZXIgPz8gZW5kcG9pbnRSZXNvbHZlcl8xLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyLFxuICAgICAgICBleHRlbnNpb25zOiBjb25maWc/LmV4dGVuc2lvbnMgPz8gW10sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVQcm92aWRlciA/PyBodHRwQXV0aFNjaGVtZVByb3ZpZGVyXzEuZGVmYXVsdFNUU0h0dHBBdXRoU2NoZW1lUHJvdmlkZXIsXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnPy5odHRwQXV0aFNjaGVtZXMgPz8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcImF3cy5hdXRoI3NpZ3Y0XCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJhd3MuYXV0aCNzaWd2NFwiKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzEuQXdzU2RrU2lnVjRTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwic21pdGh5LmFwaSNub0F1dGhcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcInNtaXRoeS5hcGkjbm9BdXRoXCIpIHx8IChhc3luYyAoKSA9PiAoe30pKSxcbiAgICAgICAgICAgICAgICBzaWduZXI6IG5ldyBjb3JlXzIuTm9BdXRoU2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2dnZXI6IGNvbmZpZz8ubG9nZ2VyID8/IG5ldyBzbWl0aHlfY2xpZW50XzEuTm9PcExvZ2dlcigpLFxuICAgICAgICBwcm90b2NvbDogY29uZmlnPy5wcm90b2NvbCA/P1xuICAgICAgICAgICAgbmV3IHByb3RvY29sc18xLkF3c1F1ZXJ5UHJvdG9jb2woe1xuICAgICAgICAgICAgICAgIGRlZmF1bHROYW1lc3BhY2U6IFwiY29tLmFtYXpvbmF3cy5zdHNcIixcbiAgICAgICAgICAgICAgICB4bWxOYW1lc3BhY2U6IFwiaHR0cHM6Ly9zdHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMS0wNi0xNS9cIixcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBcIjIwMTEtMDYtMTVcIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU1RTXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gdXJsX3BhcnNlcl8xLnBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyB1dGlsX3V0ZjhfMS5mcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdXRpbF91dGY4XzEudG9VdGY4LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgY29yZV8yID0gcmVxdWlyZShcIkBzbWl0aHkvY29yZVwiKTtcbmNvbnN0IGhhc2hfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvaGFzaC1ub2RlXCIpO1xuY29uc3QgbWlkZGxld2FyZV9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1yZXRyeVwiKTtcbmNvbnN0IG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWNvbmZpZy1wcm92aWRlclwiKTtcbmNvbnN0IG5vZGVfaHR0cF9oYW5kbGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9ub2RlLWh0dHAtaGFuZGxlclwiKTtcbmNvbnN0IHV0aWxfYm9keV9sZW5ndGhfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1ib2R5LWxlbmd0aC1ub2RlXCIpO1xuY29uc3QgdXRpbF9yZXRyeV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1yZXRyeVwiKTtcbmNvbnN0IHJ1bnRpbWVDb25maWdfc2hhcmVkXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnLnNoYXJlZFwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCB1dGlsX2RlZmF1bHRzX21vZGVfbm9kZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1kZWZhdWx0cy1tb2RlLW5vZGVcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzIgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgZ2V0UnVudGltZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICAoMCwgc21pdGh5X2NsaWVudF8yLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24pKHByb2Nlc3MudmVyc2lvbik7XG4gICAgY29uc3QgZGVmYXVsdHNNb2RlID0gKDAsIHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEucmVzb2x2ZURlZmF1bHRzTW9kZUNvbmZpZykoY29uZmlnKTtcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSAoKSA9PiBkZWZhdWx0c01vZGUoKS50aGVuKHNtaXRoeV9jbGllbnRfMS5sb2FkQ29uZmlnc0ZvckRlZmF1bHRNb2RlKTtcbiAgICBjb25zdCBjbGllbnRTaGFyZWRWYWx1ZXMgPSAoMCwgcnVudGltZUNvbmZpZ19zaGFyZWRfMS5nZXRSdW50aW1lQ29uZmlnKShjb25maWcpO1xuICAgICgwLCBjb3JlXzEuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBsb2FkZXJDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGU6IGNvbmZpZz8ucHJvZmlsZSxcbiAgICAgICAgbG9nZ2VyOiBjbGllbnRTaGFyZWRWYWx1ZXMubG9nZ2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2xpZW50U2hhcmVkVmFsdWVzLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHJ1bnRpbWU6IFwibm9kZVwiLFxuICAgICAgICBkZWZhdWx0c01vZGUsXG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiBjb25maWc/LmF1dGhTY2hlbWVQcmVmZXJlbmNlID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvcmVfMS5OT0RFX0FVVEhfU0NIRU1FX1BSRUZFUkVOQ0VfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgYm9keUxlbmd0aENoZWNrZXI6IGNvbmZpZz8uYm9keUxlbmd0aENoZWNrZXIgPz8gdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEuY2FsY3VsYXRlQm9keUxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBjb25maWc/LmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlciA/P1xuICAgICAgICAgICAgKDAsIHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuY3JlYXRlRGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKSh7IHNlcnZpY2VJZDogY2xpZW50U2hhcmVkVmFsdWVzLnNlcnZpY2VJZCwgY2xpZW50VmVyc2lvbjogcGFja2FnZV9qc29uXzEuZGVmYXVsdC52ZXJzaW9uIH0pLFxuICAgICAgICBodHRwQXV0aFNjaGVtZXM6IGNvbmZpZz8uaHR0cEF1dGhTY2hlbWVzID8/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwiYXdzLmF1dGgjc2lndjRcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgKGFzeW5jIChpZFByb3BzKSA9PiBhd2FpdCBjb25maWcuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpZFByb3BzPy5fX2NvbmZpZyB8fCB7fSkoKSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8xLkF3c1Nka1NpZ1Y0U2lnbmVyKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlcjogKGlwYykgPT4gaXBjLmdldElkZW50aXR5UHJvdmlkZXIoXCJzbWl0aHkuYXBpI25vQXV0aFwiKSB8fCAoYXN5bmMgKCkgPT4gKHt9KSksXG4gICAgICAgICAgICAgICAgc2lnbmVyOiBuZXcgY29yZV8yLk5vQXV0aFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbWF4QXR0ZW1wdHM6IGNvbmZpZz8ubWF4QXR0ZW1wdHMgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykobWlkZGxld2FyZV9yZXRyeV8xLk5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlMsIGNvbmZpZyksXG4gICAgICAgIHJlZ2lvbjogY29uZmlnPy5yZWdpb24gPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19PUFRJT05TLCB7IC4uLmNvbmZpZ19yZXNvbHZlcl8xLk5PREVfUkVHSU9OX0NPTkZJR19GSUxFX09QVElPTlMsIC4uLmxvYWRlckNvbmZpZyB9KSxcbiAgICAgICAgcmVxdWVzdEhhbmRsZXI6IG5vZGVfaHR0cF9oYW5kbGVyXzEuTm9kZUh0dHBIYW5kbGVyLmNyZWF0ZShjb25maWc/LnJlcXVlc3RIYW5kbGVyID8/IGRlZmF1bHRDb25maWdQcm92aWRlciksXG4gICAgICAgIHJldHJ5TW9kZTogY29uZmlnPy5yZXRyeU1vZGUgPz9cbiAgICAgICAgICAgICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHtcbiAgICAgICAgICAgICAgICAuLi5taWRkbGV3YXJlX3JldHJ5XzEuTk9ERV9SRVRSWV9NT0RFX0NPTkZJR19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGFzeW5jICgpID0+IChhd2FpdCBkZWZhdWx0Q29uZmlnUHJvdmlkZXIoKSkucmV0cnlNb2RlIHx8IHV0aWxfcmV0cnlfMS5ERUZBVUxUX1JFVFJZX01PREUsXG4gICAgICAgICAgICB9LCBjb25maWcpLFxuICAgICAgICBzaGEyNTY6IGNvbmZpZz8uc2hhMjU2ID8/IGhhc2hfbm9kZV8xLkhhc2guYmluZChudWxsLCBcInNoYTI1NlwiKSxcbiAgICAgICAgc3RyZWFtQ29sbGVjdG9yOiBjb25maWc/LnN0cmVhbUNvbGxlY3RvciA/PyBub2RlX2h0dHBfaGFuZGxlcl8xLnN0cmVhbUNvbGxlY3RvcixcbiAgICAgICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGNvbmZpZz8udXNlRHVhbHN0YWNrRW5kcG9pbnQgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29uZmlnX3Jlc29sdmVyXzEuTk9ERV9VU0VfRFVBTFNUQUNLX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VGaXBzRW5kcG9pbnQ6IGNvbmZpZz8udXNlRmlwc0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0ZJUFNfRU5EUE9JTlRfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgICAgIHVzZXJBZ2VudEFwcElkOiBjb25maWc/LnVzZXJBZ2VudEFwcElkID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKHV0aWxfdXNlcl9hZ2VudF9ub2RlXzEuTk9ERV9BUFBfSURfQ09ORklHX09QVElPTlMsIGxvYWRlckNvbmZpZyksXG4gICAgfTtcbn07XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSBnZXRSdW50aW1lQ29uZmlnO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoUnVudGltZUNvbmZpZyA9IGV4cG9ydHMuZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gdm9pZCAwO1xuY29uc3QgZ2V0SHR0cEF1dGhFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICBjb25zdCBfaHR0cEF1dGhTY2hlbWVzID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZXM7XG4gICAgbGV0IF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gcnVudGltZUNvbmZpZy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyO1xuICAgIGxldCBfY3JlZGVudGlhbHMgPSBydW50aW1lQ29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNldEh0dHBBdXRoU2NoZW1lKGh0dHBBdXRoU2NoZW1lKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IF9odHRwQXV0aFNjaGVtZXMuZmluZEluZGV4KChzY2hlbWUpID0+IHNjaGVtZS5zY2hlbWVJZCA9PT0gaHR0cEF1dGhTY2hlbWUuc2NoZW1lSWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMucHVzaChodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVzLnNwbGljZShpbmRleCwgMSwgaHR0cEF1dGhTY2hlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBodHRwQXV0aFNjaGVtZXMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lcztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWVQcm92aWRlcihodHRwQXV0aFNjaGVtZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBfaHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBfY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2NyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb247XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5leHBvcnRzLnJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zID0gdm9pZCAwO1xuY29uc3QgcmVnaW9uX2NvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXJcIik7XG5jb25zdCBwcm90b2NvbF9odHRwXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm90b2NvbC1odHRwXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IGh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25cIik7XG5jb25zdCByZXNvbHZlUnVudGltZUV4dGVuc2lvbnMgPSAocnVudGltZUNvbmZpZywgZXh0ZW5zaW9ucykgPT4ge1xuICAgIGNvbnN0IGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKCgwLCByZWdpb25fY29uZmlnX3Jlc29sdmVyXzEuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbikocnVudGltZUNvbmZpZyksICgwLCBzbWl0aHlfY2xpZW50XzEuZ2V0RGVmYXVsdEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKHJ1bnRpbWVDb25maWcpLCAoMCwgcHJvdG9jb2xfaHR0cF8xLmdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbikocnVudGltZUNvbmZpZyksICgwLCBodHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb25fMS5nZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKHJ1bnRpbWVDb25maWcpKTtcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGV4dGVuc2lvbikgPT4gZXh0ZW5zaW9uLmNvbmZpZ3VyZShleHRlbnNpb25Db25maWd1cmF0aW9uKSk7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocnVudGltZUNvbmZpZywgKDAsIHJlZ2lvbl9jb25maWdfcmVzb2x2ZXJfMS5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbikoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksICgwLCBzbWl0aHlfY2xpZW50XzEucmVzb2x2ZURlZmF1bHRSdW50aW1lQ29uZmlnKShleHRlbnNpb25Db25maWd1cmF0aW9uKSwgKDAsIHByb3RvY29sX2h0dHBfMS5yZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnKShleHRlbnNpb25Db25maWd1cmF0aW9uKSwgKDAsIGh0dHBBdXRoRXh0ZW5zaW9uQ29uZmlndXJhdGlvbl8xLnJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcpKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbn07XG5leHBvcnRzLnJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucztcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlNUU0NsaWVudCA9IGV4cG9ydHMuX19DbGllbnQgPSB2b2lkIDA7XG5jb25zdCBtaWRkbGV3YXJlX2hvc3RfaGVhZGVyXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1ob3N0LWhlYWRlclwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfbG9nZ2VyXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvbWlkZGxld2FyZS1sb2dnZXJcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JlY3Vyc2lvbl9kZXRlY3Rpb25fMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9taWRkbGV3YXJlLXJlY3Vyc2lvbi1kZXRlY3Rpb25cIik7XG5jb25zdCBtaWRkbGV3YXJlX3VzZXJfYWdlbnRfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnRcIik7XG5jb25zdCBjb25maWdfcmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvbmZpZy1yZXNvbHZlclwiKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvcmVcIik7XG5jb25zdCBzY2hlbWFfMSA9IHJlcXVpcmUoXCJAc21pdGh5L2NvcmUvc2NoZW1hXCIpO1xuY29uc3QgbWlkZGxld2FyZV9jb250ZW50X2xlbmd0aF8xID0gcmVxdWlyZShcIkBzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aFwiKTtcbmNvbnN0IG1pZGRsZXdhcmVfZW5kcG9pbnRfMSA9IHJlcXVpcmUoXCJAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnRcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbWl0aHlfY2xpZW50XzEuQ2xpZW50OyB9IH0pO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgRW5kcG9pbnRQYXJhbWV0ZXJzXzEgPSByZXF1aXJlKFwiLi9lbmRwb2ludC9FbmRwb2ludFBhcmFtZXRlcnNcIik7XG5jb25zdCBydW50aW1lQ29uZmlnXzEgPSByZXF1aXJlKFwiLi9ydW50aW1lQ29uZmlnXCIpO1xuY29uc3QgcnVudGltZUV4dGVuc2lvbnNfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVFeHRlbnNpb25zXCIpO1xuY2xhc3MgU1RTQ2xpZW50IGV4dGVuZHMgc21pdGh5X2NsaWVudF8xLkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSAoMCwgcnVudGltZUNvbmZpZ18xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9ICgwLCBFbmRwb2ludFBhcmFtZXRlcnNfMS5yZXNvbHZlQ2xpZW50RW5kcG9pbnRQYXJhbWV0ZXJzKShfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSAoMCwgbWlkZGxld2FyZV91c2VyX2FnZW50XzEucmVzb2x2ZVVzZXJBZ2VudENvbmZpZykoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gKDAsIG1pZGRsZXdhcmVfcmV0cnlfMS5yZXNvbHZlUmV0cnlDb25maWcpKF9jb25maWdfMik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNCA9ICgwLCBjb25maWdfcmVzb2x2ZXJfMS5yZXNvbHZlUmVnaW9uQ29uZmlnKShfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSAoMCwgbWlkZGxld2FyZV9ob3N0X2hlYWRlcl8xLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKShfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSAoMCwgbWlkZGxld2FyZV9lbmRwb2ludF8xLnJlc29sdmVFbmRwb2ludENvbmZpZykoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gKDAsIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcpKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9ICgwLCBydW50aW1lRXh0ZW5zaW9uc18xLnJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucykoX2NvbmZpZ183LCBjb25maWd1cmF0aW9uPy5leHRlbnNpb25zIHx8IFtdKTtcbiAgICAgICAgdGhpcy5jb25maWcgPSBfY29uZmlnXzg7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZSgoMCwgc2NoZW1hXzEuZ2V0U2NoZW1hU2VyZGVQbHVnaW4pKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZSgoMCwgbWlkZGxld2FyZV91c2VyX2FnZW50XzEuZ2V0VXNlckFnZW50UGx1Z2luKSh0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoKDAsIG1pZGRsZXdhcmVfcmV0cnlfMS5nZXRSZXRyeVBsdWdpbikodGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKCgwLCBtaWRkbGV3YXJlX2NvbnRlbnRfbGVuZ3RoXzEuZ2V0Q29udGVudExlbmd0aFBsdWdpbikodGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKCgwLCBtaWRkbGV3YXJlX2hvc3RfaGVhZGVyXzEuZ2V0SG9zdEhlYWRlclBsdWdpbikodGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKCgwLCBtaWRkbGV3YXJlX2xvZ2dlcl8xLmdldExvZ2dlclBsdWdpbikodGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKCgwLCBtaWRkbGV3YXJlX3JlY3Vyc2lvbl9kZXRlY3Rpb25fMS5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4pKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZSgoMCwgY29yZV8xLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKSh0aGlzLmNvbmZpZywge1xuICAgICAgICAgICAgaHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXI6IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0U1RTSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIsXG4gICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyQ29uZmlnUHJvdmlkZXI6IGFzeW5jIChjb25maWcpID0+IG5ldyBjb3JlXzEuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKCgwLCBjb3JlXzEuZ2V0SHR0cFNpZ25pbmdQbHVnaW4pKHRoaXMuY29uZmlnKSk7XG4gICAgfVxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB9XG59XG5leHBvcnRzLlNUU0NsaWVudCA9IFNUU0NsaWVudDtcbiIsCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgU1RTQ2xpZW50ID0gcmVxdWlyZSgnLi9TVFNDbGllbnQnKTtcbnZhciBzbWl0aHlDbGllbnQgPSByZXF1aXJlKCdAc21pdGh5L3NtaXRoeS1jbGllbnQnKTtcbnZhciBtaWRkbGV3YXJlRW5kcG9pbnQgPSByZXF1aXJlKCdAc21pdGh5L21pZGRsZXdhcmUtZW5kcG9pbnQnKTtcbnZhciBFbmRwb2ludFBhcmFtZXRlcnMgPSByZXF1aXJlKCcuL2VuZHBvaW50L0VuZHBvaW50UGFyYW1ldGVycycpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBjbGllbnQgPSByZXF1aXJlKCdAYXdzLXNkay9jb3JlL2NsaWVudCcpO1xudmFyIHJlZ2lvbkNvbmZpZ1Jlc29sdmVyID0gcmVxdWlyZSgnQGF3cy1zZGsvcmVnaW9uLWNvbmZpZy1yZXNvbHZlcicpO1xuXG5sZXQgU1RTU2VydmljZUV4Y2VwdGlvbiQxID0gY2xhc3MgU1RTU2VydmljZUV4Y2VwdGlvbiBleHRlbmRzIHNtaXRoeUNsaWVudC5TZXJ2aWNlRXhjZXB0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgU1RTU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBFeHBpcmVkVG9rZW5FeGNlcHRpb24kMSA9IGNsYXNzIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiBleHRlbmRzIFNUU1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24kMSA9IGNsYXNzIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uIGV4dGVuZHMgU1RTU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQxID0gY2xhc3MgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24gZXh0ZW5kcyBTVFNTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgUGFja2VkUG9saWN5VG9vTGFyZ2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xubGV0IFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uJDEgPSBjbGFzcyBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiBleHRlbmRzIFNUU1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiUmVnaW9uRGlzYWJsZWRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiQxID0gY2xhc3MgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbiBleHRlbmRzIFNUU1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSURQUmVqZWN0ZWRDbGFpbUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kMSA9IGNsYXNzIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uIGV4dGVuZHMgU1RTU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgfVxufTtcbmxldCBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24kMSA9IGNsYXNzIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiBleHRlbmRzIFNUU1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BID0gXCJBcm5cIjtcbmNvbnN0IF9BS0kgPSBcIkFjY2Vzc0tleUlkXCI7XG5jb25zdCBfQVIgPSBcIkFzc3VtZVJvbGVcIjtcbmNvbnN0IF9BUkkgPSBcIkFzc3VtZWRSb2xlSWRcIjtcbmNvbnN0IF9BUlIgPSBcIkFzc3VtZVJvbGVSZXF1ZXN0XCI7XG5jb25zdCBfQVJScyA9IFwiQXNzdW1lUm9sZVJlc3BvbnNlXCI7XG5jb25zdCBfQVJVID0gXCJBc3N1bWVkUm9sZVVzZXJcIjtcbmNvbnN0IF9BUldXSSA9IFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiO1xuY29uc3QgX0FSV1dJUiA9IFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVJlcXVlc3RcIjtcbmNvbnN0IF9BUldXSVJzID0gXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2VcIjtcbmNvbnN0IF9BdSA9IFwiQXVkaWVuY2VcIjtcbmNvbnN0IF9DID0gXCJDcmVkZW50aWFsc1wiO1xuY29uc3QgX0NBID0gXCJDb250ZXh0QXNzZXJ0aW9uXCI7XG5jb25zdCBfRFMgPSBcIkR1cmF0aW9uU2Vjb25kc1wiO1xuY29uc3QgX0UgPSBcIkV4cGlyYXRpb25cIjtcbmNvbnN0IF9FSSA9IFwiRXh0ZXJuYWxJZFwiO1xuY29uc3QgX0VURSA9IFwiRXhwaXJlZFRva2VuRXhjZXB0aW9uXCI7XG5jb25zdCBfSURQQ0VFID0gXCJJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb25cIjtcbmNvbnN0IF9JRFBSQ0UgPSBcIklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb25cIjtcbmNvbnN0IF9JSVRFID0gXCJJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0sgPSBcIktleVwiO1xuY29uc3QgX01QREUgPSBcIk1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uXCI7XG5jb25zdCBfUCA9IFwiUG9saWN5XCI7XG5jb25zdCBfUEEgPSBcIlBvbGljeUFybnNcIjtcbmNvbnN0IF9QQXIgPSBcIlByb3ZpZGVyQXJuXCI7XG5jb25zdCBfUEMgPSBcIlByb3ZpZGVkQ29udGV4dHNcIjtcbmNvbnN0IF9QQ0xUID0gXCJQcm92aWRlZENvbnRleHRzTGlzdFR5cGVcIjtcbmNvbnN0IF9QQ3IgPSBcIlByb3ZpZGVkQ29udGV4dFwiO1xuY29uc3QgX1BEVCA9IFwiUG9saWN5RGVzY3JpcHRvclR5cGVcIjtcbmNvbnN0IF9QSSA9IFwiUHJvdmlkZXJJZFwiO1xuY29uc3QgX1BQUyA9IFwiUGFja2VkUG9saWN5U2l6ZVwiO1xuY29uc3QgX1BQVExFID0gXCJQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvblwiO1xuY29uc3QgX1ByID0gXCJQcm92aWRlclwiO1xuY29uc3QgX1JBID0gXCJSb2xlQXJuXCI7XG5jb25zdCBfUkRFID0gXCJSZWdpb25EaXNhYmxlZEV4Y2VwdGlvblwiO1xuY29uc3QgX1JTTiA9IFwiUm9sZVNlc3Npb25OYW1lXCI7XG5jb25zdCBfU0FLID0gXCJTZWNyZXRBY2Nlc3NLZXlcIjtcbmNvbnN0IF9TRldJVCA9IFwiU3ViamVjdEZyb21XZWJJZGVudGl0eVRva2VuXCI7XG5jb25zdCBfU0kgPSBcIlNvdXJjZUlkZW50aXR5XCI7XG5jb25zdCBfU04gPSBcIlNlcmlhbE51bWJlclwiO1xuY29uc3QgX1NUID0gXCJTZXNzaW9uVG9rZW5cIjtcbmNvbnN0IF9UID0gXCJUYWdzXCI7XG5jb25zdCBfVEMgPSBcIlRva2VuQ29kZVwiO1xuY29uc3QgX1RUSyA9IFwiVHJhbnNpdGl2ZVRhZ0tleXNcIjtcbmNvbnN0IF9UYSA9IFwiVGFnXCI7XG5jb25zdCBfViA9IFwiVmFsdWVcIjtcbmNvbnN0IF9XSVQgPSBcIldlYklkZW50aXR5VG9rZW5cIjtcbmNvbnN0IF9hID0gXCJhcm5cIjtcbmNvbnN0IF9hS1NUID0gXCJhY2Nlc3NLZXlTZWNyZXRUeXBlXCI7XG5jb25zdCBfYVFFID0gXCJhd3NRdWVyeUVycm9yXCI7XG5jb25zdCBfYyA9IFwiY2xpZW50XCI7XG5jb25zdCBfY1RUID0gXCJjbGllbnRUb2tlblR5cGVcIjtcbmNvbnN0IF9lID0gXCJlcnJvclwiO1xuY29uc3QgX2hFID0gXCJodHRwRXJyb3JcIjtcbmNvbnN0IF9tID0gXCJtZXNzYWdlXCI7XG5jb25zdCBfcERMVCA9IFwicG9saWN5RGVzY3JpcHRvckxpc3RUeXBlXCI7XG5jb25zdCBfcyA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zdHNcIjtcbmNvbnN0IF90TFQgPSBcInRhZ0xpc3RUeXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zdHNcIjtcbnZhciBhY2Nlc3NLZXlTZWNyZXRUeXBlID0gWzAsIG4wLCBfYUtTVCwgOCwgMF07XG52YXIgY2xpZW50VG9rZW5UeXBlID0gWzAsIG4wLCBfY1RULCA4LCAwXTtcbnZhciBBc3N1bWVkUm9sZVVzZXIgPSBbMywgbjAsIF9BUlUsIDAsIFtfQVJJLCBfQV0sIFswLCAwXV07XG52YXIgQXNzdW1lUm9sZVJlcXVlc3QgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVJSLFxuICAgIDAsXG4gICAgW19SQSwgX1JTTiwgX1BBLCBfUCwgX0RTLCBfVCwgX1RUSywgX0VJLCBfU04sIF9UQywgX1NJLCBfUENdLFxuICAgIFswLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDEsICgpID0+IHRhZ0xpc3RUeXBlLCA2NCB8IDAsIDAsIDAsIDAsIDAsICgpID0+IFByb3ZpZGVkQ29udGV4dHNMaXN0VHlwZV0sXG5dO1xudmFyIEFzc3VtZVJvbGVSZXNwb25zZSA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUlJzLFxuICAgIDAsXG4gICAgW19DLCBfQVJVLCBfUFBTLCBfU0ldLFxuICAgIFtbKCkgPT4gQ3JlZGVudGlhbHMsIDBdLCAoKSA9PiBBc3N1bWVkUm9sZVVzZXIsIDEsIDBdLFxuXTtcbnZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCA9IFtcbiAgICAzLFxuICAgIG4wLFxuICAgIF9BUldXSVIsXG4gICAgMCxcbiAgICBbX1JBLCBfUlNOLCBfV0lULCBfUEksIF9QQSwgX1AsIF9EU10sXG4gICAgWzAsIDAsIFsoKSA9PiBjbGllbnRUb2tlblR5cGUsIDBdLCAwLCAoKSA9PiBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUsIDAsIDFdLFxuXTtcbnZhciBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQVJXV0lScyxcbiAgICAwLFxuICAgIFtfQywgX1NGV0lULCBfQVJVLCBfUFBTLCBfUHIsIF9BdSwgX1NJXSxcbiAgICBbWygpID0+IENyZWRlbnRpYWxzLCAwXSwgMCwgKCkgPT4gQXNzdW1lZFJvbGVVc2VyLCAxLCAwLCAwLCAwXSxcbl07XG52YXIgQ3JlZGVudGlhbHMgPSBbXG4gICAgMyxcbiAgICBuMCxcbiAgICBfQyxcbiAgICAwLFxuICAgIFtfQUtJLCBfU0FLLCBfU1QsIF9FXSxcbiAgICBbMCwgWygpID0+IGFjY2Vzc0tleVNlY3JldFR5cGUsIDBdLCAwLCA0XSxcbl07XG52YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICAgICAgW19hUUVdOiBbYEV4cGlyZWRUb2tlbkV4Y2VwdGlvbmAsIDQwMF0sXG4gICAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihFeHBpcmVkVG9rZW5FeGNlcHRpb24sIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbiQxKTtcbnZhciBJRFBDb21tdW5pY2F0aW9uRXJyb3JFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUENFRSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAwLFxuICAgICAgICBbX2FRRV06IFtgSURQQ29tbXVuaWNhdGlvbkVycm9yYCwgNDAwXSxcbiAgICB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKElEUENvbW11bmljYXRpb25FcnJvckV4Y2VwdGlvbiwgSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJDEpO1xudmFyIElEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lEUFJDRSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAzLFxuICAgICAgICBbX2FRRV06IFtgSURQUmVqZWN0ZWRDbGFpbWAsIDQwM10sXG4gICAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uLCBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JSVRFLFxuICAgIHtcbiAgICAgICAgW19lXTogX2MsXG4gICAgICAgIFtfaEVdOiA0MDAsXG4gICAgICAgIFtfYVFFXTogW2BJbnZhbGlkSWRlbnRpdHlUb2tlbmAsIDQwMF0sXG4gICAgfSxcbiAgICBbX21dLFxuICAgIFswXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkSWRlbnRpdHlUb2tlbkV4Y2VwdGlvbiwgSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kMSk7XG52YXIgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX01QREUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICAgICAgW19hUUVdOiBbYE1hbGZvcm1lZFBvbGljeURvY3VtZW50YCwgNDAwXSxcbiAgICB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXhjZXB0aW9uLCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQxKTtcbnZhciBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfUFBUTEUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICAgICAgW19hUUVdOiBbYFBhY2tlZFBvbGljeVRvb0xhcmdlYCwgNDAwXSxcbiAgICB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uLCBQYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiQxKTtcbnZhciBQb2xpY3lEZXNjcmlwdG9yVHlwZSA9IFszLCBuMCwgX1BEVCwgMCwgW19hXSwgWzBdXTtcbnZhciBQcm92aWRlZENvbnRleHQgPSBbMywgbjAsIF9QQ3IsIDAsIFtfUEFyLCBfQ0FdLCBbMCwgMF1dO1xudmFyIFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9SREUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMyxcbiAgICAgICAgW19hUUVdOiBbYFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uYCwgNDAzXSxcbiAgICB9LFxuICAgIFtfbV0sXG4gICAgWzBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKFJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uLCBSZWdpb25EaXNhYmxlZEV4Y2VwdGlvbiQxKTtcbnZhciBUYWcgPSBbMywgbjAsIF9UYSwgMCwgW19LLCBfVl0sIFswLCAwXV07XG52YXIgU1RTU2VydmljZUV4Y2VwdGlvbiA9IFstMywgX3MsIFwiU1RTU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3MpLnJlZ2lzdGVyRXJyb3IoU1RTU2VydmljZUV4Y2VwdGlvbiwgU1RTU2VydmljZUV4Y2VwdGlvbiQxKTtcbnZhciBwb2xpY3lEZXNjcmlwdG9yTGlzdFR5cGUgPSBbMSwgbjAsIF9wRExULCAwLCAoKSA9PiBQb2xpY3lEZXNjcmlwdG9yVHlwZV07XG52YXIgUHJvdmlkZWRDb250ZXh0c0xpc3RUeXBlID0gWzEsIG4wLCBfUENMVCwgMCwgKCkgPT4gUHJvdmlkZWRDb250ZXh0XTtcbnZhciB0YWdMaXN0VHlwZSA9IFsxLCBuMCwgX3RMVCwgMCwgKCkgPT4gVGFnXTtcbnZhciBBc3N1bWVSb2xlID0gWzksIG4wLCBfQVIsIDAsICgpID0+IEFzc3VtZVJvbGVSZXF1ZXN0LCAoKSA9PiBBc3N1bWVSb2xlUmVzcG9uc2VdO1xudmFyIEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkgPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQVJXV0ksXG4gICAgMCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVxdWVzdCxcbiAgICAoKSA9PiBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzcG9uc2UsXG5dO1xuXG5jbGFzcyBBc3N1bWVSb2xlQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKEVuZHBvaW50UGFyYW1ldGVycy5jb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGUpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jbGFzcyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKEVuZHBvaW50UGFyYW1ldGVycy5jb21tb25QYXJhbXMpXG4gICAgLm0oZnVuY3Rpb24gKENvbW1hbmQsIGNzLCBjb25maWcsIG8pIHtcbiAgICByZXR1cm4gW21pZGRsZXdhcmVFbmRwb2ludC5nZXRFbmRwb2ludFBsdWdpbihjb25maWcsIENvbW1hbmQuZ2V0RW5kcG9pbnRQYXJhbWV0ZXJJbnN0cnVjdGlvbnMoKSldO1xufSlcbiAgICAucyhcIkFXU1NlY3VyaXR5VG9rZW5TZXJ2aWNlVjIwMTEwNjE1XCIsIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiLCB7fSlcbiAgICAubihcIlNUU0NsaWVudFwiLCBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kXCIpXG4gICAgLnNjKEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkpXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBBc3N1bWVSb2xlQ29tbWFuZCxcbiAgICBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCxcbn07XG5jbGFzcyBTVFMgZXh0ZW5kcyBTVFNDbGllbnQuU1RTQ2xpZW50IHtcbn1cbnNtaXRoeUNsaWVudC5jcmVhdGVBZ2dyZWdhdGVkQ2xpZW50KGNvbW1hbmRzLCBTVFMpO1xuXG5jb25zdCBnZXRBY2NvdW50SWRGcm9tQXNzdW1lZFJvbGVVc2VyID0gKGFzc3VtZWRSb2xlVXNlcikgPT4ge1xuICAgIGlmICh0eXBlb2YgYXNzdW1lZFJvbGVVc2VyPy5Bcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgY29uc3QgYXJuQ29tcG9uZW50cyA9IGFzc3VtZWRSb2xlVXNlci5Bcm4uc3BsaXQoXCI6XCIpO1xuICAgICAgICBpZiAoYXJuQ29tcG9uZW50cy5sZW5ndGggPiA0ICYmIGFybkNvbXBvbmVudHNbNF0gIT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBhcm5Db21wb25lbnRzWzRdO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuY29uc3QgcmVzb2x2ZVJlZ2lvbiA9IGFzeW5jIChfcmVnaW9uLCBfcGFyZW50UmVnaW9uLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIGxvYWRlckNvbmZpZyA9IHt9KSA9PiB7XG4gICAgY29uc3QgcmVnaW9uID0gdHlwZW9mIF9yZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IF9yZWdpb24oKSA6IF9yZWdpb247XG4gICAgY29uc3QgcGFyZW50UmVnaW9uID0gdHlwZW9mIF9wYXJlbnRSZWdpb24gPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IF9wYXJlbnRSZWdpb24oKSA6IF9wYXJlbnRSZWdpb247XG4gICAgY29uc3Qgc3RzRGVmYXVsdFJlZ2lvbiA9IGF3YWl0IHJlZ2lvbkNvbmZpZ1Jlc29sdmVyLnN0c1JlZ2lvbkRlZmF1bHRSZXNvbHZlcihsb2FkZXJDb25maWcpKCk7XG4gICAgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyPy5kZWJ1Zz8uKFwiQGF3cy1zZGsvY2xpZW50LXN0czo6cmVzb2x2ZVJlZ2lvblwiLCBcImFjY2VwdGluZyBmaXJzdCBvZjpcIiwgYCR7cmVnaW9ufSAoY3JlZGVudGlhbCBwcm92aWRlciBjbGllbnRDb25maWcpYCwgYCR7cGFyZW50UmVnaW9ufSAoY29udGV4dHVhbCBjbGllbnQpYCwgYCR7c3RzRGVmYXVsdFJlZ2lvbn0gKFNUUyBkZWZhdWx0OiBBV1NfUkVHSU9OLCBwcm9maWxlIHJlZ2lvbiwgb3IgdXMtZWFzdC0xKWApO1xuICAgIHJldHVybiByZWdpb24gPz8gcGFyZW50UmVnaW9uID8/IHN0c0RlZmF1bHRSZWdpb247XG59O1xuY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyJDEgPSAoc3RzT3B0aW9ucywgU1RTQ2xpZW50KSA9PiB7XG4gICAgbGV0IHN0c0NsaWVudDtcbiAgICBsZXQgY2xvc3VyZVNvdXJjZUNyZWRzO1xuICAgIHJldHVybiBhc3luYyAoc291cmNlQ3JlZHMsIHBhcmFtcykgPT4ge1xuICAgICAgICBjbG9zdXJlU291cmNlQ3JlZHMgPSBzb3VyY2VDcmVkcztcbiAgICAgICAgaWYgKCFzdHNDbGllbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9nZ2VyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5sb2dnZXIsIHByb2ZpbGUgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnByb2ZpbGUsIHJlZ2lvbiwgcmVxdWVzdEhhbmRsZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHVzZXJBZ2VudEFwcElkID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCwgfSA9IHN0c09wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IGF3YWl0IHJlc29sdmVSZWdpb24ocmVnaW9uLCBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29tcGF0aWJsZVJlcXVlc3RIYW5kbGVyID0gIWlzSDIocmVxdWVzdEhhbmRsZXIpO1xuICAgICAgICAgICAgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgICAgICAgLi4uc3RzT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXI6ICgpID0+IGFzeW5jICgpID0+IGNsb3N1cmVTb3VyY2VDcmVkcyxcbiAgICAgICAgICAgICAgICByZWdpb246IHJlc29sdmVkUmVnaW9uLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RIYW5kbGVyOiBpc0NvbXBhdGlibGVSZXF1ZXN0SGFuZGxlciA/IHJlcXVlc3RIYW5kbGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBDcmVkZW50aWFscywgQXNzdW1lZFJvbGVVc2VyIH0gPSBhd2FpdCBzdHNDbGllbnQuc2VuZChuZXcgQXNzdW1lUm9sZUNvbW1hbmQocGFyYW1zKSk7XG4gICAgICAgIGlmICghQ3JlZGVudGlhbHMgfHwgIUNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkIHx8ICFDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXNwb25zZSBmcm9tIFNUUy5hc3N1bWVSb2xlIGNhbGwgd2l0aCByb2xlICR7cGFyYW1zLlJvbGVBcm59YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gZ2V0QWNjb3VudElkRnJvbUFzc3VtZWRSb2xlVXNlcihBc3N1bWVkUm9sZVVzZXIpO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBDcmVkZW50aWFscy5BY2Nlc3NLZXlJZCxcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5LFxuICAgICAgICAgICAgc2Vzc2lvblRva2VuOiBDcmVkZW50aWFscy5TZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiBDcmVkZW50aWFscy5FeHBpcmF0aW9uLFxuICAgICAgICAgICAgLi4uKENyZWRlbnRpYWxzLkNyZWRlbnRpYWxTY29wZSAmJiB7IGNyZWRlbnRpYWxTY29wZTogQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlIH0pLFxuICAgICAgICAgICAgLi4uKGFjY291bnRJZCAmJiB7IGFjY291bnRJZCB9KSxcbiAgICAgICAgfTtcbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRVwiLCBcImlcIik7XG4gICAgICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgICB9O1xufTtcbmNvbnN0IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSQxID0gKHN0c09wdGlvbnMsIFNUU0NsaWVudCkgPT4ge1xuICAgIGxldCBzdHNDbGllbnQ7XG4gICAgcmV0dXJuIGFzeW5jIChwYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKCFzdHNDbGllbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9nZ2VyID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy5sb2dnZXIsIHByb2ZpbGUgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnByb2ZpbGUsIHJlZ2lvbiwgcmVxdWVzdEhhbmRsZXIgPSBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlcXVlc3RIYW5kbGVyLCBjcmVkZW50aWFsUHJvdmlkZXJMb2dnZXIsIHVzZXJBZ2VudEFwcElkID0gc3RzT3B0aW9ucz8ucGFyZW50Q2xpZW50Q29uZmlnPy51c2VyQWdlbnRBcHBJZCwgfSA9IHN0c09wdGlvbnM7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFJlZ2lvbiA9IGF3YWl0IHJlc29sdmVSZWdpb24ocmVnaW9uLCBzdHNPcHRpb25zPy5wYXJlbnRDbGllbnRDb25maWc/LnJlZ2lvbiwgY3JlZGVudGlhbFByb3ZpZGVyTG9nZ2VyLCB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29tcGF0aWJsZVJlcXVlc3RIYW5kbGVyID0gIWlzSDIocmVxdWVzdEhhbmRsZXIpO1xuICAgICAgICAgICAgc3RzQ2xpZW50ID0gbmV3IFNUU0NsaWVudCh7XG4gICAgICAgICAgICAgICAgLi4uc3RzT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB1c2VyQWdlbnRBcHBJZCxcbiAgICAgICAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgICAgICAgIHJlZ2lvbjogcmVzb2x2ZWRSZWdpb24sXG4gICAgICAgICAgICAgICAgcmVxdWVzdEhhbmRsZXI6IGlzQ29tcGF0aWJsZVJlcXVlc3RIYW5kbGVyID8gcmVxdWVzdEhhbmRsZXIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBsb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IENyZWRlbnRpYWxzLCBBc3N1bWVkUm9sZVVzZXIgfSA9IGF3YWl0IHN0c0NsaWVudC5zZW5kKG5ldyBBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZChwYXJhbXMpKTtcbiAgICAgICAgaWYgKCFDcmVkZW50aWFscyB8fCAhQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQgfHwgIUNyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlc3BvbnNlIGZyb20gU1RTLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkgY2FsbCB3aXRoIHJvbGUgJHtwYXJhbXMuUm9sZUFybn1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2NvdW50SWQgPSBnZXRBY2NvdW50SWRGcm9tQXNzdW1lZFJvbGVVc2VyKEFzc3VtZWRSb2xlVXNlcik7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IENyZWRlbnRpYWxzLkFjY2Vzc0tleUlkLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBDcmVkZW50aWFscy5TZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICAgICBzZXNzaW9uVG9rZW46IENyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIGV4cGlyYXRpb246IENyZWRlbnRpYWxzLkV4cGlyYXRpb24sXG4gICAgICAgICAgICAuLi4oQ3JlZGVudGlhbHMuQ3JlZGVudGlhbFNjb3BlICYmIHsgY3JlZGVudGlhbFNjb3BlOiBDcmVkZW50aWFscy5DcmVkZW50aWFsU2NvcGUgfSksXG4gICAgICAgICAgICAuLi4oYWNjb3VudElkICYmIHsgYWNjb3VudElkIH0pLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoYWNjb3VudElkKSB7XG4gICAgICAgICAgICBjbGllbnQuc2V0Q3JlZGVudGlhbEZlYXR1cmUoY3JlZGVudGlhbHMsIFwiUkVTT0xWRURfQUNDT1VOVF9JRFwiLCBcIlRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY2xpZW50LnNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBcIkNSRURFTlRJQUxTX1NUU19BU1NVTUVfUk9MRV9XRUJfSURcIiwgXCJrXCIpO1xuICAgICAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gICAgfTtcbn07XG5jb25zdCBpc0gyID0gKHJlcXVlc3RIYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIHJlcXVlc3RIYW5kbGVyPy5tZXRhZGF0YT8uaGFuZGxlclByb3RvY29sID09PSBcImgyXCI7XG59O1xuXG5jb25zdCBnZXRDdXN0b21pemFibGVTdHNDbGllbnRDdG9yID0gKGJhc2VDdG9yLCBjdXN0b21pemF0aW9ucykgPT4ge1xuICAgIGlmICghY3VzdG9taXphdGlvbnMpXG4gICAgICAgIHJldHVybiBiYXNlQ3RvcjtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBjbGFzcyBDdXN0b21pemFibGVTVFNDbGllbnQgZXh0ZW5kcyBiYXNlQ3RvciB7XG4gICAgICAgICAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICAgICAgICAgICAgICBzdXBlcihjb25maWcpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY3VzdG9taXphdGlvbiBvZiBjdXN0b21pemF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY3VzdG9taXphdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xufTtcbmNvbnN0IGdldERlZmF1bHRSb2xlQXNzdW1lciA9IChzdHNPcHRpb25zID0ge30sIHN0c1BsdWdpbnMpID0+IGdldERlZmF1bHRSb2xlQXNzdW1lciQxKHN0c09wdGlvbnMsIGdldEN1c3RvbWl6YWJsZVN0c0NsaWVudEN0b3IoU1RTQ2xpZW50LlNUU0NsaWVudCwgc3RzUGx1Z2lucykpO1xuY29uc3QgZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gKHN0c09wdGlvbnMgPSB7fSwgc3RzUGx1Z2lucykgPT4gZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5JDEoc3RzT3B0aW9ucywgZ2V0Q3VzdG9taXphYmxlU3RzQ2xpZW50Q3RvcihTVFNDbGllbnQuU1RTQ2xpZW50LCBzdHNQbHVnaW5zKSk7XG5jb25zdCBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSAocHJvdmlkZXIpID0+IChpbnB1dCkgPT4gcHJvdmlkZXIoe1xuICAgIHJvbGVBc3N1bWVyOiBnZXREZWZhdWx0Um9sZUFzc3VtZXIoaW5wdXQpLFxuICAgIHJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5OiBnZXREZWZhdWx0Um9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkoaW5wdXQpLFxuICAgIC4uLmlucHV0LFxufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIiRDb21tYW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNvbW1hbmQ7IH1cbn0pO1xuZXhwb3J0cy5Bc3N1bWVSb2xlQ29tbWFuZCA9IEFzc3VtZVJvbGVDb21tYW5kO1xuZXhwb3J0cy5Bc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Q29tbWFuZCA9IEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb21tYW5kO1xuZXhwb3J0cy5FeHBpcmVkVG9rZW5FeGNlcHRpb24gPSBFeHBpcmVkVG9rZW5FeGNlcHRpb24kMTtcbmV4cG9ydHMuSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uID0gSURQQ29tbXVuaWNhdGlvbkVycm9yRXhjZXB0aW9uJDE7XG5leHBvcnRzLklEUFJlamVjdGVkQ2xhaW1FeGNlcHRpb24gPSBJRFBSZWplY3RlZENsYWltRXhjZXB0aW9uJDE7XG5leHBvcnRzLkludmFsaWRJZGVudGl0eVRva2VuRXhjZXB0aW9uID0gSW52YWxpZElkZW50aXR5VG9rZW5FeGNlcHRpb24kMTtcbmV4cG9ydHMuTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFeGNlcHRpb24gPSBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5QYWNrZWRQb2xpY3lUb29MYXJnZUV4Y2VwdGlvbiA9IFBhY2tlZFBvbGljeVRvb0xhcmdlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlJlZ2lvbkRpc2FibGVkRXhjZXB0aW9uID0gUmVnaW9uRGlzYWJsZWRFeGNlcHRpb24kMTtcbmV4cG9ydHMuU1RTID0gU1RTO1xuZXhwb3J0cy5TVFNTZXJ2aWNlRXhjZXB0aW9uID0gU1RTU2VydmljZUV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5kZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXIgPSBkZWNvcmF0ZURlZmF1bHRDcmVkZW50aWFsUHJvdmlkZXI7XG5leHBvcnRzLmdldERlZmF1bHRSb2xlQXNzdW1lciA9IGdldERlZmF1bHRSb2xlQXNzdW1lcjtcbmV4cG9ydHMuZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5ID0gZ2V0RGVmYXVsdFJvbGVBc3N1bWVyV2l0aFdlYklkZW50aXR5O1xuT2JqZWN0LmtleXMoU1RTQ2xpZW50KS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7XG4gICAgaWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFNUU0NsaWVudFtrXTsgfVxuICAgIH0pO1xufSk7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAib3FCQUNBLENBQU8sU0FBZSxIQUFTLE9BQWMsTEFBRSxBQUFPLEpBQUssTEFBQyxKQUNwRCx5QkFBc0Msd0JBQStCLG9DQUEyQyw4Q0FBa0QsT0FDMUssSUFBTSxPQUNBLE9BQ0EsT0FDQSxHQUE2QyxNQUFPLEVBQVEsRUFBUyxJQUFVLENBQ2pGLE1BQU8sQ0FDSCxXQUFZLEVBQUcsRUFBa0Isa0JBQWtCLENBQU8sRUFBRSxVQUM1RCxPQUFTLE1BQU8sRUFBRyxFQUFrQixtQkFBbUIsRUFBTyxNQUFNLEVBQUUsSUFDbEUsSUFBTSxDQUNILE1BQVUsTUFBTSx5REFBeUQsSUFDMUUs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QUFFLFdBQWMsQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxZQUFZLENBQUUsQ0FBQyxHQUFJLEdBQUksR0FBSSxHQUFJLENBQUUsRUFBRyxHQUFJLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxHQUFHLEVBQUksQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEdBQUcsRUFBSSxDQUFFLEVBQUcsR0FBSSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxHQUFJLGlCQUFrQixFQUFHLGNBQWMsQ0FBRSxFQUFHLEdBQUksRUFBRyxHQUFJLGlCQUFrQixFQUFHLEdBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEdBQU0sRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEdBQUcsbUJBQW1CLENBQUUsQ0FBQyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBSSxTQUFVLEdBQUksQ0FBQyxFQUFDLENBQUUsQ0FBQyxFQUFHLEdBQUksQ0FBQyxFQUFDLEVBQUcsR0FBSSxDQUFDLEVBQUMsRUFDNWdDLEdBQVEsQ0FBRSxRQUFTLE1BQU8sV0FBWSxDQUFFLE9BQVEsR0FBRyxhQUFjLEVBQUcsUUFBUyxFQUFHLFNBQVUsR0FBRyxrQkFBbUIsQ0FBRSxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxHQUFJLG1CQUFvQixFQUFHLENBQUMsQ0FBRSxFQUFHLEVBQUcsR0FBSSxPQUFRLEdBQUksRUFBRSxFQUFHLEdBQUcsR0FBRyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsR0FBRyxFQUFDLENBQUUsRUFBRyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsR0FBRyxFQUFDLENBQUUsQ0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxnQkFBZ0IsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFlBQVksQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLGdCQUFnQixDQUFFLENBQUMsRUFBRyxTQUFVLEdBQUksR0FBSSxDQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsZ0JBQWdCLENBQUUsQ0FBQyxFQUFHLFNBQVUsR0FBSSxHQUFJLENBQUUsRUFBRyxHQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFlBQVksQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLEVBQUMsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFdBQVcsQ0FBRSxDQUFDLEVBQUcsU0FBVSxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsU0FBVSxDQUFFLElBQUssR0FBRyxXQUFZLENBQUUsWUFBYSxDQUFDLENBQUUsS0FBTSxHQUFHLFlBQWEsR0FBRyxjQUFlLFVBQVcsQ0FBQyxDQUFFLEVBQUcsUUFBUyxDQUFFLEdBQUksR0FBSSxDQUFFLENBQUMsR0FBSSxHQUFJLENBQUUsRUFBRyxDQUFFLFdBQVksR0FBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLEdBQUcsTUFBTyxxRUFBc0UsR0FBSSxDQUFFLEVBQUcsQ0FBRSxXQUFZLEdBQUcsTUFBTywwRUFBMkUsR0FBSSxDQUFFLEVBQUcsQ0FBRSxTQUFVLENBQUUsSUFBSyxHQUFHLFdBQVksRUFBRyxRQUFTLENBQUUsR0FBSSxHQUFJLENBQUUsQ0FBQyxHQUFJLEdBQUksQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsRUFBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxHQUFHLEVBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsRUFBQyxDQUFFLEVBQUcsRUFBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFNBQVUsQ0FBRSxJQUFL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QVMsRUFBRyxDQUFFLE9BQU8sRUFBYSxRQUMzQyxDQUFDLEVBQ08sb0JBQW9CLEVBQ3BCLG1DQUFtQyxFQUNuQyx3QkFBd0IsR0FDeEIsaUNBQWlDLEdBQ2pDLDRCQUE0QixHQUM1QixnQ0FBZ0MsR0FDaEMsbUNBQW1DLEdBQ25DLGdDQUFnQyxHQUNoQywwQkFBMEIsR0FDMUIsTUFBTSxHQUNOLHNCQUFzQixFQUN0QixvQ0FBb0MsR0FDcEMsd0JBQXdCLEdBQ3hCLHVDQUF1QyxHQUMvQyxPQUFPLEtBQUssQ0FBUyxFQUFFLFFBQVEsUUFBUyxDQUFDLEVBQUcsQ0FDeEMsR0FBSSxJQUFNLFdBQWEsQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLLEVBQVMsQ0FBQyxFQUFHLE9BQU8sZUFBZSxFQUFTLEVBQUcsQ0FDeEcsV0FBWSxHQUNaLElBQUssUUFBUyxFQUFHLENBQUUsT0FBTyxFQUFVLEdBQ3hDLENBQUMsRUFDSiIsCiAgImRlYnVnSWQiOiAiNkE1Q0YzRUNDMjFEMjdCMTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
package/dist/chunk-e9mt878v.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{createRequire as k}from"node:module";var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var l=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var m=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var n=(a,b)=>()=>(a&&(b=a(a=0)),b);var p=k(import.meta.url);
|
|
2
|
-
export{l as T,m as U,n as V,p as W};
|
|
3
|
-
|
|
4
|
-
//# debugId=190C25C3BCB76B6964756E2164756E21
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICBdLAogICJtYXBwaW5ncyI6ICIiLAogICJkZWJ1Z0lkIjogIjE5MEMyNUMzQkNCNzZCNjk2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
|