@citolab/qti-components 6.9.1-beta.49 → 6.9.1-beta.50

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.
@@ -1,4 +1,4 @@
1
- import{a as Dt}from"../chunk-JOALQWA3.js";import{a as b,b as C,c as n}from"../chunk-NYAUPIAG.js";import{provide as gr}from"@lit/context";import{LitElement as br,html as vr}from"lit";import{customElement as yr,property as K}from"lit/decorators.js";function x(c,i){let e=b({waitUntilFirstUpdate:!1},i);return(t,r)=>{let{update:s}=t,o=Array.isArray(c)?c:[c];t.update=function(a){o.forEach(l=>{let p=l;if(a.has(p)){let d=a.get(p),u=this[p];d!==u&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[r](d,u)}}),s.call(this,a)}}}import{createContext as fr}from"@lit/context";var Ht=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],R=fr("item");var q=class extends br{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Ht};this._initialContext=C(b({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=C(b({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>b({identifier:e.identifier,value:e.value,type:e.type},e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=C(b({},this._context),{variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?b(b({},t),r):t})}),this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.response=t.value)}t.type==="outcome"&&this._feedbackElements.forEach(r=>r.checkShowFeedback(t.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(o=>o.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.response=t.response)}}render(){return vr`<slot></slot>`}showCorrectResponse(e){let r=this._context.variables.filter(s=>"correctResponse"in s&&s.correctResponse).map(s=>({responseIdentifier:s.identifier,response:s.correctResponse}));for(let s of r){let o=this._interactionElements.find(a=>a.getAttribute("response-identifier")===s.responseIdentifier);o&&(o.correctResponse=e?s.response:"")}}processResponse(e=!0){var r;let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((r=this._context.variables.find(s=>s.identifier==="numAttempts"))==null?void 0:r.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context=C(b({},this._context),{variables:this._context.variables.map(r=>r.identifier!==e?r:C(b({},r),{value:t}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){var s;let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=C(b({},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:C(b({},o),{value:r.cardinality==="single"?t:[...o.value,t]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(s=this._context.variables.find(o=>o.identifier===e))==null?void 0:s.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};n([K({type:String})],q.prototype,"title",2),n([K({type:String})],q.prototype,"identifier",2),n([K({type:String})],q.prototype,"adaptive",2),n([K({type:String})],q.prototype,"timeDependent",2),n([K({type:Boolean})],q.prototype,"disabled",2),n([x("disabled",{waitUntilFirstUpdate:!0})],q.prototype,"_handleDisabledChange",2),n([K({type:Boolean})],q.prototype,"readonly",2),n([x("readonly",{waitUntilFirstUpdate:!0})],q.prototype,"_handleReadonlyChange",2),n([gr({context:R})],q.prototype,"_context",2),q=n([yr("qti-assessment-item")],q);import{LitElement as xr}from"lit";import{customElement as Er,property as Nt}from"lit/decorators.js";var W=class extends xr{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let s=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);s?await this.updateStimulusRef(s):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=this.href.substring(0,this.href.lastIndexOf("/")),r=await Dt().load(this.href).then(s=>s.path(t).htmldoc());if(r){let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...s)}}};n([Nt({type:String})],W.prototype,"identifier",2),n([Nt({type:String})],W.prototype,"href",2),W=n([Er("qti-assessment-stimulus-ref")],W);import{html as Cr}from"lit";import{property as Ae}from"lit/decorators.js";var Vt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function M(c,i){class e extends c{constructor(...s){super(...s);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this._internals=this.attachInternals()}handleDisabledChange(s,o){this.tabIndex=o?-1:0,o&&this.blur()}setInternalState(s,o){o&&!this._internals.states.has(s)?this._internals.states.add(s):!o&&this._internals.states.has(s)&&this._internals.states.delete(s)}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${i}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${i}`,{bubbles:!0,composed:!0}))}_onKeyUp(s){s.altKey||s.code==="Space"&&(s.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${i}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return Cr`<slot></slot>`}}return n([Ae({type:String})],e.prototype,"identifier",2),n([Ae({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Vt})],e.prototype,"disabled",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Vt})],e.prototype,"readonly",2),n([x("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}import{customElement as Tr}from"lit/decorators.js";import{html as wr,LitElement as Sr}from"lit";import{css as qr}from"lit";var $t=qr`
1
+ import{a as Dt}from"../chunk-IRTOORT6.js";import{a as b,b as C,c as n}from"../chunk-NYAUPIAG.js";import{provide as gr}from"@lit/context";import{LitElement as br,html as vr}from"lit";import{customElement as yr,property as K}from"lit/decorators.js";function x(c,i){let e=b({waitUntilFirstUpdate:!1},i);return(t,r)=>{let{update:s}=t,o=Array.isArray(c)?c:[c];t.update=function(a){o.forEach(l=>{let p=l;if(a.has(p)){let d=a.get(p),u=this[p];d!==u&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[r](d,u)}}),s.call(this,a)}}}import{createContext as fr}from"@lit/context";var Ht=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],R=fr("item");var q=class extends br{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Ht};this._initialContext=C(b({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=C(b({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>b({identifier:e.identifier,value:e.value,type:e.type},e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=C(b({},this._context),{variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?b(b({},t),r):t})}),this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.response=t.value)}t.type==="outcome"&&this._feedbackElements.forEach(r=>r.checkShowFeedback(t.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(o=>o.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.response=t.response)}}render(){return vr`<slot></slot>`}showCorrectResponse(e){let r=this._context.variables.filter(s=>"correctResponse"in s&&s.correctResponse).map(s=>({responseIdentifier:s.identifier,response:s.correctResponse}));for(let s of r){let o=this._interactionElements.find(a=>a.getAttribute("response-identifier")===s.responseIdentifier);o&&(o.correctResponse=e?s.response:"")}}processResponse(e=!0){var r;let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((r=this._context.variables.find(s=>s.identifier==="numAttempts"))==null?void 0:r.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context=C(b({},this._context),{variables:this._context.variables.map(r=>r.identifier!==e?r:C(b({},r),{value:t}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){var s;let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=C(b({},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:C(b({},o),{value:r.cardinality==="single"?t:[...o.value,t]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(s=this._context.variables.find(o=>o.identifier===e))==null?void 0:s.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};n([K({type:String})],q.prototype,"title",2),n([K({type:String})],q.prototype,"identifier",2),n([K({type:String})],q.prototype,"adaptive",2),n([K({type:String})],q.prototype,"timeDependent",2),n([K({type:Boolean})],q.prototype,"disabled",2),n([x("disabled",{waitUntilFirstUpdate:!0})],q.prototype,"_handleDisabledChange",2),n([K({type:Boolean})],q.prototype,"readonly",2),n([x("readonly",{waitUntilFirstUpdate:!0})],q.prototype,"_handleReadonlyChange",2),n([gr({context:R})],q.prototype,"_context",2),q=n([yr("qti-assessment-item")],q);import{LitElement as xr}from"lit";import{customElement as Er,property as Nt}from"lit/decorators.js";var W=class extends xr{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let s=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);s?await this.updateStimulusRef(s):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=this.href.substring(0,this.href.lastIndexOf("/")),r=await Dt().load(this.href).then(s=>s.path(t).htmldoc());if(r){let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...s)}}};n([Nt({type:String})],W.prototype,"identifier",2),n([Nt({type:String})],W.prototype,"href",2),W=n([Er("qti-assessment-stimulus-ref")],W);import{html as Cr}from"lit";import{property as Ae}from"lit/decorators.js";var Vt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function M(c,i){class e extends c{constructor(...s){super(...s);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this._internals=this.attachInternals()}handleDisabledChange(s,o){this.tabIndex=o?-1:0,o&&this.blur()}setInternalState(s,o){o&&!this._internals.states.has(s)?this._internals.states.add(s):!o&&this._internals.states.has(s)&&this._internals.states.delete(s)}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${i}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${i}`,{bubbles:!0,composed:!0}))}_onKeyUp(s){s.altKey||s.code==="Space"&&(s.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${i}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return Cr`<slot></slot>`}}return n([Ae({type:String})],e.prototype,"identifier",2),n([Ae({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Vt})],e.prototype,"disabled",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Vt})],e.prototype,"readonly",2),n([x("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}import{customElement as Tr}from"lit/decorators.js";import{html as wr,LitElement as Sr}from"lit";import{css as qr}from"lit";var $t=qr`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -1,3 +1,8 @@
1
+ import { p as QtiAssessmentItem } from '../qti-simple-choice-Bil0gmT4.js';
2
+ import 'lit-html';
3
+ import 'lit';
4
+ import 'lit-html/directives/ref.js';
5
+
1
6
  type ManifestData = {
2
7
  itemLocation: string;
3
8
  testIdentifier: string;
@@ -11,6 +16,6 @@ type ManifestData = {
11
16
  };
12
17
  declare const getItemByIndex: (packageUri: string, index: number, cancelPreviousRequest?: boolean) => Promise<any>;
13
18
  declare const getAssessmentData: (packageUri: string) => Promise<ManifestData>;
14
- declare const getItemByUri: (itemUri: string, cancelPreviousRequest?: boolean) => Promise<Element>;
19
+ declare const getItemByUri: (itemUri: string, cancelPreviousRequest?: boolean) => Promise<QtiAssessmentItem>;
15
20
 
16
21
  export { type ManifestData, getAssessmentData, getItemByIndex, getItemByUri };
@@ -1,2 +1,2 @@
1
- import{a as c,b as h,c as m}from"../chunk-JOALQWA3.js";import"../chunk-NYAUPIAG.js";var l=t=>t.endsWith("/")?t:`${t}/`,g=async(t,e,n=!0)=>{let a=l(t),i=await h().load(`${a}imsmanifest.xml`).then(s=>s.assessmentTest()),f=await m().load(`${a}${i.href}`).then(s=>s.items()),r=`${a}${i.href.substring(0,i.href.lastIndexOf("/"))}/${f[e].href}`,o=await c().load(r,n).then(s=>s.path(r.substring(0,r.lastIndexOf("/"))).stripStyleSheets());return{itemHTMLDoc:o.htmldoc(),itemHTML:o.html(),items:f}},$=async t=>{let e=l(t),n=await h().load(`${e}imsmanifest.xml`).then(s=>s.assessmentTest()),a=await m().load(`${e}${n.href}`).then(s=>s.htmldoc()),i=await m().load(`${e}${n.href}`).then(s=>s.items()),r=`${e.substring(0,e.lastIndexOf("/"))}/${n.href.substring(0,n.href.lastIndexOf("/"))}`,o=`${r}/${i[0].href.substring(0,i[0].href.lastIndexOf("/"))}`;return{assessmentXML:a,itemLocation:o,assessmentLocation:r,items:i,testIdentifier:n.identifier}},x=async(t,e=!0)=>c().load(t,e).then(n=>n.path(t.substring(0,t.lastIndexOf("/"))).stripStyleSheets().htmldoc().firstElementChild);export{$ as getAssessmentData,g as getItemByIndex,x as getItemByUri};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktbG9hZGVyL3F0aS1sb2FkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHF0aVRyYW5zZm9ybUl0ZW0sIHF0aVRyYW5zZm9ybU1hbmlmZXN0LCBxdGlUcmFuc2Zvcm1UZXN0IH0gZnJvbSAnLi4vcXRpLXRyYW5zZm9ybWVycyc7XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0RGF0YSA9IHtcbiAgaXRlbUxvY2F0aW9uOiBzdHJpbmc7XG4gIHRlc3RJZGVudGlmaWVyOiBzdHJpbmc7XG4gIGFzc2Vzc21lbnRYTUw6IERvY3VtZW50RnJhZ21lbnQ7XG4gIGFzc2Vzc21lbnRMb2NhdGlvbjogc3RyaW5nO1xuICBpdGVtczoge1xuICAgICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgICAgaHJlZjogc3RyaW5nO1xuICAgICAgY2F0ZWdvcnk6IHN0cmluZztcbiAgfVtdO1xufTtcblxuLy8gVXRpbGl0eSBmdW5jdGlvbiB0byBlbnN1cmUgcGFja2FnZSBVUklzIGVuZCB3aXRoIGEgJy8nXG5jb25zdCBub3JtYWxpemVVcmkgPSAodXJpOiBzdHJpbmcpID0+ICh1cmkuZW5kc1dpdGgoJy8nKSA/IHVyaSA6IGAke3VyaX0vYCk7XG5cbi8vIEZldGNoZXMgYW4gaXRlbSBmcm9tIGEgbWFuaWZlc3QgYnkgaW5kZXhcbmV4cG9ydCBjb25zdCBnZXRJdGVtQnlJbmRleCA9IGFzeW5jIChwYWNrYWdlVXJpOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkVXJpID0gbm9ybWFsaXplVXJpKHBhY2thZ2VVcmkpO1xuXG4gIGNvbnN0IHRlc3QgPSBhd2FpdCBxdGlUcmFuc2Zvcm1NYW5pZmVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX1pbXNtYW5pZmVzdC54bWxgKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuYXNzZXNzbWVudFRlc3QoKSk7XG5cbiAgY29uc3QgaXRlbXMgPSBhd2FpdCBxdGlUcmFuc2Zvcm1UZXN0KClcbiAgICAubG9hZChgJHtub3JtYWxpemVkVXJpfSR7dGVzdC5ocmVmfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5pdGVtcygpKTtcblxuICBjb25zdCBpdGVtVXJpID0gYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZi5zdWJzdHJpbmcoMCwgdGVzdC5ocmVmLmxhc3RJbmRleE9mKCcvJykpfS8ke2l0ZW1zW2luZGV4XS5ocmVmfWA7XG5cbiAgY29uc3QgaXRlbURvYyA9IGF3YWl0IHF0aVRyYW5zZm9ybUl0ZW0oKVxuICAgIC5sb2FkKGl0ZW1VcmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdClcbiAgICAudGhlbihhcGkgPT4gYXBpLnBhdGgoaXRlbVVyaS5zdWJzdHJpbmcoMCwgaXRlbVVyaS5sYXN0SW5kZXhPZignLycpKSkuc3RyaXBTdHlsZVNoZWV0cygpKTtcblxuICByZXR1cm4ge1xuICAgIGl0ZW1IVE1MRG9jOiBpdGVtRG9jLmh0bWxkb2MoKSxcbiAgICBpdGVtSFRNTDogaXRlbURvYy5odG1sKCksXG4gICAgaXRlbXNcbiAgfTtcbn07XG5cbi8vIEZldGNoZXMgYXNzZXNzbWVudCBkYXRhIGZyb20gdGhlIG1hbmlmZXN0XG5leHBvcnQgY29uc3QgZ2V0QXNzZXNzbWVudERhdGEgPSBhc3luYyAocGFja2FnZVVyaTogc3RyaW5nKTogUHJvbWlzZTxNYW5pZmVzdERhdGE+ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFVyaSA9IG5vcm1hbGl6ZVVyaShwYWNrYWdlVXJpKTtcblxuICBjb25zdCB0ZXN0ID0gYXdhaXQgcXRpVHJhbnNmb3JtTWFuaWZlc3QoKVxuICAgIC5sb2FkKGAke25vcm1hbGl6ZWRVcml9aW1zbWFuaWZlc3QueG1sYClcbiAgICAudGhlbihhcGkgPT4gYXBpLmFzc2Vzc21lbnRUZXN0KCkpO1xuXG4gIGNvbnN0IGFzc2Vzc21lbnREb2MgPSBhd2FpdCBxdGlUcmFuc2Zvcm1UZXN0KClcbiAgICAubG9hZChgJHtub3JtYWxpemVkVXJpfSR7dGVzdC5ocmVmfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5odG1sZG9jKCkpO1xuXG4gIGNvbnN0IGl0ZW1zID0gYXdhaXQgcXRpVHJhbnNmb3JtVGVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZn1gKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuaXRlbXMoKSk7XG5cbiAgY29uc3QgYmFzZVVyaSA9IG5vcm1hbGl6ZWRVcmkuc3Vic3RyaW5nKDAsIG5vcm1hbGl6ZWRVcmkubGFzdEluZGV4T2YoJy8nKSk7XG4gIGNvbnN0IGFzc2Vzc21lbnRMb2NhdGlvbiA9IGAke2Jhc2VVcml9LyR7dGVzdC5ocmVmLnN1YnN0cmluZygwLCB0ZXN0LmhyZWYubGFzdEluZGV4T2YoJy8nKSl9YDtcbiAgY29uc3QgaXRlbUxvY2F0aW9uID0gYCR7YXNzZXNzbWVudExvY2F0aW9ufS8ke2l0ZW1zWzBdLmhyZWYuc3Vic3RyaW5nKDAsIGl0ZW1zWzBdLmhyZWYubGFzdEluZGV4T2YoJy8nKSl9YDtcblxuICByZXR1cm4ge1xuICAgIGFzc2Vzc21lbnRYTUw6IGFzc2Vzc21lbnREb2MsXG4gICAgaXRlbUxvY2F0aW9uLFxuICAgIGFzc2Vzc21lbnRMb2NhdGlvbixcbiAgICBpdGVtcyxcbiAgICB0ZXN0SWRlbnRpZmllcjogdGVzdC5pZGVudGlmaWVyXG4gIH07XG59O1xuXG4vLyBGZXRjaGVzIGEgc2luZ2xlIGl0ZW0gYnkgVVJJXG5leHBvcnQgY29uc3QgZ2V0SXRlbUJ5VXJpID0gYXN5bmMgKGl0ZW1Vcmk6IHN0cmluZywgY2FuY2VsUHJldmlvdXNSZXF1ZXN0ID0gdHJ1ZSk6IFByb21pc2U8RWxlbWVudD4gPT4ge1xuICByZXR1cm4gcXRpVHJhbnNmb3JtSXRlbSgpXG4gICAgLmxvYWQoaXRlbVVyaSwgY2FuY2VsUHJldmlvdXNSZXF1ZXN0KVxuICAgIC50aGVuKGFwaSA9PlxuICAgICAgYXBpXG4gICAgICAgIC5wYXRoKGl0ZW1Vcmkuc3Vic3RyaW5nKDAsIGl0ZW1VcmkubGFzdEluZGV4T2YoJy8nKSkpXG4gICAgICAgIC5zdHJpcFN0eWxlU2hlZXRzKClcbiAgICAgICAgLmh0bWxkb2MoKS5maXJzdEVsZW1lbnRDaGlsZFxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIm9GQWVBLElBQU1BLEVBQWdCQyxHQUFpQkEsRUFBSSxTQUFTLEdBQUcsRUFBSUEsRUFBTSxHQUFHQSxDQUFHLElBRzFEQyxFQUFpQixNQUFPQyxFQUFvQkMsRUFBZUMsRUFBd0IsS0FBdUIsQ0FDckgsSUFBTUMsRUFBZ0JOLEVBQWFHLENBQVUsRUFFdkNJLEVBQU8sTUFBTUMsRUFBcUIsRUFDckMsS0FBSyxHQUFHRixDQUFhLGlCQUFpQixFQUN0QyxLQUFLRyxHQUFPQSxFQUFJLGVBQWUsQ0FBQyxFQUU3QkMsRUFBUSxNQUFNQyxFQUFpQixFQUNsQyxLQUFLLEdBQUdMLENBQWEsR0FBR0MsRUFBSyxJQUFJLEVBQUUsRUFDbkMsS0FBS0UsR0FBT0EsRUFBSSxNQUFNLENBQUMsRUFFcEJHLEVBQVUsR0FBR04sQ0FBYSxHQUFHQyxFQUFLLEtBQUssVUFBVSxFQUFHQSxFQUFLLEtBQUssWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJRyxFQUFNTixDQUFLLEVBQUUsSUFBSSxHQUVwR1MsRUFBVSxNQUFNQyxFQUFpQixFQUNwQyxLQUFLRixFQUFTUCxDQUFxQixFQUNuQyxLQUFLSSxHQUFPQSxFQUFJLEtBQUtHLEVBQVEsVUFBVSxFQUFHQSxFQUFRLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxFQUUxRixNQUFPLENBQ0wsWUFBYUMsRUFBUSxRQUFRLEVBQzdCLFNBQVVBLEVBQVEsS0FBSyxFQUN2QixNQUFBSCxDQUNGLENBQ0YsRUFHYUssRUFBb0IsTUFBT1osR0FBOEMsQ0FDcEYsSUFBTUcsRUFBZ0JOLEVBQWFHLENBQVUsRUFFdkNJLEVBQU8sTUFBTUMsRUFBcUIsRUFDckMsS0FBSyxHQUFHRixDQUFhLGlCQUFpQixFQUN0QyxLQUFLRyxHQUFPQSxFQUFJLGVBQWUsQ0FBQyxFQUU3Qk8sRUFBZ0IsTUFBTUwsRUFBaUIsRUFDMUMsS0FBSyxHQUFHTCxDQUFhLEdBQUdDLEVBQUssSUFBSSxFQUFFLEVBQ25DLEtBQUtFLEdBQU9BLEVBQUksUUFBUSxDQUFDLEVBRXRCQyxFQUFRLE1BQU1DLEVBQWlCLEVBQ2xDLEtBQUssR0FBR0wsQ0FBYSxHQUFHQyxFQUFLLElBQUksRUFBRSxFQUNuQyxLQUFLRSxHQUFPQSxFQUFJLE1BQU0sQ0FBQyxFQUdwQlEsRUFBcUIsR0FEWFgsRUFBYyxVQUFVLEVBQUdBLEVBQWMsWUFBWSxHQUFHLENBQUMsQ0FDcEMsSUFBSUMsRUFBSyxLQUFLLFVBQVUsRUFBR0EsRUFBSyxLQUFLLFlBQVksR0FBRyxDQUFDLENBQUMsR0FDckZXLEVBQWUsR0FBR0QsQ0FBa0IsSUFBSVAsRUFBTSxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUdBLEVBQU0sQ0FBQyxFQUFFLEtBQUssWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUV4RyxNQUFPLENBQ0wsY0FBZU0sRUFDZixhQUFBRSxFQUNBLG1CQUFBRCxFQUNBLE1BQUFQLEVBQ0EsZUFBZ0JILEVBQUssVUFDdkIsQ0FDRixFQUdhWSxFQUFlLE1BQU9QLEVBQWlCUCxFQUF3QixLQUNuRVMsRUFBaUIsRUFDckIsS0FBS0YsRUFBU1AsQ0FBcUIsRUFDbkMsS0FBS0ksR0FDSkEsRUFDRyxLQUFLRyxFQUFRLFVBQVUsRUFBR0EsRUFBUSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQ25ELGlCQUFpQixFQUNqQixRQUFRLEVBQUUsaUJBQ2YiLAogICJuYW1lcyI6IFsibm9ybWFsaXplVXJpIiwgInVyaSIsICJnZXRJdGVtQnlJbmRleCIsICJwYWNrYWdlVXJpIiwgImluZGV4IiwgImNhbmNlbFByZXZpb3VzUmVxdWVzdCIsICJub3JtYWxpemVkVXJpIiwgInRlc3QiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAiYXBpIiwgIml0ZW1zIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiaXRlbVVyaSIsICJpdGVtRG9jIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAiZ2V0QXNzZXNzbWVudERhdGEiLCAiYXNzZXNzbWVudERvYyIsICJhc3Nlc3NtZW50TG9jYXRpb24iLCAiaXRlbUxvY2F0aW9uIiwgImdldEl0ZW1CeVVyaSJdCn0K
1
+ import{a as c,b as h,c as m}from"../chunk-IRTOORT6.js";import"../chunk-NYAUPIAG.js";var d=t=>t.endsWith("/")?t:`${t}/`,$=async(t,e,n=!0)=>{let a=d(t),i=await h().load(`${a}imsmanifest.xml`).then(s=>s.assessmentTest()),f=await m().load(`${a}${i.href}`).then(s=>s.items()),r=`${a}${i.href.substring(0,i.href.lastIndexOf("/"))}/${f[e].href}`,o=await c().load(r,n).then(s=>s.path(r.substring(0,r.lastIndexOf("/"))).stripStyleSheets());return{itemHTMLDoc:o.htmldoc(),itemHTML:o.html(),items:f}},I=async t=>{let e=d(t),n=await h().load(`${e}imsmanifest.xml`).then(s=>s.assessmentTest()),a=await m().load(`${e}${n.href}`).then(s=>s.htmldoc()),i=await m().load(`${e}${n.href}`).then(s=>s.items()),r=`${e.substring(0,e.lastIndexOf("/"))}/${n.href.substring(0,n.href.lastIndexOf("/"))}`,o=`${r}/${i[0].href.substring(0,i[0].href.lastIndexOf("/"))}`;return{assessmentXML:a,itemLocation:o,assessmentLocation:r,items:i,testIdentifier:n.identifier}},x=async(t,e=!0)=>c().load(t,e).then(n=>n.path(t.substring(0,t.lastIndexOf("/"))).htmldoc().firstElementChild);export{I as getAssessmentData,$ as getItemByIndex,x as getItemByUri};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktbG9hZGVyL3F0aS1sb2FkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFF0aUFzc2Vzc21lbnRJdGVtIH0gZnJvbSAnLi4vcXRpLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgcXRpVHJhbnNmb3JtSXRlbSwgcXRpVHJhbnNmb3JtVGVzdCB9IGZyb20gJy4uL3F0aS10cmFuc2Zvcm1lcnMnO1xuaW1wb3J0IHsgcXRpVHJhbnNmb3JtTWFuaWZlc3QgfSBmcm9tICcuLi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm0tbWFuaWZlc3QnO1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdERhdGEgPSB7XG4gIGl0ZW1Mb2NhdGlvbjogc3RyaW5nO1xuICB0ZXN0SWRlbnRpZmllcjogc3RyaW5nO1xuICBhc3Nlc3NtZW50WE1MOiBEb2N1bWVudEZyYWdtZW50O1xuICBhc3Nlc3NtZW50TG9jYXRpb246IHN0cmluZztcbiAgaXRlbXM6IHtcbiAgICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICAgIGhyZWY6IHN0cmluZztcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbi8vIFV0aWxpdHkgZnVuY3Rpb24gdG8gZW5zdXJlIHBhY2thZ2UgVVJJcyBlbmQgd2l0aCBhICcvJ1xuY29uc3Qgbm9ybWFsaXplVXJpID0gKHVyaTogc3RyaW5nKSA9PiAodXJpLmVuZHNXaXRoKCcvJykgPyB1cmkgOiBgJHt1cml9L2ApO1xuXG4vLyBGZXRjaGVzIGFuIGl0ZW0gZnJvbSBhIG1hbmlmZXN0IGJ5IGluZGV4XG5leHBvcnQgY29uc3QgZ2V0SXRlbUJ5SW5kZXggPSBhc3luYyAocGFja2FnZVVyaTogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSB0cnVlKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFVyaSA9IG5vcm1hbGl6ZVVyaShwYWNrYWdlVXJpKTtcblxuICBjb25zdCB0ZXN0ID0gYXdhaXQgcXRpVHJhbnNmb3JtTWFuaWZlc3QoKVxuICAgIC5sb2FkKGAke25vcm1hbGl6ZWRVcml9aW1zbWFuaWZlc3QueG1sYClcbiAgICAudGhlbihhcGkgPT4gYXBpLmFzc2Vzc21lbnRUZXN0KCkpO1xuXG4gIGNvbnN0IGl0ZW1zID0gYXdhaXQgcXRpVHJhbnNmb3JtVGVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZn1gKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuaXRlbXMoKSk7XG5cbiAgY29uc3QgaXRlbVVyaSA9IGAke25vcm1hbGl6ZWRVcml9JHt0ZXN0LmhyZWYuc3Vic3RyaW5nKDAsIHRlc3QuaHJlZi5sYXN0SW5kZXhPZignLycpKX0vJHtpdGVtc1tpbmRleF0uaHJlZn1gO1xuXG4gIGNvbnN0IGl0ZW1Eb2MgPSBhd2FpdCBxdGlUcmFuc2Zvcm1JdGVtKClcbiAgICAubG9hZChpdGVtVXJpLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QpXG4gICAgLnRoZW4oYXBpID0+IGFwaS5wYXRoKGl0ZW1Vcmkuc3Vic3RyaW5nKDAsIGl0ZW1VcmkubGFzdEluZGV4T2YoJy8nKSkpLnN0cmlwU3R5bGVTaGVldHMoKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtSFRNTERvYzogaXRlbURvYy5odG1sZG9jKCksXG4gICAgaXRlbUhUTUw6IGl0ZW1Eb2MuaHRtbCgpLFxuICAgIGl0ZW1zXG4gIH07XG59O1xuXG4vLyBGZXRjaGVzIGFzc2Vzc21lbnQgZGF0YSBmcm9tIHRoZSBtYW5pZmVzdFxuZXhwb3J0IGNvbnN0IGdldEFzc2Vzc21lbnREYXRhID0gYXN5bmMgKHBhY2thZ2VVcmk6IHN0cmluZyk6IFByb21pc2U8TWFuaWZlc3REYXRhPiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRVcmkgPSBub3JtYWxpemVVcmkocGFja2FnZVVyaSk7XG5cbiAgY29uc3QgdGVzdCA9IGF3YWl0IHF0aVRyYW5zZm9ybU1hbmlmZXN0KClcbiAgICAubG9hZChgJHtub3JtYWxpemVkVXJpfWltc21hbmlmZXN0LnhtbGApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5hc3Nlc3NtZW50VGVzdCgpKTtcblxuICBjb25zdCBhc3Nlc3NtZW50RG9jID0gYXdhaXQgcXRpVHJhbnNmb3JtVGVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZn1gKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuaHRtbGRvYygpKTtcblxuICBjb25zdCBpdGVtcyA9IGF3YWl0IHF0aVRyYW5zZm9ybVRlc3QoKVxuICAgIC5sb2FkKGAke25vcm1hbGl6ZWRVcml9JHt0ZXN0LmhyZWZ9YClcbiAgICAudGhlbihhcGkgPT4gYXBpLml0ZW1zKCkpO1xuXG4gIGNvbnN0IGJhc2VVcmkgPSBub3JtYWxpemVkVXJpLnN1YnN0cmluZygwLCBub3JtYWxpemVkVXJpLmxhc3RJbmRleE9mKCcvJykpO1xuICBjb25zdCBhc3Nlc3NtZW50TG9jYXRpb24gPSBgJHtiYXNlVXJpfS8ke3Rlc3QuaHJlZi5zdWJzdHJpbmcoMCwgdGVzdC5ocmVmLmxhc3RJbmRleE9mKCcvJykpfWA7XG4gIGNvbnN0IGl0ZW1Mb2NhdGlvbiA9IGAke2Fzc2Vzc21lbnRMb2NhdGlvbn0vJHtpdGVtc1swXS5ocmVmLnN1YnN0cmluZygwLCBpdGVtc1swXS5ocmVmLmxhc3RJbmRleE9mKCcvJykpfWA7XG5cbiAgcmV0dXJuIHtcbiAgICBhc3Nlc3NtZW50WE1MOiBhc3Nlc3NtZW50RG9jLFxuICAgIGl0ZW1Mb2NhdGlvbixcbiAgICBhc3Nlc3NtZW50TG9jYXRpb24sXG4gICAgaXRlbXMsXG4gICAgdGVzdElkZW50aWZpZXI6IHRlc3QuaWRlbnRpZmllclxuICB9O1xufTtcblxuLy8gRmV0Y2hlcyBhIHNpbmdsZSBpdGVtIGJ5IFVSSVxuZXhwb3J0IGNvbnN0IGdldEl0ZW1CeVVyaSA9IGFzeW5jIChpdGVtVXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpOiBQcm9taXNlPFF0aUFzc2Vzc21lbnRJdGVtPiA9PiB7XG4gIHJldHVybiBxdGlUcmFuc2Zvcm1JdGVtKClcbiAgICAubG9hZChpdGVtVXJpLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QpXG4gICAgLnRoZW4oYXBpID0+XG4gICAgICBhcGlcbiAgICAgICAgLnBhdGgoaXRlbVVyaS5zdWJzdHJpbmcoMCwgaXRlbVVyaS5sYXN0SW5kZXhPZignLycpKSlcbiAgICAgICAgLmh0bWxkb2MoKS5maXJzdEVsZW1lbnRDaGlsZCBhcyBRdGlBc3Nlc3NtZW50SXRlbVxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIm9GQWlCQSxJQUFNQSxFQUFnQkMsR0FBaUJBLEVBQUksU0FBUyxHQUFHLEVBQUlBLEVBQU0sR0FBR0EsQ0FBRyxJQUcxREMsRUFBaUIsTUFBT0MsRUFBb0JDLEVBQWVDLEVBQXdCLEtBQXVCLENBQ3JILElBQU1DLEVBQWdCTixFQUFhRyxDQUFVLEVBRXZDSSxFQUFPLE1BQU1DLEVBQXFCLEVBQ3JDLEtBQUssR0FBR0YsQ0FBYSxpQkFBaUIsRUFDdEMsS0FBS0csR0FBT0EsRUFBSSxlQUFlLENBQUMsRUFFN0JDLEVBQVEsTUFBTUMsRUFBaUIsRUFDbEMsS0FBSyxHQUFHTCxDQUFhLEdBQUdDLEVBQUssSUFBSSxFQUFFLEVBQ25DLEtBQUtFLEdBQU9BLEVBQUksTUFBTSxDQUFDLEVBRXBCRyxFQUFVLEdBQUdOLENBQWEsR0FBR0MsRUFBSyxLQUFLLFVBQVUsRUFBR0EsRUFBSyxLQUFLLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSUcsRUFBTU4sQ0FBSyxFQUFFLElBQUksR0FFcEdTLEVBQVUsTUFBTUMsRUFBaUIsRUFDcEMsS0FBS0YsRUFBU1AsQ0FBcUIsRUFDbkMsS0FBS0ksR0FBT0EsRUFBSSxLQUFLRyxFQUFRLFVBQVUsRUFBR0EsRUFBUSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsRUFFMUYsTUFBTyxDQUNMLFlBQWFDLEVBQVEsUUFBUSxFQUM3QixTQUFVQSxFQUFRLEtBQUssRUFDdkIsTUFBQUgsQ0FDRixDQUNGLEVBR2FLLEVBQW9CLE1BQU9aLEdBQThDLENBQ3BGLElBQU1HLEVBQWdCTixFQUFhRyxDQUFVLEVBRXZDSSxFQUFPLE1BQU1DLEVBQXFCLEVBQ3JDLEtBQUssR0FBR0YsQ0FBYSxpQkFBaUIsRUFDdEMsS0FBS0csR0FBT0EsRUFBSSxlQUFlLENBQUMsRUFFN0JPLEVBQWdCLE1BQU1MLEVBQWlCLEVBQzFDLEtBQUssR0FBR0wsQ0FBYSxHQUFHQyxFQUFLLElBQUksRUFBRSxFQUNuQyxLQUFLRSxHQUFPQSxFQUFJLFFBQVEsQ0FBQyxFQUV0QkMsRUFBUSxNQUFNQyxFQUFpQixFQUNsQyxLQUFLLEdBQUdMLENBQWEsR0FBR0MsRUFBSyxJQUFJLEVBQUUsRUFDbkMsS0FBS0UsR0FBT0EsRUFBSSxNQUFNLENBQUMsRUFHcEJRLEVBQXFCLEdBRFhYLEVBQWMsVUFBVSxFQUFHQSxFQUFjLFlBQVksR0FBRyxDQUFDLENBQ3BDLElBQUlDLEVBQUssS0FBSyxVQUFVLEVBQUdBLEVBQUssS0FBSyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQ3JGVyxFQUFlLEdBQUdELENBQWtCLElBQUlQLEVBQU0sQ0FBQyxFQUFFLEtBQUssVUFBVSxFQUFHQSxFQUFNLENBQUMsRUFBRSxLQUFLLFlBQVksR0FBRyxDQUFDLENBQUMsR0FFeEcsTUFBTyxDQUNMLGNBQWVNLEVBQ2YsYUFBQUUsRUFDQSxtQkFBQUQsRUFDQSxNQUFBUCxFQUNBLGVBQWdCSCxFQUFLLFVBQ3ZCLENBQ0YsRUFHYVksRUFBZSxNQUFPUCxFQUFpQlAsRUFBd0IsS0FDbkVTLEVBQWlCLEVBQ3JCLEtBQUtGLEVBQVNQLENBQXFCLEVBQ25DLEtBQUtJLEdBQ0pBLEVBQ0csS0FBS0csRUFBUSxVQUFVLEVBQUdBLEVBQVEsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUNuRCxRQUFRLEVBQUUsaUJBQ2YiLAogICJuYW1lcyI6IFsibm9ybWFsaXplVXJpIiwgInVyaSIsICJnZXRJdGVtQnlJbmRleCIsICJwYWNrYWdlVXJpIiwgImluZGV4IiwgImNhbmNlbFByZXZpb3VzUmVxdWVzdCIsICJub3JtYWxpemVkVXJpIiwgInRlc3QiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAiYXBpIiwgIml0ZW1zIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiaXRlbVVyaSIsICJpdGVtRG9jIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAiZ2V0QXNzZXNzbWVudERhdGEiLCAiYXNzZXNzbWVudERvYyIsICJhc3Nlc3NtZW50TG9jYXRpb24iLCAiaXRlbUxvY2F0aW9uIiwgImdldEl0ZW1CeVVyaSJdCn0K
@@ -30,6 +30,7 @@ type transformItemApi = {
30
30
  xmldoc: () => XMLDocument;
31
31
  };
32
32
  declare const qtiTransformItem: () => transformItemApi;
33
+
33
34
  declare const qtiTransformManifest: () => {
34
35
  load: (uri: string) => Promise<{
35
36
  load(uri: any): Promise<any>;
@@ -44,6 +45,7 @@ declare const qtiTransformManifest: () => {
44
45
  identifier: string;
45
46
  };
46
47
  };
48
+
47
49
  /**
48
50
  * Returns an object with methods to load, parse and transform QTI tests.
49
51
  * @returns An object with methods to load, parse and transform QTI tests.
@@ -1,2 +1,2 @@
1
- import{a,b,c}from"../chunk-JOALQWA3.js";import"../chunk-NYAUPIAG.js";export{a as qtiTransformItem,b as qtiTransformManifest,c as qtiTransformTest};
1
+ import{a,b,c}from"../chunk-IRTOORT6.js";import"../chunk-NYAUPIAG.js";export{a as qtiTransformItem,b as qtiTransformManifest,c as qtiTransformTest};
2
2
  //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "engines": {
22
22
  "node": ">=20.0.0"
23
23
  },
24
- "version": "6.9.1-beta.49",
24
+ "version": "6.9.1-beta.50",
25
25
  "type": "module",
26
26
  "exports": {
27
27
  "./qti-components": "./dist/qti-components/index.js",
@@ -1,24 +0,0 @@
1
- var h=String.raw,L=()=>{let e,r={async load(t,n=!1){return new Promise((s,i)=>{u(t,n).then(o=>(e=o,s(r)))})},parse(t){return e=p(t),r},path:t=>(y(e,t),r),fn(t){return t(e),r},pciHooks(t){let n=["hook","module"],s=t.substring(0,t.lastIndexOf("/"));for(let i of n)e.querySelectorAll("["+i+"]").forEach(a=>{let m=a.getAttribute(i);!m.startsWith("data:")&&!m.startsWith("http")&&(a.setAttribute("base-url",t),a.setAttribute("module",s+"/"+encodeURI(m+(m.endsWith(".js")?"":".js"))))});return r},extendElementName:(t,n)=>(f(e,t,n),r),extendElementsWithClass:(t="extend")=>(d(e,t),r),customInteraction(t,n){let s=e.querySelector("qti-custom-interaction"),i=s.querySelector("object");return s.setAttribute("data-base-ref",t),s.setAttribute("data-base-item",t+n),s.setAttribute("data",i.getAttribute("data")),s.setAttribute("width",i.getAttribute("width")),s.setAttribute("height",i.getAttribute("height")),s.removeChild(i),r},convertCDATAtoComment(){return b(e),r},stripStyleSheets(){return T(e),r},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return r},M=()=>{let e,r={async load(t){return new Promise((n,s)=>{u(t).then(i=>(e=i,n(r)))})},parse(t){e=p(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return r},S=()=>{let e,r={async load(t){return new Promise((n,s)=>{u(t).then(i=>(e=i,n(r)))})},parse(t){return e=p(t),r},extendElementName:(t,n)=>(f(e,t,n),r),fn(t){return t(e),r},items(){return A(e)},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return r},x=h`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
- <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
3
- <xsl:template match="@*|node()">
4
- <xsl:copy>
5
- <xsl:apply-templates select="@*|node()"/>
6
- </xsl:copy>
7
- </xsl:template>
8
-
9
- <!-- remove existing namespaces -->
10
- <xsl:template match="*">
11
- <!-- remove element prefix -->
12
- <xsl:element name="{local-name()}">
13
- <!-- process attributes -->
14
- <xsl:for-each select="@*">
15
- <!-- remove attribute prefix -->
16
- <xsl:attribute name="{local-name()}">
17
- <xsl:value-of select="."/>
18
- </xsl:attribute>
19
- </xsl:for-each>
20
- <xsl:apply-templates/>
21
- </xsl:element>
22
- </xsl:template>
23
- </xsl:stylesheet>`;function f(e,r,t){e.querySelectorAll(r).forEach(n=>{let s=`${r}-${t}`,i=g(n,s);n.replaceWith(i)})}function d(e,r){e.querySelectorAll("*").forEach(t=>{let n=t.classList;n&&n.forEach(s=>{if(s.startsWith(`${r}:`)){let i=s.slice(`${r}:`.length),o=`${t.nodeName}-${i}`,a=g(t,o);t.replaceWith(a)}})})}function g(e,r){let t=document.createElement(r);for(let n of e.attributes)t.setAttribute(n.name,n.value);for(;e.firstChild;)t.appendChild(e.firstChild);return t}function A(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let n=t.getAttribute("identifier"),s=t.getAttribute("href"),i=t.getAttribute("category");r.push({identifier:n,href:s,category:i})}),r}var l=null;function u(e,r=!0){return r&&l!==null&&l.abort(),new Promise((t,n)=>{let s=new XMLHttpRequest;l=s,s.open("GET",e,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?t(s.responseXML):n(s.statusText)},s.onerror=()=>{n(s.statusText)},s.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function c(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(x,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function y(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var i;let n="";t.getAttribute("src")&&(n="src"),t.getAttribute("href")&&(n="href"),t.getAttribute("primary-path")&&(n="primary-path");let s=(i=t.getAttribute(n))==null?void 0:i.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let o=r+encodeURI(s);t.setAttribute(n,o)}})}function b(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let n=document.createComment(t.textContent);t.replaceChild(n,t.firstChild)})}function T(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}export{L as a,M as b,S as c};
24
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IHR5cGUgdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3Q/OiBib29sZWFuKSA9PiBQcm9taXNlPHRyYW5zZm9ybUl0ZW1BcGk+O1xuICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICBwYXRoOiAobG9jYXRpb246IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZm46IChmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgcGNpSG9va3M6ICh1cmk6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZXh0ZW5kRWxlbWVudE5hbWU6IChlbGVtZW50TmFtZTogc3RyaW5nLCBleHRlbmQ6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3M6IChwYXJhbT86IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgY3VzdG9tSW50ZXJhY3Rpb246IChiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gIGNvbnZlcnRDREFUQXRvQ29tbWVudDogKCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgc3RyaXBTdHlsZVNoZWV0czogKCkgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICB4bWw6ICgpID0+IHN0cmluZztcbiAgaHRtbGRvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgeG1sZG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1JdGVtID0gKCkgPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaTogdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSBmYWxzZSk6IFByb21pc2U8dHlwZW9mIGFwaT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdCkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZyk6IHR5cGVvZiBhcGkge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKTogdHlwZW9mIGFwaSA9PiB7XG4gICAgICBzZXRMb2NhdGlvbih4bWxGcmFnbWVudCwgbG9jYXRpb24pO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKTogdHlwZW9mIGFwaSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGNpSG9va3ModXJpOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2hvb2snLCAnbW9kdWxlJ107XG4gICAgICBjb25zdCBkb2N1bWVudFBhdGggPSB1cmkuc3Vic3RyaW5nKDAsIHVyaS5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3JjQXR0cmlidXRlcyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1snICsgYXR0cmlidXRlICsgJ10nKTtcbiAgICAgICAgc3JjQXR0cmlidXRlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHNyY1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSE7XG4gICAgICAgICAgaWYgKCFzcmNWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFzcmNWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIC8vIEp1c3QgcGFzdGUgdGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIHNyYyBsb2NhdGlvbiBhZnRlciB0aGUgZG9jdW1lbnRyb290UGF0aFxuICAgICAgICAgICAgLy8gb2xkIHBjaXMgY2FuIGhhdmUgYSAuanMsIG5ldyBwY2kncyBkb24ndFxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2Jhc2UtdXJsJywgdXJpKTtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRQYXRoICsgJy8nICsgZW5jb2RlVVJJKHNyY1ZhbHVlICsgKHNyY1ZhbHVlLmVuZHNXaXRoKCcuanMnKSA/ICcnIDogJy5qcycpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGV4dGVuZEVsZW1lbnROYW1lOiAodGFnTmFtZTogc3RyaW5nLCBleHRlbnNpb246IHN0cmluZyk6IHR5cGVvZiBhcGkgPT4ge1xuICAgICAgZXh0ZW5kRWxlbWVudE5hbWUoeG1sRnJhZ21lbnQsIHRhZ05hbWUsIGV4dGVuc2lvbik7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3M6IChwYXJhbTogc3RyaW5nID0gJ2V4dGVuZCcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgIGV4dGVuZEVsZW1lbnRzV2l0aENsYXNzKHhtbEZyYWdtZW50LCBwYXJhbSk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgY3VzdG9tSW50ZXJhY3Rpb24oYmFzZVJlZjogc3RyaW5nLCBiYXNlSXRlbTogc3RyaW5nKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb25zdCBxdGlDdXN0b21JbnRlcmFjdGlvbiA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ3F0aS1jdXN0b20taW50ZXJhY3Rpb24nKTtcbiAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0ID0gcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucXVlcnlTZWxlY3Rvcignb2JqZWN0Jyk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1iYXNlLXJlZicsIGJhc2VSZWYpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtaXRlbScsIGJhc2VSZWYgKyBiYXNlSXRlbSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ2RhdGEnKSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCd3aWR0aCcpKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnJlbW92ZUNoaWxkKHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHN0cmlwU3R5bGVTaGVldHMoKTogdHlwZW9mIGFwaSB7XG4gICAgICBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWxkb2MoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICByZXR1cm4geG1sRnJhZ21lbnQ7IC8vIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1NYW5pZmVzdCA9ICgpOiB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgYXNzZXNzbWVudFRlc3Q6ICgpID0+IHsgaHJlZjogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfTtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmkpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICB9LFxuICAgIGFzc2Vzc21lbnRUZXN0KCkge1xuICAgICAgY29uc3QgZWwgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdyZXNvdXJjZVt0eXBlPVwiaW1zcXRpX3Rlc3RfeG1sdjNwMFwiXScpO1xuICAgICAgcmV0dXJuIHsgaHJlZjogZWwuZ2V0QXR0cmlidXRlKCdocmVmJyksIGlkZW50aWZpZXI6IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpIH07XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtVGVzdCgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgnaHR0cHM6Ly9leGFtcGxlLmNvbS90ZXN0LnhtbCcpO1xuICogY29uc3QgaXRlbXMgPSBxdGlUcmFuc2Zvcm1lci5pdGVtcygpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICovXG5cbmV4cG9ydCB0eXBlIHRyYW5zZm9ybVRlc3RBcGkgPSB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0cmFuc2Zvcm1UZXN0QXBpPjtcbiAgcGFyc2U6ICh4bWxTdHJpbmc6IHN0cmluZykgPT4gdHJhbnNmb3JtVGVzdEFwaTtcbiAgZXh0ZW5kRWxlbWVudE5hbWU6ICh0YWdOYW1lOiBzdHJpbmcsIGV4dGVuZDogc3RyaW5nKSA9PiB0cmFuc2Zvcm1UZXN0QXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0cmFuc2Zvcm1UZXN0QXBpO1xuICBpdGVtczogKCkgPT4geyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W107XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1UZXN0ID0gKCk6IHRyYW5zZm9ybVRlc3RBcGkgPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaTp0cmFuc2Zvcm1UZXN0QXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHJhbnNmb3JtVGVzdEFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGV4dGVuZEVsZW1lbnROYW1lOiAodGFnTmFtZTogc3RyaW5nLCBleHRlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgZXh0ZW5kRWxlbWVudE5hbWUoeG1sRnJhZ21lbnQsIHRhZ05hbWUsIGV4dGVuZCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpIHtcbiAgICAgIGZuKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBpdGVtcygpIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbGRvYygpIHtcbiAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgeG1sZG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgIHJldHVybiB4bWxGcmFnbWVudDtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKiAgIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgPHhzbDpjb21tZW50PlxuICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgPC94c2w6Y29tbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuKi9cblxuLypcbiAgPCEtLSByZW1vdmUgeG1sIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiY29tbWVudCgpXCIgLz5cbiAgKi9cblxuY29uc3QgeG1sVG9IVE1MID0geG1sYDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIGV4aXN0aW5nIG5hbWVzcGFjZXMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCIqXCI+XG4gICAgPCEtLSByZW1vdmUgZWxlbWVudCBwcmVmaXggLS0+XG4gICAgPHhzbDplbGVtZW50IG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgPCEtLSBwcm9jZXNzIGF0dHJpYnV0ZXMgLS0+XG4gICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD1cIkAqXCI+XG4gICAgICAgIDwhLS0gcmVtb3ZlIGF0dHJpYnV0ZSBwcmVmaXggLS0+XG4gICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgICAgICAgPC94c2w6YXR0cmlidXRlPlxuICAgICAgPC94c2w6Zm9yLWVhY2g+XG4gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPlxuICA8L3hzbDplbGVtZW50PlxuPC94c2w6dGVtcGxhdGU+XG48L3hzbDpzdHlsZXNoZWV0PmA7XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBlbGVtZW50cyB3aXRoIGEgc3BlY2lmaWMgdGFnIG5hbWUgYnkgYWRkaW5nIGFuIGV4dGVuc2lvbiBzdWZmaXhcbmZ1bmN0aW9uIGV4dGVuZEVsZW1lbnROYW1lKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCwgdGFnTmFtZTogc3RyaW5nLCBleHRlbnNpb246IHN0cmluZykge1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKHRhZ05hbWUpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgbmV3VGFnTmFtZSA9IGAke3RhZ05hbWV9LSR7ZXh0ZW5zaW9ufWA7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZShlbGVtZW50LCBuZXdUYWdOYW1lKTtcbiAgICBlbGVtZW50LnJlcGxhY2VXaXRoKG5ld0VsZW1lbnQpO1xuICB9KTtcbn1cblxuLy8gRnVuY3Rpb24gdG8gZXh0ZW5kIGFueSBlbGVtZW50IHdpdGggYSBzcGVjaWZpYyBjbGFzcyBwYXR0ZXJuIChlLmcuLCBcImV4dGVuZDpzdWZmaXhcIilcbmZ1bmN0aW9uIGV4dGVuZEVsZW1lbnRzV2l0aENsYXNzKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCwgY2xhc3NOYW1lUGF0dGVybjogc3RyaW5nKSB7XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyonKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGVsZW1lbnQuY2xhc3NMaXN0O1xuICAgIGlmIChjbGFzc0xpc3QpIHtcbiAgICAgIGNsYXNzTGlzdC5mb3JFYWNoKGNsYXNzTmFtZSA9PiB7XG4gICAgICAgIGlmIChjbGFzc05hbWUuc3RhcnRzV2l0aChgJHtjbGFzc05hbWVQYXR0ZXJufTpgKSkge1xuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IGNsYXNzTmFtZS5zbGljZShgJHtjbGFzc05hbWVQYXR0ZXJufTpgLmxlbmd0aCk7XG4gICAgICAgICAgY29uc3QgbmV3VGFnTmFtZSA9IGAke2VsZW1lbnQubm9kZU5hbWV9LSR7c3VmZml4fWA7XG4gICAgICAgICAgY29uc3QgbmV3RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZShlbGVtZW50LCBuZXdUYWdOYW1lKTtcbiAgICAgICAgICBlbGVtZW50LnJlcGxhY2VXaXRoKG5ld0VsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IGVsZW1lbnQgd2l0aCBhIG5ldyB0YWcgbmFtZSBhbmQgY29weSBhdHRyaWJ1dGVzIGFuZCBjaGlsZHJlblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lKGVsZW1lbnQsIG5ld1RhZ05hbWUpIHtcbiAgY29uc3QgbmV3RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmV3VGFnTmFtZSk7XG4gIC8vIENvcHkgYXR0cmlidXRlc1xuICBmb3IgKGNvbnN0IGF0dHIgb2YgZWxlbWVudC5hdHRyaWJ1dGVzKSB7XG4gICAgbmV3RWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgfVxuICAvLyBDb3B5IGNoaWxkIG5vZGVzXG4gIHdoaWxlIChlbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICBuZXdFbGVtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gIH1cbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlbXM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdID0gW107XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0tcmVmJykuZm9yRWFjaChlbCA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpO1xuICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGVsLmdldEF0dHJpYnV0ZSgnY2F0ZWdvcnknKTtcbiAgICBpdGVtcy5wdXNoKHsgaWRlbnRpZmllciwgaHJlZiwgY2F0ZWdvcnkgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmxldCBjdXJyZW50UmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gbG9hZFhNTCh1cmwsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpIHtcbiAgaWYgKGNhbmNlbFByZXZpb3VzUmVxdWVzdCAmJiBjdXJyZW50UmVxdWVzdCAhPT0gbnVsbCkge1xuICAgIGN1cnJlbnRSZXF1ZXN0LmFib3J0KCk7IC8vIEFib3J0IHRoZSBvbmdvaW5nIHJlcXVlc3QgaWYgdGhlcmUgaXMgb25lXG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2U8WE1MRG9jdW1lbnQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgY3VycmVudFJlcXVlc3QgPSB4aHI7IC8vIFN0b3JlIHRoZSBjdXJyZW50IHJlcXVlc3RcblxuICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpO1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSAnZG9jdW1lbnQnO1xuXG4gICAgeGhyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgIHJlc29sdmUoeGhyLnJlc3BvbnNlWE1MKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHhoci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgcmVqZWN0KHhoci5zdGF0dXNUZXh0KTtcbiAgICB9O1xuXG4gICAgeGhyLnNlbmQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbERvY3VtZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBjb25zdCB4bWxGcmFnbWVudCA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sRG9jdW1lbnQsICd0ZXh0L3htbCcpO1xuICByZXR1cm4geG1sRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHRvSFRNTCh4bWxGcmFnbWVudDogRG9jdW1lbnQpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgY29uc3QgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTtcbiAgY29uc3QgeHNsdERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxUb0hUTUwsICd0ZXh0L3htbCcpO1xuICBwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2x0RG9jdW1lbnQpO1xuICBjb25zdCBpdGVtSFRNTEZyYWdtZW50ID0gcHJvY2Vzc29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sRnJhZ21lbnQsIGRvY3VtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldExvY2F0aW9uKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LCBsb2NhdGlvbjogc3RyaW5nKSB7XG4gIGlmICghbG9jYXRpb24uZW5kc1dpdGgoJy8nKSkge1xuICAgIGxvY2F0aW9uICs9ICcvJztcbiAgfVxuXG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tzcmNdLFtocmVmXSxbcHJpbWFyeS1wYXRoXScpLmZvckVhY2goZWxXaXRoU3JjID0+IHtcbiAgICBsZXQgYXR0cjogJ3NyYycgfCAnaHJlZicgfCAncHJpbWFyeS1wYXRoJyB8ICcnID0gJyc7XG5cbiAgICBpZiAoZWxXaXRoU3JjLmdldEF0dHJpYnV0ZSgnc3JjJykpIHtcbiAgICAgIGF0dHIgPSAnc3JjJztcbiAgICB9XG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkge1xuICAgICAgYXR0ciA9ICdocmVmJztcbiAgICB9XG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3ByaW1hcnktcGF0aCcpKSB7XG4gICAgICBhdHRyID0gJ3ByaW1hcnktcGF0aCc7XG4gICAgfVxuICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoYXR0cik/LnRyaW0oKTtcblxuICAgIGlmICghYXR0clZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgIGNvbnN0IG5ld1NyY1ZhbHVlID0gbG9jYXRpb24gKyBlbmNvZGVVUkkoYXR0clZhbHVlKTtcbiAgICAgIGVsV2l0aFNyYy5zZXRBdHRyaWJ1dGUoYXR0ciwgbmV3U3JjVmFsdWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDREFUQXRvQ29tbWVudCh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICBjb25zdCBjZGF0YUVsZW1lbnRzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLWN1c3RvbS1vcGVyYXRvcltjbGFzcz1cImpzLm9yZ1wiXSA+IHF0aS1iYXNlLXZhbHVlJyk7XG4gIGNkYXRhRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb21tZW50VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZWxlbWVudC50ZXh0Q29udGVudCk7XG4gICAgZWxlbWVudC5yZXBsYWNlQ2hpbGQoY29tbWVudFRleHQsIGVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIC8vIHJlbW92ZSBxdGktc3R5bGVzaGVldCB0YWdcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLXN0eWxlc2hlZXQnKS5mb3JFYWNoKHN0eWxlc2hlZXQgPT4gc3R5bGVzaGVldC5yZW1vdmUoKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxJQUFNQSxFQUFNLE9BQU8sSUFtQ05DLEVBQW1CLElBQU0sQ0FDcEMsSUFBSUMsRUFFRUMsRUFBd0IsQ0FDNUIsTUFBTSxLQUFLQyxFQUFhQyxFQUF3QixHQUE0QixDQUMxRSxPQUFPLElBQUks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QVUsV0FBVyxPQUFPLEdBQUssQ0FBQ0EsRUFBVSxXQUFXLE1BQU0sRUFBRyxDQUNuRSxJQUFNQyxFQUFjaEQsRUFBVyxVQUFVK0MsQ0FBUyxFQUNsREYsRUFBVSxhQUFhWCxFQUFNYyxDQUFXLENBQzFDLENBQ0YsQ0FBQyxDQUNILENBRUEsU0FBUy9CLEVBQXNCMUIsRUFBK0IsQ0FDdENBLEVBQVksaUJBQWlCLHNEQUFzRCxFQUMzRixRQUFRbUMsR0FBVyxDQUMvQixJQUFNdUIsRUFBYyxTQUFTLGNBQWN2QixFQUFRLFdBQVcsRUFDOURBLEVBQVEsYUFBYXVCLEVBQWF2QixFQUFRLFVBQVUsQ0FDdEQsQ0FBQyxDQUNILENBRUEsU0FBU1IsRUFBaUIzQixFQUErQixDQUV2REEsRUFBWSxpQkFBaUIsZ0JBQWdCLEVBQUUsUUFBUTJELEdBQWNBLEVBQVcsT0FBTyxDQUFDLENBQzFGIiwKICAibmFtZXMiOiBbInhtbCIsICJxdGlUcmFuc2Zvcm1JdGVtIiwgInhtbEZyYWdtZW50IiwgImFwaSIsICJ1cmkiLCAiY2FuY2VsUHJldmlvdXNSZXF1ZXN0IiwgInJlc29sdmUiLCAicmVqZWN0IiwgImxvYWRYTUwiLCAieG1sU3RyaW5nIiwgInBhcnNlWE1MIiwgImxvY2F0aW9uIiwgInNldExvY2F0aW9uIiwgImZuIiwgImF0dHJpYnV0ZXMiLCAiZG9jdW1lbnRQYXRoIiwgImF0dHJpYnV0ZSIsICJub2RlIiwgInNyY1ZhbHVlIiwgInRhZ05hbWUiLCAiZXh0ZW5zaW9uIiwgImV4dGVuZEVsZW1lbnROYW1lIiwgInBhcmFtIiwgImV4dGVuZEVsZW1lbnRzV2l0aENsYXNzIiwgImJhc2VSZWYiLCAiYmFzZUl0ZW0iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb24iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QiLCAiY29udmVydENEQVRBdG9Db21tZW50IiwgInN0cmlwU3R5bGVTaGVldHMiLCAidG9IVE1MIiwgInF0aVRyYW5zZm9ybU1hbmlmZXN0IiwgImVsIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiZXh0ZW5kIiwgIml0ZW1zRnJvbVRlc3QiLCAieG1sVG9IVE1MIiwgImVsZW1lbnQiLCAibmV3VGFnTmFtZSIsICJuZXdFbGVtZW50IiwgImNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZSIsICJjbGFzc05hbWVQYXR0ZXJuIiwgImNsYXNzTGlzdCIsICJjbGFzc05hbWUiLCAic3VmZml4IiwgImF0dHIiLCAiaXRlbXMiLCAiaWRlbnRpZmllciIsICJocmVmIiwgImNhdGVnb3J5IiwgImN1cnJlbnRSZXF1ZXN0IiwgInVybCIsICJ4aHIiLCAieG1sRG9jdW1lbnQiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJlbFdpdGhTcmMiLCAiX2EiLCAiYXR0clZhbHVlIiwgIm5ld1NyY1ZhbHVlIiwgImNvbW1lbnRUZXh0IiwgInN0eWxlc2hlZXQiXQp9Cg==