@beesolve/lambda-keep-active 1.0.0
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/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/cdk.d.ts +19 -0
- package/dist/cdk.js +4 -0
- package/dist/chunk-3cawvvw3.js +5 -0
- package/dist/chunk-4pkw7jk4.js +5 -0
- package/dist/chunk-7bag664c.js +5 -0
- package/dist/chunk-9zmzw25z.js +8 -0
- package/dist/chunk-bh9mv7m6.js +4 -0
- package/dist/chunk-dkk1zwm0.js +5 -0
- package/dist/chunk-dyyrwzgp.js +5 -0
- package/dist/chunk-e9mt878v.js +5 -0
- package/dist/chunk-ekwpcdh4.js +5 -0
- package/dist/chunk-fbbbv2d4.js +16 -0
- package/dist/chunk-ggeka6d3.js +5 -0
- package/dist/chunk-jxb3myh9.js +4 -0
- package/dist/chunk-kvnavsh3.js +5 -0
- package/dist/chunk-m1zv7mtv.js +4 -0
- package/dist/chunk-p85vag28.js +32 -0
- package/dist/chunk-pqhmh7nm.js +4 -0
- package/dist/chunk-r8mj3nq7.js +5 -0
- package/dist/chunk-rea1s8cr.js +4 -0
- package/dist/chunk-rn0z3e77.js +4 -0
- package/dist/chunk-t5j8kj9p.js +11 -0
- package/dist/chunk-whenq5kz.js +5 -0
- package/dist/chunk-x343hkb8.js +5 -0
- package/dist/handler.js +12 -0
- package/dist/runtime.d.ts +14 -0
- package/dist/runtime.js +4 -0
- package/package.json +40 -0
|
@@ -0,0 +1,5 @@
|
|
|
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=
|
|
@@ -0,0 +1,5 @@
|
|
|
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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{P as J}from"./chunk-kvnavsh3.js";import{U as I}from"./chunk-e9mt878v.js";var Z=I((Q)=>{var K=J(),L=(b)=>{return{setHttpHandler(j){b.httpHandler=j},httpHandler(){return b.httpHandler},updateHttpClientConfig(j,w){b.httpHandler?.updateHttpClientConfig(j,w)},httpHandlerConfigs(){return b.httpHandler.httpHandlerConfigs()}}},M=(b)=>{return{httpHandler:b.httpHandler()}};class B{name;kind;values;constructor({name:b,kind:j=K.FieldPosition.HEADER,values:w=[]}){this.name=b,this.kind=j,this.values=w}add(b){this.values.push(b)}set(b){this.values=b}remove(b){this.values=this.values.filter((j)=>j!==b)}toString(){return this.values.map((b)=>b.includes(",")||b.includes(" ")?`"${b}"`:b).join(", ")}get(){return this.values}}class D{entries={};encoding;constructor({fields:b=[],encoding:j="utf-8"}){b.forEach(this.setField.bind(this)),this.encoding=j}setField(b){this.entries[b.name.toLowerCase()]=b}getField(b){return this.entries[b.toLowerCase()]}removeField(b){delete this.entries[b.toLowerCase()]}getByType(b){return Object.values(this.entries).filter((j)=>j.kind===b)}}class z{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(b){this.method=b.method||"GET",this.hostname=b.hostname||"localhost",this.port=b.port,this.query=b.query||{},this.headers=b.headers||{},this.body=b.body,this.protocol=b.protocol?b.protocol.slice(-1)!==":"?`${b.protocol}:`:b.protocol:"https:",this.path=b.path?b.path.charAt(0)!=="/"?`/${b.path}`:b.path:"/",this.username=b.username,this.password=b.password,this.fragment=b.fragment}static clone(b){let j=new z({...b,headers:{...b.headers}});if(j.query)j.query=O(j.query);return j}static isInstance(b){if(!b)return!1;let j=b;return"method"in j&&"protocol"in j&&"hostname"in j&&"path"in j&&typeof j.query==="object"&&typeof j.headers==="object"}clone(){return z.clone(this)}}function O(b){return Object.keys(b).reduce((j,w)=>{let A=b[w];return{...j,[w]:Array.isArray(A)?[...A]:A}},{})}class G{statusCode;reason;headers;body;constructor(b){this.statusCode=b.statusCode,this.reason=b.reason,this.headers=b.headers||{},this.body=b.body}static isInstance(b){if(!b)return!1;let j=b;return typeof j.statusCode==="number"&&typeof j.headers==="object"}}function P(b){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(b)}Q.Field=B;Q.Fields=D;Q.HttpRequest=z;Q.HttpResponse=G;Q.getHttpHandlerExtensionConfiguration=L;Q.isValidHostname=P;Q.resolveHttpHandlerRuntimeConfig=M});
|
|
2
|
+
export{Z as L};
|
|
3
|
+
|
|
4
|
+
//# debugId=A41DAA91E59626DC64756E2164756E21
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvcHJvdG9jb2wtaHR0cC9kaXN0LWNqcy9pbmRleC5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsKICAgICIndXNlIHN0cmljdCc7XG5cbnZhciB0eXBlcyA9IHJlcXVpcmUoJ0BzbWl0aHkvdHlwZXMnKTtcblxuY29uc3QgZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uID0gKHJ1bnRpbWVDb25maWcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzZXRIdHRwSGFuZGxlcihoYW5kbGVyKSB7XG4gICAgICAgICAgICBydW50aW1lQ29uZmlnLmh0dHBIYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEhhbmRsZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5odHRwSGFuZGxlcjtcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlSHR0cENsaWVudENvbmZpZyhrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBydW50aW1lQ29uZmlnLmh0dHBIYW5kbGVyPy51cGRhdGVIdHRwQ2xpZW50Q29uZmlnKGtleSwgdmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBodHRwSGFuZGxlckNvbmZpZ3MoKSB7XG4gICAgICAgICAgICByZXR1cm4gcnVudGltZUNvbmZpZy5odHRwSGFuZGxlci5odHRwSGFuZGxlckNvbmZpZ3MoKTtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcgPSAoaHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEhhbmRsZXI6IGh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbi5odHRwSGFuZGxlcigpLFxuICAgIH07XG59O1xuXG5jbGFzcyBGaWVsZCB7XG4gICAgbmFtZTtcbiAgICBraW5kO1xuICAgIHZhbHVlcztcbiAgICBjb25zdHJ1Y3Rvcih7IG5hbWUsIGtpbmQgPSB0eXBlcy5GaWVsZFBvc2l0aW9uLkhFQURFUiwgdmFsdWVzID0gW10gfSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmtpbmQgPSBraW5kO1xuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgICB9XG4gICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWVzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICBzZXQodmFsdWVzKSB7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgIH1cbiAgICByZW1vdmUodmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IHZhbHVlKTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5tYXAoKHYpID0+ICh2LmluY2x1ZGVzKFwiLFwiKSB8fCB2LmluY2x1ZGVzKFwiIFwiKSA/IGBcIiR7dn1cImAgOiB2KSkuam9pbihcIiwgXCIpO1xuICAgIH1cbiAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgICB9XG59XG5cbmNsYXNzIEZpZWxkcyB7XG4gICAgZW50cmllcyA9IHt9O1xuICAgIGVuY29kaW5nO1xuICAgIGNvbnN0cnVjdG9yKHsgZmllbGRzID0gW10sIGVuY29kaW5nID0gXCJ1dGYtOFwiIH0pIHtcbiAgICAgICAgZmllbGRzLmZvckVhY2godGhpcy5zZXRGaWVsZC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5lbmNvZGluZyA9IGVuY29kaW5nO1xuICAgIH1cbiAgICBzZXRGaWVsZChmaWVsZCkge1xuICAgICAgICB0aGlzLmVudHJpZXNbZmllbGQubmFtZS50b0xvd2VyQ2FzZSgpXSA9IGZpZWxkO1xuICAgIH1cbiAgICBnZXRGaWVsZChuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXNbbmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgICB9XG4gICAgcmVtb3ZlRmllbGQobmFtZSkge1xuICAgICAgICBkZWxldGUgdGhpcy5lbnRyaWVzW25hbWUudG9Mb3dlckNhc2UoKV07XG4gICAgfVxuICAgIGdldEJ5VHlwZShraW5kKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZW50cmllcykuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQua2luZCA9PT0ga2luZCk7XG4gICAgfVxufVxuXG5jbGFzcyBIdHRwUmVxdWVzdCB7XG4gICAgbWV0aG9kO1xuICAgIHByb3RvY29sO1xuICAgIGhvc3RuYW1lO1xuICAgIHBvcnQ7XG4gICAgcGF0aDtcbiAgICBxdWVyeTtcbiAgICBoZWFkZXJzO1xuICAgIHVzZXJuYW1lO1xuICAgIHBhc3N3b3JkO1xuICAgIGZyYWdtZW50O1xuICAgIGJvZHk7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgICAgIHRoaXMuaG9zdG5hbWUgPSBvcHRpb25zLmhvc3RuYW1lIHx8IFwibG9jYWxob3N0XCI7XG4gICAgICAgIHRoaXMucG9ydCA9IG9wdGlvbnMucG9ydDtcbiAgICAgICAgdGhpcy5xdWVyeSA9IG9wdGlvbnMucXVlcnkgfHwge307XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICAgICAgdGhpcy5ib2R5ID0gb3B0aW9ucy5ib2R5O1xuICAgICAgICB0aGlzLnByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbFxuICAgICAgICAgICAgPyBvcHRpb25zLnByb3RvY29sLnNsaWNlKC0xKSAhPT0gXCI6XCJcbiAgICAgICAgICAgICAgICA/IGAke29wdGlvbnMucHJvdG9jb2x9OmBcbiAgICAgICAgICAgICAgICA6IG9wdGlvbnMucHJvdG9jb2xcbiAgICAgICAgICAgIDogXCJodHRwczpcIjtcbiAgICAgICAgdGhpcy5wYXRoID0gb3B0aW9ucy5wYXRoID8gKG9wdGlvbnMucGF0aC5jaGFyQXQoMCkgIT09IFwiL1wiID8gYC8ke29wdGlvbnMucGF0aH1gIDogb3B0aW9ucy5wYXRoKSA6IFwiL1wiO1xuICAgICAgICB0aGlzLnVzZXJuYW1lID0gb3B0aW9ucy51c2VybmFtZTtcbiAgICAgICAgdGhpcy5wYXNzd29yZCA9IG9wdGlvbnMucGFzc3dvcmQ7XG4gICAgICAgIHRoaXMuZnJhZ21lbnQgPSBvcHRpb25zLmZyYWdtZW50O1xuICAgIH1cbiAgICBzdGF0aWMgY2xvbmUocmVxdWVzdCkge1xuICAgICAgICBjb25zdCBjbG9uZWQgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgLi4ucmVxdWVzdC5oZWFkZXJzIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2xvbmVkLnF1ZXJ5KSB7XG4gICAgICAgICAgICBjbG9uZWQucXVlcnkgPSBjbG9uZVF1ZXJ5KGNsb25lZC5xdWVyeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsb25lZDtcbiAgICB9XG4gICAgc3RhdGljIGlzSW5zdGFuY2UocmVxdWVzdCkge1xuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXEgPSByZXF1ZXN0O1xuICAgICAgICByZXR1cm4gKFwibWV0aG9kXCIgaW4gcmVxICYmXG4gICAgICAgICAgICBcInByb3RvY29sXCIgaW4gcmVxICYmXG4gICAgICAgICAgICBcImhvc3RuYW1lXCIgaW4gcmVxICYmXG4gICAgICAgICAgICBcInBhdGhcIiBpbiByZXEgJiZcbiAgICAgICAgICAgIHR5cGVvZiByZXFbXCJxdWVyeVwiXSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICAgICAgdHlwZW9mIHJlcVtcImhlYWRlcnNcIl0gPT09IFwib2JqZWN0XCIpO1xuICAgIH1cbiAgICBjbG9uZSgpIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0LmNsb25lKHRoaXMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNsb25lUXVlcnkocXVlcnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnkpLnJlZHVjZSgoY2FycnksIHBhcmFtTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbSA9IHF1ZXJ5W3BhcmFtTmFtZV07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jYXJyeSxcbiAgICAgICAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICAgICAgfTtcbiAgICB9LCB7fSk7XG59XG5cbmNsYXNzIEh0dHBSZXNwb25zZSB7XG4gICAgc3RhdHVzQ29kZTtcbiAgICByZWFzb247XG4gICAgaGVhZGVycztcbiAgICBib2R5O1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdGlvbnMucmVhc29uO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgfHwge307XG4gICAgICAgIHRoaXMuYm9keSA9IG9wdGlvbnMuYm9keTtcbiAgICB9XG4gICAgc3RhdGljIGlzSW5zdGFuY2UocmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNWYWxpZEhvc3RuYW1lKGhvc3RuYW1lKSB7XG4gICAgY29uc3QgaG9zdFBhdHRlcm4gPSAvXlthLXowLTldW2EtejAtOVxcLlxcLV0qW2EtejAtOV0kLztcbiAgICByZXR1cm4gaG9zdFBhdHRlcm4udGVzdChob3N0bmFtZSk7XG59XG5cbmV4cG9ydHMuRmllbGQgPSBGaWVsZDtcbmV4cG9ydHMuRmllbGRzID0gRmllbGRzO1xuZXhwb3J0cy5IdHRwUmVxdWVzdCA9IEh0dHBSZXF1ZXN0O1xuZXhwb3J0cy5IdHRwUmVzcG9uc2UgPSBIdHRwUmVzcG9uc2U7XG5leHBvcnRzLmdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IGdldEh0dHBIYW5kbGVyRXh0ZW5zaW9uQ29uZmlndXJhdGlvbjtcbmV4cG9ydHMuaXNWYWxpZEhvc3RuYW1lID0gaXNWYWxpZEhvc3RuYW1lO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEhhbmRsZXJSdW50aW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBIYW5kbGVyUnVudGltZUNvbmZpZztcbiIKICBdLAogICJtYXBwaW5ncyI6ICJvR0FFQSxGQUFJLE1BRUUsRUFBdUMsQ0FBQyxJQUFrQixDQUM1RCxNQUFPLENBQ0gsY0FBYyxDQUFDLEVBQVMsQ0FDcEIsRUFBYyxZQUFjLEdBRWhDLFdBQVcsRUFBRyxDQUNWLE9BQU8sRUFBYyxhQUV6QixzQkFBc0IsQ0FBQyxFQUFLLEVBQU8sQ0FDL0IsRUFBYyxhQUFhLHVCQUF1QixFQUFLLENBQUssR0FFaEUsa0JBQWtCLEVBQUcsQ0FDakIsT0FBTyxFQUFjLFlBQVksbUJBQW1CLEVBRTVELEdBRUUsRUFBa0MsQ0FBQyxJQUFzQyxDQUMzRSxNQUFPLENBQ0gsWUFBYSxFQUFrQyxZQUFZLENBQy9ELEdBR0osTUFBTSxDQUFNLENBQ1IsS0FDQSxLQUNBLE9BQ0EsV0FBVyxFQUFHLE9BQU0sT0FBTyxFQUFNLGNBQWMsT0FBUSxTQUFTLENBQUMsR0FBSyxDQUNsRSxLQUFLLEtBQU8sRUFDWixLQUFLLEtBQU8sRUFDWixLQUFLLE9BQVMsRUFFbEIsR0FBRyxDQUFDLEVBQU8sQ0FDUCxLQUFLLE9BQU8sS0FBSyxDQUFLLEVBRTFCLEdBQUcsQ0FBQyxFQUFRLENBQ1IsS0FBSyxPQUFTLEVBRWxCLE1BQU0sQ0FBQyxFQUFPLENBQ1YsS0FBSyxPQUFTLEtBQUssT0FBTyxPQUFPLENBQUMsSUFBTSxJQUFNLENBQUssRUFFdkQsUUFBUSxFQUFHLENBQ1AsT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQU8sRUFBRSxTQUFTLEdBQUcsR0FBSyxFQUFFLFNBQVMsR0FBRyxFQUFJLElBQUksS0FBTyxDQUFFLEVBQUUsS0FBSyxJQUFJLEVBRWhHLEdBQUcsRUFBRyxDQUNGLE9BQU8sS0FBSyxPQUVwQixDQUVBLE1BQU0sQ0FBTyxDQUNULFFBQVUsQ0FBQyxFQUNYLFNBQ0EsV0FBVyxFQUFHLFNBQVMsQ0FBQyxFQUFHLFdBQVcsU0FBVyxDQUM3QyxFQUFPLFFBQVEsS0FBSyxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQ3ZDLEtBQUssU0FBVyxFQUVwQixRQUFRLENBQUMsRUFBTyxDQUNaLEtBQUssUUFBUSxFQUFNLEtBQUssWUFBWSxHQUFLLEVBRTdDLFFBQVEsQ0FBQyxFQUFNLENBQ1gsT0FBTyxLQUFLLFFBQVEsRUFBSyxZQUFZLEdBRXpDLFdBQVcsQ0FBQyxFQUFNLENBQ2QsT0FBTyxLQUFLLFFBQVEsRUFBSyxZQUFZLEdBRXpDLFNBQVMsQ0FBQyxFQUFNLENBQ1osT0FBTyxPQUFPLE9BQU8sS0FBSyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQVUsRUFBTSxPQUFTLENBQUksRUFFaEYsQ0FFQSxNQUFNLENBQVksQ0FDZCxPQUNBLFNBQ0EsU0FDQSxLQUNBLEtBQ0EsTUFDQSxRQUNBLFNBQ0EsU0FDQSxTQUNBLEtBQ0EsV0FBVyxDQUFDLEVBQVMsQ0FDakIsS0FBSyxPQUFTLEVBQVEsUUFBVSxNQUNoQyxLQUFLLFNBQVcsRUFBUSxVQUFZLFlBQ3BDLEtBQUssS0FBTyxFQUFRLEtBQ3BCLEtBQUssTUFBUSxFQUFRLE9BQVMsQ0FBQyxFQUMvQixLQUFLLFFBQVUsRUFBUSxTQUFXLENBQUMsRUFDbkMsS0FBSyxLQUFPLEVBQVEsS0FDcEIsS0FBSyxTQUFXLEVBQVEsU0FDbEIsRUFBUSxTQUFTLE1BQU0sRUFBRSxJQUFNLElBQzNCLEdBQUcsRUFBUSxZQUNYLEVBQVEsU0FDWixTQUNOLEtBQUssS0FBTyxFQUFRLEtBQVEsRUFBUSxLQUFLLE9BQU8sQ0FBQyxJQUFNLElBQU0sSUFBSSxFQUFRLE9BQVMsRUFBUSxLQUFRLElBQ2xHLEtBQUssU0FBVyxFQUFRLFNBQ3hCLEtBQUssU0FBVyxFQUFRLFNBQ3hCLEtBQUssU0FBVyxFQUFRLGVBRXJCLE1BQUssQ0FBQyxFQUFTLENBQ2xCLElBQU0sRUFBUyxJQUFJLEVBQVksSUFDeEIsRUFDSCxRQUFTLElBQUssRUFBUSxPQUFRLENBQ2xDLENBQUMsRUFDRCxHQUFJLEVBQU8sTUFDUCxFQUFPLE1BQVEsRUFBVyxFQUFPLEtBQUssRUFFMUMsT0FBTyxRQUVKLFdBQVUsQ0FBQyxFQUFTLENBQ3ZCLEdBQUksQ0FBQyxFQUNELE1BQU8sR0FFWCxJQUFNLEVBQU0sRUFDWixNQUFRLFdBQVksR0FDaEIsYUFBYyxHQUNkLGFBQWMsR0FDZCxTQUFVLEdBQ1YsT0FBTyxFQUFJLFFBQWEsVUFDeEIsT0FBTyxFQUFJLFVBQWUsU0FFbEMsS0FBSyxFQUFHLENBQ0osT0FBTyxFQUFZLE1BQU0sSUFBSSxFQUVyQyxDQUNBLFNBQVMsQ0FBVSxDQUFDLEVBQU8sQ0FDdkIsT0FBTyxPQUFPLEtBQUssQ0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFPLElBQWMsQ0FDbkQsSUFBTSxFQUFRLEVBQU0sR0FDcEIsTUFBTyxJQUNBLEdBQ0YsR0FBWSxNQUFNLFFBQVEsQ0FBSyxFQUFJLENBQUMsR0FBRyxDQUFLLEVBQUksQ0FDckQsR0FDRCxDQUFDLENBQUMsRUFHVCxNQUFNLENBQWEsQ0FDZixXQUNBLE9BQ0EsUUFDQSxLQUNBLFdBQVcsQ0FBQyxFQUFTLENBQ2pCLEtBQUssV0FBYSxFQUFRLFdBQzFCLEtBQUssT0FBUyxFQUFRLE9BQ3RCLEtBQUssUUFBVSxFQUFRLFNBQVcsQ0FBQyxFQUNuQyxLQUFLLEtBQU8sRUFBUSxXQUVqQixXQUFVLENBQUMsRUFBVSxDQUN4QixHQUFJLENBQUMsRUFDRCxNQUFPLEdBQ1gsSUFBTSxFQUFPLEVBQ2IsT0FBTyxPQUFPLEVBQUssYUFBZSxVQUFZLE9BQU8sRUFBSyxVQUFZLFNBRTlFLENBRUEsU0FBUyxDQUFlLENBQUMsRUFBVSxDQUUvQixNQURvQixrQ0FDRCxLQUFLLENBQVEsRUFHNUIsUUFBUSxFQUNSLFNBQVMsRUFDVCxjQUFjLEVBQ2QsZUFBZSxFQUNmLHVDQUF1QyxFQUN2QyxrQkFBa0IsRUFDbEIsa0NBQWtDIiwKICAiZGVidWdJZCI6ICJBNDFEQUE5MUU1OTYyNkRDNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|