PageSourceSearch

https://www.erada.ae/widgets/widgets.js?639235324203543487

js erada.ae collected 2026-09-29 09:38:07 UTC 284,229 bytes, 5,371 lines download raw bytes

1require({cache:{
2'RadioButtonList/widget/AttrRadioButtonList':function(){
3/*jslint browser: true, devel:true, nomen:true, unparam:true, regexp: true, plusplus:true*/
4/*global require, define, console, mx, mendix*/
5define([
6    "dojo/_base/declare",
7    "mxui/widget/_WidgetBase",
8    "dijit/_TemplatedMixin",
9    "dijit/focus",
10    "mxui/dom",
11    "dojo/dom-class",
12    "dojo/dom-style",
13    "dojo/dom-construct",
14    "dojo/dom-attr",
15    "dojo/_base/array",
16    "dojo/_base/lang",
17    "dojo/html",
18    "dojo/text!RadioButtonList/widget/template/RadioButtonList.html"
19], function (declare, _WidgetBase, _TemplatedMixin, focusUtil, dom, dojoClass, dojoStyle, dojoConstruct, dojoAttr, dojoArray, lang, dojoHtml, widgetTemplate) {
20    "use strict";
21
22    // Declare widget's prototype.
23    return declare("RadioButtonList.widget.AttrRadioButtonList", [_WidgetBase, _TemplatedMixin], {
24
25        templateString: widgetTemplate,
26
27        // DOM elements
28        inputNodes: null,
29
30        // Parameters configurable in Business Modeler.
31        entity: null,
32        direction: "vertical",
33        captiontrue: "",
34        captionfalse: "",
35        readonly: false,
36        onchangeAction: "",
37        allowDeselect: false,
38        formOrientation: null,
39
40        // Internal variables. Non-primitives created in the prototype are shared between all widget instances.
41        _handles: null,
42        _contextObj: null,
43        _alertDiv: null,
44        _radioButtonOptions: null,
45        _setup: false,
46        _radioContainer: null,
47
48        constructor: function () {
49            this._handles = [];
50        },
51
52        postCreate: function () {
53            console.debug(this.id + ".postCreate");
54        },
55
56        update: function (obj, callback) {
57            console.debug(this.id + ".update");
58            this._contextObj = obj;
59            this._resetSubscriptions();
60            this._setRadiobuttonOptions();
61
62            if (!this._setup) {
63                this._setupWidget(lang.hitch(this, function () {
64                    this._updateRendering(callback);
65                }));
66            } else {
67                this._updateRendering(callback);
68            }
69        },
70
71        _setupWidget: function (callback) {
72            console.debug(this.id + "._setupWidget");
73
74            if (this.readOnly || this.get("disabled") || this.readonly) {
75                //this.readOnly isn"t available in client API, this.get("disabled") works correctly since 5.18.
76                this._isReadOnly = true;
77            }
78
79            // adjust the template based on the display settings.
80            if (this.showLabel) {
81                if (dojoClass.contains(this.radioButtonLabel, "hidden")) {
82                    dojoClass.remove(this.radioButtonLabel, "hidden");
83                }
84
85                if (this.formOrientation === "horizontal") {
86                    // width needs to be between 1 and 11
87                    var labelWidth = this.labelWidth < 1 ? 1 : this.labelWidth;
88                    labelWidth = this.labelWidth > 11 ? 11 : this.labelWidth;
89
90                    var controlWidth = 12 - labelWidth,
91                        comboLabelClass = "col-sm-" + labelWidth;
92
93                    dojoClass.add(this.radioButtonLabel, comboLabelClass);
94
95                    this._radioContainer = dojoConstruct.place(dojoConstruct.create("div", {
96                        "class": "col-sm-" + controlWidth
97                    }), this.radioButtonContainer, "last");
98
99                    dojoConstruct.place(this.inputNodes, this._radioContainer, "only");
100                } else {
101                    dojoClass.add(this.radioButtonContainer, "no-columns");
102                }
103
104                this.radioButtonLabel.innerHTML = this.fieldCaption;
105            } else {
106                if (!dojoClass.contains(this.radioButtonLabel, "hidden")) {
107                    dojoClass.add(this.radioButtonLabel, "hidden");
108                }
109                dojoClass.add(this.radioButtonContainer, "no-columns");
110            }
111
112            if (this.direction === "horizontal") {
113                dojoClass.add(this.radioButtonContainer, "inline");
114            }
115
116            this._setup = true;
117
118            this._executeCallback(callback, "_setupWidget");
119        },
120
121        resize: function (box) {},
122
123        uninitialize: function () {
124            if (this._handles) {
125                dojoArray.forEach(this._handles, function (handle, i) {
126                    mx.data.unsubscribe(handle);
127                });
128                this._handles = [];
129            }
130        },
131
132        _updateRendering: function (callback) {
133            console.debug(this.id + "._updateRendering");
134
135            if (this._contextObj !== null) {
136                dojoStyle.set(this.domNode, "display", "");
137                this._createRadiobuttonNodes(callback);
138            } else {
139                dojoStyle.set(this.domNode, "display", "none");
140                this._executeCallback(callback, " _updateRendering no contextObj");
141            }
142
143            // Important to clear all validations!
144            this._clearValidations();
145        },
146
147        _handleValidation: function (validations) {
148            console.debug(this.id + "._handleValidation");
149            this._clearValidations();
150
151            var validation = validations[0],
152                message = validation.getReasonByAttribute(this.entity);
153
154            if (this._isReadOnly || this._contextObj.isReadonlyAttr(this.entity)) {
155                return;
156            }
157
158            this._addValidation(message);
159            validation.removeAttribute(this.entity);
160        },
161
162        _clearValidations: function () {
163            console.debug(this.id + "._clearValidations");
164            dojoConstruct.destroy(this._alertDiv);
165            this._alertDiv = null;
166            dojoClass.remove(this.radioButtonContainer, "has-error");
167        },
168
169        _showError: function (message) {
170            console.debug(this.id + "._showError");
171            if (this._alertDiv !== null) {
172                dojoHtml.set(this._alertDiv, message);
173                return true;
174            }
175            this._alertDiv = dojoConstruct.create("div", {
176                "class": "alert alert-danger mx-validation-message",
177                "role": "alert",
178                "innerHTML": message
179            });
180            dojoConstruct.place(this._alertDiv, this._radioContainer ? this._radioContainer : this.radioButtonContainer);
181        },
182
183        _addValidation: function (message) {
184            console.debug(this.id + "._addValidation");
185            if(message) {
186                this._showError(message);
187                dojoClass.add(this.radioButtonContainer, "has-error");
188            }            
189        },
190
191        _resetSubscriptions: function () {
192            console.debug(this.id + "._resetSubscriptions");
193            var validationHandle = null,
194                objectHandle = null,
195                attrHandle = null;
196
197            // Release handles on previous object, if any.
198            this.unsubscribeAll();
199
200            // When a mendix object exists create subscribtions.
201            if (this._contextObj) {
202                this.subscribe({
203                    guid: this._contextObj.getGuid(),
204                    val: true,
205                    callback: lang.hitch(this, this._handleValidation)
206                });
207
208                this.subscribe({
209                    guid: this._contextObj.getGuid(),
210                    callback: lang.hitch(this, function (guid) {
211                        this._updateRendering();
212                    })
213                });
214
215                this.subscribe({
216                    guid: this._contextObj.getGuid(),
217                    attr: this.entity,
218                    callback: lang.hitch(this, function (guid, attr, attrValue) {
219                        this._updateRendering();
220                    })
221                });
222            }
223        },
224
225        _setRadiobuttonOptions: function () {
226            console.debug(this.id + "._setRadiobuttonOptions");
227            if (this.entity !== "" && this._contextObj) {
228                //get enumeration for current attribute
229                if (this._contextObj.getAttributeType(this.entity) === "Enum") {
230                    var enumMap = this._contextObj.getEnumMap(this.entity);
231                    this._radioButtonOptions = {};
232                    for(var i = 0; i < enumMap.length; i++) {
233                        this._radioButtonOptions[enumMap[i].key] = enumMap[i].caption;
234                    }
235                } else if (this._contextObj.getAttributeType(this.entity) === "Boolean") {
236                    this._radioButtonOptions = {};
237                    this._radioButtonOptions["true"] = this.captiontrue;
238                    this._radioButtonOptions["false"] = this.captionfalse;
239                }
240            }
241        },
242
243        _createRadiobuttonNodes: function (callback) {
244            console.debug(this.id + "._createRadiobuttonNode");
245            var labelNode = null,
246                radioButtonNode = null,
247                i = 0,
248                j = 0,
249                nodelength = null,
250                enclosingDivElement = null;
251
252            if(this.inputNodes !== null) {
253                if (this.inputNodes.children !== null) {
254                    nodelength = this.inputNodes.children.length;
255                }
256
257                dojoConstruct.empty(this.inputNodes);
258
259                for (var option in this._radioButtonOptions) {
260                    if (this._radioButtonOptions.hasOwnProperty(option)) {
261
262                        labelNode = this._createLabelNode(option, this._radioButtonOptions[option], i);
263                        radioButtonNode = this._createRadiobuttonNode(option, this._radioButtonOptions[option], i);
264
265                        //an enclosing div element is required to vertically align a radiobuttonlist in bootstrap.
266                        if (this.inputNodes.children && this.inputNodes.children[i]) {
267                            enclosingDivElement = this.inputNodes.children[i];
268                        } else {
269                            enclosingDivElement = dojoConstruct.create("div", {
270                                "class": "radio"
271                            });
272                        }
273                        if (enclosingDivElement.children[0]) {
274                            dojoConstruct.destroy(enclosingDivElement.children[0]);
275                        }
276
277                        dojoConstruct.place(radioButtonNode, enclosingDivElement, "first");
278                        dojoConstruct.place(labelNode, enclosingDivElement, "last");
279
280                        if (!this.inputNodes.children[i]) {
281                            dojoConstruct.place(enclosingDivElement, this.inputNodes, "last");
282                            if(dojoAttr.get(radioButtonNode, "defaultChecked")) {
283                                focusUtil.focus(radioButtonNode);
284                            }
285                        }
286                    }
287
288                    i++;
289                }
290
291                j = i;
292                if (j > 0) {
293                    for (j; j <= nodelength; j++) {
294                        dojoConstruct.destroy(this.inputNodes.children[i]);
295                    }
296                }
297
298                this._executeCallback(callback, "_createRadiobuttonNodes");
299            }
300        },
301
302        _createLabelNode: function (key, value, index) {
303            console.debug(this.id + "._createLabelNode");
304            var labelNode = dojoConstruct.create("label", {
305                "for": this.entity + "_" + this.id + "_" + index,
306                "innerHTML": value
307            });
308
309            return labelNode;
310        },
311
312        _createRadiobuttonNode: function (key, value, index) {
313            console.debug(this.id + "._createRadiobuttonNode");
314            var radiobuttonNode = null;
315
316            radiobuttonNode = dojoConstruct.create("input", {
317                "type": "radio",
318                "value": key,
319                "id": this.entity + "_" + this.id + "_" + index
320            });
321
322            dojoAttr.set(radiobuttonNode, "name", "radio" + this._contextObj.getGuid() + "_" + this.id);
323
324            if (this._isReadOnly ||
325                this._contextObj.isReadonlyAttr(this.entity)) {
326                dojoAttr.set(radiobuttonNode, "disabled", "disabled");
327                dojoAttr.set(radiobuttonNode, "readonly", "readonly");
328            }
329
330            if ("" + this._contextObj.get(this.entity) === key) {
331                dojoAttr.set(radiobuttonNode, "defaultChecked", true);
332            }
333
334            this._addOnclickToRadiobuttonItem(radiobuttonNode, key);
335
336            return radiobuttonNode;
337        },
338
339        _addOnclickToRadiobuttonItem: function (radiobuttonNode, rbvalue) {
340            console.debug(this.id + "._addOnclickToRadiobuttonItem");
341            this.connect(radiobuttonNode, "onclick", lang.hitch(this, function () {
342
343                if (this._isReadOnly ||
344                    this._contextObj.isReadonlyAttr(this.entity)) {
345                    return;
346                }
347
348                if ("Boolean" === this._contextObj.getAttributeType(this.entity)) {
349                    rbvalue = rbvalue === "true";
350                }
351
352                if (this.allowDeselect && this._contextObj.get(this.entity) === rbvalue) {
353                    dojoAttr.set(radiobuttonNode, "checked", false);
354                    this._contextObj.set(this.entity, "");
355                } else {
356                    dojoAttr.set(radiobuttonNode, "checked", true);
357                    this._contextObj.set(this.entity, rbvalue);
358                }
359
360                if (this.onchangeAction) {
361                    var action = {
362                        params: {
363                            applyto: "selection",
364                            actionname: this.onchangeAction,
365                            guids: [this._contextObj.getGuid()]
366                        },
367                        error: lang.hitch(this, function (error) {
368                            console.error(this.id + ": XAS error executing microflow; " + error.description);
369                        })
370                    };
371
372                    if (!mx.version || !!mx.version && 7 > parseInt(mx.version.split(".")[ 0 ], 10)) {
373                        action.store = {
374                            caller: this.mxform,
375                        };
376                    } else {
377                        action.origin = this.mxform;
378                    }
379
380                    mx.data.action(action, this);
381                }
382            }));
383        },
384
385        _executeCallback: function (cb, from) {
386            console.debug(this.id + "._executeCallback " + (typeof cb) + (from ? " from " + from : ""));
387            if (cb && typeof cb === "function") {
388                cb();
389            }
390        }
391    });
392});
393
394require(["RadioButtonList/widget/AttrRadioButtonList"]);
395
396},
397'dojo/html':function(){
vendor: 13,537 bytes, lines 398-776
398define(["./_base/kernel", "./_base/lang", "./_base/array", "./_base/declare", "./dom", "./dom-construct", "./parser"],
399	function(kernel, lang, darray, declare, dom, domConstruct, parser){
400	// module:
401	//		dojo/html
402
403	// the parser might be needed..
404
405	// idCounter is incremented with each instantiation to allow assignment of a unique id for tracking, logging purposes
406	var idCounter = 0;
407
408	var html = {
409		// summary:
410		//		TODOC
411
412		_secureForInnerHtml: function(/*String*/ cont){
413			// summary:
414			//		removes !DOCTYPE and title elements from the html string.
415			//
416			//		khtml is picky about dom faults, you can't attach a style or `<title>` node as child of body
417			//		must go into head, so we need to cut out those tags
418			// cont:
419			//		An html string for insertion into the dom
420			//
421			return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig, ""); // String
422		},
423
424		// Deprecated, should use dojo/dom-constuct.empty() directly, remove in 2.0.
425		_emptyNode: domConstruct.empty,
426
427		_setNodeContent: function(/*DomNode*/ node, /*String|DomNode|NodeList*/ cont){
428			// summary:
429			//		inserts the given content into the given node
430			// node:
431			//		the parent element
432			// content:
433			//		the content to be set on the parent element.
434			//		This can be an html string, a node reference or a NodeList, dojo/NodeList, Array or other enumerable list of nodes
435
436			// always empty
437			domConstruct.empty(node);
438
439			if(cont){
440				if(typeof cont == "number"){
441					cont = cont.toString();
442				}
443				if(typeof cont == "string"){
444					cont = domConstruct.toDom(cont, node.ownerDocument);
445				}
446				if(!cont.nodeType && lang.isArrayLike(cont)){
447					// handle as enumerable, but it may shrink as we enumerate it
448					for(var startlen=cont.length, i=0; i<cont.length; i=startlen==cont.length ? i+1 : 0){
449						domConstruct.place( cont[i], node, "last");
450					}
451				}else{
452					// pass nodes, documentFragments and unknowns through to dojo.place
453					domConstruct.place(cont, node, "last");
454				}
455			}
456
457			// return DomNode
458			return node;
459		},
460
461		// we wrap up the content-setting operation in a object
462		_ContentSetter: declare("dojo.html._ContentSetter", null, {
463			// node: DomNode|String
464			//		An node which will be the parent element that we set content into
465			node: "",
466
467			// content: String|DomNode|DomNode[]
468			//		The content to be placed in the node. Can be an HTML string, a node reference, or a enumerable list of nodes
469			content: "",
470
471			// id: String?
472			//		Usually only used internally, and auto-generated with each instance
473			id: "",
474
475			// cleanContent: Boolean
476			//		Should the content be treated as a full html document,
477			//		and the real content stripped of <html>, <body> wrapper before injection
478			cleanContent: false,
479
480			// extractContent: Boolean
481			//		Should the content be treated as a full html document,
482			//		and the real content stripped of `<html> <body>` wrapper before injection
483			extractContent: false,
484
485			// parseContent: Boolean
486			//		Should the node by passed to the parser after the new content is set
487			parseContent: false,
488
489			// parserScope: String
490			//		Flag passed to parser.	Root for attribute names to search for.	  If scopeName is dojo,
491			//		will search for data-dojo-type (or dojoType).  For backwards compatibility
492			//		reasons defaults to dojo._scopeName (which is "dojo" except when
493			//		multi-version support is used, when it will be something like dojo16, dojo20, etc.)
494			parserScope: kernel._scopeName,
495
496			// startup: Boolean
497			//		Start the child widgets after parsing them.	  Only obeyed if parseContent is true.
498			startup: true,
499
500			// lifecycle methods
501			constructor: function(/*Object*/ params, /*String|DomNode*/ node){
502				// summary:
503				//		Provides a configurable, extensible object to wrap the setting on content on a node
504				//		call the set() method to actually set the content..
505
506				// the original params are mixed directly into the instance "this"
507				lang.mixin(this, params || {});
508
509				// give precedence to params.node vs. the node argument
510				// and ensure its a node, not an id string
511				node = this.node = dom.byId( this.node || node );
512
513				if(!this.id){
514					this.id = [
515						"Setter",
516						(node) ? node.id || node.tagName : "",
517						idCounter++
518					].join("_");
519				}
520			},
521			set: function(/* String|DomNode|NodeList? */ cont, /*Object?*/ params){
522				// summary:
523				//		front-end to the set-content sequence
524				// cont:
525				//		An html string, node or enumerable list of nodes for insertion into the dom
526				//		If not provided, the object's content property will be used
527				if(undefined !== cont){
528					this.content = cont;
529				}
530				if(typeof cont == 'number'){
531					cont = cont.toString();
532				}
533				// in the re-use scenario, set needs to be able to mixin new configuration
534				if(params){
535					this._mixin(params);
536				}
537
538				this.onBegin();
539				this.setContent();
540
541				var ret = this.onEnd();
542
543				if(ret && ret.then){
544					// Make dojox/html/_ContentSetter.set() return a Promise that resolves when load and parse complete.
545					return ret;
546				}else{
547					// Vanilla dojo/html._ContentSetter.set() returns a DOMNode for back compat.   For 2.0, switch it to
548					// return a Deferred like above.
549					return this.node;
550				}
551			},
552
553			setContent: function(){
554				// summary:
555				//		sets the content on the node
556
557				var node = this.node;
558				if(!node){
559					// can't proceed
560					throw new Error(this.declaredClass + ": setContent given no node");
561				}
562				try{
563					node = html._setNodeContent(node, this.content);
564				}catch(e){
565					// check if a domfault occurs when we are appending this.errorMessage
566					// like for instance if domNode is a UL and we try append a DIV
567
568					// FIXME: need to allow the user to provide a content error message string
569					var errMess = this.onContentError(e);
570					try{
571						node.innerHTML = errMess;
572					}catch(e){
573						console.error('Fatal ' + this.declaredClass + '.setContent could not change content due to '+e.message, e);
574					}
575				}
576				// always put back the node for the next method
577				this.node = node; // DomNode
578			},
579
580			empty: function(){
581				// summary:
582				//		cleanly empty out existing content
583
584				// If there is a parse in progress, cancel it.
585				if(this.parseDeferred){
586					if(!this.parseDeferred.isResolved()){
587						this.parseDeferred.cancel();
588					}
589					delete this.parseDeferred;
590				}
591
592				// destroy any widgets from a previous run
593				// NOTE: if you don't want this you'll need to empty
594				// the parseResults array property yourself to avoid bad things happening
595				if(this.parseResults && this.parseResults.length){
596					darray.forEach(this.parseResults, function(w){
597						if(w.destroy){
598							w.destroy();
599						}
600					});
601					delete this.parseResults;
602				}
603				// this is fast, but if you know its already empty or safe, you could
604				// override empty to skip this step
605				domConstruct.empty(this.node);
606			},
607
608			onBegin: function(){
609				// summary:
610				//		Called after instantiation, but before set();
611				//		It allows modification of any of the object properties -
612				//		including the node and content provided - before the set operation actually takes place
613				//		This default implementation checks for cleanContent and extractContent flags to
614				//		optionally pre-process html string content
615				var cont = this.content;
616
617				if(lang.isString(cont)){
618					if(this.cleanContent){
619						cont = html._secureForInnerHtml(cont);
620					}
621
622					if(this.extractContent){
623						var match = cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
624						if(match){ cont = match[1]; }
625					}
626				}
627
628				// clean out the node and any cruft associated with it - like widgets
629				this.empty();
630
631				this.content = cont;
632				return this.node; // DomNode
633			},
634
635			onEnd: function(){
636				// summary:
637				//		Called after set(), when the new content has been pushed into the node
638				//		It provides an opportunity for post-processing before handing back the node to the caller
639				//		This default implementation checks a parseContent flag to optionally run the dojo parser over the new content
640				if(this.parseContent){
641					// populates this.parseResults and this.parseDeferred if you need those..
642					this._parse();
643				}
644				return this.node; // DomNode
645				// TODO: for 2.0 return a Promise indicating that the parse completed.
646			},
647
648			tearDown: function(){
649				// summary:
650				//		manually reset the Setter instance if its being re-used for example for another set()
651				// description:
652				//		tearDown() is not called automatically.
653				//		In normal use, the Setter instance properties are simply allowed to fall out of scope
654				//		but the tearDown method can be called to explicitly reset this instance.
655				delete this.parseResults;
656				delete this.parseDeferred;
657				delete this.node;
658				delete this.content;
659			},
660
661			onContentError: function(err){
662				return "Error occurred setting content: " + err;
663			},
664
665			onExecError: function(err){
666				return "Error occurred executing scripts: " + err;
667			},
668
669			_mixin: function(params){
670				// mix properties/methods into the instance
671				// TODO: the intention with tearDown is to put the Setter's state
672				// back to that of the original constructor (vs. deleting/resetting everything regardless of ctor params)
673				// so we could do something here to move the original properties aside for later restoration
674				var empty = {}, key;
675				for(key in params){
676					if(key in empty){ continue; }
677					// TODO: here's our opportunity to mask the properties we don't consider configurable/overridable
678					// .. but history shows we'll almost always guess wrong
679					this[key] = params[key];
680				}
681			},
682			_parse: function(){
683				// summary:
684				//		runs the dojo parser over the node contents, storing any results in this.parseResults
685				//		and the parse promise in this.parseDeferred
686				//		Any errors resulting from parsing are passed to _onError for handling
687
688				var rootNode = this.node;
689				try{
690					// store the results (widgets, whatever) for potential retrieval
691					var inherited = {};
692					darray.forEach(["dir", "lang", "textDir"], function(name){
693						if(this[name]){
694							inherited[name] = this[name];
695						}
696					}, this);
697					var self = this;
698					this.parseDeferred = parser.parse({
699						rootNode: rootNode,
700						noStart: !this.startup,
701						inherited: inherited,
702						scope: this.parserScope
703					}).then(function(results){
704							return self.parseResults = results;
705						}, function(e){
706							self._onError('Content', e, "Error parsing in _ContentSetter#" + self.id);
707						});
708				}catch(e){
709					this._onError('Content', e, "Error parsing in _ContentSetter#" + this.id);
710				}
711			},
712
713			_onError: function(type, err, consoleText){
714				// summary:
715				//		shows user the string that is returned by on[type]Error
716				//		override/implement on[type]Error and return your own string to customize
717				var errText = this['on' + type + 'Error'].call(this, err);
718				if(consoleText){
719					console.error(consoleText, err);
720				}else if(errText){ // a empty string won't change current content
721					html._setNodeContent(this.node, errText, true);
722				}
723			}
724		}), // end declare()
725
726		set: function(/*DomNode*/ node, /*String|DomNode|NodeList*/ cont, /*Object?*/ params){
727			// summary:
728			//		inserts (replaces) the given content into the given node. dojo/dom-construct.place(cont, node, "only")
729			//		may be a better choice for simple HTML insertion.
730			// description:
731			//		Unless you need to use the params capabilities of this method, you should use
732			//		dojo/dom-construct.place(cont, node, "only"). dojo/dom-construct..place() has more robust support for injecting
733			//		an HTML string into the DOM, but it only handles inserting an HTML string as DOM
734			//		elements, or inserting a DOM node. dojo/dom-construct..place does not handle NodeList insertions
735			//		dojo/dom-construct.place(cont, node, "only"). dojo/dom-construct.place() has more robust support for injecting
736			//		an HTML string into the DOM, but it only handles inserting an HTML string as DOM
737			//		elements, or inserting a DOM node. dojo/dom-construct.place does not handle NodeList insertions
738			//		or the other capabilities as defined by the params object for this method.
739			// node:
740			//		the parent element that will receive the content
741			// cont:
742			//		the content to be set on the parent element.
743			//		This can be an html string, a node reference or a NodeList, dojo/NodeList, Array or other enumerable list of nodes
744			// params:
745			//		Optional flags/properties to configure the content-setting. See dojo/html/_ContentSetter
746			// example:
747			//		A safe string/node/nodelist content replacement/injection with hooks for extension
748			//		Example Usage:
749			//	|	html.set(node, "some string");
750			//	|	html.set(node, contentNode, {options});
751			//	|	html.set(node, myNode.childNodes, {options});
752			if(undefined == cont){
753				console.warn("dojo.html.set: no cont argument provided, using empty string");
754				cont = "";
755			}
756			if (typeof cont == 'number'){
757				cont = cont.toString();
758			}
759			if(!params){
760				// simple and fast
761				return html._setNodeContent(node, cont, true);
762			}else{
763				// more options but slower
764				// note the arguments are reversed in order, to match the convention for instantiation via the parser
765				var op = new html._ContentSetter(lang.mixin(
766					params,
767					{ content: cont, node: node }
768				));
769				return op.set();
770			}
771		}
772	};
773	lang.setObject("dojo.html", html);
774
775	return html;
776});
777
778},
779'dojo/parser':function(){
vendor: 35,449 bytes, lines 780-1704
780define([
781	"require", "./_base/kernel", "./_base/lang", "./_base/array", "./_base/config", "./dom", "./_base/window",
782	"./_base/url", "./aspect", "./promise/all", "./date/stamp", "./Deferred", "./has", "./json5", "./query", "./on",
783	"./ready"
784], function(require, dojo, dlang, darray, config, dom, dwindow, _Url, aspect, all, dates, Deferred, has, json5, query,
785	don, ready){
786
787	// module:
788	//		dojo/parser
789
790	new Date("X"); // workaround for #11279, new Date("") == NaN
791
792	var myEval;
793	if(has('csp-restrictions')) {
794		// JSON5 data attributes can be parsed without using eval; JS expressions will throw an error
795		myEval = json5.parse;
796	}
797	else {
798		myEval = function(text){
799			// data-dojo-props etc. is not restricted to JSON, it can be any javascript
800			/* jshint -W061 */
801			return eval("(" + text + ")");
802		};
803	}
804
805	// Widgets like BorderContainer add properties to _Widget via dojo.extend().
806	// If BorderContainer is loaded after _Widget's parameter list has been cached,
807	// we need to refresh that parameter list (for _Widget and all widgets that extend _Widget).
808	var extendCnt = 0;
809	aspect.after(dlang, "extend", function(){
810		extendCnt++;
811	}, true);
812
813	function getNameMap(ctor){
814		// summary:
815		//		Returns map from lowercase name to attribute name in class, ex: {onclick: "onClick"}
816		var map = ctor._nameCaseMap, proto = ctor.prototype;
817
818		// Create the map if it's undefined.
819		// Refresh the map if a superclass was possibly extended with new methods since the map was created.
820		if(!map || map._extendCnt < extendCnt){
821			map = ctor._nameCaseMap = {};
822			for(var name in proto){
823				if(name.charAt(0) === "_"){
824					continue;
825				}	// skip internal properties
826				map[name.toLowerCase()] = name;
827			}
828			map._extendCnt = extendCnt;
829		}
830		return map;
831	}
832
833	function getCtor(/*String[]*/ types, /*Function?*/ contextRequire){
834		// summary:
835		//		Retrieves a constructor.  If the types array contains more than one class/MID then the
836		//		subsequent classes will be mixed into the first class and a unique constructor will be
837		//		returned for that array.
838
839		if(!contextRequire){
840			contextRequire = require;
841		}
842
843		// Map from widget name or list of widget names(ex: "dijit/form/Button,acme/MyMixin") to a constructor.
844		// Keep separate map for each requireContext to avoid false matches (ex: "./Foo" can mean different things
845		// depending on context.)
846		var ctorMap = contextRequire._dojoParserCtorMap || (contextRequire._dojoParserCtorMap = {});
847
848		var ts = types.join();
849		if(!ctorMap[ts]){
850			var mixins = [];
851			for(var i = 0, l = types.length; i < l; i++){
852				var t = types[i];
853				// TODO: Consider swapping getObject and require in the future
854				mixins[mixins.length] = (ctorMap[t] = ctorMap[t] || (dlang.getObject(t) || (~t.indexOf('/') &&
855					contextRequire(t))));
856			}
857			var ctor = mixins.shift();
858			ctorMap[ts] = mixins.length ? (ctor.createSubclass ? ctor.createSubclass(mixins) : ctor.extend.apply(ctor, mixins)) : ctor;
859		}
860
861		return ctorMap[ts];
862	}
863
864	var parser = {
865		// summary:
866		//		The Dom/Widget parsing package
867
868		_clearCache: function(){
869			// summary:
870			//		Clear cached data.   Used mainly for benchmarking.
871			extendCnt++;
872			_ctorMap = {};
873		},
874
875		_functionFromScript: function(script, attrData){
876			// summary:
877			//		Convert a `<script type="dojo/method" args="a, b, c"> ... </script>`
878			//		into a function
879			// script: DOMNode
880			//		The `<script>` DOMNode
881			// attrData: String
882			//		For HTML5 compliance, searches for attrData + "args" (typically
883			//		"data-dojo-args") instead of "args"
884			var preamble = "",
885				suffix = "",
886				argsStr = (script.getAttribute(attrData + "args") || script.getAttribute("args")),
887				withStr = script.getAttribute("with");
888
889			// Convert any arguments supplied in script tag into an array to be passed to the
890			var fnArgs = (argsStr || "").split(/\s*,\s*/);
891
892			if(withStr && withStr.length){
893				darray.forEach(withStr.split(/\s*,\s*/), function(part){
894					preamble += "with(" + part + "){";
895					suffix += "}";
896				});
897			}
898
899			return new Function(fnArgs, preamble + script.innerHTML + suffix);
900		},
901
902		instantiate: function(nodes, mixin, options){
903			// summary:
904			//		Takes array of nodes, and turns them into class instances and
905			//		potentially calls a startup method to allow them to connect with
906			//		any children.
907			// nodes: Array
908			//		Array of DOM nodes
909			// mixin: Object?
910			//		An object that will be mixed in with each node in the array.
911			//		Values in the mixin will override values in the node, if they
912			//		exist.
913			// options: Object?
914			//		An object used to hold kwArgs for instantiation.
915			//		See parse.options argument for details.
916			// returns:
917			//		Array of instances.
918
919			mixin = mixin || {};
920			options = options || {};
921
922			var dojoType = (options.scope || dojo._scopeName) + "Type", // typically "dojoType"
923				attrData = "data-" + (options.scope || dojo._scopeName) + "-", // typically "data-dojo-"
924				dataDojoType = attrData + "type", // typically "data-dojo-type"
925				dataDojoMixins = attrData + "mixins";					// typically "data-dojo-mixins"
926
927			var list = [];
928			darray.forEach(nodes, function(node){
929				var type = dojoType in mixin ? mixin[dojoType] : node.getAttribute(dataDojoType) || node.getAttribute(dojoType);
930				if(type){
931					var mixinsValue = node.getAttribute(dataDojoMixins),
932						types = mixinsValue ? [type].concat(mixinsValue.split(/\s*,\s*/)) : [type];
933
934					list.push({
935						node: node,
936						types: types
937					});
938				}
939			});
940
941			// Instantiate the nodes and return the list of instances.
942			return this._instantiate(list, mixin, options);
943		},
944
945		_instantiate: function(nodes, mixin, options, returnPromise){
946			// summary:
947			//		Takes array of objects representing nodes, and turns them into class instances and
948			//		potentially calls a startup method to allow them to connect with
949			//		any children.
950			// nodes: Array
951			//		Array of objects like
952			//	|		{
953			//	|			ctor: Function (may be null)
954			//	|			types: ["dijit/form/Button", "acme/MyMixin"] (used if ctor not specified)
955			//	|			node: DOMNode,
956			//	|			scripts: [ ... ],	// array of <script type="dojo/..."> children of node
957			//	|			inherited: { ... }	// settings inherited from ancestors like dir, theme, etc.
958			//	|		}
959			// mixin: Object
960			//		An object that will be mixed in with each node in the array.
961			//		Values in the mixin will override values in the node, if they
962			//		exist.
963			// options: Object
964			//		An options object used to hold kwArgs for instantiation.
965			//		See parse.options argument for details.
966			// returnPromise: Boolean
967			//		Return a Promise rather than the instance; supports asynchronous widget creation.
968			// returns:
969			//		Array of instances, or if returnPromise is true, a promise for array of instances
970			//		that resolves when instances have finished initializing.
971
972			// Call widget constructors.   Some may be asynchronous and return promises.
973			var thelist = darray.map(nodes, function(obj){
974				var ctor = obj.ctor || getCtor(obj.types, options.contextRequire);
975				// If we still haven't resolved a ctor, it is fatal now
976				if(!ctor){
977					throw new Error("Unable to resolve constructor for: '" + obj.types.join() + "'");
978				}
979				return this.construct(ctor, obj.node, mixin, options, obj.scripts, obj.inherited);
980			}, this);
981
982			// After all widget construction finishes, call startup on each top level instance if it makes sense (as for
983			// widgets).  Parent widgets will recursively call startup on their (non-top level) children
984			function onConstruct(thelist){
985				if(!mixin._started && !options.noStart){
986					darray.forEach(thelist, function(instance){
987						if(typeof instance.startup === "function" && !instance._started){
988							instance.startup();
989						}
990					});
991				}
992
993				return thelist;
994			}
995
996			if(returnPromise){
997				return all(thelist).then(onConstruct);
998			}else{
999				// Back-compat path, remove for 2.0
1000				return onConstruct(thelist);
1001			}
1002		},
1003
1004		construct: function(ctor, node, mixin, options, scripts, inherited){
1005			// summary:
1006			//		Calls new ctor(params, node), where params is the hash of parameters specified on the node,
1007			//		excluding data-dojo-type and data-dojo-mixins.   Does not call startup().
1008			// ctor: Function
1009			//		Widget constructor.
1010			// node: DOMNode
1011			//		This node will be replaced/attached to by the widget.  It also specifies the arguments to pass to ctor.
1012			// mixin: Object?
1013			//		Attributes in this object will be passed as parameters to ctor,
1014			//		overriding attributes specified on the node.
1015			// options: Object?
1016			//		An options object used to hold kwArgs for instantiation.   See parse.options argument for details.
1017			// scripts: DomNode[]?
1018			//		Array of `<script type="dojo/*">` DOMNodes.  If not specified, will search for `<script>` tags inside node.
1019			// inherited: Object?
1020			//		Settings from dir=rtl or lang=... on a node above this node.   Overrides options.inherited.
1021			// returns:
1022			//		Instance or Promise for the instance, if markupFactory() itself returned a promise
1023
1024			var proto = ctor && ctor.prototype;
1025			options = options || {};
1026
1027			// Setup hash to hold parameter settings for this widget.	Start with the parameter
1028			// settings inherited from ancestors ("dir" and "lang").
1029			// Inherited setting may later be overridden by explicit settings on node itself.
1030			var params = {};
1031
1032			if(options.defaults){
1033				// settings for the document itself (or whatever subtree is being parsed)
1034				dlang.mixin(params, options.defaults);
1035			}
1036			if(inherited){
1037				// settings from dir=rtl or lang=... on a node above this node
1038				dlang.mixin(params, inherited);
1039			}
1040
1041			// Get list of attributes explicitly listed in the markup
1042			var attributes;
1043			if(has("dom-attributes-explicit")){
1044				// Standard path to get list of user specified attributes
1045				attributes = node.attributes;
1046			}else if(has("dom-attributes-specified-flag")){
1047				// Special processing needed for IE8, to skip a few faux values in attributes[]
1048				attributes = darray.filter(node.attributes, function(a){
1049					return a.specified;
1050				});
1051			}else{
1052				// Special path for IE6-7, avoid (sometimes >100) bogus entries in node.attributes
1053				var clone = /^input$|^img$/i.test(node.nodeName) ? node : node.cloneNode(false),
1054					attrs = clone.outerHTML.replace(/=[^\s"']+|="[^"]*"|='[^']*'/g, "").replace(/^\s*<[a-zA-Z0-9]*\s*/, "").replace(/\s*>.*$/, "");
1055
1056				attributes = darray.map(attrs.split(/\s+/), function(name){
1057					var lcName = name.toLowerCase();
1058					return {
1059						name: name,
1060						// getAttribute() doesn't work for button.value, returns innerHTML of button.
1061						// but getAttributeNode().value doesn't work for the form.encType or li.value
1062						value: (node.nodeName == "LI" && name == "value") || lcName == "enctype" ?
1063							node.getAttribute(lcName) : node.getAttributeNode(lcName).value
1064					};
1065				});
1066			}
1067
1068			// Hash to convert scoped attribute name (ex: data-dojo17-params) to something friendly (ex: data-dojo-params)
1069			// TODO: remove scope for 2.0
1070			var scope = options.scope || dojo._scopeName,
1071				attrData = "data-" + scope + "-", // typically "data-dojo-"
1072				hash = {};
1073			if(scope !== "dojo"){
1074				hash[attrData + "props"] = "data-dojo-props";
1075				hash[attrData + "type"] = "data-dojo-type";
1076				hash[attrData + "mixins"] = "data-dojo-mixins";
1077				hash[scope + "type"] = "dojotype";
1078				hash[attrData + "id"] = "data-dojo-id";
1079			}
1080
1081			// Read in attributes and process them, including data-dojo-props, data-dojo-type,
1082			// dojoAttachPoint, etc., as well as normal foo=bar attributes.
1083			var i = 0, item, funcAttrs = [], jsname, extra;
1084			while(item = attributes[i++]){
1085				var name = item.name,
1086					lcName = name.toLowerCase(),
1087					value = item.value;
1088
1089				switch(hash[lcName] || lcName){
1090				// Already processed, just ignore
1091				case "data-dojo-type":
1092				case "dojotype":
1093				case "data-dojo-mixins":
1094					break;
1095
1096				// Data-dojo-props.   Save for later to make sure it overrides direct foo=bar settings
1097				case "data-dojo-props":
1098					extra = value;
1099					break;
1100
1101				// data-dojo-id or jsId. TODO: drop jsId in 2.0
1102				case "data-dojo-id":
1103				case "jsid":
1104					jsname = value;
1105					break;
1106
1107				// For the benefit of _Templated
1108				case "data-dojo-attach-point":
1109				case "dojoattachpoint":
1110					params.dojoAttachPoint = value;
1111					break;
1112				case "data-dojo-attach-event":
1113				case "dojoattachevent":
1114					params.dojoAttachEvent = value;
1115					break;
1116
1117				// Special parameter handling needed for IE
1118				case "class":
1119					params["class"] = node.className;
1120					break;
1121				case "style":
1122					params["style"] = node.style && node.style.cssText;
1123					break;
1124				default:
1125					// Normal attribute, ex: value="123"
1126
1127					// Find attribute in widget corresponding to specified name.
1128					// May involve case conversion, ex: onclick --> onClick
1129					if(!(name in proto)){
1130						var map = getNameMap(ctor);
1131						name = map[lcName] || name;
1132					}
1133
1134					// Set params[name] to value, doing type conversion
1135					if(name in proto){
1136						switch(typeof proto[name]){
1137						case "string":
1138							params[name] = value;
1139							break;
1140						case "number":
1141							params[name] = value.length ? Number(value) : NaN;
1142							break;
1143						case "boolean":
1144							// for checked/disabled value might be "" or "checked".	 interpret as true.
1145							params[name] = value.toLowerCase() != "false";
1146							break;
1147						case "function":
1148							if(value === "" || value.search(/[^\w\.]+/i) != -1){
1149								// The user has specified some text for a function like "return x+5"
1150								params[name] = new Function(value);
1151							}else{
1152								// The user has specified the name of a global function like "myOnClick"
1153								// or a single word function "return"
1154								params[name] = dlang.getObject(value, false) || new Function(value);
1155							}
1156							funcAttrs.push(name);	// prevent "double connect", see #15026
1157							break;
1158						default:
1159							var pVal = proto[name];
1160							try{
1161								params[name] =
1162									(pVal && "length" in pVal) ? (value ? value.split(/\s*,\s*/) : []) :	// array
1163										(pVal instanceof Date) ?
1164											(value == "" ? new Date("") :	// the NaN of dates
1165											value == "now" ? new Date() :	// current date
1166											dates.fromISOString(value)) :
1167									(pVal instanceof _Url) ? (dojo.baseUrl + value) :
1168									myEval(value);
1169							}
1170							catch(error){
1171								console.error(error);
1172							}
1173						}
1174					}else{
1175						params[name] = value;
1176					}
1177				}
1178			}
1179
1180			// Remove function attributes from DOMNode to prevent "double connect" problem, see #15026.
1181			// Do this as a separate loop since attributes[] is often a live collection (depends on the browser though).
1182			for(var j = 0; j < funcAttrs.length; j++){
1183				var lcfname = funcAttrs[j].toLowerCase();
1184				node.removeAttribute(lcfname);
1185				node[lcfname] = null;
1186			}
1187
1188			// Mix things found in data-dojo-props into the params, overriding any direct settings
1189			if(extra){
1190				try{
1191					extra = myEval.call(options.propsThis, "{" + extra + "}");
1192					dlang.mixin(params, extra);
1193				}catch(e){
1194					// give the user a pointer to their invalid parameters. FIXME: can we kill this in production?
1195					throw new Error(e.toString() + " in data-dojo-props='" + extra + "'");
1196				}
1197			}
1198
1199			// Any parameters specified in "mixin" override everything else.
1200			dlang.mixin(params, mixin);
1201
1202			// Get <script> nodes associated with this widget, if they weren't specified explicitly
1203			if(!scripts){
1204				scripts = (ctor && (ctor._noScript || proto._noScript) ? [] : query("> script[type^='dojo/']", node));
1205			}
1206
1207			// Process <script type="dojo/*"> script tags
1208			// <script type="dojo/method" data-dojo-event="foo"> tags are added to params, and passed to
1209			// the widget on instantiation.
1210			// <script type="dojo/method"> tags (with no event) are executed after instantiation
1211			// <script type="dojo/connect" data-dojo-event="foo"> tags are dojo.connected after instantiation,
1212			// and likewise with <script type="dojo/aspect" data-dojo-method="foo">
1213			// <script type="dojo/watch" data-dojo-prop="foo"> tags are dojo.watch after instantiation
1214			// <script type="dojo/on" data-dojo-event="foo"> tags are dojo.on after instantiation
1215			// note: dojo/* script tags cannot exist in self closing widgets, like <input />
1216			var aspects = [],	// aspects to connect after instantiation
1217				calls = [],		// functions to call after instantiation
1218				watches = [],  // functions to watch after instantiation
1219				ons = []; // functions to on after instantiation
1220
1221			if(scripts){
1222				for(i = 0; i < scripts.length; i++){
1223					var script = scripts[i];
1224					node.removeChild(script);
1225					// FIXME: drop event="" support in 2.0. use data-dojo-event="" instead
1226					var event = (script.getAttribute(attrData + "event") || script.getAttribute("event")),
1227						prop = script.getAttribute(attrData + "prop"),
1228						method = script.getAttribute(attrData + "method"),
1229						advice = script.getAttribute(attrData + "advice"),
1230						scriptType = script.getAttribute("type"),
1231						nf = this._functionFromScript(script, attrData);
1232					if(event){
1233						if(scriptType == "dojo/connect"){
1234							aspects.push({ method: event, func: nf });
1235						}else if(scriptType == "dojo/on"){
1236							ons.push({ event: event, func: nf });
1237						}else{
1238							// <script type="dojo/method" data-dojo-event="foo">
1239							// TODO for 2.0: use data-dojo-method="foo" instead (also affects dijit/Declaration)
1240							params[event] = nf;
1241						}
1242					}else if(scriptType == "dojo/aspect"){
1243						aspects.push({ method: method, advice: advice, func: nf });
1244					}else if(scriptType == "dojo/watch"){
1245						watches.push({ prop: prop, func: nf });
1246					}else{
1247						calls.push(nf);
1248					}
1249				}
1250			}
1251
1252			// create the instance
1253			var markupFactory = ctor.markupFactory || proto.markupFactory;
1254			var instance = markupFactory ? markupFactory(params, node, ctor) : new ctor(params, node);
1255
1256			function onInstantiate(instance){
1257				// map it to the JS namespace if that makes sense
1258				if(jsname){
1259					dlang.setObject(jsname, instance);
1260				}
1261
1262				// process connections and startup functions
1263				for(i = 0; i < aspects.length; i++){
1264					aspect[aspects[i].advice || "after"](instance, aspects[i].method, dlang.hitch(instance, aspects[i].func), true);
1265				}
1266				for(i = 0; i < calls.length; i++){
1267					calls[i].call(instance);
1268				}
1269				for(i = 0; i < watches.length; i++){
1270					instance.watch(watches[i].prop, watches[i].func);
1271				}
1272				for(i = 0; i < ons.length; i++){
1273					don(instance, ons[i].event, ons[i].func);
1274				}
1275
1276				return instance;
1277			}
1278
1279			if(instance.then){
1280				return instance.then(onInstantiate);
1281			}else{
1282				return onInstantiate(instance);
1283			}
1284		},
1285
1286		scan: function(root, options){
1287			// summary:
1288			//		Scan a DOM tree and return an array of objects representing the DOMNodes
1289			//		that need to be turned into widgets.
1290			// description:
1291			//		Search specified node (or document root node) recursively for class instances
1292			//		and return an array of objects that represent potential widgets to be
1293			//		instantiated. Searches for either data-dojo-type="MID" or dojoType="MID" where
1294			//		"MID" is a module ID like "dijit/form/Button" or a fully qualified Class name
1295			//		like "dijit/form/Button".  If the MID is not currently available, scan will
1296			//		attempt to require() in the module.
1297			//
1298			//		See parser.parse() for details of markup.
1299			// root: DomNode?
1300			//		A default starting root node from which to start the parsing. Can be
1301			//		omitted, defaulting to the entire document. If omitted, the `options`
1302			//		object can be passed in this place. If the `options` object has a
1303			//		`rootNode` member, that is used.
1304			// options: Object
1305			//		a kwArgs options object, see parse() for details
1306			//
1307			// returns: Promise
1308			//		A promise that is resolved with the nodes that have been parsed.
1309
1310			var list = [], // Output List
1311				mids = [], // An array of modules that are not yet loaded
1312				midsHash = {}; // Used to keep the mids array unique
1313
1314			var dojoType = (options.scope || dojo._scopeName) + "Type", // typically "dojoType"
1315				attrData = "data-" + (options.scope || dojo._scopeName) + "-", // typically "data-dojo-"
1316				dataDojoType = attrData + "type", // typically "data-dojo-type"
1317				dataDojoTextDir = attrData + "textdir", // typically "data-dojo-textdir"
1318				dataDojoMixins = attrData + "mixins";					// typically "data-dojo-mixins"
1319
1320			// Info on DOMNode currently being processed
1321			var node = root.firstChild;
1322
1323			// Info on parent of DOMNode currently being processed
1324			//	- inherited: dir, lang, and textDir setting of parent, or inherited by parent
1325			//	- parent: pointer to identical structure for my parent (or null if no parent)
1326			//	- scripts: if specified, collects <script type="dojo/..."> type nodes from children
1327			var inherited = options.inherited;
1328			if(!inherited){
1329				var findAncestorAttr = function findAncestorAttr(node, attr){
1330					return (node.getAttribute && node.getAttribute(attr)) ||
1331						(node.parentNode && findAncestorAttr(node.parentNode, attr));
1332				};
1333
1334				inherited = {
1335					dir: findAncestorAttr(root, "dir"),
1336					lang: findAncestorAttr(root, "lang"),
1337					textDir: findAncestorAttr(root, dataDojoTextDir)
1338				};
1339				for(var key in inherited){
1340					if(!inherited[key]){
1341						delete inherited[key];
1342					}
1343				}
1344			}
1345
1346			// Metadata about parent node
1347			var parent = {
1348				inherited: inherited
1349			};
1350
1351			// For collecting <script type="dojo/..."> type nodes (when null, we don't need to collect)
1352			var scripts;
1353
1354			// when true, only look for <script type="dojo/..."> tags, and don't recurse to children
1355			var scriptsOnly;
1356
1357			function getEffective(parent){
1358				// summary:
1359				//		Get effective dir, lang, textDir settings for specified obj
1360				//		(matching "parent" object structure above), and do caching.
1361				//		Take care not to return null entries.
1362				if(!parent.inherited){
1363					parent.inherited = {};
1364					var node = parent.node,
1365						grandparent = getEffective(parent.parent);
1366					var inherited = {
1367						dir: node.getAttribute("dir") || grandparent.dir,
1368						lang: node.getAttribute("lang") || grandparent.lang,
1369						textDir: node.getAttribute(dataDojoTextDir) || grandparent.textDir
1370					};
1371					for(var key in inherited){
1372						if(inherited[key]){
1373							parent.inherited[key] = inherited[key];
1374						}
1375					}
1376				}
1377				return parent.inherited;
1378			}
1379
1380			// DFS on DOM tree, collecting nodes with data-dojo-type specified.
1381			while(true){
1382				if(!node){
1383					// Finished this level, continue to parent's next sibling
1384					if(!parent || !parent.node){
1385						break;
1386					}
1387					node = parent.node.nextSibling;
1388					scriptsOnly = false;
1389					parent = parent.parent;
1390					scripts = parent.scripts;
1391					continue;
1392				}
1393
1394				if(node.nodeType != 1){
1395					// Text or comment node, skip to next sibling
1396					node = node.nextSibling;
1397					continue;
1398				}
1399
1400				if(scripts && node.nodeName.toLowerCase() == "script"){
1401					// Save <script type="dojo/..."> for parent, then continue to next sibling
1402					type = node.getAttribute("type");
1403					if(type && /^dojo\/\w/i.test(type)){
1404						scripts.push(node);
1405					}
1406					node = node.nextSibling;
1407					continue;
1408				}
1409				if(scriptsOnly){
1410					// scriptsOnly flag is set, we have already collected scripts if the parent wants them, so now we shouldn't
1411					// continue further analysis of the node and will continue to the next sibling
1412					node = node.nextSibling;
1413					continue;
1414				}
1415
1416				// Check for data-dojo-type attribute, fallback to backward compatible dojoType
1417				// TODO: Remove dojoType in 2.0
1418				var type = node.getAttribute(dataDojoType) || node.getAttribute(dojoType);
1419
1420				// Short circuit for leaf nodes containing nothing [but text]
1421				var firstChild = node.firstChild;
1422				if(!type && (!firstChild || (firstChild.nodeType == 3 && !firstChild.nextSibling))){
1423					node = node.nextSibling;
1424					continue;
1425				}
1426
1427				// Meta data about current node
1428				var current;
1429
1430				var ctor = null;
1431				if(type){
1432					// If dojoType/data-dojo-type specified, add to output array of nodes to instantiate.
1433					var mixinsValue = node.getAttribute(dataDojoMixins),
1434						types = mixinsValue ? [type].concat(mixinsValue.split(/\s*,\s*/)) : [type];
1435
1436					// Note: won't find classes declared via dojo/Declaration or any modules that haven't been
1437					// loaded yet so use try/catch to avoid throw from require()
1438					try{
1439						ctor = getCtor(types, options.contextRequire);
1440					}catch(e){}
1441
1442					// If the constructor was not found, check to see if it has modules that can be loaded
1443					if(!ctor){
1444						darray.forEach(types, function(t){
1445							if(~t.indexOf('/') && !midsHash[t]){
1446								// If the type looks like a MID and it currently isn't in the array of MIDs to load, add it.
1447								midsHash[t] = true;
1448								mids[mids.length] = t;
1449							}
1450						});
1451					}
1452
1453					var childScripts = ctor && !ctor.prototype._noScript ? [] : null; // <script> nodes that are parent's children
1454
1455					// Setup meta data about this widget node, and save it to list of nodes to instantiate
1456					current = {
1457						types: types,
1458						ctor: ctor,
1459						parent: parent,
1460						node: node,
1461						scripts: childScripts
1462					};
1463					current.inherited = getEffective(current); // dir & lang settings for current node, explicit or inherited
1464					list.push(current);
1465				}else{
1466					// Meta data about this non-widget node
1467					current = {
1468						node: node,
1469						scripts: scripts,
1470						parent: parent
1471					};
1472				}
1473
1474				// Recurse, collecting <script type="dojo/..."> children, and also looking for
1475				// descendant nodes with dojoType specified (unless the widget has the stopParser flag).
1476				// When finished with children, go to my next sibling.
1477				scripts = childScripts;
1478				scriptsOnly = node.stopParser || (ctor && ctor.prototype.stopParser && !(options.template));
1479				parent = current;
1480				node = firstChild;
1481			}
1482
1483			var d = new Deferred();
1484
1485			// If there are modules to load then require them in
1486			if(mids.length){
1487				// Warn that there are modules being auto-required
1488				if(has("dojo-debug-messages")){
1489					console.warn("WARNING: Modules being Auto-Required: " + mids.join(", "));
1490				}
1491				var r = options.contextRequire || require;
1492				r(mids, function(){
1493					// Go through list of widget nodes, filling in missing constructors, and filtering out nodes that shouldn't
1494					// be instantiated due to a stopParser flag on an ancestor that we belatedly learned about due to
1495					// auto-require of a module like ContentPane.   Assumes list is in DFS order.
1496					d.resolve(darray.filter(list, function(widget){
1497						if(!widget.ctor){
1498							// Attempt to find the constructor again.   Still won't find classes defined via
1499							// dijit/Declaration so need to try/catch.
1500							try{
1501								widget.ctor = getCtor(widget.types, options.contextRequire);
1502							}catch(e){}
1503						}
1504
1505						// Get the parent widget
1506						var parent = widget.parent;
1507						while(parent && !parent.types){
1508							parent = parent.parent;
1509						}
1510
1511						// Return false if this node should be skipped due to stopParser on an ancestor.
1512						// Since list[] is in DFS order, this loop will always set parent.instantiateChildren before
1513						// trying to compute widget.instantiate.
1514						var proto = widget.ctor && widget.ctor.prototype;
1515						widget.instantiateChildren = !(proto && proto.stopParser && !(options.template));
1516						widget.instantiate = !parent || (parent.instantiate && parent.instantiateChildren);
1517						return widget.instantiate;
1518					}));
1519				});
1520			}else{
1521				// There were no modules to load, so just resolve with the parsed nodes.   This separate code path is for
1522				// efficiency, to avoid running the require() and the callback code above.
1523				d.resolve(list);
1524			}
1525
1526			// Return the promise
1527			return d.promise;
1528		},
1529
1530		_require: function(/*DOMNode*/ script, /*Object?*/ options){
1531			// summary:
1532			//		Helper for _scanAMD().  Takes a `<script type=dojo/require>bar: "acme/bar", ...</script>` node,
1533			//		calls require() to load the specified modules and (asynchronously) assign them to the specified global
1534			//		variables, and returns a Promise for when that operation completes.
1535			//
1536			//		In the example above, it is effectively doing a require(["acme/bar", ...], function(a){ bar = a; }).
1537
1538			var hash = myEval("{" + script.innerHTML + "}"), // can't use dojo/json::parse() because maybe no quotes
1539				vars = [],
1540				mids = [],
1541				d = new Deferred();
1542
1543			var contextRequire = (options && options.contextRequire) || require;
1544
1545			for(var name in hash){
1546				vars.push(name);
1547				mids.push(hash[name]);
1548			}
1549
1550			contextRequire(mids, function(){
1551				for(var i = 0; i < vars.length; i++){
1552					dlang.setObject(vars[i], arguments[i]);
1553				}
1554				d.resolve(arguments);
1555			});
1556
1557			return d.promise;
1558		},
1559
1560		_scanAmd: function(root, options){
1561			// summary:
1562			//		Scans the DOM for any declarative requires and returns their values.
1563			// description:
1564			//		Looks for `<script type=dojo/require>bar: "acme/bar", ...</script>` node, calls require() to load the
1565			//		specified modules and (asynchronously) assign them to the specified global variables,
1566			//		and returns a Promise for when those operations complete.
1567			// root: DomNode
1568			//		The node to base the scan from.
1569			// options: Object?
1570			//		a kwArgs options object, see parse() for details
1571
1572			// Promise that resolves when all the <script type=dojo/require> nodes have finished loading.
1573			var deferred = new Deferred(),
1574				promise = deferred.promise;
1575			deferred.resolve(true);
1576
1577			var self = this;
1578			query("script[type='dojo/require']", root).forEach(function(node){
1579				// Fire off require() call for specified modules.  Chain this require to fire after
1580				// any previous requires complete, so that layers can be loaded before individual module require()'s fire.
1581				promise = promise.then(function(){
1582					return self._require(node, options);
1583				});
1584
1585				// Remove from DOM so it isn't seen again
1586				node.parentNode.removeChild(node);
1587			});
1588
1589			return promise;
1590		},
1591
1592		parse: function(rootNode, options){
1593			// summary:
1594			//		Scan the DOM for class instances, and instantiate them.
1595			// description:
1596			//		Search specified node (or root node) recursively for class instances,
1597			//		and instantiate them. Searches for either data-dojo-type="Class" or
1598			//		dojoType="Class" where "Class" is a a fully qualified class name,
1599			//		like `dijit/form/Button`
1600			//
1601			//		Using `data-dojo-type`:
1602			//		Attributes using can be mixed into the parameters used to instantiate the
1603			//		Class by using a `data-dojo-props` attribute on the node being converted.
1604			//		`data-dojo-props` should be a string attribute to be converted from JSON.
1605			//
1606			//		Using `dojoType`:
1607			//		Attributes are read from the original domNode and converted to appropriate
1608			//		types by looking up the Class prototype values. This is the default behavior
1609			//		from Dojo 1.0 to Dojo 1.5. `dojoType` support is deprecated, and will
1610			//		go away in Dojo 2.0.
1611			// rootNode: DomNode?
1612			//		A default starting root node from which to start the parsing. Can be
1613			//		omitted, defaulting to the entire document. If omitted, the `options`
1614			//		object can be passed in this place. If the `options` object has a
1615			//		`rootNode` member, that is used.
1616			// options: Object?
1617			//		A hash of options.
1618			//
1619			//		- noStart: Boolean?:
1620			//			when set will prevent the parser from calling .startup()
1621			//			when locating the nodes.
1622			//		- rootNode: DomNode?:
1623			//			identical to the function's `rootNode` argument, though
1624			//			allowed to be passed in via this `options object.
1625			//		- template: Boolean:
1626			//			If true, ignores ContentPane's stopParser flag and parses contents inside of
1627			//			a ContentPane inside of a template.   This allows dojoAttachPoint on widgets/nodes
1628			//			nested inside the ContentPane to work.
1629			//		- inherited: Object:
1630			//			Hash possibly containing dir and lang settings to be applied to
1631			//			parsed widgets, unless there's another setting on a sub-node that overrides
1632			//		- scope: String:
1633			//			Root for attribute names to search for.   If scopeName is dojo,
1634			//			will search for data-dojo-type (or dojoType).   For backwards compatibility
1635			//			reasons defaults to dojo._scopeName (which is "dojo" except when
1636			//			multi-version support is used, when it will be something like dojo16, dojo20, etc.)
1637			//		- propsThis: Object:
1638			//			If specified, "this" referenced from data-dojo-props will refer to propsThis.
1639			//			Intended for use from the widgets-in-template feature of `dijit._WidgetsInTemplateMixin`
1640			//		- contextRequire: Function:
1641			//			If specified, this require is utilised for looking resolving modules instead of the
1642			//			`dojo/parser` context `require()`.  Intended for use from the widgets-in-template feature of
1643			//			`dijit._WidgetsInTemplateMixin`.
1644			// returns: Mixed
1645			//		Returns a blended object that is an array of the instantiated objects, but also can include
1646			//		a promise that is resolved with the instantiated objects.  This is done for backwards
1647			//		compatibility.  If the parser auto-requires modules, it will always behave in a promise
1648			//		fashion and `parser.parse().then(function(instances){...})` should be used.
1649			// example:
1650			//		Parse all widgets on a page:
1651			//	|		parser.parse();
1652			// example:
1653			//		Parse all classes within the node with id="foo"
1654			//	|		parser.parse(dojo.byId('foo'));
1655			// example:
1656			//		Parse all classes in a page, but do not call .startup() on any
1657			//		child
1658			//	|		parser.parse({ noStart: true })
1659			// example:
1660			//		Parse all classes in a node, but do not call .startup()
1661			//	|		parser.parse(someNode, { noStart:true });
1662			//	|		// or
1663			//	|		parser.parse({ noStart:true, rootNode: someNode });
1664
1665			// determine the root node and options based on the passed arguments.
1666			if(rootNode && typeof rootNode != "string" && !("nodeType" in rootNode)){
1667				// If called as parse(options) rather than parse(), parse(rootNode), or parse(rootNode, options)...
1668				options = rootNode;
1669				rootNode = options.rootNode;
1670			}
1671			var root = rootNode ? dom.byId(rootNode) : dwindow.body();
1672			options = options || {};
1673
1674			var mixin = options.template ? { template: true } : {},
1675				instances = [],
1676				self = this;
1677
1678			// First scan for any <script type=dojo/require> nodes, and execute.
1679			// Then scan for all nodes with data-dojo-type, and load any unloaded modules.
1680			// Then build the object instances.  Add instances to already existing (but empty) instances[] array,
1681			// which may already have been returned to caller.  Also, use otherwise to collect and throw any errors
1682			// that occur during the parse().
1683			var p =
1684				this._scanAmd(root, options).then(function(){
1685					return self.scan(root, options);
1686				}).then(function(parsedNodes){
1687					return self._instantiate(parsedNodes, mixin, options, true);
1688				}).then(function(_instances){
1689					// Copy the instances into the instances[] array we declared above, and are accessing as
1690					// our return value.
1691					return instances = instances.concat(_instances);
1692				}).otherwise(function(e){
1693					// TODO Modify to follow better pattern for promise error management when available
1694					console.error("dojo/parser::parse() error", e);
1695					throw e;
1696				});
1697
1698			// Blend the array with the promise
1699			dlang.mixin(instances, p);
1700			return instances;
1701		}
1702	};
1703
1704	if(
1704 1 ){
1705		dojo.parser = parser;
1706	}
1707
1708	// Register the parser callback. It should be the first callback
1709	// after the a11y test.
1710	if(config.parseOnLoad){
1711		ready(100, parser, "parse");
1712	}
1713
1714	return parser;
1715});
1716
1717},
1718'dojo/_base/url':function(){
1719define(["./kernel"], function(dojo){
1720	// module:
1721	//		dojo/url
1722
1723	var
1724		ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),
1725		ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),
1726		_Url = function(){
1727			var n = null,
1728				_a = arguments,
1729				uri = [_a[0]];
1730			// resolve uri components relative to each other
1731			for(var i = 1; i<_a.length; i++){
1732				if(!_a[i]){ continue; }
1733
1734				// Safari doesn't support this.constructor so we have to be explicit
1735				// FIXME: Tracked (and fixed) in Webkit bug 3537.
1736				//		http://bugs.webkit.org/show_bug.cgi?id=3537
1737				var relobj = new _Url(_a[i]+""),
1738					uriobj = new _Url(uri[0]+"");
1739
1740				if(
1741					relobj.path == "" &&
1742					!relobj.scheme &&
1743					!relobj.authority &&
1744					!relobj.query
1745				){
1746					if(relobj.fragment != n){
1747						uriobj.fragment = relobj.fragment;
1748					}
1749					relobj = uriobj;
1750				}else if(!relobj.scheme){
1751					relobj.scheme = uriobj.scheme;
1752
1753					if(!relobj.authority){
1754						relobj.authority = uriobj.authority;
1755
1756						if(relobj.path.charAt(0) != "/"){
1757							var path = uriobj.path.substring(0,
1758								uriobj.path.lastIndexOf("/") + 1) + relobj.path;
1759
1760							var segs = path.split("/");
1761							for(var j = 0; j < segs.length; j++){
1762								if(segs[j] == "."){
1763									// flatten "./" references
1764									if(j == segs.length - 1){
1765										segs[j] = "";
1766									}else{
1767										segs.splice(j, 1);
1768										j--;
1769									}
1770								}else if(j > 0 && !(j == 1 && segs[0] == "") &&
1771									segs[j] == ".." && segs[j-1] != ".."){
1772									// flatten "../" references
1773									if(j == (segs.length - 1)){
1774										segs.splice(j, 1);
1775										segs[j - 1] = "";
1776									}else{
1777										segs.splice(j - 1, 2);
1778										j -= 2;
1779									}
1780								}
1781							}
1782							relobj.path = segs.join("/");
1783						}
1784					}
1785				}
1786
1787				uri = [];
1788				if(relobj.scheme){
1789					uri.push(relobj.scheme, ":");
1790				}
1791				if(relobj.authority){
1792					uri.push("//", relobj.authority);
1793				}
1794				uri.push(relobj.path);
1795				if(relobj.query){
1796					uri.push("?", relobj.query);
1797				}
1798				if(relobj.fragment){
1799					uri.push("#", relobj.fragment);
1800				}
1801			}
1802
1803			this.uri = uri.join("");
1804
1805			// break the uri into its main components
1806			var r = this.uri.match(ore);
1807
1808			this.scheme = r[2] || (r[1] ? "" : n);
1809			this.authority = r[4] || (r[3] ? "" : n);
1810			this.path = r[5]; // can never be undefined
1811			this.query = r[7] || (r[6] ? "" : n);
1812			this.fragment	 = r[9] || (r[8] ? "" : n);
1813
1814			if(this.authority != n){
1815				// server based naming authority
1816				r = this.authority.match(ire);
1817
1818				this.user = r[3] || n;
1819				this.password = r[4] || n;
1820				this.host = r[6] || r[7]; // ipv6 || ipv4
1821				this.port = r[9] || n;
1822			}
1823		};
1824	_Url.prototype.toString = function(){ return this.uri; };
1825
1826	return dojo._Url = _Url;
1827});
1828
1829},
1830'dojo/date/stamp':function(){
1831define(["../_base/lang", "../_base/array"], function(lang, array){
1832
1833// module:
1834//		dojo/date/stamp
1835
1836var stamp = {
1837	// summary:
1838	//		TODOC
1839};
1840lang.setObject("dojo.date.stamp", stamp);
1841
1842// Methods to convert dates to or from a wire (string) format using well-known conventions
1843
1844stamp.fromISOString = function(/*String*/ formattedString, /*Number?*/ defaultTime){
1845	// summary:
1846	//		Returns a Date object given a string formatted according to a subset of the ISO-8601 standard.
1847	//
1848	// description:
1849	//		Accepts a string formatted according to a profile of ISO8601 as defined by
1850	//		[RFC3339](http://www.ietf.org/rfc/rfc3339.txt), except that partial input is allowed.
1851	//		Can also process dates as specified [by the W3C](http://www.w3.org/TR/NOTE-datetime)
1852	//		The following combinations are valid:
1853	//
1854	//		- dates only
1855	//			- yyyy
1856	//			- yyyy-MM
1857	//			- yyyy-MM-dd
1858	//		- times only, with an optional time zone appended
1859	//			- THH:mm
1860	//			- THH:mm:ss
1861	//			- THH:mm:ss.SSS
1862	//		- and "datetimes" which could be any combination of the above
1863	//
1864	//		timezones may be specified as Z (for UTC) or +/- followed by a time expression HH:mm
1865	//		Assumes the local time zone if not specified.  Does not val
1865idate.  Improperly formatted
1866	//		input may return null.  Arguments which are out of bounds will be handled
1867	//		by the Date constructor (e.g. January 32nd typically gets resolved to February 1st)
1868	//		Only years between 100 and 9999 are supported.
1869  	// formattedString:
1870	//		A string such as 2005-06-30T08:05:00-07:00 or 2005-06-30 or T08:05:00
1871	// defaultTime:
1872	//		Used for defaults for fields omitted in the formattedString.
1873	//		Uses 1970-01-01T00:00:00.0Z by default.
1874
1875	if(!stamp._isoRegExp){
1876		stamp._isoRegExp =
1877//TODO: could be more restrictive and check for 00-59, etc.
1878			/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;
1879	}
1880
1881	var match = stamp._isoRegExp.exec(formattedString),
1882		result = null;
1883
1884	if(match){
1885		match.shift();
1886		if(match[1]){match[1]--;} // Javascript Date months are 0-based
1887		if(match[6]){match[6] *= 1000;} // Javascript Date expects fractional seconds as milliseconds
1888
1889		if(defaultTime){
1890			// mix in defaultTime.  Relatively expensive, so use || operators for the fast path of defaultTime === 0
1891			defaultTime = new Date(defaultTime);
1892			array.forEach(array.map(["FullYear", "Month", "Date", "Hours", "Minutes", "Seconds", "Milliseconds"], function(prop){
1893				return defaultTime["get" + prop]();
1894			}), function(value, index){
1895				match[index] = match[index] || value;
1896			});
1897		}
1898		result = new Date(match[0]||1970, match[1]||0, match[2]||1, match[3]||0, match[4]||0, match[5]||0, match[6]||0); //TODO: UTC defaults
1899		if(match[0] < 100){
1900			result.setFullYear(match[0] || 1970);
1901		}
1902
1903		var offset = 0,
1904			zoneSign = match[7] && match[7].charAt(0);
1905		if(zoneSign != 'Z'){
1906			offset = ((match[8] || 0) * 60) + (Number(match[9]) || 0);
1907			if(zoneSign != '-'){ offset *= -1; }
1908		}
1909		if(zoneSign){
1910			offset -= result.getTimezoneOffset();
1911		}
1912		if(offset){
1913			result.setTime(result.getTime() + offset * 60000);
1914		}
1915	}
1916
1917	return result; // Date or null
1918};
1919
1920/*=====
1921var __Options = {
1922	// selector: String
1923	//		"date" or "time" for partial formatting of the Date object.
1924	//		Both date and time will be formatted by default.
1925	// zulu: Boolean
1926	//		if true, UTC/GMT is used for a timezone
1927	// milliseconds: Boolean
1928	//		if true, output milliseconds
1929};
1930=====*/
1931
1932stamp.toISOString = function(/*Date*/ dateObject, /*__Options?*/ options){
1933	// summary:
1934	//		Format a Date object as a string according a subset of the ISO-8601 standard
1935	//
1936	// description:
1937	//		When options.selector is omitted, output follows [RFC3339](http://www.ietf.org/rfc/rfc3339.txt)
1938	//		The local time zone is included as an offset from GMT, except when selector=='time' (time without a date)
1939	//		Does not check bounds.  Only years between 100 and 9999 are supported.
1940	//
1941	// dateObject:
1942	//		A Date object
1943
1944	var _ = function(n){ return (n < 10) ? "0" + n : n; };
1945	options = options || {};
1946	var formattedDate = [],
1947		getter = options.zulu ? "getUTC" : "get",
1948		date = "";
1949	if(options.selector != "time"){
1950		var year = dateObject[getter+"FullYear"]();
1951		date = ["0000".substr((year+"").length)+year, _(dateObject[getter+"Month"]()+1), _(dateObject[getter+"Date"]())].join('-');
1952	}
1953	formattedDate.push(date);
1954	if(options.selector != "date"){
1955		var time = [_(dateObject[getter+"Hours"]()), _(dateObject[getter+"Minutes"]()), _(dateObject[getter+"Seconds"]())].join(':');
1956		var millis = dateObject[getter+"Milliseconds"]();
1957		if(options.milliseconds){
1958			time += "."+ (millis < 100 ? "0" : "") + _(millis);
1959		}
1960		if(options.zulu){
1961			time += "Z";
1962		}else if(options.selector != "time"){
1963			var timezoneOffset = dateObject.getTimezoneOffset();
1964			var absOffset = Math.abs(timezoneOffset);
1965			time += (timezoneOffset > 0 ? "-" : "+") +
1966				_(Math.floor(absOffset/60)) + ":" + _(absOffset%60);
1967		}
1968		formattedDate.push(time);
1969	}
1970	return formattedDate.join('T'); // String
1971};
1972
1973return stamp;
1974});
1975
1976},
1977'dojo/json5':function(){
1978define([
1979	'./json5/parse'
1980], function (parse) {
1981	return {
1982		parse: parse
1983	};
1984});
1985
1986},
1987'dojo/json5/parse':function(){
1988define([
1989	'../string',
1990	'./util'
1991], function (dstring, util) {
1992	var source;
1993	var parseState;
1994	var stack;
1995	var pos;
1996	var line;
1997	var column;
1998	var token;
1999	var key;
2000	var root;
2001
2002	function parse(text, reviver) {
2003		source = String(text);
2004		parseState = 'start';
2005		stack = [];
2006		pos = 0;
2007		line = 1;
2008		column = 0;
2009		token = undefined;
2010		key = undefined;
2011		root = undefined;
2012		do {
2013			token = lex();
2014			parseStates[parseState]();
2015		} while (token.type !== 'eof');
2016		if (typeof reviver === 'function') {
2017			return internalize({ '': root }, '', reviver);
2018		}
2019		return root;
2020	}
2021	function internalize(holder, name, reviver) {
2022		var value = holder[name];
2023		if (value != null && typeof value === 'object') {
2024			for (var key_1 in value) {
2025				var replacement = internalize(value, key_1, reviver);
2026				if (replacement === undefined) {
2027					delete value[key_1];
2028				}
2029				else {
2030					value[key_1] = replacement;
2031				}
2032			}
2033		}
2034		return reviver.call(holder, name, value);
2035	}
2036	var lexState;
2037	var buffer;
2038	var doubleQuote;
2039	var sign;
2040	var c;
2041	function lex() {
2042		lexState = 'default';
2043		buffer = '';
2044		doubleQuote = false;
2045		sign = 1;
2046		for (;;) {
2047			c = peek();
2048			var token_1 = lexStates[lexState]();
2049			if (token_1) {
2050				return token_1;
2051			}
2052		}
2053	}
2054	function peek() {
2055		if (source[pos]) {
2056			return dstring.fromCodePoint(dstring.codePointAt(source, pos));
2057		}
2058	}
2059	function read() {
2060		var c = peek();
2061		if (c === '\n') {
2062			line++;
2063			column = 0;
2064		}
2065		else if (c) {
2066			column += c.length;
2067		}
2068		else {
2069			column++;
2070		}
2071		if (c) {
2072			pos += c.length;
2073		}
2074		return c;
2075	}
2076	var lexStates = {
2077		'default': function () {
2078			switch (c) {
2079				case '\t':
2080				case '\v':
2081				case '\f':
2082				case ' ':
2083				case '\u00A0':
2084				case '\uFEFF':
2085				case '\n':
2086				case '\r':
2087				case '\u2028':
2088				case '\u2029':
2089					read();
2090					return;
2091				case '/':
2092					read();
2093					lexState = 'comment';
2094					return;
2095				case undefined:
2096					read();
2097					return newToken('eof');
2098			}
2099			if (util.isSpaceSeparator(c)) {
2100				read();
2101				return;
2102			}
2103			return lexStates[parseState]();
2104		},
2105		comment: function () {
2106			switch (c) {
2107				case '*':
2108					read();
2109					lexState = 'multiLineComment';
2110					return;
2111				case '/':
2112					read();
2113					lexState = 'singleLineComment';
2114					return;
2115			}
2116			throw invalidChar(read());
2117		},
2118		multiLineComment: function () {
2119			switch (c) {
2120				case '*':
2121					read();
2122					lexState = 'multiLineCommentAsterisk';
2123					return;
2124				case undefined:
2125					throw invalidChar(read());
2126			}
2127			read();
2128		},
2129		multiLineCommentAsterisk: function () {
2130			switch (c) {
2131				case '*':
2132					read();
2133					return;
2134				case '/':
2135					read();
2136					lexState = 'default';
2137					return;
2138				case undefined:
2139					throw invalidChar(read());
2140			}
2141			read();
2142			lexState = 'multiLineComment';
2143		},
2144		singleLineComment: function () {
2145			switch (c) {
2146				case '\n':
2147				case '\r':
2148				case '\u2028':
2149				case '\u2029':
2150					read();
2151					lexState = 'default';
2152					return;
2153				case undefined:
2154					read();
2155					return newToken('eof');
2156			}
2157			read();
2158		},
2159		value: function () {
2160			switch (c) {
2161				case '{':
2162				case '[':
2163					return newToken('punctuator', read());
2164				case 'n':
2165					read();
2166					literal('ull');
2167					return newToken('null', null);
2168				case 't':
2169					read();
2170					literal('rue');
2171					return newToken('boolean', true);
2172				case 'f':
2173					read();
2174					literal('alse');
2175					return newToken('boolean', false);
2176				case '-':
2177				case '+':
2178					if (read() === '-') {
2179						sign = -1;
2180					}
2181					lexState = 'sign';
2182					return;
2183				case '.':
2184					buffer = read();
2185					lexState = 'decimalPointLeading';
2186					return;
2187				case '0':
2188					buffer = read();
2189					lexState = 'zero';
2190					return;
2191				case '1':
2192				case '2':
2193				case '3':
2194				case '4':
2195				case '5':
2196				case '6':
2197				case '7':
2198				case '8':
2199				case '9':
2200					buffer = read();
2201					lexState = 'decimalInteger';
2202					return;
2203				case 'I':
2204					read();
2205					literal('nfinity');
2206					return newToken('numeric', Infinity);
2207				case 'N':
2208					read();
2209					literal('aN');
2210					return newToken('numeric', NaN);
2211				case '"':
2212				case "'":
2213					doubleQuote = (read() === '"');
2214					buffer = '';
2215					lexState = 'string';
2216					return;
2217			}
2218			throw invalidChar(read());
2219		},
2220		identifierNameStartEscape: function () {
2221			if (c !== 'u') {
2222				throw invalidChar(read());
2223			}
2224			read();
2225			var u = unicodeEscape();
2226			switch (u) {
2227				case '$':
2228				case '_':
2229					break;
2230				default:
2231					if (!util.isIdStartChar(u)) {
2232						throw invalidIdentifier();
2233					}
2234					break;
2235			}
2236			buffer += u;
2237			lexState = 'identifierName';
2238		},
2239		identifierName: function () {
2240			switch (c) {
2241				case '$':
2242				case '_':
2243				case '\u200C':
2244				case '\u200D':
2245					buffer += read();
2246					return;
2247				case '\\':
2248					read();
2249					lexState = 'identifierNameEscape';
2250					return;
2251			}
2252			if (util.isIdContinueChar(c)) {
2253				buffer += read();
2254				return;
2255			}
2256			return newToken('identifier', buffer);
2257		},
2258		identifierNameEscape: function () {
2259			if (c !== 'u') {
2260				throw invalidChar(read());
2261			}
2262			read();
2263			var u = unicodeEscape();
2264			switch (u) {
2265				case '$':
2266				case '_':
2267				case '\u200C':
2268				case '\u200D':
2269					break;
2270				default:
2271					if (!util.isIdContinueChar(u)) {
2272						throw invalidIdentifier();
2273					}
2274					break;
2275			}
2276			buffer += u;
2277			lexState = 'identifierName';
2278		},
2279		sign: function () {
2280			switch (c) {
2281				case '.':
2282					buffer = read();
2283					lexState = 'decimalPointLeading';
2284					return;
2285				case '0':
2286					buffer = read();
2287					lexState = 'zero';
2288					return;
2289				case '1':
2290				case '2':
2291				case '3':
2292				case '4':
2293				case '5':
2294				case '6':
2295				case '7':
2296				case '8':
2297				case '9':
2298					buffer = read();
2299					lexState = 'decimalInteger';
2300					return;
2301				case 'I':
2302					read();
2303					literal('nfinity');
2304					return newToken('numeric', sign * Infinity);
2305				case 'N':
2306					read();
2307					literal('aN');
2308					return newToken('numeric', NaN);
2309			}
2310			throw invalidChar(read());
2311		},
2312		zero: function () {
2313			switch (c) {
2314				case '.':
2315					buffer += read();
2316					lexState = 'decimalPoint';
2317					return;
2318				case 'e':
2319				case 'E':
2320					buffer += read();
2321					lexState = 'decimalExponent';
2322					return;
2323				case 'x':
2324				case 'X':
2325					buffer += read();
2326					lexState = 'hexadecimal';
2327					return;
2328			}
2329			return newToken('numeric', sign * 0);
2330		},
2331		decimalInteger: function () {
2332			switch (c) {
2333				case '.':
2334					buffer += read();
2335					lexState = 'decimalPoint';
2336					return;
2337				case 'e':
2338				case 'E':
2339					buffer += read();
2340					lexState = 'decimalExponent';
2341					return;
2342			}
2343			if (util.isDigit(c)) {
2344				buffer += read();
2345				return;
2346			}
2347			return newToken('numeric', sign * Number(buffer));
2348		},
2349		decimalPointLeading: function () {
2350			if (util.isDigit(c)) {
2351				buffer += read();
2352				lexState = 'decimalFraction';
2353				return;
2354			}
2355			throw invalidChar(read());
2356		},
2357		decimalPoint: function () {
2358			switch (c) {
2359				case 'e':
2360				case 'E':
2361					buffer += read();
2362					lexState = 'decimalExponent';
2363					return;
2364			}
2365			if (util.isDigit(c)) {
2366				buffer += read();
2367				lexState = 'decimalFraction';
2368				return;
2369			}
2370			return newToken('numeric', sign * Number(buffer));
2371		},
2372		decimalFraction: function () {
2373			switch (c) {
2374				case 'e':
2375				case 'E':
2376					buffer += read();
2377					lexState = 'decimalExponent';
2378					return;
2379			}
2380			if (util.isDigit(c)) {
2381				buffer += read();
2382				return;
2383			}
2384			return newToken('numeric', sign * Number(buffer));
2385		},
2386		decimalExponent: function () {
2387			switch (c) {
2388				case '+':
2389				case '-':
2390					buffer += read();
2391					lexState = 'decimalExponentSign';
2392					return;
2393			}
2394			if (util.isDigit(c)) {
2395				buffer += read();
2396				lexState = 'decimalExponentInteger';
2397				return;
2398			}
2399			throw invalidChar(read());
2400		},
2401		decimalExponentSign: function () {
2402			if (util.isDigit(c)) {
2403				buffer += read();
2404				lexState = 'decimalExponentInteger';
2405				return;
2406			}
2407			throw invalidChar(read());
2408		},
2409		decimalExponentInteger: function () {
2410			if (util.isDigit(c)) {
2411				buffer += read();
2412				return;
2413			}
2414			return newToken('numeric', sign * Number(buffer));
2415		},
2416		hexadecimal: function () {
2417			if (util.isHexDigit(c)) {
2418				buffer += read();
2419				lexState = 'hexadecimalInteger';
2420				return;
2421			}
2422			throw invalidChar(read());
2423		},
2424		hexadecimalInteger: function () {
2425			if (util.isHexDigit(c)) {
2426				buffer += read();
2427				return;
2428			}
2429			return newToken('numeric', sign * Number(buffer));
2430		},
2431		string: function () {
2432			switch (c) {
2433				case '\\':
2434					read();
2435					buffer += escape();
2436					return;
2437				case '"':
2438					if (doubleQuote) {
2439						read();
2440						return newToken('string', buffer);
2441					}
2442					buffer += read();
2443					return;
2444				case "'":
2445					if (!doubleQuote) {
2446						read();
2447						return newToken('string', buffer);
2448					}
2449					buffer += read();
2450					return;
2451				case '\n':
2452				case '\r':
2453					throw invalidChar(read());
2454				case '\u2028':
2455				case '\u2029':
2456					separatorChar(c);
2457					break;
2458				case undefined:
2459					throw invalidChar(read());
2460			}
2461			buffer += read();
2462		},
2463		start: function () {
2464			switch (c) {
2465				case '{':
2466				case '[':
2467					return newToken('punctuator', read());
2468			}
2469			lexState = 'value';
2470		},
2471		beforePropertyName: function () {
2472			switch (c) {
2473				case '$':
2474				case '_':
2475					buffer = read();
2476					lexState = 'identifierName';
2477					return;
2478				case '\\':
2479					read();
2480					lexState = 'identifierNameStartEscape';
2481					return;
2482				case '}':
2483					return newToken('punctuator', read());
2484				case '"':
2485				case "'":
2486					doubleQuote = (read() === '"');
2487					lexState = 'string';
2488					return;
2489			}
2490			if (util.isIdStartChar(c)) {
2491				buffer += read();
2492				lexState = 'identifierName';
2493				return;
2494			}
2495			throw invalidChar(read());
2496		},
2497		afterPropertyName: function () {
2498			if (c === ':') {
2499				return newToken('punctuator', read());
2500			}
2501			throw invalidChar(read());
2502		},
2503		beforePropertyValue: function () {
2504			lexState = 'value';
2505		},
2506		afterPropertyValue: function () {
2507			switch (c) {
2508				case ',':
2509				case '}':
2510					return newToken('punctuator', read());
2511			}
2512			throw invalidChar(read());
2513		},
2514		beforeArrayValue: function () {
2515			if (c === ']') {
2516				return newToken('punctuator', read());
2517			}
2518			lexState = 'value';
2519		},
2520		afterArrayValue: function () {
2521			switch (c) {
2522				case ',':
2523				case ']':
2524					return newToken('punctuator', read());
2525			}
2526			throw invalidChar(read());
2527		},
2528		end: function () {
2529			throw invalidChar(read());
2530		}
2531	};
2532	function newToken(type, value) {
2533		return {
2534			type: type,
2535			value: value,
2536			line: line,
2537			column: column
2538		};
2539	}
2540	function literal(s) {
2541		for (var _i = 0, s_1 = s; _i < s_1.length; _i++) {
2542			var c_1 = s_1[_i];
2543			var p = peek();
2544			if (p !== c_1) {
2545				throw invalidChar(read());
2546			}
2547			read();
2548		}
2549	}
2550	function escape() {
2551		var c = peek();
2552		switch (c) {
2553			case 'b':
2554				read();
2555				return '\b';
2556			case 'f':
2557				read();
2558				return '\f';
2559			case 'n':
2560				read();
2561				return '\n';
2562			case 'r':
2563				read();
2564				return '\r';
2565			case 't':
2566				read();
2567				return '\t';
2568			case 'v':
2569				read();
2570				return '\v';
2571			case '0':
2572				read();
2573				if (util.isDigit(peek())) {
2574					throw invalidChar(read());
2575				}
2576				return '\0';
2577			case 'x':
2578				read();
2579				return hexEscape();
2580			case 'u':
2581				read();
2582				return unicodeEscape();
2583			case '\n':
2584			case '\u2028':
2585			case '\u2029':
2586				read();
2587				return '';
2588			case '\r':
2589				read();
2590				if (peek() === '\n') {
2591					read();
2592				}
2593				return '';
2594			case '1':
2595			case '2':
2596			case '3':
2597			case '4':
2598			case '5':
2599			case '6':
2600			case '7':
2601			case '8':
2602			case '9':
2603				throw invalidChar(read());
2604			case undefined:
2605				throw invalidChar(read());
2606		}
2607		return read();
2608	}
2609	function hexEscape() {
2610		var buffer = '';
2611		var c = peek();
2612		if (!util.isHexDigit(c)) {
2613			throw invalidChar(read());
2614		}
2615		buffer += read();
2616		c = peek();
2617		if (!util.isHexDigit(c)) {
2618			throw invalidChar(read());
2619		}
2620		buffer += read();
2621		return dstring.fromCodePoint(parseInt(buffer, 16));
2622	}
2623	function unicodeEscape() {
2624		var buffer = '';
2625		var count = 4;
2626		while (count-- > 0) {
2627			var c_2 = peek();
2628			if (!util.isHexDigit(c_2)) {
2629				throw invalidChar(read());
2630			}
2631			buffer += read();
2632		}
2633		return dstring.fromCodePoint(parseInt(buffer, 16));
2634	}
2635	var parseStates = {
2636		start: function () {
2637			if (token.type === 'eof') {
2638				throw invalidEOF();
2639			}
2640			push();
2641		},
2642		beforePropertyName: function () {
2643			switch (token.type) {
2644				case 'identifier':
2645				case 'string':
2646					key = token.value;
2647					parseState = 'afterPropertyName';
2648					return;
2649				case 'punctuator':
2650					pop();
2651					return;
2652				case 'eof':
2653					throw invalidEOF();
2654			}
2655		},
2656		afterPropertyName: function () {
2657			if (token.type === 'eof') {
2658				throw invalidEOF();
2659			}
2660			parseState = 'beforePropertyValue';
2661		},
2662		beforePropertyValue: function () {
2663			if (token.type === 'eof') {
2664				throw invalidEOF();
2665			}
2666			push();
2667		},
2668		beforeArrayValue: function () {
2669			if (token.type === 'eof') {
2670				throw invalidEOF();
2671			}
2672			if (token.type === 'punctuator' && token.value === ']') {
2673				pop();
2674				return;
2675			}
2676			push();
2677		},
2678		afterPropertyValue: function () {
2679			if (token.type === 'eof') {
2680				throw invalidEOF();
2681			}
2682			switch (token.value) {
2683				case ',':
2684					parseState = 'beforePropertyName';
2685					return;
2686				case '}':
2687					pop();
2688			}
2689		},
2690		afterArrayValue: function () {
2691			if (token.type === 'eof') {
2692				throw invalidEOF();
2693			}
2694			switch (token.value) {
2695				case ',':
2696					parseState = 'beforeArrayValue';
2697					return;
2698				case ']':
2699					pop();
2700			}
2701		},
2702		end: function () {
2703		}
2704	};
2705	function push() {
2706		var value;
2707		switch (token.type) {
2708			case 'punctuator':
2709				switch (token.value) {
2710					case '{':
2711						value = {};
2712						break;
2713					case '[':
2714						value = [];
2715						break;
2716				}
2717				break;
2718			case 'null':
2719			case 'boolean':
2720			case 'numeric':
2721			case 'string':
2722				value = token.value;
2723				break;
2724		}
2725		if (root === undefined) {
2726			root = value;
2727		}
2728		else {
2729			var parent_1 = stack[stack.length - 1];
2730			if (Array.isArray(parent_1)) {
2731				parent_1.push(value);
2732			}
2733			else {
2734				parent_1[key] = value;
2735			}
2736		}
2737		if (value !== null && typeof value === 'object') {
2738			stack.push(value);
2739			if (Array.isArray(value)) {
2740				parseState = 'beforeArrayValue';
2741			}
2742			else {
2743				parseState = 'beforePropertyName';
2744			}
2745		}
2746		else {
2747			var current = stack[stack.length - 1];
2748			if (current == null) {
2749				parseState = 'end';
2750			}
2751			else if (Array.isArray(current)) {
2752				parseState = 'afterArrayValue';
2753			}
2754			else {
2755				parseState = 'afterPropertyValue';
2756			}
2757		}
2758	}
2759	function pop() {
2760		stack.pop();
2761		var current = stack[stack.length - 1];
2762		if (current == null) {
2763			parseState = 'end';
2764		}
2765		else if (Array.isArray(current)) {
2766			parseState = 'afterArrayValue';
2767		}
2768		else {
2769			parseState = 'afterPropertyValue';
2770		}
2771	}
2772	function invalidChar(c) {
2773		if (c === undefined) {
2774			return syntaxError("JSON5: invalid end of input at " + line + ":" + column);
2775		}
2776		return syntaxError("JSON5: invalid character '" + formatChar(c) + "' at " + line + ":" + column);
2777	}
2778	function invalidEOF() {
2779		return syntaxError("JSON5: invalid end of input at " + line + ":" + column);
2780	}
2781	function invalidIdentifier() {
2782		column -= 5;
2783		return syntaxError("JSON5: invalid identifier character at " + line + ":" + column);
2784	}
2785	function separatorChar(c) {
2786		console.warn("JSON5: '" + formatChar(c) + "' in strings is not valid ECMAScript; consider escaping");
2787	}
2788	function formatChar(c) {
2789		var replacements = {
2790			"'": "\\'",
2791			'"': '\\"',
2792			'\\': '\\\\',
2793			'\b': '\\b',
2794			'\f': '\\f',
2795			'\n': '\\n',
2796			'\r': '\\r',
2797			'\t': '\\t',
2798			'\v': '\\v',
2799			'\0': '\\0',
2800			'\u2028': '\\u2028',
2801			'\u2029': '\\u2029'
2802		};
2803		if (replacements[c]) {
2804			return replacements[c];
2805		}
2806		if (c < ' ') {
2807			var hexString = c.charCodeAt(0).toString(16);
2808			return '\\x' + ('00' + hexString).substring(hexString.length);
2809		}
2810		return c;
2811	}
2812	function syntaxError(message) {
2813		var err = new SyntaxError(message);
2814		err.lineNumber = line;
2815		err.columnNumber = column;
2816		return err;
2817	}
2818
2819	return parse;
2820});
2821
2822},
2823'dojo/json5/util':function(){
2824define([
2825	'./unicode'
2826], function (unicode) {
2827	return {
2828		isSpaceSeparator: function (c) {
2829			return typeof c === 'string' && unicode.Space_Separator.test(c);
2830		},
2831		isIdStartChar: function (c) {
2832			return typeof c === 'string' && ((c >= 'a' && c <= 'z') ||
2833				(c >= 'A' && c <= 'Z') ||
2834				(c === '$') || (c === '_') ||
2835				unicode.ID_Start.test(c));
2836		},
2837		isIdContinueChar: function (c) {
2838			return typeof c === 'string' && ((c >= 'a' && c <= 'z') ||
2839				(c >= 'A' && c <= 'Z') ||
2840				(c >= '0' && c <= '9') ||
2841				(c === '$') || (c === '_') ||
2842				(c === '\u200C') || (c === '\u200D') ||
2843				unicode.ID_Continue.test(c));
2844		},
2845		isDigit: function (c) {
2846			return typeof c === 'string' && /[0-9]/.test(c);
2847		},
2848		isHexDigit: function (c) {
2849			return typeof c === 'string' && /[0-9A-Fa-f]/.test(c);
2850		},
2851	};
2852});
2853
2854},
2855'dojo/json5/unicode':function(){
2856define(
vendor: 15,733 bytes, lines 2856-2860
2856{
2857	Space_Separator: /[\u1680\u2000-\u200A\u202F\u205F\u3000]/,
2858	ID_Start: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,
2859	ID_Continue: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/
2860}
2860);
2861
2862},
2863'RadioButtonList/widget/AssocRadioButtonList':function(){
2864/*jslint browser: true, devel:true, nomen:true, unparam:true, regexp: true, plusplus:true*/
2865/*global require, define, console, mx, mendix*/
2866define([
2867        "dojo/_base/declare",
2868        "mxui/widget/_WidgetBase",
2869        "dijit/_TemplatedMixin",
2870        "dijit/focus",
2871        "mxui/dom",
2872        "dojo/dom-class",
2873        "dojo/dom-style",
2874        "dojo/dom-construct",
2875        "dojo/dom-attr",
2876        "dojo/_base/array",
2877        "dojo/_base/lang",
2878        "dojo/html",
2879        "dojo/text!RadioButtonList/widget/template/RadioButtonList.html"
2880    ],
2881    function (declare, _WidgetBase, _TemplatedMixin, focusUtil, dom, dojoClass, dojoStyle, dojoConstruct, dojoAttr, dojoArray, lang, dojoHtml, widgetTemplate) {
2882        "use strict";
2883
2884        // Declare widget.
2885        return declare("RadioButtonList.widget.AssocRadioButtonList", [_WidgetBase, _TemplatedMixin], {
2886
2887            // Template path
2888            templateString: widgetTemplate,
2889
2890            // DOM elements
2891            inputNodes: null,
2892
2893            // Parameters configurable in Business Modeler.
2894            dataSourceType: null,
2895            RadioListObject: null,
2896            Constraint: "",
2897            sortAttr: "",
2898            sortOrder: false,
2899            RadioListItemAttribute: "",
2900            entity: null,
2901            direction: "vertical",
2902            readonly: false,
2903            onchangeAction: "",
2904            allowDeselect: false,
2905            formOrientation: null,
2906            htmlContent: "escape",
2907
2908            // Internal variables. Non-primitives created in the prototype are shared between all widget instances.
2909            _handles: null,
2910            _contextObj: null,
2911            _alertDiv: null,
2912            _radioButtonOptions: null,
2913            _isReadOnly: false,
2914            _assocName: null,
2915            _locatedInListview: false,
2916            _setup: false,
2917            _radioContainer: null,
2918
2919            constructor: function () {
2920                this._handles = [];
2921            },
2922
2923            postCreate: function () {
2924                console.debug(this.id + ".postCreate");
2925                this._assocName = (typeof this.entity !== "undefined" && this.entity !== "") ? this.entity.split("/")[0] : "";
2926                this.entity = this._assocName;
2927            },
2928
2929            update: function (obj, callback) {
2930                console.debug(this.id + ".update");
2931
2932                this._contextObj = obj;
2933                this._resetSubscriptions();
2934
2935                if (!this._setup) {
2936                    this._setupWidget(lang.hitch(this, function () {
2937                        this._setRadiobuttonOptions(callback);
2938                    }));
2939                } else {
2940                    this._setRadiobuttonOptions(callback);
2941                }
2942            },
2943
2944            _setupWidget: function (callback) {
2945                console.debug(this.id + "._setupWidget");
2946
2947                if (this.readOnly || this.get("disabled") || this.readonly) {
2948                    //this.readOnly isn't available in client API, this.get("disabled") works correctly since 5.18.
2949                    //this.readonly is a widget property
2950                    this._isReadOnly = true;
2951                }
2952
2953                if (this.sortAttr === "") {
2954                    this.sortAttr = this.RadioListItemAttribute;
2955                }
2956
2957                // adjust the template based on the display settings.
2958                if (this.showLabel) {
2959                    if (dojoClass.contains(this.radioButtonLabel, "hidden")) {
2960                        dojoClass.remove(this.radioButtonLabel, "hidden");
2961                    }
2962
2963                    if (this.formOrientation === "horizontal") {
2964                        // width needs to be between 1 and 11
2965                        var labelWidth = this.labelWidth < 1 ? 1 : this.labelWidth;
2966                        labelWidth = this.labelWidth > 11 ? 11 : this.labelWidth;
2967
2968                        var controlWidth = 12 - labelWidth,
2969                            comboLabelClass = "col-sm-" + labelWidth;
2970
2971                        dojoClass.add(this.radioButtonLabel, comboLabelClass);
2972
2973                        this._radioContainer = dojoConstruct.place(dojoConstruct.create("div", {
2974                            "class": "col-sm-" + controlWidth
2975                        }), this.radioButtonContainer, "last");
2976
2977                        dojoConstruct.place(this.inputNodes, this._radioContainer, "only");
2978                    } else {
2979                        dojoClass.add(this.radioButtonContainer, "no-columns");
2980                    }
2981
2982                    this.radioButtonLabel.innerHTML = this.fieldCaption;
2983                } else {
2984                    if (!dojoClass.contains(this.radioButtonLabel, "hidden")) {
2985                        dojoClass.add(this.radioButtonLabel, "hidden");
2986                    }
2987                    dojoClass.add(this.radioButtonContainer, "no-columns");
2988                }
2989
2990                if (this.direction === "horizontal") {
2991                    dojoClass.add(this.radioButtonContainer, "inline");
2992                }
2993
2994                this._setup = true;
2995
2996                this._executeCallback(callback, "_setupWidget");
2997            },
2998
2999            _setRadiobuttonOptions: function (callback) {
3000                console.debug(this.id + "._setRadiobuttonOptions");
3001
3002                if (this._contextObj) {
3003                    if (this.dataSourceType === "xpath") {
3004                        this._getDataFromXPath(callback);
3005                    } else if (this.dataSourceType === "mf" && this.datasourceMf) {
3006                        this._getDataFromDatasource(callback);
3007                    } else {
3008                        this._showError("Can\"t retrieve objects because no datasource microflow is specified");
3009                        this._executeCallback(callback, "_setRadiobuttonOptions");
3010                    }
3011                } else {
3012                    this._updateRendering(callback);
3013                }
3014            },
3015
3016            _updateRendering: function (callback) {
3017                console.debug(this.id + "._updateRendering");
3018                if (this._contextObj !== null) {
3019                    dojoStyle.set(this.domNode, "display", "");
3020                    this._createRadiobuttonNodes(callback);
3021                } else {
3022                    if (!this._locatedInListview) {
3023                        dojoStyle.set(this.domNode, "display", "none");
3024                    }
3025                    this._executeCallback(callback, "_updateRendering no context");
3026                }
3027
3028                // Important to clear all validations!
3029                this._clearValidations();
3030            },
3031
3032            _handleValidation: function (validations) {
3033                console.debug(this.id + "._handleValidation");
3034                this._clearValidations();
3035
3036                if (this._isReadOnly || this._contextObj.isReadonlyAttr(this.entity)) {
3037                    return;
3038                }
3039
3040                var validation = validations[0],
3041                    message = validation.getReasonByAttribute(this.entity);
3042
3043                this._addValidation(message);
3044
3045                validation.removeAttribute(this.entity);
3046            },
3047
3048            _clearValidations: function () {
3049                console.debug(this.id + "._clearValidations");
3050                dojoConstruct.destroy(this._alertDiv);
3051                this._alertDiv = null;
3052                dojoClass.remove(this.radioButtonContainer, "has-error");
3053            },
3054
3055            _showError: function (message) {
3056                console.debug(this.id + "._showError");
3057                if (this._alertDiv !== null) {
3058                    dojoHtml.set(this._alertDiv, message);
3059                    return true;
3060                }
3061                this._alertDiv = dojoConstruct.create("div", {
3062                    "class": "alert alert-danger mx-validation-message",
3063                    "role": "alert",
3064                    "innerHTML": message
3065                });
3066                dojoConstruct.place(this._alertDiv, this._radioContainer ? this._radioContainer : this.radioButtonContainer);
3067            },
3068
3069            _addValidation: function (message) {
3070                console.debug(this.id + "._addValidation");
3071                if (message) {
3072                    this._showError(message);
3073                    dojoClass.add(this.radioButtonContainer, "has-error");
3074                }                
3075            },
3076
3077            _resetSubscriptions: function () {
3078                console.debug(this.id + "._resetSubscriptions");
3079                // Release handles on previous object, if any.
3080                this.unsubscribeAll();
3081
3082                // When a mendix object exists create subscribtions.
3083                if (this._contextObj) {
3084                    this.subscribe({
3085                        guid: this._contextObj.getGuid(),
3086                        callback: lang.hitch(this, function (guid) {
3087                            this._setRadiobuttonOptions();
3088                        })
3089                    });
3090
3091                    this.subscribe({
3092                        guid: this._contextObj.getGuid(),
3093                        attr: this.entity,
3094                        callback: lang.hitch(this, function (guid, attr, attrValue) {
3095                            this._setRadiobuttonOptions();
3096                        })
3097                    });
3098
3099                    this.subscribe({
3100                        guid: this._contextObj.getGuid(),
3101                        val: true,
3102                        callback: lang.hitch(this, this._handleValidation)
3103                    });
3104                }
3105            },
3106
3107            _getDataFromXPath: function (callback) {
3108                console.debug(this.id + "._getDataFromXPath");
3109                if (this._contextObj) {
3110                    mx.data.get({
3111                        xpath: "//" + this.RadioListObject + this.Constraint.replace(/\[%CurrentObject%\]/g, this._contextObj.getGuid()),
3112                        filter: {
3113                            limit: 50,
3114                            depth: 0,
3115                            sort: [
3116                                [this.sortAttr, this.sortOrder]
3117                            ]
3118                        },
3119                        callback: lang.hitch(this, function (objs) {
3120                            this._populateRadiobuttonOptions(objs, callback);
3121                        }),
3122                        error: lang.hitch(this, function (err) {
3123                            console.error(err);
3124                            this._executeCallback(callback, "_getDataFromXPath mx.data.get.error");
3125                        })
3126                    });
3127                } else {
3128                    console.warn("Warning: No context object available.");
3129                }
3130            },
3131
3132            _getDataFromDatasource: function (callback) {
3133                console.debug(this.id + "._getDataFromDatasource");
3134                this._execMF(this._contextObj, this.datasourceMf, lang.hitch(this, function (objs) {
3135                    this._populateRadiobuttonOptions(objs, callback);
3136                }));
3137            },
3138
3139            _populateRadiobuttonOptions: function (objs, callback) {
3140                console.debug(this.id + "._populateRadiobuttonOptions");
3141                var mxObj = null,
3142                    i = 0,
3143                    value;
3144
3145                this._radioButtonOptions = {};
3146                if (objs && objs.length) {
3147                    for (i = 0; i < objs.length; i++) {
3148                        mxObj = objs[i];
3149                        value = mxObj.get(this.RadioListItemAttribute);
3150                        value = this.htmlContent === "escape" ? dom.escapeString(value) : value;
3151                        this._radioButtonOptions[mxObj.getGuid()] = value;
3152                    }
3153                }
3154
3155                this._updateRendering(callback);
3156            },
3157
3158            _createRadiobuttonNodes: function (callback) {
3159                console.debug(this.id + "._createRadiobuttonNodes");
3160
3161                var mxObj = null,
3162                    i = 0,
3163                    j = 0,
3164                    labelNode = null,
3165                    radioButtonNode = null,
3166                    enclosingDivElement = null,
3167                    nodelength = 0;
3168
3169                if(this.inputNodes !== null){
3170                    if(this.inputNodes.children !== null){
3171                        nodelength = this.inputNodes.children.length;
3172                    }
3173
3174                    dojoConstruct.empty(this.inputNodes);
3175
3176                    for (var option in this._radioButtonOptions) {
3177                        if (this._radioButtonOptions.hasOwnProperty(option)) {
3178                            labelNode = this._createLabelNode(option, this._radioButtonOptions[option], i);
3179                            radioButtonNode = this._createRadiobuttonNode(option, this._radioButtonOptions[option], i);
3180
3181                            if (this.inputNodes.children && this.inputNodes.children[i]) {
3182                                enclosingDivElement = this.inputNodes.children[i];
3183                            } else {
3184                                enclosingDivElement = dojoConstruct.create("div", {
3185                                    "class": "radio"
3186                                });
3187                            }
3188
3189                            if (enclosingDivElement.children[0]) {
3190                                dojoConstruct.destroy(enclosingDivElement.children[0]);
3191                            }
3192
3193                            dojoConstruct.place(radioButtonNode, enclosingDivElement, "first");
3194                            dojoConstruct.place(labelNode, enclosingDivElement, "last");
3195
3196                            if (!this.inputNodes.children[i]) {
3197                                dojoConstruct.place(enclosingDivElement, this.inputNodes, "last");
3198                                if(dojoAttr.get(radioButtonNode, "defaultChecked")) {
3199                                    focusUtil.focus(radioButtonNode);
3200                                }
3201                            }
3202                        }
3203
3204                        i++;
3205                    }
3206                }
3207                j = i;
3208                if (j > 0) {
3209                    for (j; j <= nodelength; j++) {
3210                        dojoConstruct.destroy(this.inputNodes.children[i]);
3211                    }
3212                }
3213
3214                this._executeCallback(callback, "_createRadiobuttonNodes");
3215            },
3216
3217            _createLabelNode: function (key, value, index) {
3218                console.debug(this.id + "._createLabelNode");
3219                var labelNode = dojoConstruct.create("label", {
3220                    "for": this.entity + "_" + this.id + "_" + index,
3221                    "innerHTML": value
3222                });
3223
3224                return labelNode;
3225            },
3226
3227            _createRadiobuttonNode: function (key, value, index) {
3228                console.debug(this.id + "._createRadiobuttonNode");
3229                var radiobuttonNode = null;
3230
3231                radiobuttonNode = dojoConstruct.create("input", {
3232                    "type": "radio",
3233                    "value": key,
3234                    "id": this.entity + "_" + this.id + "_" + index
3235                });
3236
3237                dojoAttr.set(radiobuttonNode, "name", "radio" + this._contextObj.getGuid() + "_" + this.id);
3238
3239                if (this._isReadOnly ||
3240                    this._contextObj.isReadonlyAttr(this.entity)) {
3241                    dojoAttr.set(radiobuttonNode, "disabled", "disabled");
3242                    dojoAttr.set(radiobuttonNode, "readonly", "readonly");
3243                }
3244
3245                if ("" + this._contextObj.get(this.entity) === key) {
3246                    dojoAttr.set(radiobuttonNode, "defaultChecked", true);
3247                }
3248                this._addOnclickToRadiobuttonItem(radiobuttonNode, key);
3249                return radiobuttonNode;
3250            },
3251
3252            _addOnclickToRadiobuttonItem: function (labelNode, rbvalue) {
3253                console.debug(this.id + "._addOnclickToRadiobuttonItem");
3254
3255                this.connect(labelNode, "onclick", lang.hitch(this, function () {
3256
3257                    if (this._isReadOnly ||
3258                        this._contextObj.isReadonlyAttr(this.entity)) {
3259                        return;
3260                    }
3261                    if (this.allowDeselect && this._contextObj.get(this.entity) === rbvalue) {
3262                        this._contextObj.set(this.entity, "");
3263                        dojoAttr.set(labelNode, "checked", false);
3264                    } else {
3265                        this._contextObj.set(this.entity, rbvalue);
3266                    }
3267
3268                    this._clearValidations();
3269
3270                    if (this.onchangeAction) {
3271                        this._execMF(this._contextObj, this.onchangeAction);
3272                    }
3273                }));
3274            },
3275
3276            _execMF: function (obj, mf, callback) {
3277                console.debug(this.id + "._execMF");
3278                var params = {
3279                    applyto: "selection",
3280                    actionname: mf,
3281                    guids: []
3282                };
3283                if (obj) {
3284                    params.guids = [obj.getGuid()];
3285                }
3286
3287                mx.data.action({
3288                    params: params,
3289                    caller: this.mxform,
3290                    callback: function (objs) {
3291                        if (typeof callback !== "undefined") {
3292                            callback(objs);
3293                        }
3294                    },
3295                    error: function (error) {
3296                        if (typeof callback !== "undefined") {
3297                            callback();
3298                        }
3299                        console.error(error.description);
3300                    }
3301                }, this);
3302            },
3303
3304            _executeCallback: function (cb, from) {
3305                console.debug(this.id + "._executeCallback " + (typeof cb) + (from ? " from " + from : ""));
3306                if (cb && typeof cb === "function") {
3307                    cb();
3308                }
3309            }
3310        });
3311    });
3312
3313require(["RadioButtonList/widget/AssocRadioButtonList"]);
3314
3315},
3316'HTMLSnippet/widget/HTMLSnippet':function(){
3317define(["dojo/_base/declare","mxui/widget/_WidgetBase","dojo/dom-style","dojo/dom-attr","dojo/dom-construct","dojo/_base/lang","dojo/html","dijit/layout/LinkPane"],function(__WEBPACK_EXTERNAL_MODULE__80__,__WEBPACK_EXTERNAL_MODULE__146__,__WEBPACK_EXTERNAL_MODULE__147__,__WEBPACK_EXTERNAL_MODULE__148__,__WEBPACK_EXTERNAL_MODULE__149__,__WEBPACK_EXTERNAL_MODULE__150__,__WEBPACK_EXTERNAL_MODULE__151__,__WEBPACK_EXTERNAL_MODULE__152__){return function(t){function e(e){for(var r,o,i=e[0],c=e[1],u=0,a=[];u<i.length;u++)o=i[u],Object.prototype.hasOwnProperty.call(n,o)&&n[o]&&a.push(n[o][0]),n[o]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(t[r]=c[r]);for(s&&s(e);a.length;)a.shift()()}var r={},n={0:0};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(t){var e=[],r=n[t];if(0!==r)if(r)e.push(r[2]);else{var i=new Promise(function(e,o){r=n[t]=[e,o]});e.push(r[2]=i);var c,u=document.createElement("script");u.charset="utf-8",u.timeout=120,o.nc&&u.setAttribute("nonce",o.nc),u.src=function(t){return o.p+"HTMLSnippet/widget/HTMLSnippet"+t+".js"}(t);var s=new Error;c=function(e){u.onerror=u.onload=null,clearTimeout(a);var r=n[t];if(0!==r){if(r){var o=e&&("load"===e.type?"missing":e.type),i=e&&e.target&&e.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",s.name="ChunkLoadError",s.type=o,s.request=i,r[1](s)}n[t]=void 0}};var a=setTimeout(function(){c({type:"timeout",target:u})},12e4);u.onerror=u.onload=c,document.head.appendChild(u)}return Promise.all(e)},o.m=t,o.c=r,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="/widgets/",o.oe=function(t){throw console.error(t),t};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=e,i=i.slice();for(var u=0;u<i.length;u++)e(i[u]);var s=c;return o(o.s=154)}([function(t,e,r){"use strict";var n="object"==typeof document&&document.all;t.exports=void 0===n&&void 0!==n?function(t){return"function"==typeof t||t===n}:function(t){return"function"==typeof t}},function(t,e,r){"use strict";(function(e){var r=function(t){return t&&t.Math===Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()}).call(this,r(84))},function(t,e,r){"use strict";var n=r(26),o=Function.prototype,i=o.call,c=n&&o.bind.bind(i,i);t.exports=n?c:function(t){return function(){return i.apply(t,arguments)}}},function(t,e,r){"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,r){"use strict";var n=r(1),o=r(58),i=r(10),c=r(60),u=r(56),s=r(55),a=n.Symbol,f=o("wks"),p=s?a.for||a:a&&a.withoutSetter||c;t.exports=function(t){return i(f,t)||(f[t]=u&&i(a,t)?a[t]:p("Symbol."+t)),f[t]}},function(t,e,r){"use strict";var n=r(1),o=r(52).f,i=r(17),c=r(16),u=r(38),s=r(65),a=r(68);t.exports=function(t,e){var r,f,p,l,v,h=t.target,d=t.global,_=t.stat;if(r=d?n:_?n[h]||u(h,{}):n[h]&&n[h].prototype)for(f in e){if(l=e[f],p=t.dontCallGetSet?(v=o(r,f))&&v.value:r[f],!a(d?f:h+(_?".":"#")+f,t.forced)&&void 0!==p){if(typeof l==typeof p)continue;s(l,p)}(t.sham||p&&p.sham)&&i(l,"sham",!0),c(r,f,l,t)}}},function(t,e,r){"use strict";var n=r(26),o=Function.prototype.call;t.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}}
3317)[1]})},function(t,e,r){"use strict";var n=r(0);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},function(t,e,r){"use strict";var n=r(0),o=r(31),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a function")}},function(t,e,r){"use strict";var n=r(2),o=r(59),i=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},function(t,e,r){"use strict";var n=r(1),o=r(0),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(n[t]):n[t]&&n[t][e]}},function(t,e,r){"use strict";t.exports=!1},function(t,e,r){"use strict";var n=r(8),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not an object")}},function(t,e,r){"use strict";var n=r(7),o=r(61),i=r(62),c=r(13),u=r(53),s=TypeError,a=Object.defineProperty,f=Object.getOwnPropertyDescriptor;e.f=n?i?function(t,e,r){if(c(t),e=u(e),c(r),"function"==typeof t&&"prototype"===e&&"value"in r&&"writable"in r&&!r.writable){var n=f(t,e);n&&n.writable&&(t[e]=r.value,r={configurable:"configurable"in r?r.configurable:n.configurable,enumerable:"enumerable"in r?r.enumerable:n.enumerable,writable:!1})}return a(t,e,r)}:a:function(t,e,r){if(c(t),e=u(e),c(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new s("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},function(t,e,r){"use strict";var n=r(9),o=TypeError,i=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new o("Bad Promise constructor");e=t,r=n}),this.resolve=n(e),this.reject=n(r)};t.exports.f=function(t){return new i(t)}},function(t,e,r){"use strict";var n=r(0),o=r(14),i=r(63),c=r(38);t.exports=function(t,e,r,u){u||(u={});var s=u.enumerable,a=void 0!==u.name?u.name:e;if(n(r)&&i(r,a,u),u.global)s?t[e]=r:c(e,r);else{try{u.unsafe?t[e]&&(s=!0):delete t[e]}catch(t){}s?t[e]=r:o.f(t,e,{value:r,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return t}},function(t,e,r){"use strict";var n=r(7),o=r(14),i=r(19);t.exports=n?function(t,e,r){return o.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e,r){"use strict";var n=r(1);t.exports=n.Promise},function(t,e,r){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,r){"use strict";var n=r(86),o=r(28);t.exports=function(t){return n(o(t))}},function(t,e,r){"use strict";var n=r(1).navigator,o=n&&n.userAgent;t.exports=o?String(o):""},function(t,e,r){"use strict";var n=r(47),o=r(6),i=r(13),c=r(31),u=r(108),s=r(67),a=r(30),f=r(109),p=r(70),l=r(110),v=TypeError,h=function(t,e){this.stopped=t,this.result=e},d=h.prototype;t.exports=function(t,e,r){var _,y,g,m,b,x,E,w=r&&r.that,O=!(!r||!r.AS_ENTRIES),j=!(!r||!r.IS_RECORD),P=!(!r||!r.IS_ITERATOR),A=!(!r||!r.INTERRUPTED),S=n(e,w),C=function(t){return _&&l(_,"normal",t),new h(!0,t)},T=function(t){return O?(i(t),A?S(t[0],t[1],C):S(t[0],t[1])):A?S(t,C):S(t)};if(j)_=t.iterator;else if(P)_=t;else{if(!(y=p(t)))throw new v(c(t)+" is not iterable");if(u(y)){for(g=0,m=s(t);m>g;g++)if((b=T(t[g]))&&a(d,b))return b;return new h(!1)}_=f(t,y)}for(x=j?t.next:_.next;!(E=o(x,_)).done;){try{b=T(E.value)}catch(t){l(_,"throw",t)}if("object"==typeof b&&b&&a(d,b))return b}return new h(!1)}},function(t,e,r){"use strict";t.exports={}},function(t,e,r){"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},function(t,e,r){"use strict";var n=r(1),o=r(18),i=r(0),c=r(68),u=r(40),s=r(4),a=r(74),f=r(12),p=r(57),l=o&&o.prototype,v=s("species"),h=!1,d=i(n.PromiseRejectionEvent),_=c("Promise",function(){var t=u(o),e=t!==String(o);if(!e&&66===p)return!0;if(f&&(!l.catch||!l.finally))return!0;if(!p||p<51||!/native code/.test(t)){var r=new o(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[v]=n,!(h=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==a&&"DENO"!==a||d)});t.exports={CONSTRUCTOR:_,REJECTION_EVENT:d,SUBCLASSING:h}},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},function(t,e,r){"use strict";var n=r(2),o=n({}.toString),i=n("".slice);t.exports=function(t){return i(o(t),8,-1)}},function(t,e,r){"use strict";var n=r(29),o=TypeError;t.exports=function(t){if(n(t))throw new o("Can't call method on "+t);return t}},function(t,e,r){"use strict";
3317t.exports=function(t){return null==t}},function(t,e,r){"use strict";var n=r(2);t.exports=n({}.isPrototypeOf)},function(t,e,r){"use strict";var n=String;t.exports=function(t){try{return n(t)}catch(t){return"Object"}}},function(t,e,r){"use strict";var n,o,i,c=r(89),u=r(1),s=r(8),a=r(17),f=r(10),p=r(37),l=r(41),v=r(42),h=u.TypeError,d=u.WeakMap;if(c||p.state){var _=p.state||(p.state=new d);_.get=_.get,_.has=_.has,_.set=_.set,n=function(t,e){if(_.has(t))throw new h("Object already initialized");return e.facade=t,_.set(t,e),e},o=function(t){return _.get(t)||{}},i=function(t){return _.has(t)}}else{var y=l("state");v[y]=!0,n=function(t,e){if(f(t,y))throw new h("Object already initialized");return e.facade=t,a(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:n,get:o,has:i,enforce:function(t){return i(t)?o(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!s(e)||(r=o(e)).type!==t)throw new h("Incompatible receiver, "+t+" required");return r}}}},function(t,e,r){"use strict";var n,o=r(13),i=r(101),c=r(44),u=r(42),s=r(69),a=r(39),f=r(41),p=f("IE_PROTO"),l=function(){},v=function(t){return"<script>"+t+"<\/script>"},h=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},d=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}var t,e;d="undefined"!=typeof document?document.domain&&n?h(n):((e=a("iframe")).style.display="none",s.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):h(n);for(var r=c.length;r--;)delete d.prototype[c[r]];return d()};
3317u[p]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(l.prototype=o(t),r=new l,l.prototype=null,r[p]=t):r=d(),void 0===e?r:i.f(r,e)}},function(t,e,r){"use strict";var n=r(48),o=r(0),i=r(27),c=r(4)("toStringTag"),u=Object,s="Arguments"===i(function(){return arguments}());t.exports=n?i:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=u(t),c))?r:s?i(e):"Object"===(n=i(e))&&o(e.callee)?"Arguments":n}},function(t,e,r){"use strict";var n=r(18),o=r(133),i=r(25).CONSTRUCTOR;t.exports=i||!o(function(t){n.all(t).then(void 0,function(){})})},function(t,e,r){"use strict";var n=r(9),o=r(29);t.exports=function(t,e){var r=t[e];return o(r)?void 0:n(r)}},function(t,e,r){"use strict";var n=r(12),o=r(1),i=r(38),c=t.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(c.versions||(c.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e,r){"use strict";var n=r(1),o=Object.defineProperty;t.exports=function(t,e){try{o(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},function(t,e,r){"use strict";var n=r(1),o=r(8),i=n.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},function(t,e,r){"use strict";var n=r(2),o=r(0),i=r(37),c=n(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return c(t)}),t.exports=i.inspectSource},function(t,e,r){"use strict";var n=r(58),o=r(60),i=n("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,r){"use strict";t.exports={}},function(t,e,r){"use strict";var n=r(94);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},function(t,e,r){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,r){"use strict";var n=r(10),o=r(0),i=r(59),c=r(41),u=r(97),s=c("IE_PROTO"),a=Object,f=a.prototype;t.exports=u?a.getPrototypeOf:function(t){var e=i(t);if(n(e,s))return e[s];var r=e.constructor;return o(r)&&e instanceof r?r.prototype:e instanceof a?f:null}},function(t,e,r){"use strict";var n=r(98),o=r(8),i=r(28),c=r(99);
vendor: 1,915 bytes, line 3317
3317t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return i(r),c(n),o(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0)},function(t,e,r){"use strict";var n=r(107),o=r(9),i=r(26),c=n(n.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?c(t,e):function(){return t.apply(e,arguments)}}},function(t,e,r){"use strict";var n={};n[r(4)("toStringTag")]="z",t.exports="[object z]"===String(n)},function(t,e,r){"use strict";var n=r(34),o=String;t.exports=function(t){if("Symbol"===n(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},function(t,e,r){"use strict";var n=r(14).f,o=r(10),i=r(4)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!o(t,i)&&n(t,i,{configurable:!0,value:e})}},function(t,e,r){"use strict";var n=r(74);t.exports="NODE"===n},function(t,e,r){"use strict";var n=r(7),o=r(6),i=r(85),c=r(19),u=r(20),s=r(53),a=r(10),f=r(61),p=Object.getOwnPropertyDescriptor;e.f=n?p:function(t,e){if(t=u(t),e=s(e),f)try{return p(t,e)}catch(t){}if(a(t,e))return c(!o(i.f,t,e),t[e])}},function(t,e,r){"use strict";var n=r(87),o=r(54);t.exports=function(t){var e=n(t,"string");return o(e)?e:e+""}},function(t,e,r){"use strict";var n=r(11),o=r(0),i=r(30),c=r(55),u=Object;t.exports=c?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return o(e)&&i(e.prototype,u(t))}},function(t,e,r){"use strict";var n=r(56);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,r){"use strict";var n=r(57),o=r(3),i=r(1).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41})},function(t,e,r){"use strict";var n,o,i=r(1),c=r(21),u=i.process,s=i.Deno,a=u&&u.versions||s&&s.version,f=a&&a.v8;f&&(o=(n=f.split("."))[0]>
vendor: 4,395 bytes, line 3317
33170&&n[0]<4?1:+(n[0]+n[1])),!o&&c&&(!(n=c.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=c.match(/Chrome\/(\d+)/))&&(o=+n[1]),t.exports=o},function(t,e,r){"use strict";var n=r(37);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},function(t,e,r){"use strict";var n=r(28),o=Object;t.exports=function(t){return o(n(t))}},function(t,e,r){"use strict";var n=r(2),o=0,i=Math.random(),c=n(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+c(++o+i,36)}},function(t,e,r){"use strict";var n=r(7),o=r(3),i=r(39);t.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,e,r){"use strict";var n=r(7),o=r(3);t.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(0),c=r(10),u=r(7),s=r(64).CONFIGURABLE,a=r(40),f=r(32),p=f.enforce,l=f.get,v=String,h=Object.defineProperty,d=n("".slice),_=n("".replace),y=n([].join),g=u&&!o(function(){return 8!==h(function(){},"length",{value:8}).length}),m=String(String).split("String"),b=t.exports=function(t,e,r){"Symbol("===d(v(e),0,7)&&(e="["+_(v(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!c(t,"name")||s&&t.name!==e)&&(u?h(t,"name",{value:e,configurable:!0}):t.name=e),g&&r&&c(r,"arity")&&t.length!==r.arity&&h(t,"length",{value:r.arity});try{r&&c(r,"constructor")&&r.constructor?u&&h(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=p(t);return c(n,"source")||(n.source=y(m,"string"==typeof e?e:"")),t};Function.prototype.toString=b(function(){return i(this)&&l(this).source||a(this)},"toString")},function(t,e,r){"use strict";var n=r(7),o=r(10),i=Function.prototype,c=n&&Object.getOwnPropertyDescriptor,u=o(i,"name"),s=u&&"something"===function(){}.name,a=u&&(!n||n&&c(i,"name").configurable);t.exports={EXISTS:u,PROPER:s,CONFIGURABLE:a}},function(t,e,r){"use strict";var n=r(10),o=r(90),i=r(52),c=r(14);t.exports=function(t,e,r){for(var u=o(e),s=c.f,a=i.f,f=0;f<u.length;f++){var p=u[f];n(t,p)||r&&n(r,p)||s(t,p,a(e,p))}}},function(t,e,r){"use strict";var n=r(2),o=r(10),i=r(20),c=r(92).indexOf,u=r(42),s=n([].push);t.exports=function(t,e){var r,n=i(t),a=0,f=[];for(r in n)!o(u,r)&&o(n,r)&&s(f,r);for(;e.length>a;)o(n,r=e[a++])&&(~c(f,r)||s(f,r));return f}},function(t,e,r){"use strict";var n=r(95);t.exports=function(t){return n(t.length)}},function(t,e,r){"use strict";var n=r(3),o=r(0),i=/#|\.prototype\./,c=function(t,e){var r=s[u(t)];return r===f||r!==a&&(o(e)?n(e):!!e)},u=c.normalize=function(t){return String(t).replace(i,".").toLowerCase()},s=c.data={},a=c.NATIVE="N",f=c.POLYFILL="P";t.exports=c},function(t,e,r){"use strict";var n=r(11);t.exports=n("document","documentElement")},function(t,e,r){"use strict";var n=r(34),o=r(36),i=r(29),c=r(23),u=r(4)("iterator");t.exports=function(t){if(!i(t))return o(t,u)||o(t,"@@iterator")||c[n(t)]}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(12),c=r(64),u=r(0),s=r(114),a=r(45),f=r(46),p=r(50),l=r(17),v=r(16),h=r(4),d=r(23),_=r(72),y=c.PROPER,g=c.CONFIGURABLE,m=_.IteratorPrototype,b=_.BUGGY_SAFARI_ITERATORS,x=h("iterator"),E=function(){return this};t.exports=function(t,e,r,c,h,_,w){s(r,e,c);var O,j,P,A=function(t){if(t===h&&N)return N;if(!b&&t&&t in T)return T[t];switch(t){case"keys":case"values":case"entries":return function(){return new r(this,t)}}return function(){return new r(this)}},S=e+" Iterator",C=!1,T=t.prototype,R=T[x]||T["@@iterator"]||h&&T[h],N=!b&&R||A(h),L="Array"===e&&T.entries||R;if(L&&(O=a(L.call(new t)))!==Object.prototype&&O.next&&(i||a(O)===m||(f?f(O,m):u(O[x])||v(O,x,E)),p(O,S,!0,!0),i&&(d[S]=E)),y&&"values"===h&&R&&"values"!==R.name&&(!i&&g?l(T,"name","values"):(C=!0,N=function(){return o(R,this)})),h)if(j={values:A("values"),keys:_?N:A("keys"),entries:A("entries")},w)for(P in j)!b&&!C&&P in T||v(T,P,j[P]);else n({target:e,proto:!0,forced:b||C},j);return i&&!w||T[x]===N||v(T,x,N,{name:h}),d[e]=N,j}},function(t,e,r){"use strict";var n,o,i,c=r(3),u=r(0),s=r(8),a=r(33),f=r(45),p=r(16),l=r(4),v=r(12),h=l("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=f(f(i)))!==Object.prototype&&(n=o):d=!0),!s(n)||c(function(){var t={};return n[h].call(t)!==t})?n={}:v&&(n=a(n)),u(n[h])||p(n,h,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},function(t,e,r){"use strict";
vendor: 1,687 bytes, line 3317
3317t.exports=function(t,e){return{value:t,done:e}}},function(t,e,r){"use strict";var n=r(1),o=r(21),i=r(27),c=function(t){return o.slice(0,t.length)===t};t.exports=c("Bun/")?"BUN":c("Cloudflare-Workers")?"CLOUDFLARE":c("Deno/")?"DENO":c("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},function(t,e,r){"use strict";var n=r(13),o=r(122),i=r(29),c=r(4)("species");t.exports=function(t,e){var r,u=n(t).constructor;return void 0===u||i(r=n(u)[c])?e:o(r)}},function(t,e,r){"use strict";var n,o,i,c,u=r(1),s=r(124),a=r(47),f=r(0),p=r(10),l=r(3),v=r(69),h=r(125),d=r(39),_=r(126),y=r(77),g=r(51),m=u.setImmediate,b=u.clearImmediate,x=u.process,E=u.Dispatch,w=u.Function,O=u.MessageChannel,j=u.String,P=0,A={};l(function(){n=u.location});var S=function(t){if(p(A,t)){var e=A[t];delete A[t],e()}},C=function(t){return function(){S(t)}},T=function(t){S(t.data)},R=function(t){u.postMessage(j(t),n.protocol+"//"+n.host)};m&&b||(m=function(t){_(arguments.length,1);var e=f(t)?t:w(t),r=h(arguments,1);return A[++P]=function(){s(e,void 0,r)},o(P),P},b=function(t){delete A[t]},g?o=function(t){x.nextTick(C(t))}:E&&E.now?o=function(t){E.now(C(t))}:O&&!y?(c=(i=new O).port2,i.port1.onmessage=T,o=a(c.postMessage,c)):u.addEventListener&&f(u.postMessage)&&!u.importScripts&&n&&"file:"!==n.protocol&&!l(R)?(o=R,u.addEventListener("message",T,!1)):o="onreadystatechange"in d("script")?function(t){v.appendChild(d("script")).onreadystatechange=function(){v.removeChild(this),S(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:m,clear:b}},function(t,e,r){"use strict";var n=r(21);
3317t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},function(t,e,r){"use strict";var n=function(){this.head=null,this.tail=null};n.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=n},function(t,e,r){"use strict";var n=r(13),o=r(8),i=r(15);t.exports=function(t,e){if(n(t),o(e)&&e.constructor===t)return e;var r=i.f(t);return(0,r.resolve)(e),r.promise}},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__80__},function(t,e,r){"use strict";r(82),r(112),r(115),r(117),r(138),r(139),r(140),r(141),r(142);var n=r(144);t.exports=n.Promise},function(t,e,r){"use strict";r(83)},function(t,e,r){"use strict";var n=r(5),o=r(30),i=r(45),c=r(46),u=r(65),s=r(33),a=r(17),f=r(19),p=r(103),l=r(104),v=r(22),h=r(111),d=r(4)("toStringTag"),_=Error,y=[].push,g=function(t,e){var r,n=o(m,this);c?r=c(new _,n?i(this):m):(r=n?this:s(m),a(r,d,"Error")),void 0!==e&&a(r,"message",h(e)),l(r,g,r.stack,1),arguments.length>2&&p(r,arguments[2]);var u=[];return v(t,y,{that:u}),a(r,"errors",u),r};c?c(g,_):u(g,_,{name:!0});var m=g.prototype=s(_.prototype,{constructor:f(1,g),message:f(1,""),name:f(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:g})},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:n},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(27),c=Object,u=n("".split);t.exports=o(function(){return!c("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?u(t,""):c(t)}:c},function(t,e,r){"use strict";var n=r(6),o=r(8),i=r(54),c=r(36),u=r(88),s=r(4),a=TypeError,f=s("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var r,s=c(t,f);if(s){if(void 0===e&&(e="default"),r=n(s,t,e),!o(r)||i(r))return r;throw new a("Can't convert object to primitive value")}return void 0===e&&(e="number"),u(t,e)}},function(t,e,r){"use strict";var n=r(6),o=r(0),i=r(8),c=TypeError;t.exports=function(t,e){var r,u;if("string"===e&&o(r=t.toString)&&!i(u=n(r,t)))return u;if(o(r=t.valueOf)&&!i(u=n(r,t)))return u;if("string"!==e&&o(r=t.toString)&&!i(u=n(r,t)))return u;throw new c("Can't convert object to primitive value")}},function(t,e,r){"use strict";var n=r(1),o=r(0),i=n.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},function(t,e,r){"use strict";var n=r(11),o=r(2),i=r(91),c=r(96),u=r(13),s=o([].concat);t.exports=n("Reflect","ownKeys")||function(t){var e=i.f(u(t)),r=c.f;return r?s(e,r(t)):e}},function(t,e,r){"use strict";var n=r(66),o=r(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},function(t,e,r){"use strict";var n=r(20),o=r(93),i=r(67),c=function(t){return function(e,r,c){var u=n(e),s=i(u);if(0===s)return!t&&-1;var a,f=o(c,s);if(t&&r!=r){for(;s>f;)if((a=u[f++])!=a)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},function(t,e,r){"use strict";var n=r(43),o=Math.max,i=Math.min;t.exports=function(t,e){var r=n(t);return r<0?o(r+e,0):i(r,e)}},function(t,e,r){"use strict";var n=Math.ceil,o=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?o:n)(e)}},function(t,e,r){"use strict";var n=r(43),o=Math.min;t.exports=function(t){var e=n(t);return e>0?o(e,9007199254740991):0}},function(t,e,r){"use strict";e.f=Object.getOwnPropertySymbols},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})},function(t,e,r){"use strict";var n=r(2),o=r(9);t.exports=function(t,e,r){try{return n(o(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},function(t,e,r){"use strict";var n=r(100),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i("Can't set "+o(t)+" as a prototype")}},function(t,e,r){"use strict";var n=r(8);t.exports=function(t){return n(t)||null===t}},function(t,e,r){"use strict";var n=r(7),o=r(62),i=r(14),c=r(13),u=r(20),s=r(102);e.f=n&&!o?Object.defineProperties:function(t,e){c(t);for(var r,n=u(e),o=s(e),a=o.length,f=0;a>f;)i.f(t,r=o[f++],n[r]);return t}},function(t,e,r){"use strict";var n=r(66),o=r(44);t.exports=Object.keys||function(t){return n(t,o)}},function(t,e,r){"use strict";var n=r(8),o=r(17);t.exports=function(t,e){n(e)&&"cause"in e&&o(t,"cause",e.cause)}},function(t,e,r){"use strict";var n=r(17),o=r(105),i=r(106),c=Error.captureStackTrace;t.exports=function(t,e,r,u){i&&(c?c(t,e):n(t,"stack",o(r,u)))}},function(t,e,r){"use strict";var n=r(2),o=Error,i=n("".replace),c=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,s=u.test(c);t.exports=function(t,e){if(s&&"string"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,u,"");return t}},function(t,e,r){"use strict";var n=r(3),o=r(19);t.exports=!n(function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",o(1,7)),7!==t.stack)})},function(t,e,r){"use strict";var n=r(27),o=r(2);t.exports=function(t){if("Function"===n(t))return o(t)}},function(t,e,r){"use strict";
vendor: 3,407 bytes, line 3317
3317var n=r(4),o=r(23),i=n("iterator"),c=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||c[i]===t)}},function(t,e,r){"use strict";var n=r(6),o=r(9),i=r(13),c=r(31),u=r(70),s=TypeError;t.exports=function(t,e){var r=arguments.length<2?u(t):e;if(o(r))return i(n(r,t));throw new s(c(t)+" is not iterable")}},function(t,e,r){"use strict";var n=r(6),o=r(13),i=r(36);t.exports=function(t,e,r){var c,u;o(t);try{if(!(c=i(t,"return"))){if("throw"===e)throw r;return r}c=n(c,t)}catch(t){u=!0,c=t}if("throw"===e)throw r;if(u)throw c;return o(c),r}},function(t,e,r){"use strict";var n=r(49);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:n(t)}},function(t,e,r){"use strict";var n=r(20),o=r(113),i=r(23),c=r(32),u=r(14).f,s=r(71),a=r(73),f=r(12),p=r(7),l=c.set,v=c.getterFor("Array Iterator");t.exports=s(Array,"Array",function(t,e){l(this,{type:"Array Iterator",target:n(t),index:0,kind:e})},function(){var t=v(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,a(void 0,!0);switch(t.kind){case"keys":return a(r,!1);case"values":return a(e[r],!1)}return a([r,e[r]],!1)},"values");var h=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==h.name)try{u(h,"name",{value:"values"})}catch(t){}},function(t,e,r){"use strict";var n=r(4),o=r(33),i=r(14).f,c=n("unscopables"),u=Array.prototype;void 0===u[c]&&i(u,c,{configurable:!0,value:o(null)}),t.exports=function(t){u[c][t]=!0}},function(t,e,r){"use strict";var n=r(72).IteratorPrototype,o=r(33),i=r(19),c=r(50),u=r(23),s=function(){return this};t.exports=function(t,e,r,a){var f=e+" Iterator";return t.prototype=o(n,{next:i(+!a,r)}),c(t,f,!1,!0),u[f]=s,t}},function(t,e,r){"use strict";var n=r(48),o=r(16),i=r(116);n||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e,r){"use strict";var n=r(48),o=r(34);t.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},function(t,e,r){"use strict";r(118),r(132),r(134),r(135),r(136),r(137)},function(t,e,r){"use strict";var n,o,i,c=r(5),u=r(12),s=r(51),a=r(1),f=r(6),p=r(16),l=r(46),v=r(50),h=r(119),d=r(9),_=r(0),y=r(8),g=r(121),m=r(75),b=r(76).set,x=r(127),E=r(131),w=r(24),O=r(78),j=r(32),P=r(18),A=r(25),S=r(15),C=A.CONSTRUCTOR,T=A.REJECTION_EVENT,R=A.SUBCLASSING,N=j.getterFor("Promise"),L=j.set,k=P&&P.prototype,D=P,M=k,I=a.TypeError,U=a.document,B=a.process,W=S.f,F=W,K=!!(U&&U.createEvent&&a.dispatchEvent),q=function(t){var e;return!(!y(t)||!_(e=t.then))&&e},X=function(t,e){var r,n,o,i=e.value,c=1===e.state,u=c?t.ok:t.fail,s=t.resolve,a=t.reject,p=t.domain;try{u?(c||(2===e.rejection&&z(e),e.rejection=1),!0===u?r=i:(p&&p.enter(),r=u(i),p&&(p.exit(),o=!0)),r===t.promise?a(new I("Promise-chain cycle")):(n=q(r))?f(n,r,s,a):s(r)):a(i)}catch(t){p&&!o&&p.exit(),a(t)}},G=function(t,e){t.notified||(t.notified=!0,x(function(){for(var r,n=t.reactions;r=n.get();)X(r,t);t.notified=!1,e&&!t.rejection&&H(t)}))},Q=function(t,e,r){var n,o;K?((n=U.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),a.dispatchEvent(n)):n={promise:e,reason:r},!T&&(o=a["on"+t])?o(n):"unhandledrejection"===t&&E("Unhandled promise rejection",r)},H=function(t){f(b,a,function(){var e,r=t.facade,n=t.value;if(J(t)&&(e=w(function(){s?B.emit("unhandledRejection",n,r):Q("unhandledrejection",r,n)}),t.rejection=s||J(t)?2:1,e.error))throw e.value})},J=function(t){return 1!==t.rejection&&!t.parent},z=function(t){f(b,a,function(){var e=t.facade;
vendor: 8,720 bytes, line 3317
3317s?B.emit("rejectionHandled",e):Q("rejectionhandled",e,t.value)})},Y=function(t,e,r){return function(n){t(e,n,r)}},$=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,G(t,!0))},V=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new I("Promise can't be resolved itself");var n=q(e);n?x(function(){var r={done:!1};try{f(n,e,Y(V,r,t),Y($,r,t))}catch(e){$(r,e,t)}}):(t.value=e,t.state=1,G(t,!1))}catch(e){$({done:!1},e,t)}}};if(C&&(M=(D=function(t){g(this,M),d(t),f(n,this);var e=N(this);try{t(Y(V,e),Y($,e))}catch(t){$(e,t)}}).prototype,(n=function(t){L(this,{type:"Promise",done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:null})}).prototype=p(M,"then",function(t,e){var r=N(this),n=W(m(this,D));return r.parent=!0,n.ok=!_(t)||t,n.fail=_(e)&&e,n.domain=s?B.domain:void 0,0===r.state?r.reactions.add(n):x(function(){X(n,r)}),n.promise}),o=function(){var t=new n,e=N(t);this.promise=t,this.resolve=Y(V,e),this.reject=Y($,e)},S.f=W=function(t){return t===D||void 0===t?new o(t):F(t)},!u&&_(P)&&k!==Object.prototype)){i=k.then,R||p(k,"then",function(t,e){var r=this;return new D(function(t,e){f(i,r,t,e)}).then(t,e)},{unsafe:!0});try{delete k.constructor}catch(t){}l&&l(k,M)}c({global:!0,constructor:!0,wrap:!0,forced:C},{Promise:D}),v(D,"Promise",!1,!0),h("Promise")},function(t,e,r){"use strict";var n=r(11),o=r(120),i=r(4),c=r(7),u=i("species");t.exports=function(t){var e=n(t);c&&e&&!e[u]&&o(e,u,{configurable:!0,get:function(){return this}})}},function(t,e,r){"use strict";var n=r(63),o=r(14);t.exports=function(t,e,r){return r.get&&n(r.get,e,{getter:!0}),r.set&&n(r.set,e,{setter:!0}),o.f(t,e,r)}},function(t,e,r){"use strict";var n=r(30),o=TypeError;t.exports=function(t,e){if(n(e,t))return t;throw new o("Incorrect invocation")}},function(t,e,r){"use strict";var n=r(123),o=r(31),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a constructor")}},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(0),c=r(34),u=r(11),s=r(40),a=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(a),h=function(t){if(!i(t))return!1;try{return f(a,[],t),!0}catch(t){return!1}},d=function(t){if(!i(t))return!1;switch(c(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,s(t))}catch(t){return!0}};d.sham=!0,t.exports=!f||o(function(){var t;return h(h.call)||!h(Object)||!h(function(){t=!0})||t})?d:h},function(t,e,r){"use strict";var n=r(26),o=Function.prototype,i=o.apply,c=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?c.bind(i):function(){return c.apply(i,arguments)})},function(t,e,r){"use strict";var n=r(2);t.exports=n([].slice)},function(t,e,r){"use strict";var n=TypeError;t.exports=function(t,e){if(t<e)throw new n("Not enough arguments");return t}},function(t,e,r){"use strict";var n,o,i,c,u,s=r(1),a=r(128),f=r(47),p=r(76).set,l=r(78),v=r(77),h=r(129),d=r(130),_=r(51),y=s.MutationObserver||s.WebKitMutationObserver,g=s.document,m=s.process,b=s.Promise,x=a("queueMicrotask");if(!x){var E=new l,w=function(){var t,e;for(_&&(t=m.domain)&&t.exit();e=E.get();)try{e()}catch(t){throw E.head&&n(),t}t&&t.enter()};v||_||d||!y||!g?!h&&b&&b.resolve?((c=b.resolve(void 0)).constructor=b,u=f(c.then,c),n=function(){u(w)}):_?n=function(){m.nextTick(w)}:(p=f(p,s),n=function(){p(w)}):(o=!0,i=g.createTextNode(""),new y(w).observe(i,{characterData:!0}),n=function(){i.data=o=!o}),x=function(t){E.head||n(),E.add(t)}}t.exports=x},function(t,e,r){"use strict";var n=r(1),o=r(7),i=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!o)return n[t];var e=i(n,t);return e&&e.value}},function(t,e,r){"use strict";var n=r(21);t.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble},function(t,e,r){"use strict";var n=r(21);t.exports=/web0s(?!.*chrome)/i.test(n)},function(t,e,r){"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{all:function(t){var e=this,r=c.f(e),n=r.resolve,a=r.reject,f=u(function(){var r=i(e.resolve),c=[],u=0,f=1;s(t,function(t){var i=u++,s=!1;f++,o(r,e,t).then(function(t){s||(s=!0,c[i]=t,--f||n(c))},a)}),--f||n(c)});return f.error&&a(f.value),r.promise}})},function(t,e,r){"use strict";var n=r(4)("iterator"),o=!1;try{var i=0,c={next:function(){return{done:!!i++}},return:function(){o=!0}};c[n]=function(){return this},Array.from(c,function(){throw 2})}catch(t){}t.exports=function(t,e){try{if(!e&&!o)return!1}catch(t){return!1}var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch(t){}return r}},function(t,e,r){"use strict";var n=r(5),o=r(12),i=r(25).CONSTRUCTOR,c=r(18),u=r(11),s=r(0),a=r(16),f=c&&c.prototype;if(n({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&s(c)){var p=u("Promise").prototype.catch;f.catch!==p&&a(f,"catch",p,{unsafe:!0})}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{race:function(t){var e=this,r=c.f(e),n=r.reject,a=u(function(){var c=i(e.resolve);s(t,function(t){o(c,e,t).then(r.resolve,n)})});return a.error&&n(a.value),r.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(15);n({target:"Promise",stat:!0,forced:r(25).CONSTRUCTOR},{reject:function(t){var e=o.f(this);return(0,e.reject)(t),e.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(11),i=r(12),c=r(18),u=r(25).CONSTRUCTOR,s=r(79),a=o("Promise"),f=i&&!u;n({target:"Promise",stat:!0,forced:i||u},{resolve:function(t){return s(f&&this===a?c:this,t)}})},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{allSettled:function(t){var e=this,r=c.f(e),n=r.resolve,a=r.reject,f=u(function(){var r=i(e.resolve),c=[],u=0,a=1;s(t,function(t){var i=u++,s=!1;a++,o(r,e,t).then(function(t){s||(s=!0,c[i]={status:"fulfilled",value:t},--a||n(c))},function(t){s||(s=!0,c[i]={status:"rejected",reason:t},--a||n(c))})}),--a||n(c)});return f.error&&a(f.value),r.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(11),u=r(15),s=r(24),a=r(22),f=r(35);n({target:"Promise",stat:!0,forced:f},{any:function(t){var e=this,r=c("AggregateError"),n=u.f(e),f=n.resolve,p=n.reject,l=s(function(){var n=i(e.resolve),c=[],u=0,s=1,l=!1;a(t,function(t){var i=u++,a=!1;s++,o(n,e,t).then(function(t){a||l||(l=!0,f(t))},function(t){a||l||(a=!0,c[i]=t,--s||p(new r(c,"No one promise resolved")))})}),--s||p(new r(c,"No one promise resolved"))});return l.error&&p(l.value),n.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(15);n({target:"Promise",stat:!0},{withResolvers:function(){var t=o.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}})},function(t,e,r){"use strict";var n=r(5),o=r(12),i=r(18),c=r(3),u=r(11),s=r(0),a=r(75),f=r(79),p=r(16),l=i&&i.prototype;if(n({target:"Promise",proto:!0,real:!0,forced:!!i&&c(function(){l.finally.call({then:function(){}},function(){})})},{finally:function(t){var e=a(this,u("Promise")),r=s(t);return this.then(r?function(r){return f(e,t()).then(function(){return r})}:t,r?function(r){return f(e,t()).then(function(){throw r})}:t)}}),!o&&s(i)){var v=u("Promise").prototype.finally;l.finally!==v&&p(l,"finally",v,{unsafe:!0})}},function(t,e,r){"use strict";var n=r(143).charAt,o=r(49),i=r(32),c=r(71),u=r(73),s=i.set,a=i.getterFor("String Iterator");c(String,"String",function(t){s(this,{type:"String Iterator",string:o(t),index:0})},function(){var t,e=a(this),r=e.string,o=e.index;return o>=r.length?u(void 0,!0):(t=n(r,o),e.index+=t.length,u(t,!1))})},function(t,e,r){"use strict";var n=r(2),o=r(43),i=r(49),c=r(28),u=n("".charAt),s=n("".charCodeAt),a=n("".slice),f=function(t){return function(e,r){var n,f,p=i(c(e)),l=o(r),v=p.length;return l<0||l>=v?t?"":void 0:(n=s(p,l))<55296||n>56319||l+1===v||(f=s(p,l+1))<56320||f>57343?t?u(p,l):n:t?a(p,l,l+2):f-56320+(n-55296<<10)+65536}};t.exports={codeAt:f(!1),charAt:f(!0)}},function(t,e,r){"use strict";var n=r(1);t.exports=n},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__(80),__webpack_require__(146),__webpack_require__(147),__webpack_require__(148),__webpack_require__(149),__webpack_require__(150),__webpack_require__(151),__webpack_require__(152)],__WEBPACK_AMD_DEFINE_RESULT__=function(declare,_WidgetBase,domStyle,domAttr,domConstruct,lang,html,LinkPane){"use strict";return declare("HTMLSnippet.widget.HTMLSnippet",[_WidgetBase],{contenttype:"html",contents:"",contentsPath:"",oncl
3317ickmf:"",documentation:"",refreshOnContextChange:!1,refreshOnContextUpdate:!1,encloseHTMLWithDiv:!0,_objectChangeHandler:null,contextObj:null,postCreate:function(){console.debug(this.id+".postCreate"),this._setupEvents(),this.refreshOnContextChange||this.executeCode()},executeCode:function(){console.debug(this.id+".executeCode");var t=""!==this.contentsPath;switch(this.contenttype){case"html":if(t)new LinkPane({preload:!0,loadingMessage:"",href:this.contentsPath,onDownloadError:function(){console.log("Error loading html path")}}).placeAt(this.domNode.id).startup();else if(this.encloseHTMLWithDiv){domStyle.set(this.domNode,{height:"auto",width:"100%",outline:0}),domAttr.set(this.domNode,"style",this.style);var e=domConstruct.create("div",{innerHTML:this.contents});domConstruct.place(e,this.domNode,"only")}else html.set(this.domNode,this.contents);break;case"js":case"jsjQuery":if(t){var r=document.createElement("script"),n=+new Date;r.type="text/javascript",r.src=this.contentsPath+"?v="+n.toString(),domConstruct.place(r,this.domNode,"only")}else"jsjQuery"===this.contenttype?this._evalJQueryCode():this.evalJs()}},update:function(t,e){console.debug(this.id+".update"),this.contextObj=t,this.refreshOnContextChange&&(this.executeCode(),this.refreshOnContextUpdate&&(null!==this._objectChangeHandler&&this.unsubscribe(this._objectChangeHandler),t&&(this._objectChangeHandler=this.subscribe({guid:t.getGuid(),callback:lang.hitch(this,function(){this.executeCode()})})))),this._executeCallback(e,"update")},_setupEvents:function(){console.debug(this.id+"._setupEvents"),this.onclickmf&&this.connect(this.domNode,"click",this._executeMicroflow)},_executeMicroflow:function(){if(console.debug(this.id+"._executeMicroflow"),this.onclickmf){var t={actionname:this.onclickmf};null!==this.contextObj&&(t.applyto="selection",t.guids=[this.contextObj.getGuid()]),mx.data.action({params:t,callback:function(t){console.debug(this.id+" (executed microflow successfully).")},error:function(t){console.error(this.id+t)}})}},evalJs:function(){console.debug(this.id+".evalJS");try{eval(this.contents+"\r\n//# sourceURL="+this.id+".js")}catch(t){this._handleError(t)}},_evalJQueryCode:function(){console.debug(this.id+"._evalJQueryCode"),__webpack_require__.e(2).then(function(){var __WEBPACK_AMD_REQUIRE_ARRAY__=[__webpack_require__(153)];lang.hitch(this,function(jQuery){try{(function(snippetCode){var jqueryIdRegex1=/window.\jQuery/g,jqueryIdRegex2=/window.\$/g;snippetCode=snippetCode.replace(jqueryIdRegex1,"jQuery"),snippetCode=snippetCode.replace(jqueryIdRegex2,"$"),snippetCode="var jQuery, $; jQuery = $ = this.jquery;"+snippetCode+"console.debug('your code snippet is evaluated and executed against JQuery version:'+ this.jquery.fn.jquery);",eval(snippetCode)}).call({jquery:jQuery,widget:this},this.contents)}catch(t){this._handleError(t)}}).apply(null,__WEBPACK_AMD_REQUIRE_ARRAY__)}.bind(this)).catch(__webpack_require__.oe)},_handleError:function(t){console.debug(this.id+"._handleError"),domConstruct.place('<div class="alert alert-danger">Error while evaluating javascript input: '+t+"</div>",this.domNode,"only")},_executeCallback:function(t,e){console.debug(this.id+"._executeCallback"+(e?" from "+e:"")),t&&"function"==typeof t&&t()}})}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__146__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__147__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__148__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__149__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__150__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__151__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__152__},,function(t,e,r){r(81),t.exports=r(145)}])});
3318},
3319'dijit/layout/LinkPane':function(){
3320define([
3321	"./ContentPane",
3322	"../_TemplatedMixin",
3323	"dojo/_base/declare" // declare
3324], function(ContentPane, _TemplatedMixin, declare){
3325
3326	// module:
3327	//		dijit/layout/LinkPane
3328
3329
3330	return declare("dijit.layout.LinkPane", [ContentPane, _TemplatedMixin], {
3331		// summary:
3332		//		A ContentPane with an href where (when declared in markup)
3333		//		the title is specified as innerHTML rather than as a title attribute.
3334		// description:
3335		//		LinkPane is just a ContentPane that is declared in markup similarly
3336		//		to an anchor.  The anchor's body (the words between `<a>` and `</a>`)
3337		//		become the title of the widget (used for TabContainer, AccordionContainer, etc.)
3338		// example:
3339		//	| <a href="foo.html">my title</a>
3340
3341		// I'm using a template because the user may specify the input as
3342		// <a href="foo.html">title</a>, in which case we need to get rid of the
3343		// <a> because we don't want a link.
3344		templateString: '<div class="dijitLinkPane" data-dojo-attach-point="containerNode"></div>',
3345
3346		postMixInProperties: function(){
3347			// If user has specified node contents, they become the title
3348			// (the link must be plain text)
3349			if(this.srcNodeRef){
3350				this.title += this.srcNodeRef.innerHTML;
3351			}
3352			this.inherited(arguments);
3353		},
3354
3355		_fillContent: function(){
3356			// Overrides _Templated._fillContent().
3357
3358			// _Templated._fillContent() relocates srcNodeRef innerHTML to templated container node,
3359			// but in our case the srcNodeRef innerHTML is the title, so shouldn't be
3360			// copied
3361		}
3362	});
3363});
3364
3365},
3366'dijit/layout/ContentPane':function(){
3367define([
3368	"dojo/_base/kernel", // kernel.deprecated
3369	"dojo/_base/lang", // lang.mixin lang.delegate lang.hitch lang.isFunction lang.isObject
3370	"../_Widget",
3371	"../_Container",
3372	"./_ContentPaneResizeMixin",
3373	"dojo/string", // string.substitute
3374	"dojo/html", // html._ContentSetter
3375	"dojo/_base/array", // array.forEach
3376	"dojo/_base/declare", // declare
3377	"dojo/_base/Deferred", // Deferred
3378	"dojo/dom", // dom.byId
3379	"dojo/dom-attr", // domAttr.attr
3380	"dojo/dom-construct", // empty()
3381	"dojo/_base/xhr", // xhr.get
3382	"dojo/i18n", // i18n.getLocalization
3383	"dojo/when",
3384	"dojo/i18n!../nls/loading"
3385], function(kernel, lang, _Widget, _Container, _ContentPaneResizeMixin, string, html, array, declare,
3386			Deferred, dom, domAttr, domConstruct, xhr, i18n, when){
3387
3388	// module:
3389	//		dijit/layout/ContentPane
3390
3391	return declare("dijit.layout.ContentPane", [_Widget, _Container, _ContentPaneResizeMixin], {
3392		// summary:
3393		//		A widget containing an HTML fragment, specified inline
3394		//		or by uri.  Fragment may include widgets.
3395		//
3396		// description:
3397		//		This widget embeds a document fragment in the page, specified
3398		//		either by uri, javascript generated markup or DOM reference.
3399		//		Any widgets within this content are instantiated and managed,
3400		//		but laid out according to the HTML structure.  Unlike IFRAME,
3401		//		ContentPane embeds a document fragment as would be found
3402		//		inside the BODY tag of a full HTML document.  It should not
3403		//		contain the HTML, HEAD, or BODY tags.
3404		//		For more advanced functionality with scripts and
3405		//		stylesheets, see dojox/layout/ContentPane.  This widget may be
3406		//		used stand alone or as a base class for other widgets.
3407		//		ContentPane is useful as a child of other layout containers
3408		//		such as BorderContainer or TabContainer, but note that those
3409		//		widgets can contain any widget as a child.
3410		//
3411		// example:
3412		//		Some quick samples:
3413		//		To change the innerHTML:
3414		// |		cp.set('content', '<b>new content</b>')`
3415		//		Or you can send it a NodeList:
3416		// |		cp.set('content', dojo.query('div [class=selected]', userSelection))
3417		//		To do an ajax update:
3418		// |		cp.set('href', url)
3419
3420		// href: String
3421		//		The href of the content that displays now.
3422		//		Set this at construction if you want to load data externally when the
3423		//		pane is shown.  (Set preload=true to load it immediately.)
3424		//		Changing href after creation doesn't have any effect; Use set('href', ...);
3425		href: "",
3426
3427		// content: String|DomNode|NodeList|dijit/_Widget
3428		//		The innerHTML of the ContentPane.
3429		//		Note that the initialization parameter / argument to set("content", ...)
3430		//		can be a String, DomNode, Nodelist, or _Widget.
3431		content: "",
3432
3433		// extractContent: Boolean
3434		//		Extract visible content from inside of `<body> .... </body>`.
3435		//		I.e., strip `<html>` and `<head>` (and it's contents) from the href
3436		extractContent: false,
3437
3438		// parseOnLoad: Boolean
3439		//		Parse content and create the widgets, if any.
3440		parseOnLoad: true,
3441
3442		// parserScope: String
3443		//		Flag passed to parser.  Root for attribute names to search for.   If scopeName is dojo,
3444		//		will search for data-dojo-type (or dojoType).  For backwards compatibility
3445		//		reasons defaults to dojo._scopeName (which is "dojo" except when
3446		//		multi-version support is used, when it will be something like dojo16, dojo20, etc.)
3447		parserScope: kernel._scopeName,
3448
3449		// preventCache: Boolean
3450		//		Prevent caching of data from href's by appending a timestamp to the href.
3451		preventCache: false,
3452
3453		// preload: Boolean
3454		//		Force load of data on initialization even if pane is hidden.
3455		preload: false,
3456
3457		// refreshOnShow: Boolean
3458		//		Refresh (re-download) content when pane goes from hidden to shown
3459		refreshOnShow: false,
3460
3461		// loadingMessage: String
3462		//		Message that shows while downloading
3463		loadingMessage: "<span class='dijitContentPaneLoading'><span class='dijitInline dijitIconLoading'></span>${loadingState}</span>",
3464
3465		// errorMessage: String
3466		//		Message that shows if an error occurs
3467		errorMessage: "<span class='dijitContentPaneError'><span class='dijitInline dijitIconError'></span>${errorState}</span>",
3468
3469		// isLoaded: [readonly] Boolean
3470		//		True if the ContentPane has data in it, either specified
3471		//		during initialization (via href or inline content), or set
3472		//		via set('content', ...) / set('href', ...)
3473		//
3474		//		False if it doesn't have any content, or if ContentPane is
3475		//		still in the process of downloading href.
3476		isLoaded: false,
3477
3478		baseClass: "dijitContentPane",
3479
3480		/*======
3481		 // ioMethod: dojo/_base/xhr.get|dojo._base/xhr.post
3482		 //		Function that should grab the content specified via href.
3483		 ioMethod: dojo.xhrGet,
3484		 ======*/
3485
3486		// ioArgs: Object
3487		//		Parameters to pass to xhrGet() request, for example:
3488		// |	<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="href: './bar', ioArgs: {timeout: 500}">
3489		ioArgs: {},
3490
3491		// onLoadDeferred: [readonly] dojo.Deferred
3492		//		This is the `dojo.Deferred` returned by set('href', ...) and refresh().
3493		//		Calling onLoadDeferred.then() registers your
3494		//		callback to be called only once, when the prior set('href', ...) call or
3495		//		the initial href parameter to the constructor finishes loading.
3496		//
3497		//		This is different than an onLoad() handler which gets called any time any href
3498		//		or content is loaded.
3499		onLoadDeferred: null,
3500
3501		// Cancel _WidgetBase's _setTitleAttr because we don't want the title attribute (used to specify
3502		// tab labels) to be copied to ContentPane.domNode... otherwise a tooltip shows up over the
3503		// entire pane.
3504		_setTitleAttr: null,
3505
3506		// Flag to parser that I'll parse my contents, so it shouldn't.
3507		stopParser: true,
3508
3509		// template: [private] Boolean
3510		//		Flag from the parser that this ContentPane is inside a template
3511		//		so the contents are pre-parsed.
3512		// TODO: this declaration can be commented out in 2.0
3513		template: false,
3514
3515		markupFactory: function(params, node, ctor){
3516			var self = new ctor(params, node);
3517
3518			// If a parse has started but is waiting for modules to load, then return a Promise for when the parser
3519			// finishes.  Don't return a promise though for the case when content hasn't started loading because the
3520			// ContentPane is hidden and it has an href (ex: hidden pane of a TabContainer).   In that case we consider
3521			// that initialization has already finished.
3522			return !self.href && self._contentSetter && self._contentSetter.parseDeferred && !self._contentSetter.parseDeferred.isFulfilled() ?
3523				self._contentSetter.parseDeferred.then(function(){
3524					return self;
3525				}) : self;
3526		},
3527
3528		create: function(params, srcNodeRef){
3529			// Convert a srcNodeRef argument into a content parameter, so that the original contents are
3530			// processed in the same way as contents set via set("content", ...), calling the parser etc.
3531			// Avoid modifying original params object since that breaks NodeList instantiation, see #11906.
3532			if((!params || !params.template) && srcNodeRef && !("href" in params) && !("content" in params)){
3533				srcNodeRef = dom.byId(srcNodeRef);
3534				var df = srcNodeRef.ownerDocument.createDocumentFragment();
3535				while(srcNodeRef.firstChild){
3536					df.appendChild(srcNodeRef.firstChild);
3537				}
3538				params = lang.delegate(params, {content: df});
3539			}
3540			this.inherited(arguments, [params, srcNodeRef]);
3541		},
3542
3543		postMixInProperties: function(){
3544			this.inherited(arguments);
3545			var messages = i18n.getLocalization("dijit", "loading", this.lang);
3546			this.loadingMessage = string.substitute(this.loadingMessage, messages);
3547			this.errorMessage = string.substitute(this.errorMessage, messages);
3548		},
3549
3550		buildRendering: function(){
3551			this.inherited(arguments);
3552
3553			// Since we have no template we need to set this.containerNode ourselves, to make getChildren() work.
3554			// For subclasses of ContentPane that do have a template, does nothing.
3555			if(!this.containerNode){
3556				this.containerNode = this.domNode;
3557			}
3558
3559			// remove the title attribute so it doesn't show up when hovering
3560			// over a node  (TODO: remove in 2.0, no longer needed after #11490)
3561			this.domNode.removeAttribute("title");
3562		},
3563
3564		startup: function(){
3565			// summary:
3566			//		Call startup() on all children including non _Widget ones like dojo/dnd/Source objects
3567
3568			// This starts all the widgets
3569			this.inherited(arguments);
3570
3571			// And this catches stuff like dojo/dnd/Source
3572			if(this._contentSetter){
3573				array.forEach(this._contentSetter.parseResults, function(obj){
3574					if(!obj._started && !obj._destroyed && lang.isFunction(obj.startup)){
3575						obj.startup();
3576						obj._started = true;
3577					}
3578				}, this);
3579			}
3580		},
3581
3582		_startChildren: function(){
3583			// summary:
3584			//		Called when content is loaded.   Calls startup on each child widget.   Similar to ContentPane.startup()
3585			//		itself, but avoids marking the ContentPane itself as "restarted" (see #15581).
3586
3587			// This starts all the widgets
3588			array.forEach(this.getChildren(), function(obj){
3589				if(!obj._started && !obj._destroyed && lang.isFunction(obj.startup)){
3590					obj.startup();
3591					obj._started = true;
3592				}
3593			});
3594
3595			// And this catches stuff like dojo/dnd/Source
3596			if(this._contentSetter){
3597				array.forEach(this._contentSetter.parseResults, function(obj){
3598					if(!obj._started && !obj._destroyed && lang.isFunction(obj.startup)){
3599						obj.startup();
3600						obj._started = true;
3601					}
3602				}, this);
3603			}
3604		},
3605
3606		setHref: function(/*String|Uri*/ href){
3607			// summary:
3608			//		Deprecated.   Use set('href', ...) instead.
3609			kernel.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.", "", "2.0");
3610			return this.set("href", href);
3611		},
3612		_setHrefAttr: function(/*String|Uri*/ href){
3613			// summary:
3614			//		Hook so set("href", ...) works.
3615			// description:
3616			//		Reset the (external defined) content of this pane and replace with new url
3617			//		Note: It delays the download until widget is shown if preload is false.
3618			// href:
3619			//		url to the page you want to get, must be within the same domain as your mainpage
3620
3621			// Cancel any in-flight requests (a set('href', ...) will cancel any in-flight set('href', ...))
3622			this.cancel();
3623
3624			this.onLoadDeferred = new Deferred(lang.hitch(this, "cancel"));
3625			this.onLoadDeferred.then(lang.hitch(this, "onLoad"));
3626
3627			this._set("href", href);
3628
3629			// _setHrefAttr() is called during creation and by the user, after creation.
3630			// Assuming preload == false, only in the second case do we actually load the URL;
3631			// otherwise it's done in startup(), and only if this widget is shown.
3632			if(this.preload || (this._created && this._isShown())){
3633				this._load();
3634			}else{
3635				// Set flag to indicate that href needs to be loaded the next time the
3636				// ContentPane is made visible
3637				this._hrefChanged = true;
3638			}
3639
3640			return this.onLoadDeferred;		// Deferred
3641		},
3642
3643		setContent: function(/*String|DomNode|Nodelist*/data){
3644			// summary:
3645			//		Deprecated.   Use set('content', ...) instead.
3646			kernel.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use set('content', ...) instead.", "", "2.0");
3647			this.set("content", data);
3648		},
3649		_setContentAttr: function(/*String|DomNode|Nodelist*/data){
3650			// summary:
3651			//		Hook to make set("content", ...) work.
3652			//		Replaces old content with data content, include style classes from old content
3653			// data:
3654			//		the new Content may be String, DomNode or NodeList
3655			//
3656			//		if data is a NodeList (or an array of nodes) nodes are copied
3657			//		so you can import nodes from another document implicitly
3658
3659			// clear href so we can't run refresh and clear content
3660			// refresh should only work if we downloaded the content
3661			this._set("href", "");
3662
3663			// Cancel any in-flight requests (a set('content', ...) will cancel any in-flight set('href', ...))
3664			this.cancel();
3665
3666			// Even though user is just setting content directly, still need to define an onLoadDeferred
3667			// because the _onLoadHandler() handler is still getting called from setContent()
3668			this.onLoadDeferred = new Deferred(lang.hitch(this, "cancel"));
3669			if(this._created){
3670				// For back-compat reasons, call onLoad() for set('content', ...)
3671				// calls but not for content specified in srcNodeRef (ie: <div data-dojo-type=ContentPane>...</div>)
3672				// or as initialization parameter (ie: new ContentPane({content: ...})
3673				this.onLoadDeferred.then(lang.hitch(this, "onLoad"));
3674			}
3675
3676			this._setContent(data || "");
3677
3678			this._isDownloaded = false; // mark that content is from a set('content') not a set('href')
3679
3680			return this.onLoadDeferred;	// Deferred
3681		},
3682		_getContentAttr: function(){
3683			// summary:
3684			//		Hook to make get("content") work
3685			return this.containerNode.innerHTML;
3686		},
3687
3688		cancel: function(){
3689			// summary:
3690			//		Cancels an in-flight download of content
3691			if(this._xhrDfd && (this._xhrDfd.fired == -1)){
3692				this._xhrDfd.cancel();
3693			}
3694			delete this._xhrDfd; // garbage collect
3695
3696			this.onLoadDeferred = null;
3697		},
3698
3699		destroy: function(){
3700			this.cancel();
3701			this.inherited(arguments);
3702		},
3703
3704		destroyRecursive: function(/*Boolean*/ preserveDom){
3705			// summary:
3706			//		Destroy the ContentPane and its contents
3707
3708			// if we have multiple controllers destroying us, bail after the first
3709			if(this._beingDestroyed){
3710				return;
3711			}
3712			this.inherited(arguments);
3713		},
3714
3715		_onShow: function(){
3716			// summary:
3717			//		Called when the ContentPane is made visible
3718			// description:
3719			//		For a plain ContentPane, this is called on initialization, from startup().
3720			//		If the ContentPane is a hidden pane of a TabContainer etc., then it's
3721			//		called whenever the pane is made visible.
3722			//
3723			//		Does necessary processing, including href download and layout/resize of
3724			//		child widget(s)
3725
3726			this.inherited(arguments);
3727
3728			if(this.href){
3729				if(!this._xhrDfd && // if there's an href that isn't already being loaded
3730					(!this.isLoaded || this._hrefChanged || this.refreshOnShow)
3731					){
3732					return this.refresh();	// If child has an href, promise that fires when the load is complete
3733				}
3734			}
3735		},
3736
3737		refresh: function(){
3738			// summary:
3739			//		[Re]download contents of href and display
3740			// description:
3741			//		1. cancels any currently in-flight requests
3742			//		2. posts "loading..." message
3743			//		3. sends XHR to download new data
3744
3745			// Cancel possible prior in-flight request
3746			this.cancel();
3747
3748			this.onLoadDeferred = new Deferred(lang.hitch(this, "cancel"));
3749			this.onLoadDeferred.then(lang.hitch(this, "onLoad"));
3750			this._load();
3751			return this.onLoadDeferred;		// If child has an href, promise that fires when refresh is complete
3752		},
3753
3754		_load: function(){
3755			// summary:
3756			//		Load/reload the href specified in this.href
3757
3758			// display loading message
3759			this._setContent(this.onDownloadStart(), true);
3760
3761			var self = this;
3762			var getArgs = {
3763				preventCache: (this.preventCache || this.refreshOnShow),
3764				url: this.href,
3765				handleAs: "text"
3766			};
3767			if(lang.isObject(this.ioArgs)){
3768				lang.mixin(getArgs, this.ioArgs);
3769			}
3770
3771			var hand = (this._xhrDfd = (this.ioMethod || xhr.get)(getArgs)),
3772				returnedHtml;
3773
3774			hand.then(
3775				function(html){
3776					returnedHtml = html;
3777					try{
3778						self._isDownloaded = true;
3779						return self._setContent(html, false);
3780					}catch(err){
3781						self._onError('Content', err); // onContentError
3782					}
3783				},
3784				function(err){
3785					if(!hand.canceled){
3786						// show error message in the pane
3787						self._onError('Download', err); // onDownloadError
3788					}
3789					delete self._xhrDfd;
3790					return err;
3791				}
3792			).then(function(){
3793					self.onDownloadEnd();
3794					delete self._xhrDfd;
3795					return returnedHtml;
3796				});
3797
3798			// Remove flag saying that a load is needed
3799			delete this._hrefChanged;
3800		},
3801
3802		_onLoadHandler: function(data){
3803			// summary:
3804			//		This is called whenever new content is being loaded
3805			this._set("isLoaded", true);
3806			try{
3807				this.onLoadDeferred.resolve(data);
3808			}catch(e){
3809				console.error('Error ' + (this.widgetId || this.id) + ' running custom onLoad code: ' + e.message);
3810			}
3811		},
3812
3813		_onUnloadHandler: function(){
3814			// summary:
3815			//		This is called whenever the content is being unloaded
3816			this._set("isLoaded", false);
3817			try{
3818				this.onUnload();
3819			}catch(e){
3820				console.error('Error ' + this.widgetId + ' running custom onUnload code: ' + e.message);
3821			}
3822		},
3823
3824		destroyDescendants: function(/*Boolean*/ preserveDom){
3825			// summary:
3826			//		Destroy all the widgets inside the ContentPane and empty containerNode
3827
3828			// Make sure we call onUnload (but only when the ContentPane has real content)
3829			if(this.isLoaded){
3830				this._onUnloadHandler();
3831			}
3832
3833			// Even if this.isLoaded == false there might still be a "Loading..." message
3834			// to erase, so continue...
3835
3836			// For historical reasons we need to delete all widgets under this.containerNode,
3837			// even ones that the user has created manually.
3838			var setter = this._contentSetter;
3839			array.forEach(this.getChildren(), function(widget){
3840				if(widget.destroyRecursive){
3841					// All widgets will hit this branch
3842					widget.destroyRecursive(preserveDom);
3843				}else if(widget.destroy){
3844					// Things like dojo/dnd/Source have destroy(), not destroyRecursive()
3845					widget.destroy(preserveDom);
3846				}
3847				widget._destroyed = true;
3848			});
3849			if(setter){
3850				// Most of the widgets in setter.parseResults have already been destroyed, but
3851				// things like Menu that have been moved to <body> haven't yet
3852				array.forEach(setter.parseResults, function(widget){
3853					if(!widget._destroyed){
3854						if(widget.destroyRecursive){
3855							// All widgets will hit this branch
3856							widget.destroyRecursive(preserveDom);
3857						}else if(widget.destroy){
3858							// Things like dojo/dnd/Source have destroy(), not destroyRecursive()
3859							widget.destroy(preserveDom);
3860						}
3861						widget._destroyed = true;
3862					}
3863				});
3864				delete setter.parseResults;
3865			}
3866
3867			// And then clear away all the DOM nodes
3868			if(!preserveDom){
3869				domConstruct.empty(this.containerNode);
3870			}
3871
3872			// Delete any state information we have about current contents
3873			delete this._singleChild;
3874		},
3875
3876		_setContent: function(/*String|DocumentFragment*/ cont, /*Boolean*/ isFakeContent){
3877			// summary:
3878			//		Insert the content into the container node
3879			// returns:
3880			//		Returns a Deferred promise that is resolved when the content is parsed.
3881
3882			cont = this.preprocessContent(cont);
3883			// first get rid of child widgets
3884			this.destroyDescendants();
3885
3886			// html.set will take care of the rest of the details
3887			// we provide an override for the error handling to ensure the widget gets the errors
3888			// configure the setter instance with only the relevant widget instance properties
3889			// NOTE: unless we hook into attr, or provide property setters for each property,
3890			// we need to re-configure the ContentSetter with each use
3891			var setter = this._contentSetter;
3892			if(!(setter && setter instanceof html._ContentSetter)){
3893				setter = this._contentSetter = new html._ContentSetter({
3894					node: this.containerNode,
3895					_onError: lang.hitch(this, this._onError),
3896					onContentError: lang.hitch(this, function(e){
3897						// fires if a domfault occurs when we are appending this.errorMessage
3898						// like for instance if domNode is a UL and we try append a DIV
3899						var errMess = this.onContentError(e);
3900						try{
3901							this.containerNode.innerHTML = errMess;
3902						}catch(e){
3903							console.error('Fatal ' + this.id + ' could not change content due to ' + e.message, e);
3904						}
3905					})/*,
3906					 _onError */
3907				});
3908			}
3909
3910			var setterParams = lang.mixin({
3911				cleanContent: this.cleanContent,
3912				extractContent: this.extractContent,
3913				parseContent: !cont.domNode && this.parseOnLoad,
3914				parserScope: this.parserScope,
3915				startup: false,
3916				dir: this.dir,
3917				lang: this.lang,
3918				textDir: this.textDir
3919			}, this._contentSetterParams || {});
3920
3921			var p = setter.set((lang.isObject(cont) && cont.domNode) ? cont.domNode : cont, setterParams);
3922
3923			// dojox/layout/html/_base::_ContentSetter.set() returns a Promise that indicates when everything is completed.
3924			// dojo/html::_ContentSetter.set() currently returns the DOMNode, but that will be changed for 2.0.
3925			// So, if set() returns a promise then use it, otherwise fallback to waiting on setter.parseDeferred
3926			var self = this;
3927			return when(p && p.then ? p : setter.parseDeferred, function(){
3928				// setter params must be pulled afresh from the ContentPane each time
3929				delete self._contentSetterParams;
3930
3931				if(!isFakeContent){
3932					if(self._started){
3933						// Startup each top level child widget (and they will start their children, recursively)
3934						self._startChildren();
3935
3936						// Call resize() on each of my child layout widgets,
3937						// or resize() on my single child layout widget...
3938						// either now (if I'm currently visible) or when I become visible
3939						self._scheduleLayout();
3940					}
3941					self._onLoadHandler(cont);
3942				}
3943			});
3944		},
3945
3946		preprocessContent: function(/*String|DocumentFragment*/ content){
3947			// summary:
3948			//		Hook, called after content has loaded, before being processed.
3949			// description:
3950			//		A subclass should preprocess the content and return the preprocessed content.
3951			//		See https://bugs.dojotoolkit.org/ticket/9622
3952			// returns:
3953			//		Returns preprocessed content, either a String or DocumentFragment
3954			return content;
3955		},
3956
3957		_onError: function(type, err, consoleText){
3958			this.onLoadDeferred.reject(err);
3959
3960			// shows user the string that is returned by on[type]Error
3961			// override on[type]Error and return your own string to customize
3962			var errText = this['on' + type + 'Error'].call(this, err);
3963			if(consoleText){
3964				console.error(consoleText, err);
3965			}
3965else if(errText){// a empty string won't change current content
3966				this._setContent(errText, true);
3967			}
3968		},
3969
3970		// EVENT's, should be overide-able
3971		onLoad: function(/*===== data =====*/){
3972			// summary:
3973			//		Event hook, is called after everything is loaded and widgetified
3974			// tags:
3975			//		callback
3976		},
3977
3978		onUnload: function(){
3979			// summary:
3980			//		Event hook, is called before old content is cleared
3981			// tags:
3982			//		callback
3983		},
3984
3985		onDownloadStart: function(){
3986			// summary:
3987			//		Called before download starts.
3988			// description:
3989			//		The string returned by this function will be the html
3990			//		that tells the user we are loading something.
3991			//		Override with your own function if you want to change text.
3992			// tags:
3993			//		extension
3994			return this.loadingMessage;
3995		},
3996
3997		onContentError: function(/*Error*/ /*===== error =====*/){
3998			// summary:
3999			//		Called on DOM faults, require faults etc. in content.
4000			//
4001			//		In order to display an error message in the pane, return
4002			//		the error message from this method, as an HTML string.
4003			//
4004			//		By default (if this method is not overriden), it returns
4005			//		nothing, so the error message is just printed to the console.
4006			// tags:
4007			//		extension
4008		},
4009
4010		onDownloadError: function(/*Error*/ /*===== error =====*/){
4011			// summary:
4012			//		Called when download error occurs.
4013			//
4014			//		In order to display an error message in the pane, return
4015			//		the error message from this method, as an HTML string.
4016			//
4017			//		Default behavior (if this method is not overriden) is to display
4018			//		the error message inside the pane.
4019			// tags:
4020			//		extension
4021			return this.errorMessage;
4022		},
4023
4024		onDownloadEnd: function(){
4025			// summary:
4026			//		Called when download is finished.
4027			// tags:
4028			//		callback
4029		}
4030	});
4031});
4032
4033},
4034'dijit/layout/_ContentPaneResizeMixin':function(){
4035define([
4036	"dojo/_base/array", // array.filter array.forEach
4037	"dojo/_base/declare", // declare
4038	"dojo/dom-class", // domClass.contains domClass.toggle
4039	"dojo/dom-geometry", // domGeometry.contentBox domGeometry.marginBox
4040	"dojo/dom-style",
4041	"dojo/_base/lang", // lang.mixin
4042	"dojo/query", // query
4043	"../registry", // registry.byId
4044	"../Viewport",
4045	"./utils" // marginBox2contextBox
4046], function(array, declare, domClass, domGeometry, domStyle, lang, query,
4047			registry, Viewport, layoutUtils){
4048
4049	// module:
4050	//		dijit/layout/_ContentPaneResizeMixin
4051
4052	return declare("dijit.layout._ContentPaneResizeMixin", null, {
4053		// summary:
4054		//		Resize() functionality of ContentPane.   If there's a single layout widget
4055		//		child then it will call resize() with the same dimensions as the ContentPane.
4056		//		Otherwise just calls resize on each child.
4057		//
4058		//		Also implements basic startup() functionality, where starting the parent
4059		//		will start the children
4060
4061		// doLayout: Boolean
4062		//		- false - don't adjust size of children
4063		//		- true - if there is a single visible child widget, set it's size to however big the ContentPane is
4064		doLayout: true,
4065
4066		// isLayoutContainer: [protected] Boolean
4067		//		Indicates that this widget will call resize() on it's child widgets
4068		//		when they become visible.
4069		isLayoutContainer: true,
4070
4071		startup: function(){
4072			// summary:
4073			//		See `dijit/layout/_LayoutWidget.startup()` for description.
4074			//		Although ContentPane doesn't extend _LayoutWidget, it does implement
4075			//		the same API.
4076
4077			if(this._started){
4078				return;
4079			}
4080
4081			var parent = this.getParent();
4082			this._childOfLayoutWidget = parent && parent.isLayoutContainer;
4083
4084			// I need to call resize() on my child/children (when I become visible), unless
4085			// I'm the child of a layout widget in which case my parent will call resize() on me and I'll do it then.
4086			this._needLayout = !this._childOfLayoutWidget;
4087
4088			this.inherited(arguments);
4089
4090			if(this._isShown()){
4091				this._onShow();
4092			}
4093
4094			if(!this._childOfLayoutWidget){
4095				// Since my parent isn't a layout container, and my style *may be* width=height=100%
4096				// or something similar (either set directly or via a CSS class),
4097				// monitor when viewport size changes so that I can re-layout.
4098				// This is more for subclasses of ContentPane than ContentPane itself, although it
4099				// could be useful for a ContentPane if it has a single child widget inheriting ContentPane's size.
4100				this.own(Viewport.on("resize", lang.hitch(this, "resize")));
4101			}
4102		},
4103
4104		_checkIfSingleChild: function(){
4105			// summary:
4106			//		Test if we have exactly one visible widget as a child,
4107			//		and if so assume that we are a container for that widget,
4108			//		and should propagate startup() and resize() calls to it.
4109			//		Skips over things like data stores since they aren't visible.
4110
4111			if(!this.doLayout){ return; }
4112
4113			var candidateWidgets = [],
4114				otherVisibleNodes = false;
4115
4116			query("> *", this.containerNode).some(function(node){
4117				var widget = registry.byNode(node);
4118				if(widget && widget.resize){
4119					candidateWidgets.push(widget);
4120				}else if(!/script|link|style/i.test(node.nodeName) && node.offsetHeight){
4121					otherVisibleNodes = true;
4122				}
4123			});
4124
4125			this._singleChild = candidateWidgets.length == 1 && !otherVisibleNodes ?
4126				candidateWidgets[0] : null;
4127
4128			// So we can set overflow: hidden to avoid a safari bug w/scrollbars showing up (#9449)
4129			domClass.toggle(this.containerNode, this.baseClass + "SingleChild", !!this._singleChild);
4130		},
4131
4132		resize: function(changeSize, resultSize){
4133			// summary:
4134			//		See `dijit/layout/_LayoutWidget.resize()` for description.
4135			//		Although ContentPane doesn't extend _LayoutWidget, it does implement
4136			//		the same API.
4137
4138			this._resizeCalled = true;
4139
4140			this._scheduleLayout(changeSize, resultSize);
4141		},
4142
4143		_scheduleLayout: function(changeSize, resultSize){
4144			// summary:
4145			//		Resize myself, and call resize() on each of my child layout widgets, either now
4146			//		(if I'm currently visible) or when I become visible
4147			if(this._isShown()){
4148				this._layout(changeSize, resultSize);
4149			}else{
4150				this._needLayout = true;
4151				this._changeSize = changeSize;
4152				this._resultSize = resultSize;
4153			}
4154		},
4155
4156		_layout: function(changeSize, resultSize){
4157			// summary:
4158			//		Resize myself according to optional changeSize/resultSize parameters, like a layout widget.
4159			//		Also, since I am an isLayoutContainer widget, each of my children expects me to
4160			//		call resize() or layout() on it.
4161			//
4162			//		Should be called on initialization and also whenever we get new content
4163			//		(from an href, or from set('content', ...))... but deferred until
4164			//		the ContentPane is visible
4165
4166			delete this._needLayout;
4167
4168			// For the TabContainer --> BorderContainer --> ContentPane case, _onShow() is
4169			// never called directly, so resize() is our trigger to do the initial href download (see [20099]).
4170			// However, don't load href for closed TitlePanes.
4171			if(!this._wasShown && this.open !== false){
4172				this._onShow();
4173			}
4174
4175			// Set margin box size, unless it wasn't specified, in which case use current size.
4176			if(changeSize){
4177				domGeometry.setMarginBox(this.domNode, changeSize);
4178			}
4179
4180			// Compute content box size of containerNode in case we [later] need to size our single child.
4181			var cn = this.containerNode;
4182			if(cn === this.domNode){
4183				// If changeSize or resultSize was passed to this method and this.containerNode ==
4184				// this.domNode then we can compute the content-box size without querying the node,
4185				// which is more reliable (similar to LayoutWidget.resize) (see for example #9449).
4186				var mb = resultSize || {};
4187				lang.mixin(mb, changeSize || {}); // changeSize overrides resultSize
4188				if(!("h" in mb) || !("w" in mb)){
4189					mb = lang.mixin(domGeometry.getMarginBox(cn), mb); // just use domGeometry.setMarginBox() to fill in missing values
4190				}
4191				this._contentBox = layoutUtils.marginBox2contentBox(cn, mb);
4192			}else{
4193				this._contentBox = domGeometry.getContentBox(cn);
4194			}
4195
4196			this._layoutChildren();
4197		},
4198
4199		_layoutChildren: function(){
4200			// Call _checkIfSingleChild() again in case app has manually mucked w/the content
4201			// of the ContentPane (rather than changing it through the set("content", ...) API.
4202			this._checkIfSingleChild();
4203
4204			if(this._singleChild && this._singleChild.resize){
4205				var cb = this._contentBox || domGeometry.getContentBox(this.containerNode);
4206
4207				// note: if widget has padding this._contentBox will have l and t set,
4208				// but don't pass them to resize() or it will doubly-offset the child
4209				this._singleChild.resize({w: cb.w, h: cb.h});
4210			}else{
4211				// All my child widgets are independently sized (rather than matching my size),
4212				// but I still need to call resize() on each child to make it layout.
4213				var children = this.getChildren(),
4214					widget,
4215					i = 0;
4216				while(widget = children[i++]){
4217					if(widget.resize){
4218						widget.resize();
4219					}
4220				}
4221			}
4222		},
4223
4224		_isShown: function(){
4225			// summary:
4226			//		Returns true if the content is currently shown.
4227			// description:
4228			//		If I am a child of a layout widget then it actually returns true if I've ever been visible,
4229			//		not whether I'm currently visible, since that's much faster than tracing up the DOM/widget
4230			//		tree every call, and at least solves the performance problem on page load by deferring loading
4231			//		hidden ContentPanes until they are first shown
4232
4233			if(this._childOfLayoutWidget){
4234				// If we are TitlePane, etc - we return that only *IF* we've been resized
4235				if(this._resizeCalled && "open" in this){
4236					return this.open;
4237				}
4238				return this._resizeCalled;
4239			}else if("open" in this){
4240				return this.open;		// for TitlePane, etc.
4241			}else{
4242				var node = this.domNode, parent = this.domNode.parentNode;
4243				return (node.style.display != 'none') && (node.style.visibility != 'hidden') && !domClass.contains(node, "dijitHidden") &&
4244					parent && parent.style && (parent.style.display != 'none');
4245			}
4246		},
4247
4248		_onShow: function(){
4249			// summary:
4250			//		Called when the ContentPane is made visible
4251			// description:
4252			//		For a plain ContentPane, this is called on initialization, from startup().
4253			//		If the ContentPane is a hidden pane of a TabContainer etc., then it's
4254			//		called whenever the pane is made visible.
4255			//
4256			//		Does layout/resize of child widget(s)
4257
4258			// Need to keep track of whether ContentPane has been shown (which is different than
4259			// whether or not it's currently visible).
4260			this._wasShown = true;
4261
4262			if(this._needLayout){
4263				// If a layout has been scheduled for when we become visible, do it now
4264				this._layout(this._changeSize, this._resultSize);
4265			}
4266
4267			this.inherited(arguments);
4268		}
4269	});
4270});
4271
4272},
4273'dijit/layout/utils':function(){
4274define([
4275	"dojo/_base/array", // array.filter array.forEach
4276	"dojo/dom-class", // domClass.add domClass.remove
4277	"dojo/dom-geometry", // domGeometry.marginBox
4278	"dojo/dom-style", // domStyle.getComputedStyle
4279	"dojo/_base/lang" // lang.mixin, lang.setObject
4280], function(array, domClass, domGeometry, domStyle, lang){
4281
4282	// module:
4283	//		dijit/layout/utils
4284
4285	function capitalize(word){
4286		return word.substring(0,1).toUpperCase() + word.substring(1);
4287	}
4288
4289	function size(widget, dim){
4290		// size the child
4291		var newSize = widget.resize ? widget.resize(dim) : domGeometry.setMarginBox(widget.domNode, dim);
4292
4293		// record child's size
4294		if(newSize){
4295			// if the child returned it's new size then use that
4296			lang.mixin(widget, newSize);
4297		}else{
4298			// otherwise, call getMarginBox(), but favor our own numbers when we have them.
4299			// the browser lies sometimes
4300			lang.mixin(widget, domGeometry.getMarginBox(widget.domNode));
4301			lang.mixin(widget, dim);
4302		}
4303	}
4304
4305	var utils = {
4306		// summary:
4307		//		Utility functions for doing layout
4308
4309		marginBox2contentBox: function(/*DomNode*/ node, /*Object*/ mb){
4310			// summary:
4311			//		Given the margin-box size of a node, return its content box size.
4312			//		Functions like domGeometry.contentBox() but is more reliable since it doesn't have
4313			//		to wait for the browser to compute sizes.
4314			var cs = domStyle.getComputedStyle(node);
4315			var me = domGeometry.getMarginExtents(node, cs);
4316			var pb = domGeometry.getPadBorderExtents(node, cs);
4317			return {
4318				l: domStyle.toPixelValue(node, cs.paddingLeft),
4319				t: domStyle.toPixelValue(node, cs.paddingTop),
4320				w: mb.w - (me.w + pb.w),
4321				h: mb.h - (me.h + pb.h)
4322			};
4323		},
4324
4325
4326		layoutChildren: function(/*DomNode*/ container, /*Object*/ dim, /*Widget[]*/ children,
4327				/*String?*/ changedRegionId, /*Number?*/ changedRegionSize){
4328			// summary:
4329			//		Layout a bunch of child dom nodes within a parent dom node
4330			// container:
4331			//		parent node
4332			// dim:
4333			//		{l, t, w, h} object specifying dimensions of container into which to place children
4334			// children:
4335			//		An array of Widgets or at least objects containing:
4336			//
4337			//		- domNode: pointer to DOM node to position
4338			//		- region or layoutAlign: position to place DOM node
4339			//		- resize(): (optional) method to set size of node
4340			//		- id: (optional) Id of widgets, referenced from resize object, below.
4341			//
4342			//		The widgets in this array should be ordered according to how they should be laid out
4343			//		(each element will be processed in order, and take up as much remaining space as needed),
4344			//		with the center widget last.
4345			// changedRegionId:
4346			//		If specified, the slider for the region with the specified id has been dragged, and thus
4347			//		the region's height or width should be adjusted according to changedRegionSize
4348			// changedRegionSize:
4349			//		See changedRegionId.
4350
4351			// copy dim because we are going to modify it
4352			dim = lang.mixin({}, dim);
4353
4354			domClass.add(container, "dijitLayoutContainer");
4355
4356			// Move "client" elements to the end of the array for layout.  a11y dictates that the author
4357			// needs to be able to put them in the document in tab-order, but this algorithm requires that
4358			// client be last.    TODO: remove for 2.0, all dijit client code already sends children as last item.
4359			children = array.filter(children, function(item){ return item.region != "center" && item.layoutAlign != "client"; })
4360				.concat(array.filter(children, function(item){ return item.region == "center" || item.layoutAlign == "client"; }));
4361
4362			// set positions/sizes
4363			array.forEach(children, function(child){
4364				var elm = child.domNode,
4365					pos = (child.region || child.layoutAlign);
4366				if(!pos){
4367					throw new Error("No region setting for " + child.id)
4368				}
4369
4370				// set elem to upper left corner of unused space; may move it later
4371				var elmStyle = elm.style;
4372				elmStyle.left = dim.l+"px";
4373				elmStyle.top = dim.t+"px";
4374				elmStyle.position = "absolute";
4375
4376				domClass.add(elm, "dijitAlign" + capitalize(pos));
4377
4378				// Size adjustments to make to this child widget
4379				var sizeSetting = {};
4380
4381				// Check for optional size adjustment due to splitter drag (height adjustment for top/bottom align
4382				// panes and width adjustment for left/right align panes.
4383				if(changedRegionId && changedRegionId == child.id){
4384					sizeSetting[child.region == "top" || child.region == "bottom" ? "h" : "w"] = changedRegionSize;
4385				}
4386
4387				if(pos == "leading"){
4388					pos = child.isLeftToRight() ? "left" : "right";
4389				}
4390				if(pos == "trailing"){
4391					pos = child.isLeftToRight() ? "right" : "left";
4392				}
4393
4394				// set size && adjust record of remaining space.
4395				// note that setting the width of a <div> may affect its height.
4396				if(pos == "top" || pos == "bottom"){
4397					sizeSetting.w = dim.w;
4398					size(child, sizeSetting);
4399					dim.h -= child.h;
4400					if(pos == "top"){
4401						dim.t += child.h;
4402					}else{
4403						elmStyle.top = dim.t + dim.h + "px";
4404					}
4405				}else if(pos == "left" || pos == "right"){
4406					sizeSetting.h = dim.h;
4407					size(child, sizeSetting);
4408					dim.w -= child.w;
4409					if(pos == "left"){
4410						dim.l += child.w;
4411					}else{
4412						elmStyle.left = dim.l + dim.w + "px";
4413					}
4414				}else if(pos == "client" || pos == "center"){
4415					size(child, dim);
4416				}
4417			});
4418		}
4419	};
4420
4421	lang.setObject("dijit.layout.utils", utils);	// remove for 2.0
4422
4423	return utils;
4424});
4425
4426},
4427'dojo/i18n':function(){
4428define(["./_base/kernel", "require", "./has", "./_base/array", "./_base/config", "./_base/lang", "./_base/xhr", "./json", "module"],
4429	function(dojo, require, has, array, config, lang, xhr, json, module){
4430
4431	// module:
4432	//		dojo/i18n
4433
4434	has.add("dojo-preload-i18n-Api",
4435		// if true, define the preload localizations machinery
4436		1
4437	);
4438
4439	 1 || has.add("dojo-v1x-i18n-Api",
4440		// if true, define the v1.x i18n functions
4441		1
4442	);
4443
4444	var
4445		thisModule = dojo.i18n =
4446			{
4447				// summary:
4448				//		This module implements the dojo/i18n! plugin and the v1.6- i18n API
4449				// description:
4450				//		We choose to include our own plugin to leverage functionality already contained in dojo
4451				//		and thereby reduce the size of the plugin compared to various loader implementations. Also, this
4452				//		allows foreign AMD loaders to be used without their plugins.
4453			},
4454
4455		nlsRe =
4456			// regexp for reconstructing the master bundle name from parts of the regexp match
4457			// nlsRe.exec("foo/bar/baz/nls/en-ca/foo") gives:
4458			// ["foo/bar/baz/nls/en-ca/foo", "foo/bar/baz/nls/", "/", "/", "en-ca", "foo"]
4459			// nlsRe.exec("foo/bar/baz/nls/foo") gives:
4460			// ["foo/bar/baz/nls/foo", "foo/bar/baz/nls/", "/", "/", "foo", ""]
4461			// so, if match[5] is blank, it means this is the top bundle definition.
4462			// courtesy of http://requirejs.org
4463			/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,
4464
4465		getAvailableLocales = function(
4466			root,
4467			locale,
4468			bundlePath,
4469			bundleName
4470		){
4471			// summary:
4472			//		return a vector of module ids containing all available locales with respect to the target locale
4473			//		For example, assuming:
4474			//
4475			//		- the root bundle indicates specific bundles for "fr" and "fr-ca",
4476			//		-  bundlePath is "myPackage/nls"
4477			//		- bundleName is "myBundle"
4478			//
4479			//		Then a locale argument of "fr-ca" would return
4480			//
4481			//			["myPackage/nls/myBundle", "myPackage/nls/fr/myBundle", "myPackage/nls/fr-ca/myBundle"]
4482			//
4483			//		Notice that bundles are returned least-specific to most-specific, starting with the root.
4484			//
4485			//		If root===false indicates we're working with a pre-AMD i18n bundle that doesn't tell about the available locales;
4486			//		therefore, assume everything is available and get 404 errors that indicate a particular localization is not available
4487
4488			for(var result = [bundlePath + bundleName], localeParts = locale.split("-"), current = "", i = 0; i<localeParts.length; i++){
4489				current += (current ? "-" : "") + localeParts[i];
4490				if(!root || root[current]){
4491					result.push(bundlePath + current + "/" + bundleName);
4492					result.specificity = current;
4493				}
4494			}
4495			return result;
4496		},
4497
4498		cache = {},
4499
4500		getBundleName = function(moduleName, bundleName, locale){
4501			locale = locale ? locale.toLowerCase() : dojo.locale;
4502			moduleName = moduleName.replace(/\./g, "/");
4503			bundleName = bundleName.replace(/\./g, "/");
4504			return (/root/i.test(locale)) ?
4505				(moduleName + "/nls/" + bundleName) :
4506				(moduleName + "/nls/" + locale + "/" + bundleName);
4507		},
4508
4509		getL10nName = dojo.getL10nName = function(moduleName, bundleName, locale){
4510			return moduleName = module.id + "!" + getBundleName(moduleName, bundleName, locale);
4511		},
4512
4513		doLoad = function(require, bundlePathAndName, bundlePath, bundleName, locale, load){
4514			// summary:
4515			//		get the root bundle which instructs which other bundles are required to construct the localized bundle
4516			require([bundlePathAndName], function(root){
4517				var current = lang.clone(root.root || root.ROOT),// 1.6 built bundle defined ROOT
4518					availableLocales = getAvailableLocales(!root._v1x && root, locale, bundlePath, bundleName);
4519				require(availableLocales, function(){
4520					for (var i = 1; i<availableLocales.length; i++){
4521						current = lang.mixin(lang.clone(current), arguments[i]);
4522					}
4523					// target may not have been resolve (e.g., maybe only "fr" exists when "fr-ca" was requested)
4524					var target = bundlePathAndName + "/" + locale;
4525					cache[target] = current;
4526					current.$locale = availableLocales.specificity;
4527					load();
4528				});
4529			});
4530		},
4531
4532		normalize = function(id, toAbsMid){
4533			// summary:
4534			//		id may be relative.
4535			//		preload has form `*preload*<path>/nls/<module>*<flattened locales>` and
4536			//		therefore never looks like a relative
4537			return /^\./.test(id) ? toAbsMid(id) : id;
4538		},
4539
4540		getLocalesToLoad = function(targetLocale){
4541			var list = config.extraLocale || [];
4542			list = lang.isArray(list) ? list : [list];
4543			list.push(targetLocale);
4544			return list;
4545		},
4546
4547		load = function(id, require, load){
4548			// summary:
4549			//		id is in one of the following formats
4550			//
4551			//		1. <path>/nls/<bundle>
4552			//			=> load the bundle, localized to config.locale; load all bundles localized to
4553			//			config.extraLocale (if any); return the loaded bundle localized to config.locale.
4554			//
4555			//		2. <path>/nls/<locale>/<bundle>
4556			//			=> load then return the bundle localized to <locale>
4557			//
4558			//		3. *preload*<path>/nls/<module>*<JSON array of available locales>
4559			//			=> for config.locale and all config.extraLocale, load all bundles found
4560			//			in the best-matching bundle rollup. A value of 1 is returned, which
4561			//			is meaningless other than to say the plugin is executing the requested
4562			//			preloads
4563			//
4564			//		In cases 1 and 2, <path> is always normalized to an absolute module id upon entry; see
4565			//		normalize. In case 3, it <path> is assumed to be absolute; this is arranged by the builder.
4566			//
4567			//		To load a bundle means to insert the bundle into the plugin's cache and publish the bundle
4568			//		value to the loader. Given <path>, <bundle>, and a particular <locale>, the cache key
4569			//
4570			//			<path>/nls/<bundle>/<locale>
4571			//
4572			//		will hold the value. Similarly, then plugin will publish this value to the loader by
4573			//
4574			//			define("<path>/nls/<bundle>/<locale>", <bundle-value>);
4575			//
4576			//		Given this algorithm, other machinery can provide fast load paths be preplacing
4577			//		values in the plugin's cache, which is public. When a load is demanded the
4578			//		cache is inspected before starting any loading. Explicitly placing values in the plugin
4579			//		cache is an advanced/experimental feature that should not be needed; use at your own risk.
4580			//
4581			//		For the normal AMD algorithm, the root bundle is loaded first, which instructs the
4582			//		plugin what additional localized bundles are required for a particular locale. These
4583			//		additional locales are loaded and a mix of the root and each progressively-specific
4584			//		locale is returned. For example:
4585			//
4586			//		1. The client demands "dojo/i18n!some/path/nls/someBundle
4587			//
4588			//		2. The loader demands load(some/path/nls/someBundle)
4589			//
4590			//		3. This plugin require's "some/path/nls/someBundle", which is the root bundle.
4591			//
4592			//		4. Assuming config.locale is "ab-cd-ef" and the root bundle indicates that localizations
4593			//		are available for "ab" and "ab-cd-ef" (note the missing "ab-cd", then the plugin
4594			//		requires "some/path/nls/ab/someBundle" and "some/path/nls/ab-cd-ef/someBundle"
4595			//
4596			//		5. Upon receiving all required bundles, the plugin constructs the value of the bundle
4597			//		ab-cd-ef as...
4598			//
4599			//				mixin(mixin(mixin({}, require("some/path/nls/someBundle"),
4600			//		  			require("some/path/nls/ab/someBundle")),
4601			//					require("some/path/nls/ab-cd-ef/someBundle"));
4602			//
4603			//		This value is inserted into the cache and published to the loader at the
4604			//		key/module-id some/path/nls/someBundle/ab-cd-ef.
4605			//
4606			//		The special preload signature (case 3) instructs the plugin to stop servicing all normal requests
4607			//		(further preload requests will be serviced) until all ongoing preloading has completed.
4608			//
4609			//		The preload signature instructs the plugin that a special rollup module is available that contains
4610			//		one or more flattened, localized bundles. The JSON array of available locales indicates which locales
4611			//		are available. Here is an example:
4612			//
4613			//			*preload*some/path/nls/someModule*["root", "ab", "ab-cd-ef"]
4614			//
4615			//		This indicates the following rollup modules are available:
4616			//
4617			//			some/path/nls/someModule_ROOT
4618			//			some/path/nls/someModule_ab
4619			//			some/path/nls/someModule_ab-cd-ef
4620			//
4621			//		Each of these modules is a normal AMD module that contains one or more flattened bundles in a hash.
4622			//		For example, assume someModule contained the bundles some/bundle/p
vendor: 5,098 bytes, lines 4622-4737
4622ath/someBundle and
4623			//		some/bundle/path/someOtherBundle, then some/path/nls/someModule_ab would be expressed as follows:
4624			//
4625			//			define({
4626			//				some/bundle/path/someBundle:<value of someBundle, flattened with respect to locale ab>,
4627			//				some/bundle/path/someOtherBundle:<value of someOtherBundle, flattened with respect to locale ab>,
4628			//			});
4629			//
4630			//		E.g., given this design, preloading for locale=="ab" can execute the following algorithm:
4631			//
4632			//			require(["some/path/nls/someModule_ab"], function(rollup){
4633			//				for(var p in rollup){
4634			//					var id = p + "/ab",
4635			//					cache[id] = rollup[p];
4636			//					define(id, rollup[p]);
4637			//				}
4638			//			});
4639			//
4640			//		Similarly, if "ab-cd" is requested, the algorithm can determine that "ab" is the best available and
4641			//		load accordingly.
4642			//
4643			//		The builder will write such rollups for every layer if a non-empty localeList  profile property is
4644			//		provided. Further, the builder will include the following cache entry in the cache associated with
4645			//		any layer.
4646			//
4647			//			"*now":function(r){r(['dojo/i18n!*preload*<path>/nls/<module>*<JSON array of available locales>']);}
4648			//
4649			//		The *now special cache module instructs the loader to apply the provided function to context-require
4650			//		with respect to the particular layer being defined. This causes the plugin to hold all normal service
4651			//		requests until all preloading is complete.
4652			//
4653			//		Notice that this algorithm is rarely better than the standard AMD load algorithm. Consider the normal case
4654			//		where the target locale has a single segment and a layer depends on a single bundle:
4655			//
4656			//		Without Preloads:
4657			//
4658			//		1. Layer loads root bundle.
4659			//		2. bundle is demanded; plugin loads single localized bundle.
4660			//
4661			//		With Preloads:
4662			//
4663			//		1. Layer causes preloading of target bundle.
4664			//		2. bundle is demanded; service is delayed until preloading complete; bundle is returned.
4665			//
4666			//		In each case a single transaction is required to load the target bundle. In cases where multiple bundles
4667			//		are required and/or the locale has multiple segments, preloads still requires a single transaction whereas
4668			//		the normal path requires an additional transaction for each additional bundle/locale-segment. However all
4669			//		of these additional transactions can be done concurrently. Owing to this analysis, the entire preloading
4670			//		algorithm can be discard during a build by setting the has feature dojo-preload-i18n-Api to false.
4671
4672			var match = nlsRe.exec(id),
4673				bundlePath = match[1] + "/",
4674				bundleName = match[5] || match[4],
4675				bundlePathAndName = bundlePath + bundleName,
4676				localeSpecified = (match[5] && match[4]),
4677				targetLocale =	localeSpecified || dojo.locale || "",
4678				loadTarget = bundlePathAndName + "/" + targetLocale,
4679				loadList = localeSpecified ? [targetLocale] : getLocalesToLoad(targetLocale),
4680				remaining = loadList.length,
4681				finish = function(){
4682					if(!--remaining){
4683						load(lang.delegate(cache[loadTarget]));
4684					}
4685				},
4686				split = id.split("*"),
4687				preloadDemand = split[1] == "preload";
4688
4689			if(has("dojo-preload-i18n-Api")){
4690				if(preloadDemand){
4691					if(!cache[id]){
4692						// use cache[id] to prevent multiple preloads of the same preload; this shouldn't happen, but
4693						// who knows what over-aggressive human optimizers may attempt
4694						cache[id] = 1;
4695						preloadL10n(split[2], json.parse(split[3]), 1, require);
4696					}
4697					// don't stall the loader!
4698					load(1);
4699				}
4700				if(preloadDemand || (waitForPreloads(id, require, load) && !cache[loadTarget])){
4701					return;
4702				}
4703			}
4704			else if (preloadDemand) {
4705				// If a build is created with nls resources and 'dojo-preload-i18n-Api' has not been set to false,
4706				// the built file will include a preload in the cache (which looks about like so:)
4707				// '*now':function(r){r(['dojo/i18n!*preload*dojo/nls/dojo*["ar","ca","cs","da","de","el","en-gb","en-us","es-es","fi-fi","fr-fr","he-il","hu","it-it","ja-jp","ko-kr","nl-nl","nb","pl","pt-br","pt-pt","ru","sk","sl","sv","th","tr","zh-tw","zh-cn","ROOT"]']);}
4708				// If the consumer of the build sets 'dojo-preload-i18n-Api' to false in the Dojo config, the cached
4709				// preload will not be parsed and will result in an attempt to call 'require' passing it the unparsed
4710				// preload, which is not a valid module id.
4711				// In this case we should skip this request.
4712				load(1);
4713
4714				return;
4715			}
4716
4717			array.forEach(loadList, function(locale){
4718				var target = bundlePathAndName + "/" + locale;
4719				if(has("dojo-preload-i18n-Api")){
4720					checkForLegacyModules(target);
4721				}
4722				if(!cache[target]){
4723					doLoad(require, bundlePathAndName, bundlePath, bundleName, locale, finish);
4724				}else{
4725					finish();
4726				}
4727			});
4728		};
4729
4730	if(has("dojo-preload-i18n-Api") ||  1 ){
4731		var normalizeLocale = thisModule.normalizeLocale = function(locale){
4732				var result = locale ? locale.toLowerCase() : dojo.locale;
4733				return result == "root" ? "ROOT" : result;
4734			},
4735
4736			isXd = function(mid, contextRequire){
4737				return ( 1  &&  1 
vendor: 6,660 bytes, lines 4737-4904
4737) ?
4738					contextRequire.isXdUrl(require.toUrl(mid + ".js")) :
4739					true;
4740			},
4741
4742			preloading = 0,
4743
4744			preloadWaitQueue = [],
4745
4746			preloadL10n = thisModule._preloadLocalizations = function(/*String*/bundlePrefix, /*Array*/localesGenerated, /*boolean?*/ guaranteedAmdFormat, /*function?*/ contextRequire){
4747				// summary:
4748				//		Load available flattened resource bundles associated with a particular module for dojo/locale and all dojo/config.extraLocale (if any)
4749				// description:
4750				//		Only called by built layer files. The entire locale hierarchy is loaded. For example,
4751				//		if locale=="ab-cd", then ROOT, "ab", and "ab-cd" are loaded. This is different than v1.6-
4752				//		in that the v1.6- would only load ab-cd...which was *always* flattened.
4753				//
4754				//		If guaranteedAmdFormat is true, then the module can be loaded with require thereby circumventing the detection algorithm
4755				//		and the extra possible extra transaction.
4756
4757				// If this function is called from legacy code, then guaranteedAmdFormat and contextRequire will be undefined. Since the function
4758				// needs a require in order to resolve module ids, fall back to the context-require associated with this dojo/i18n module, which
4759				// itself may have been mapped.
4760				contextRequire = contextRequire || require;
4761
4762				function doRequire(mid, callback){
4763					if(isXd(mid, contextRequire) || guaranteedAmdFormat){
4764						contextRequire([mid], callback);
4765					}else{
4766						syncRequire([mid], callback, contextRequire);
4767					}
4768				}
4769
4770				function forEachLocale(locale, func){
4771					// given locale= "ab-cd-ef", calls func on "ab-cd-ef", "ab-cd", "ab", "ROOT"; stops calling the first time func returns truthy
4772					var parts = locale.split("-");
4773					while(parts.length){
4774						if(func(parts.join("-"))){
4775							return;
4776						}
4777						parts.pop();
4778					}
4779					func("ROOT");
4780				}
4781
4782					function preloadingAddLock(){
4783						preloading++;
4784					}
4785
4786					function preloadingRelLock(){
4787						--preloading;
4788						while(!preloading && preloadWaitQueue.length){
4789							load.apply(null, preloadWaitQueue.shift());
4790						}
4791					}
4792
4793					function cacheId(path, name, loc, require){
4794						// path is assumed to have a trailing "/"
4795						return require.toAbsMid(path + name + "/" + loc)
4796					}
4797
4798					function preload(locale){
4799						locale = normalizeLocale(locale);
4800						forEachLocale(locale, function(loc){
4801							if(array.indexOf(localesGenerated, loc) >= 0){
4802								var mid = bundlePrefix.replace(/\./g, "/") + "_" + loc;
4803								preloadingAddLock();
4804								doRequire(mid, function(rollup){
4805									for(var p in rollup){
4806										var bundle = rollup[p],
4807											match = p.match(/(.+)\/([^\/]+)$/),
4808											bundleName, bundlePath;
4809
4810											// If there is no match, the bundle is not a regular bundle from an AMD layer.
4811											if (!match){continue;}
4812
4813											bundleName = match[2];
4814											bundlePath = match[1] + "/";
4815
4816										// backcompat
4817										if(!bundle._localized){continue;}
4818
4819										var localized;
4820										if(loc === "ROOT"){
4821											var root = localized = bundle._localized;
4822											delete bundle._localized;
4823											root.root = bundle;
4824											cache[require.toAbsMid(p)] = root;
4825										}else{
4826											localized = bundle._localized;
4827											cache[cacheId(bundlePath, bundleName, loc, require)] = bundle;
4828										}
4829
4830										if(loc !== locale){
4831											// capture some locale variables
4832											var improveBundle = function improveBundle(bundlePath, bundleName, bundle, localized){
4833												// locale was not flattened and we've fallen back to a less-specific locale that was flattened
4834												// for example, we had a flattened 'fr', a 'fr-ca' is available for at least this bundle, and
4835												// locale==='fr-ca'; therefore, we must improve the bundle as retrieved from the rollup by
4836												// manually loading the fr-ca version of the bundle and mixing this into the already-retrieved 'fr'
4837												// version of the bundle.
4838												//
4839												// Remember, different bundles may have different sets of locales available.
4840												//
4841												// we are really falling back on the regular algorithm here, but--hopefully--starting with most
4842												// of the required bundles already on board as given by the rollup and we need to "manually" load
4843												// only one locale from a few bundles...or even better...we won't find anything better to load.
4844												// This algorithm ensures there is nothing better to load even when we can only load a less-specific rollup.
4845												//
4846												// note: this feature is only available in async mode
4847
4848												// inspect the loaded bundle that came from the rollup to see if something better is available
4849												// for any bundle in a rollup, more-specific available locales are given at localized.
4850												var requiredBundles = [],
4851													cacheIds = [];
4852												forEachLocale(locale, function(loc){
4853													if(localized[loc]){
4854														requiredBundles.push(require.toAbsMid(bundlePath + loc + "/" + bundleName));
4855														cacheIds.push(cacheId(bundlePath, bundleName, loc, require));
4856													}
4857												});
4858
4859												if(requiredBundles.length){
4860													preloadingAddLock();
4861													contextRequire(requiredBundles, function(){
4862														// requiredBundles was constructed by forEachLocale so it contains locales from
4863														// less specific to most specific.
4864														// the loop starts with the most specific locale, the last one.
4865														for(var i = requiredBundles.length - 1; i >= 0 ; i--){
4866															bundle = lang.mixin(lang.clone(bundle), arguments[i]);
4867															cache[cacheIds[i]] = bundle;
4868														}
4869														// this is the best possible (maybe a perfect match, maybe not), accept it
4870														cache[cacheId(bundlePath, bundleName, locale, require)] = lang.clone(bundle);
4871														preloadingRelLock();
4872													});
4873												}else{
4874													// this is the best possible (definitely not a perfect match), accept it
4875													cache[cacheId(bundlePath, bundleName, locale, require)] = bundle;
4876												}
4877											};
4878											improveBundle(bundlePath, bundleName, bundle, localized);
4879										}
4880									}
4881									preloadingRelLock();
4882								});
4883								return true;
4884							}
4885							return false;
4886						});
4887					}
4888
4889				preload();
4890				array.forEach(dojo.config.extraLocale, preload);
4891			},
4892
4893			waitForPreloads = function(id, require, load){
4894				if(preloading){
4895					preloadWaitQueue.push([id, require, load]);
4896				}
4897				return preloading;
4898			},
4899
4900			checkForLegacyModules = function()
4901				{};
4902	}
4903
4904	if(
vendor: 4,419 bytes, lines 4904-5017
4904 1 ){
4905		// this code path assumes the dojo loader and won't work with a standard AMD loader
4906		var amdValue = {},
4907			l10nCache = {},
4908			evalBundle,
4909
4910			syncRequire = function(deps, callback, require){
4911				var results = [];
4912				array.forEach(deps, function(mid){
4913					var url = require.toUrl(mid + ".js");
4914
4915					function load(text){
4916						if (!evalBundle) {
4917							// use the function ctor to keep the minifiers away (also come close to global scope, but this is secondary)
4918							evalBundle = new Function(
4919								"__bundle",				   // the bundle to evalutate
4920								"__checkForLegacyModules", // a function that checks if __bundle defined __mid in the global space
4921								"__mid",				   // the mid that __bundle is intended to define
4922								"__amdValue",
4923
4924								// returns one of:
4925								//		1 => the bundle was an AMD bundle
4926								//		a legacy bundle object that is the value of __mid
4927								//		instance of Error => could not figure out how to evaluate bundle
4928
4929								// used to detect when __bundle calls define
4930								"var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"
4931								+ "	   require = function(){define.called = 1;};"
4932
4933								+ "try{"
4934								+		"define.called = 0;"
4935								+		"eval(__bundle);"
4936								+		"if(define.called==1)"
4937											// bundle called define; therefore signal it's an AMD bundle
4938								+			"return __amdValue;"
4939
4940								+		"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"
4941											// bundle was probably a v1.6- built NLS flattened NLS bundle that defined __mid in the global space
4942								+			"return __checkForLegacyModules;"
4943
4944								+ "}catch(e){}"
4945								// evaulating the bundle was *neither* an AMD *nor* a legacy flattened bundle
4946								// either way, re-eval *after* surrounding with parentheses
4947
4948								+ "try{"
4949								+		"return eval('('+__bundle+')');"
4950								+ "}catch(e){"
4951								+		"return e;"
4952								+ "}"
4953							);
4954						}
4955						var result = evalBundle(text, checkForLegacyModules, mid, amdValue);
4956						if(result===amdValue){
4957							// the bundle was an AMD module; re-inject it through the normal AMD path
4958							// we gotta do this since it could be an anonymous module and simply evaluating
4959							// the text here won't provide the loader with the context to know what
4960							// module is being defined()'d. With browser caching, this should be free; further
4961							// this entire code path can be circumvented by using the AMD format to begin with
4962							results.push(cache[url] = amdValue.result);
4963						}else{
4964							if(result instanceof Error){
4965								console.error("failed to evaluate i18n bundle; url=" + url, result);
4966								result = {};
4967							}
4968							// nls/<locale>/<bundle-name> indicates not the root.
4969							results.push(cache[url] = (/nls\/[^\/]+\/[^\/]+$/.test(url) ? result : {root:result, _v1x:1}));
4970						}
4971					}
4972
4973					if(cache[url]){
4974						results.push(cache[url]);
4975					}else{
4976						var bundle = require.syncLoadNls(mid);
4977						// need to check for legacy module here because there might be a legacy module for a
4978						// less specific locale (which was not looked up during the first checkForLegacyModules
4979						// call in load()).
4980						// Also need to reverse the locale and the module name in the mid because syncRequire
4981						// deps parameters uses the AMD style package/nls/locale/module while legacy code uses
4982						// package/nls/module/locale.
4983						if(!bundle){
4984							bundle = checkForLegacyModules(mid.replace(/nls\/([^\/]*)\/([^\/]*)$/, "nls/$2/$1"));
4985						}
4986						if(bundle){
4987							results.push(bundle);
4988						}else{
4989							if(!xhr){
4990								try{
4991									require.getText(url, true, load);
4992								}catch(e){
4993									results.push(cache[url] = {});
4994								}
4995							}else{
4996								xhr.get({
4997									url:url,
4998									sync:true,
4999									load:load,
5000									error:function(){
5001										results.push(cache[url] = {});
5002									}
5003								});
5004							}
5005						}
5006					}
5007				});
5008				callback && callback.apply(null, results);
5009			};
5010
5011		checkForLegacyModules = function(target){
5012			// legacy code may have already loaded [e.g] the raw bundle x/y/z at x.y.z; when true, push into the cache
5013			for(var result, names = target.split("/"), object = dojo.global[names[0]], i = 1; object && i<names.length-1; object = object[names[i++]]){}
5014			if(object){
5015				result = object[names[i]];
5016				if(!result){
5017					// fallback for incorrect bundle build of 1.6
5018					result = object[names[i].replace(/-/g,"_")];
5019				}
5020				if(result){
5021					cache[target] = result;
5022				}
5023			}
5024			return result;
5025		};
5026
5027		thisModule.getLocalization = function(moduleName, bundleName, locale){
5028			var result,
5029				l10nName = getBundleName(moduleName, bundleName, locale);
5030
5031			if (l10nCache[l10nName]) {
5032				return l10nCache[l10nName];
5033			}
5034
5035			load(
5036				l10nName,
5037
5038				// isXd() and syncRequire() need a context-require in order to resolve the mid with respect to a reference module.
5039				// Since this legacy function does not have the concept of a reference module, resolve with respect to this
5040				// dojo/i18n module, which, itself may have been mapped.
5041				(!isXd(l10nName, require) ? function(deps, callback){ syncRequire(deps, callback, require); } : require),
5042
5043				function(result_){
5044					l10nCache[l10nName] = result_;
5045					result = result_;
5046				}
5047			);
5048			return result;
5049		};
5050	}
5051	else {
5052		thisModule.getLocalization = function(moduleName, bundleName, locale){
5053			var key = moduleName.replace(/\./g, '/') + '/nls/' + bundleName + '/' + (locale || config.locale);
5054			return this.cache[key];
5055		};
5056	}
5057
5058	return lang.mixin(thisModule, {
5059		dynamic:true,
5060		normalize:normalize,
5061		load:load,
5062		cache:cache,
5063		getL10nName: getL10nName
5064	});
5065});
5066
5067},
5068'HTMLSnippet/widget/HTMLSnippetContext':function(){
5069define(["dojo/_base/declare","mxui/widget/_WidgetBase","dojo/dom-style","dojo/dom-attr","dojo/dom-construct","dojo/_base/lang","dojo/html","dijit/layout/LinkPane"],function(__WEBPACK_EXTERNAL_MODULE__80__,__WEBPACK_EXTERNAL_MODULE__146__,__WEBPACK_EXTERNAL_MODULE__147__,__WEBPACK_EXTERNAL_MODULE__148__,__WEBPACK_EXTERNAL_MODULE__149__,__WEBPACK_EXTERNAL_MODULE__150__,__WEBPACK_EXTERNAL_MODULE__151__,__WEBPACK_EXTERNAL_MODULE__152__){return function(t){function e(e){for(var r,o,i=e[0],c=e[1],u=0,a=[];u<i.length;u++)o=i[u],Object.prototype.hasOwnProperty.call(n,o)&&n[o]&&a.push(n[o][0]),n[o]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(t[r]=c[r]);for(s&&s(e);a.length;)a.shift()()}var r={},n={1:0};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(t){var e=[],r=n[t];if(0!==r)if(r)e.push(r[2]);else{var i=new Promise(function(e,o){r=n[t]=[e,o]});e.push(r[2]=i);var c,u=document.createElement("script");u.charset="utf-8",u.timeout=120,o.nc&&u.setAttribute("nonce",o.nc),u.src=function(t){return o.p+"HTMLSnippet/widget/HTMLSnippet"+t+".js"}(t);var s=new Error;c=function(e){u.onerror=u.onload=null,clearTimeout(a);var r=n[t];if(0!==r){if(r){var o=e&&("load"===e.type?"missing":e.type),i=e&&e.target&&e.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",s.name="ChunkLoadError",s.type=o,s.request=i,r[1](s)}n[t]=void 0}};var a=setTimeout(function(){c({type:"timeout",target:u})},12e4);u.onerror=u.onload=c,document.head.appendChild(u)}return Promise.all(e)},o.m=t,o.c=r,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="/widgets/",o.oe=function(t){throw console.error(t),t};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=e,i=i.slice();for(var u=0;u<i.length;u++)e(i[u]);var s=c;return o(o.s=155)}([function(t,e,r){"use strict";var n="object"==typeof document&&document.all;t.exports=void 0===n&&void 0!==n?function(t){return"function"==typeof t||t===n}:function(t){return"function"==typeof t}},function(t,e,r){"use strict";(function(e){var r=function(t){return t&&t.Math===Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()}).call(this,r(84))},function(t,e,r){"use strict";var n=r(26),o=Function.prototype,i=o.call,c=n&&o.bind.bind(i,i);t.exports=n?c:function(t){return function(){return i.apply(t,arguments)}}},function(t,e,r){"use strict";
5069t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,r){"use strict";var n=r(1),o=r(58),i=r(10),c=r(60),u=r(56),s=r(55),a=n.Symbol,f=o("wks"),p=s?a.for||a:a&&a.withoutSetter||c;t.exports=function(t){return i(f,t)||(f[t]=u&&i(a,t)?a[t]:p("Symbol."+t)),f[t]}},function(t,e,r){"use strict";var n=r(1),o=r(52).f,i=r(17),c=r(16),u=r(38),s=r(65),a=r(68);t.exports=function(t,e){var r,f,p,l,v,d=t.target,h=t.global,_=t.stat;if(r=h?n:_?n[d]||u(d,{}):n[d]&&n[d].prototype)for(f in e){if(l=e[f],p=t.dontCallGetSet?(v=o(r,f))&&v.value:r[f],!a(h?f:d+(_?".":"#")+f,t.forced)&&void 0!==p){if(typeof l==typeof p)continue;s(l,p)}(t.sham||p&&p.sham)&&i(l,"sham",!0),c(r,f,l,t)}}},function(t,e,r){"use strict";var n=r(26),o=Function.prototype.call;t.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,e,r){"use strict";var n=r(0);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},function(t,e,r){"use strict";var n=r(0),o=r(31),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a function")}},function(t,e,r){"use strict";var n=r(2),o=r(59),i=n({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},function(t,e,r){"use strict";var n=r(1),o=r(0),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(n[t]):n[t]&&n[t][e]}},function(t,e,r){"use strict";t.exports=!1},function(t,e,r){"use strict";var n=r(8),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not an object")}},function(t,e,r){"use strict";var n=r(7),o=r(61),i=r(62),c=r(13),u=r(53),s=TypeError,a=Object.defineProperty,f=Object.getOwnPropertyDescriptor;e.f=n?i?function(t,e,r){if(c(t),e=u(e),c(r),"function"==typeof t&&"prototype"===e&&"value"in r&&"writable"in r&&!r.writable){var n=f(t,e);n&&n.writable&&(t[e]=r.value,r={configurable:"configurable"in r?r.configurable:n.configurable,enumerable:"enumerable"in r?r.enumerable:n.enumerable,writable:!1})}return a(t,e,r)}:a:function(t,e,r){if(c(t),e=u(e),c(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new s("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},function(t,e,r){"use strict";var n=r(9),o=TypeError,i=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new o("Bad Promise constructor");e=t,r=n}),this.resolve=n(e),this.reject=n(r)};t.exports.f=function(t){return new i(t)}},function(t,e,r){"use strict";var n=r(0),o=r(14),i=r(63),c=r(38);t.exports=function(t,e,r,u){u||(u={});var s=u.enumerable,a=void 0!==u.name?u.name:e;if(n(r)&&i(r,a,u),u.global)s?t[e]=r:c(e,r);else{try{u.unsafe?t[e]&&(s=!0):delete t[e]}catch(t){}s?t[e]=r:o.f(t,e,{value:r,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return t}},function(t,e,r){"use strict";var n=r(7),o=r(14),i=r(19);t.exports=n?function(t,e,r){return o.f(t,e,i(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e,r){"use strict";var n=r(1);t.exports=n.Promise},function(t,e,r){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,r){"use strict";var n=r(86),o=r(28);t.exports=function(t){return n(o(t))}},function(t,e,r){"use strict";var n=r(1).navigator,o=n&&n.userAgent;t.exports=o?String(o):""},function(t,e,r){"use strict";var n=r(47),o=r(6),i=r(13),c=r(31),u=r(108),s=r(67),a=r(30),f=r(109),p=r(70),l=r(110),v=TypeError,d=function(t,e){this.stopped=t,this.result=e},h=d.prototype;t.exports=function(t,e,r){var _,y,g,m,b,x,E,w=r&&r.that,O=!(!r||!r.AS_ENTRIES),j=!(!r||!r.IS_RECORD),P=!(!r||!r.IS_ITERATOR),A=!(!r||!r.INTERRUPTED),S=n(e,w),C=function(t){return _&&l(_,"normal",t),new d(!0,t)},T=function(t){return O?(i(t),A?S(t[0],t[1],C):S(t[0],t[1])):A?S(t,C):S(t)};if(j)_=t.iterator;else if(P)_=t;else{if(!(y=p(t)))throw new v(c(t)+" is not iterable");if(u(y)){for(g=0,m=s(t);m>g;g++)if((b=T(t[g]))&&a(h,b))return b;return new d(!1)}_=f(t,y)}for(x=j?t.next:_.next;!(E=o(x,_)).done;){try{b=T(E.value)}catch(t){l(_,"throw",t)}if("object"==typeof b&&b&&a(h,b))return b}return new d(!1)}},function(t,e,r){"use strict";
5069t.exports={}},function(t,e,r){"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},function(t,e,r){"use strict";var n=r(1),o=r(18),i=r(0),c=r(68),u=r(40),s=r(4),a=r(74),f=r(12),p=r(57),l=o&&o.prototype,v=s("species"),d=!1,h=i(n.PromiseRejectionEvent),_=c("Promise",function(){var t=u(o),e=t!==String(o);if(!e&&66===p)return!0;if(f&&(!l.catch||!l.finally))return!0;if(!p||p<51||!/native code/.test(t)){var r=new o(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[v]=n,!(d=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==a&&"DENO"!==a||h)});t.exports={CONSTRUCTOR:_,REJECTION_EVENT:h,SUBCLASSING:d}},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},function(t,e,r){"use strict";var n=r(2),o=n({}.toString),i=n("".slice);t.exports=function(t){return i(o(t),8,-1)}},function(t,e,r){"use strict";var n=r(29),o=TypeError;t.exports=function(t){if(n(t))throw new o("Can't call method on "+t);return t}},function(t,e,r){"use strict";t.exports=function(t){return null==t}},function(t,e,r){"use strict";var n=r(2);t.exports=n({}.isPrototypeOf)},function(t,e,r){"use strict";var n=String;t.exports=function(t){try{return n(t)}catch(t){return"Object"}}},function(t,e,r){"use strict";var n,o,i,c=r(89),u=r(1),s=r(8),a=r(17),f=r(10),p=r(37),l=r(41),v=r(42),d=u.TypeError,h=u.WeakMap;if(c||p.state){var _=p.state||(p.state=new h);_.get=_.get,_.has=_.has,_.set=_.set,n=function(t,e){if(_.has(t))throw new d("Object already initialized");return e.facade=t,_.set(t,e),e},o=function(t){return _.get(t)||{}},i=function(t){return _.has(t)}}else{var y=l("state");v[y]=!0,n=function(t,e){if(f(t,y))throw new d("Object already initialized");return e.facade=t,a(t,y,e),e},o=function(t){return f(t,y)?t[y]:{}},i=function(t){return f(t,y)}}t.exports={set:n,get:o,has:i,enforce:function(t){return i(t)?o(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!s(e)||(r=o(e)).type!==t)throw new d("Incompatible receiver, "+t+" required");return r}}}},function(t,e,r){"use strict";var n,o=r(13),i=r(101),c=r(44),u=r(42),s=r(69),a=r(39),f=r(41),p=f("IE_PROTO"),l=function(){},v=function(t){return"<script>"+t+"<\/script>"},d=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},h=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}var t,e;h="undefined"!=typeof document?document.domain&&n?d(n):((e=a("iframe")).style.display="none",s.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):d(n);for(var r=c.length;r--;)delete h.prototype[c[r]];return h()};
5069u[p]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(l.prototype=o(t),r=new l,l.prototype=null,r[p]=t):r=h(),void 0===e?r:i.f(r,e)}},function(t,e,r){"use strict";var n=r(48),o=r(0),i=r(27),c=r(4)("toStringTag"),u=Object,s="Arguments"===i(function(){return arguments}());t.exports=n?i:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=u(t),c))?r:s?i(e):"Object"===(n=i(e))&&o(e.callee)?"Arguments":n}},function(t,e,r){"use strict";var n=r(18),o=r(133),i=r(25).CONSTRUCTOR;t.exports=i||!o(function(t){n.all(t).then(void 0,function(){})})},function(t,e,r){"use strict";var n=r(9),o=r(29);t.exports=function(t,e){var r=t[e];return o(r)?void 0:n(r)}},function(t,e,r){"use strict";var n=r(12),o=r(1),i=r(38),c=t.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(c.versions||(c.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e,r){"use strict";var n=r(1),o=Object.defineProperty;t.exports=function(t,e){try{o(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},function(t,e,r){"use strict";var n=r(1),o=r(8),i=n.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},function(t,e,r){"use strict";var n=r(2),o=r(0),i=r(37),c=n(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return c(t)}),t.exports=i.inspectSource},function(t,e,r){"use strict";var n=r(58),o=r(60),i=n("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,r){"use strict";t.exports={}},function(t,e,r){"use strict";var n=r(94);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},function(t,e,r){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,r){"use strict";var n=r(10),o=r(0),i=r(59),c=r(41),u=r(97),s=c("IE_PROTO"),a=Object,f=a.prototype;t.exports=u?a.getPrototypeOf:function(t){var e=i(t);if(n(e,s))return e[s];var r=e.constructor;return o(r)&&e instanceof r?r.prototype:e instanceof a?f:null}},function(t,e,r){"use strict";var n=r(98),o=r(8),i=r(28),c=r(99);
vendor: 1,915 bytes, line 5069
5069t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return i(r),c(n),o(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0)},function(t,e,r){"use strict";var n=r(107),o=r(9),i=r(26),c=n(n.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?c(t,e):function(){return t.apply(e,arguments)}}},function(t,e,r){"use strict";var n={};n[r(4)("toStringTag")]="z",t.exports="[object z]"===String(n)},function(t,e,r){"use strict";var n=r(34),o=String;t.exports=function(t){if("Symbol"===n(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},function(t,e,r){"use strict";var n=r(14).f,o=r(10),i=r(4)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!o(t,i)&&n(t,i,{configurable:!0,value:e})}},function(t,e,r){"use strict";var n=r(74);t.exports="NODE"===n},function(t,e,r){"use strict";var n=r(7),o=r(6),i=r(85),c=r(19),u=r(20),s=r(53),a=r(10),f=r(61),p=Object.getOwnPropertyDescriptor;e.f=n?p:function(t,e){if(t=u(t),e=s(e),f)try{return p(t,e)}catch(t){}if(a(t,e))return c(!o(i.f,t,e),t[e])}},function(t,e,r){"use strict";var n=r(87),o=r(54);t.exports=function(t){var e=n(t,"string");return o(e)?e:e+""}},function(t,e,r){"use strict";var n=r(11),o=r(0),i=r(30),c=r(55),u=Object;t.exports=c?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return o(e)&&i(e.prototype,u(t))}},function(t,e,r){"use strict";var n=r(56);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,r){"use strict";var n=r(57),o=r(3),i=r(1).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41})},function(t,e,r){"use strict";var n,o,i=r(1),c=r(21),u=i.process,s=i.Deno,a=u&&u.versions||s&&s.version,f=a&&a.v8;f&&(o=(n=f.split("."))[0]>
vendor: 4,395 bytes, line 5069
50690&&n[0]<4?1:+(n[0]+n[1])),!o&&c&&(!(n=c.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=c.match(/Chrome\/(\d+)/))&&(o=+n[1]),t.exports=o},function(t,e,r){"use strict";var n=r(37);t.exports=function(t,e){return n[t]||(n[t]=e||{})}},function(t,e,r){"use strict";var n=r(28),o=Object;t.exports=function(t){return o(n(t))}},function(t,e,r){"use strict";var n=r(2),o=0,i=Math.random(),c=n(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+c(++o+i,36)}},function(t,e,r){"use strict";var n=r(7),o=r(3),i=r(39);t.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,e,r){"use strict";var n=r(7),o=r(3);t.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(0),c=r(10),u=r(7),s=r(64).CONFIGURABLE,a=r(40),f=r(32),p=f.enforce,l=f.get,v=String,d=Object.defineProperty,h=n("".slice),_=n("".replace),y=n([].join),g=u&&!o(function(){return 8!==d(function(){},"length",{value:8}).length}),m=String(String).split("String"),b=t.exports=function(t,e,r){"Symbol("===h(v(e),0,7)&&(e="["+_(v(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!c(t,"name")||s&&t.name!==e)&&(u?d(t,"name",{value:e,configurable:!0}):t.name=e),g&&r&&c(r,"arity")&&t.length!==r.arity&&d(t,"length",{value:r.arity});try{r&&c(r,"constructor")&&r.constructor?u&&d(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=p(t);return c(n,"source")||(n.source=y(m,"string"==typeof e?e:"")),t};Function.prototype.toString=b(function(){return i(this)&&l(this).source||a(this)},"toString")},function(t,e,r){"use strict";var n=r(7),o=r(10),i=Function.prototype,c=n&&Object.getOwnPropertyDescriptor,u=o(i,"name"),s=u&&"something"===function(){}.name,a=u&&(!n||n&&c(i,"name").configurable);t.exports={EXISTS:u,PROPER:s,CONFIGURABLE:a}},function(t,e,r){"use strict";var n=r(10),o=r(90),i=r(52),c=r(14);t.exports=function(t,e,r){for(var u=o(e),s=c.f,a=i.f,f=0;f<u.length;f++){var p=u[f];n(t,p)||r&&n(r,p)||s(t,p,a(e,p))}}},function(t,e,r){"use strict";var n=r(2),o=r(10),i=r(20),c=r(92).indexOf,u=r(42),s=n([].push);t.exports=function(t,e){var r,n=i(t),a=0,f=[];for(r in n)!o(u,r)&&o(n,r)&&s(f,r);for(;e.length>a;)o(n,r=e[a++])&&(~c(f,r)||s(f,r));return f}},function(t,e,r){"use strict";var n=r(95);t.exports=function(t){return n(t.length)}},function(t,e,r){"use strict";var n=r(3),o=r(0),i=/#|\.prototype\./,c=function(t,e){var r=s[u(t)];return r===f||r!==a&&(o(e)?n(e):!!e)},u=c.normalize=function(t){return String(t).replace(i,".").toLowerCase()},s=c.data={},a=c.NATIVE="N",f=c.POLYFILL="P";t.exports=c},function(t,e,r){"use strict";var n=r(11);t.exports=n("document","documentElement")},function(t,e,r){"use strict";var n=r(34),o=r(36),i=r(29),c=r(23),u=r(4)("iterator");t.exports=function(t){if(!i(t))return o(t,u)||o(t,"@@iterator")||c[n(t)]}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(12),c=r(64),u=r(0),s=r(114),a=r(45),f=r(46),p=r(50),l=r(17),v=r(16),d=r(4),h=r(23),_=r(72),y=c.PROPER,g=c.CONFIGURABLE,m=_.IteratorPrototype,b=_.BUGGY_SAFARI_ITERATORS,x=d("iterator"),E=function(){return this};t.exports=function(t,e,r,c,d,_,w){s(r,e,c);var O,j,P,A=function(t){if(t===d&&L)return L;if(!b&&t&&t in T)return T[t];switch(t){case"keys":case"values":case"entries":return function(){return new r(this,t)}}return function(){return new r(this)}},S=e+" Iterator",C=!1,T=t.prototype,R=T[x]||T["@@iterator"]||d&&T[d],L=!b&&R||A(d),N="Array"===e&&T.entries||R;if(N&&(O=a(N.call(new t)))!==Object.prototype&&O.next&&(i||a(O)===m||(f?f(O,m):u(O[x])||v(O,x,E)),p(O,S,!0,!0),i&&(h[S]=E)),y&&"values"===d&&R&&"values"!==R.name&&(!i&&g?l(T,"name","values"):(C=!0,L=function(){return o(R,this)})),d)if(j={values:A("values"),keys:_?L:A("keys"),entries:A("entries")},w)for(P in j)!b&&!C&&P in T||v(T,P,j[P]);else n({target:e,proto:!0,forced:b||C},j);return i&&!w||T[x]===L||v(T,x,L,{name:d}),h[e]=L,j}},function(t,e,r){"use strict";var n,o,i,c=r(3),u=r(0),s=r(8),a=r(33),f=r(45),p=r(16),l=r(4),v=r(12),d=l("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(o=f(f(i)))!==Object.prototype&&(n=o):h=!0),!s(n)||c(function(){var t={};return n[d].call(t)!==t})?n={}:v&&(n=a(n)),u(n[d])||p(n,d,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},function(t,e,r){"use strict";
vendor: 1,687 bytes, line 5069
5069t.exports=function(t,e){return{value:t,done:e}}},function(t,e,r){"use strict";var n=r(1),o=r(21),i=r(27),c=function(t){return o.slice(0,t.length)===t};t.exports=c("Bun/")?"BUN":c("Cloudflare-Workers")?"CLOUDFLARE":c("Deno/")?"DENO":c("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},function(t,e,r){"use strict";var n=r(13),o=r(122),i=r(29),c=r(4)("species");t.exports=function(t,e){var r,u=n(t).constructor;return void 0===u||i(r=n(u)[c])?e:o(r)}},function(t,e,r){"use strict";var n,o,i,c,u=r(1),s=r(124),a=r(47),f=r(0),p=r(10),l=r(3),v=r(69),d=r(125),h=r(39),_=r(126),y=r(77),g=r(51),m=u.setImmediate,b=u.clearImmediate,x=u.process,E=u.Dispatch,w=u.Function,O=u.MessageChannel,j=u.String,P=0,A={};l(function(){n=u.location});var S=function(t){if(p(A,t)){var e=A[t];delete A[t],e()}},C=function(t){return function(){S(t)}},T=function(t){S(t.data)},R=function(t){u.postMessage(j(t),n.protocol+"//"+n.host)};m&&b||(m=function(t){_(arguments.length,1);var e=f(t)?t:w(t),r=d(arguments,1);return A[++P]=function(){s(e,void 0,r)},o(P),P},b=function(t){delete A[t]},g?o=function(t){x.nextTick(C(t))}:E&&E.now?o=function(t){E.now(C(t))}:O&&!y?(c=(i=new O).port2,i.port1.onmessage=T,o=a(c.postMessage,c)):u.addEventListener&&f(u.postMessage)&&!u.importScripts&&n&&"file:"!==n.protocol&&!l(R)?(o=R,u.addEventListener("message",T,!1)):o="onreadystatechange"in h("script")?function(t){v.appendChild(h("script")).onreadystatechange=function(){v.removeChild(this),S(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:m,clear:b}},function(t,e,r){"use strict";var n=r(21);
5069t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},function(t,e,r){"use strict";var n=function(){this.head=null,this.tail=null};n.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=n},function(t,e,r){"use strict";var n=r(13),o=r(8),i=r(15);t.exports=function(t,e){if(n(t),o(e)&&e.constructor===t)return e;var r=i.f(t);return(0,r.resolve)(e),r.promise}},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__80__},function(t,e,r){"use strict";r(82),r(112),r(115),r(117),r(138),r(139),r(140),r(141),r(142);var n=r(144);t.exports=n.Promise},function(t,e,r){"use strict";r(83)},function(t,e,r){"use strict";var n=r(5),o=r(30),i=r(45),c=r(46),u=r(65),s=r(33),a=r(17),f=r(19),p=r(103),l=r(104),v=r(22),d=r(111),h=r(4)("toStringTag"),_=Error,y=[].push,g=function(t,e){var r,n=o(m,this);c?r=c(new _,n?i(this):m):(r=n?this:s(m),a(r,h,"Error")),void 0!==e&&a(r,"message",d(e)),l(r,g,r.stack,1),arguments.length>2&&p(r,arguments[2]);var u=[];return v(t,y,{that:u}),a(r,"errors",u),r};c?c(g,_):u(g,_,{name:!0});var m=g.prototype=s(_.prototype,{constructor:f(1,g),message:f(1,""),name:f(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:g})},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:n},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(27),c=Object,u=n("".split);t.exports=o(function(){return!c("z").propertyIsEnumerable(0)})?function(t){return"String"===i(t)?u(t,""):c(t)}:c},function(t,e,r){"use strict";var n=r(6),o=r(8),i=r(54),c=r(36),u=r(88),s=r(4),a=TypeError,f=s("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var r,s=c(t,f);if(s){if(void 0===e&&(e="default"),r=n(s,t,e),!o(r)||i(r))return r;throw new a("Can't convert object to primitive value")}return void 0===e&&(e="number"),u(t,e)}},function(t,e,r){"use strict";var n=r(6),o=r(0),i=r(8),c=TypeError;t.exports=function(t,e){var r,u;if("string"===e&&o(r=t.toString)&&!i(u=n(r,t)))return u;if(o(r=t.valueOf)&&!i(u=n(r,t)))return u;if("string"!==e&&o(r=t.toString)&&!i(u=n(r,t)))return u;throw new c("Can't convert object to primitive value")}},function(t,e,r){"use strict";var n=r(1),o=r(0),i=n.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},function(t,e,r){"use strict";var n=r(11),o=r(2),i=r(91),c=r(96),u=r(13),s=o([].concat);t.exports=n("Reflect","ownKeys")||function(t){var e=i.f(u(t)),r=c.f;return r?s(e,r(t)):e}},function(t,e,r){"use strict";var n=r(66),o=r(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},function(t,e,r){"use strict";var n=r(20),o=r(93),i=r(67),c=function(t){return function(e,r,c){var u=n(e),s=i(u);if(0===s)return!t&&-1;var a,f=o(c,s);if(t&&r!=r){for(;s>f;)if((a=u[f++])!=a)return!0}else for(;s>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},function(t,e,r){"use strict";var n=r(43),o=Math.max,i=Math.min;t.exports=function(t,e){var r=n(t);return r<0?o(r+e,0):i(r,e)}},function(t,e,r){"use strict";var n=Math.ceil,o=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?o:n)(e)}},function(t,e,r){"use strict";var n=r(43),o=Math.min;t.exports=function(t){var e=n(t);return e>0?o(e,9007199254740991):0}},function(t,e,r){"use strict";e.f=Object.getOwnPropertySymbols},function(t,e,r){"use strict";var n=r(3);t.exports=!n(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})},function(t,e,r){"use strict";var n=r(2),o=r(9);t.exports=function(t,e,r){try{return n(o(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},function(t,e,r){"use strict";var n=r(100),o=String,i=TypeError;t.exports=function(t){if(n(t))return t;throw new i("Can't set "+o(t)+" as a prototype")}},function(t,e,r){"use strict";var n=r(8);t.exports=function(t){return n(t)||null===t}},function(t,e,r){"use strict";var n=r(7),o=r(62),i=r(14),c=r(13),u=r(20),s=r(102);e.f=n&&!o?Object.defineProperties:function(t,e){c(t);for(var r,n=u(e),o=s(e),a=o.length,f=0;a>f;)i.f(t,r=o[f++],n[r]);return t}},function(t,e,r){"use strict";var n=r(66),o=r(44);t.exports=Object.keys||function(t){return n(t,o)}},function(t,e,r){"use strict";var n=r(8),o=r(17);t.exports=function(t,e){n(e)&&"cause"in e&&o(t,"cause",e.cause)}},function(t,e,r){"use strict";var n=r(17),o=r(105),i=r(106),c=Error.captureStackTrace;t.exports=function(t,e,r,u){i&&(c?c(t,e):n(t,"stack",o(r,u)))}},function(t,e,r){"use strict";var n=r(2),o=Error,i=n("".replace),c=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,s=u.test(c);t.exports=function(t,e){if(s&&"string"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,u,"");return t}},function(t,e,r){"use strict";var n=r(3),o=r(19);t.exports=!n(function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",o(1,7)),7!==t.stack)})},function(t,e,r){"use strict";var n=r(27),o=r(2);t.exports=function(t){if("Function"===n(t))return o(t)}},function(t,e,r){"use strict";
vendor: 3,407 bytes, line 5069
5069var n=r(4),o=r(23),i=n("iterator"),c=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||c[i]===t)}},function(t,e,r){"use strict";var n=r(6),o=r(9),i=r(13),c=r(31),u=r(70),s=TypeError;t.exports=function(t,e){var r=arguments.length<2?u(t):e;if(o(r))return i(n(r,t));throw new s(c(t)+" is not iterable")}},function(t,e,r){"use strict";var n=r(6),o=r(13),i=r(36);t.exports=function(t,e,r){var c,u;o(t);try{if(!(c=i(t,"return"))){if("throw"===e)throw r;return r}c=n(c,t)}catch(t){u=!0,c=t}if("throw"===e)throw r;if(u)throw c;return o(c),r}},function(t,e,r){"use strict";var n=r(49);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:n(t)}},function(t,e,r){"use strict";var n=r(20),o=r(113),i=r(23),c=r(32),u=r(14).f,s=r(71),a=r(73),f=r(12),p=r(7),l=c.set,v=c.getterFor("Array Iterator");t.exports=s(Array,"Array",function(t,e){l(this,{type:"Array Iterator",target:n(t),index:0,kind:e})},function(){var t=v(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,a(void 0,!0);switch(t.kind){case"keys":return a(r,!1);case"values":return a(e[r],!1)}return a([r,e[r]],!1)},"values");var d=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(t){}},function(t,e,r){"use strict";var n=r(4),o=r(33),i=r(14).f,c=n("unscopables"),u=Array.prototype;void 0===u[c]&&i(u,c,{configurable:!0,value:o(null)}),t.exports=function(t){u[c][t]=!0}},function(t,e,r){"use strict";var n=r(72).IteratorPrototype,o=r(33),i=r(19),c=r(50),u=r(23),s=function(){return this};t.exports=function(t,e,r,a){var f=e+" Iterator";return t.prototype=o(n,{next:i(+!a,r)}),c(t,f,!1,!0),u[f]=s,t}},function(t,e,r){"use strict";var n=r(48),o=r(16),i=r(116);n||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e,r){"use strict";var n=r(48),o=r(34);t.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},function(t,e,r){"use strict";r(118),r(132),r(134),r(135),r(136),r(137)},function(t,e,r){"use strict";var n,o,i,c=r(5),u=r(12),s=r(51),a=r(1),f=r(6),p=r(16),l=r(46),v=r(50),d=r(119),h=r(9),_=r(0),y=r(8),g=r(121),m=r(75),b=r(76).set,x=r(127),E=r(131),w=r(24),O=r(78),j=r(32),P=r(18),A=r(25),S=r(15),C=A.CONSTRUCTOR,T=A.REJECTION_EVENT,R=A.SUBCLASSING,L=j.getterFor("Promise"),N=j.set,k=P&&P.prototype,M=P,D=k,I=a.TypeError,U=a.document,B=a.process,W=S.f,F=W,K=!!(U&&U.createEvent&&a.dispatchEvent),q=function(t){var e;return!(!y(t)||!_(e=t.then))&&e},X=function(t,e){var r,n,o,i=e.value,c=1===e.state,u=c?t.ok:t.fail,s=t.resolve,a=t.reject,p=t.domain;try{u?(c||(2===e.rejection&&z(e),e.rejection=1),!0===u?r=i:(p&&p.enter(),r=u(i),p&&(p.exit(),o=!0)),r===t.promise?a(new I("Promise-chain cycle")):(n=q(r))?f(n,r,s,a):s(r)):a(i)}catch(t){p&&!o&&p.exit(),a(t)}},G=function(t,e){t.notified||(t.notified=!0,x(function(){for(var r,n=t.reactions;r=n.get();)X(r,t);t.notified=!1,e&&!t.rejection&&Q(t)}))},H=function(t,e,r){var n,o;K?((n=U.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),a.dispatchEvent(n)):n={promise:e,reason:r},!T&&(o=a["on"+t])?o(n):"unhandledrejection"===t&&E("Unhandled promise rejection",r)},Q=function(t){f(b,a,function(){var e,r=t.facade,n=t.value;if(J(t)&&(e=w(function(){s?B.emit("unhandledRejection",n,r):H("unhandledrejection",r,n)}),t.rejection=s||J(t)?2:1,e.error))throw e.value})},J=function(t){return 1!==t.rejection&&!t.parent},z=function(t){f(b,a,function(){var e=t.facade;
vendor: 8,720 bytes, line 5069
5069s?B.emit("rejectionHandled",e):H("rejectionhandled",e,t.value)})},Y=function(t,e,r){return function(n){t(e,n,r)}},$=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,G(t,!0))},V=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new I("Promise can't be resolved itself");var n=q(e);n?x(function(){var r={done:!1};try{f(n,e,Y(V,r,t),Y($,r,t))}catch(e){$(r,e,t)}}):(t.value=e,t.state=1,G(t,!1))}catch(e){$({done:!1},e,t)}}};if(C&&(D=(M=function(t){g(this,D),h(t),f(n,this);var e=L(this);try{t(Y(V,e),Y($,e))}catch(t){$(e,t)}}).prototype,(n=function(t){N(this,{type:"Promise",done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:null})}).prototype=p(D,"then",function(t,e){var r=L(this),n=W(m(this,M));return r.parent=!0,n.ok=!_(t)||t,n.fail=_(e)&&e,n.domain=s?B.domain:void 0,0===r.state?r.reactions.add(n):x(function(){X(n,r)}),n.promise}),o=function(){var t=new n,e=L(t);this.promise=t,this.resolve=Y(V,e),this.reject=Y($,e)},S.f=W=function(t){return t===M||void 0===t?new o(t):F(t)},!u&&_(P)&&k!==Object.prototype)){i=k.then,R||p(k,"then",function(t,e){var r=this;return new M(function(t,e){f(i,r,t,e)}).then(t,e)},{unsafe:!0});try{delete k.constructor}catch(t){}l&&l(k,D)}c({global:!0,constructor:!0,wrap:!0,forced:C},{Promise:M}),v(M,"Promise",!1,!0),d("Promise")},function(t,e,r){"use strict";var n=r(11),o=r(120),i=r(4),c=r(7),u=i("species");t.exports=function(t){var e=n(t);c&&e&&!e[u]&&o(e,u,{configurable:!0,get:function(){return this}})}},function(t,e,r){"use strict";var n=r(63),o=r(14);t.exports=function(t,e,r){return r.get&&n(r.get,e,{getter:!0}),r.set&&n(r.set,e,{setter:!0}),o.f(t,e,r)}},function(t,e,r){"use strict";var n=r(30),o=TypeError;t.exports=function(t,e){if(n(e,t))return t;throw new o("Incorrect invocation")}},function(t,e,r){"use strict";var n=r(123),o=r(31),i=TypeError;t.exports=function(t){if(n(t))return t;throw new i(o(t)+" is not a constructor")}},function(t,e,r){"use strict";var n=r(2),o=r(3),i=r(0),c=r(34),u=r(11),s=r(40),a=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(a),d=function(t){if(!i(t))return!1;try{return f(a,[],t),!0}catch(t){return!1}},h=function(t){if(!i(t))return!1;switch(c(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,s(t))}catch(t){return!0}};h.sham=!0,t.exports=!f||o(function(){var t;return d(d.call)||!d(Object)||!d(function(){t=!0})||t})?h:d},function(t,e,r){"use strict";var n=r(26),o=Function.prototype,i=o.apply,c=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(n?c.bind(i):function(){return c.apply(i,arguments)})},function(t,e,r){"use strict";var n=r(2);t.exports=n([].slice)},function(t,e,r){"use strict";var n=TypeError;t.exports=function(t,e){if(t<e)throw new n("Not enough arguments");return t}},function(t,e,r){"use strict";var n,o,i,c,u,s=r(1),a=r(128),f=r(47),p=r(76).set,l=r(78),v=r(77),d=r(129),h=r(130),_=r(51),y=s.MutationObserver||s.WebKitMutationObserver,g=s.document,m=s.process,b=s.Promise,x=a("queueMicrotask");if(!x){var E=new l,w=function(){var t,e;for(_&&(t=m.domain)&&t.exit();e=E.get();)try{e()}catch(t){throw E.head&&n(),t}t&&t.enter()};v||_||h||!y||!g?!d&&b&&b.resolve?((c=b.resolve(void 0)).constructor=b,u=f(c.then,c),n=function(){u(w)}):_?n=function(){m.nextTick(w)}:(p=f(p,s),n=function(){p(w)}):(o=!0,i=g.createTextNode(""),new y(w).observe(i,{characterData:!0}),n=function(){i.data=o=!o}),x=function(t){E.head||n(),E.add(t)}}t.exports=x},function(t,e,r){"use strict";var n=r(1),o=r(7),i=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!o)return n[t];var e=i(n,t);return e&&e.value}},function(t,e,r){"use strict";var n=r(21);t.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble},function(t,e,r){"use strict";var n=r(21);t.exports=/web0s(?!.*chrome)/i.test(n)},function(t,e,r){"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{all:function(t){var e=this,r=c.f(e),n=r.resolve,a=r.reject,f=u(function(){var r=i(e.resolve),c=[],u=0,f=1;s(t,function(t){var i=u++,s=!1;f++,o(r,e,t).then(function(t){s||(s=!0,c[i]=t,--f||n(c))},a)}),--f||n(c)});return f.error&&a(f.value),r.promise}})},function(t,e,r){"use strict";var n=r(4)("iterator"),o=!1;try{var i=0,c={next:function(){return{done:!!i++}},return:function(){o=!0}};c[n]=function(){return this},Array.from(c,function(){throw 2})}catch(t){}t.exports=function(t,e){try{if(!e&&!o)return!1}catch(t){return!1}var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch(t){}return r}},function(t,e,r){"use strict";var n=r(5),o=r(12),i=r(25).CONSTRUCTOR,c=r(18),u=r(11),s=r(0),a=r(16),f=c&&c.prototype;if(n({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&s(c)){var p=u("Promise").prototype.catch;f.catch!==p&&a(f,"catch",p,{unsafe:!0})}},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{race:function(t){var e=this,r=c.f(e),n=r.reject,a=u(function(){var c=i(e.resolve);s(t,function(t){o(c,e,t).then(r.resolve,n)})});return a.error&&n(a.value),r.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(15);n({target:"Promise",stat:!0,forced:r(25).CONSTRUCTOR},{reject:function(t){var e=o.f(this);return(0,e.reject)(t),e.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(11),i=r(12),c=r(18),u=r(25).CONSTRUCTOR,s=r(79),a=o("Promise"),f=i&&!u;n({target:"Promise",stat:!0,forced:i||u},{resolve:function(t){return s(f&&this===a?c:this,t)}})},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(15),u=r(24),s=r(22);n({target:"Promise",stat:!0,forced:r(35)},{allSettled:function(t){var e=this,r=c.f(e),n=r.resolve,a=r.reject,f=u(function(){var r=i(e.resolve),c=[],u=0,a=1;s(t,function(t){var i=u++,s=!1;a++,o(r,e,t).then(function(t){s||(s=!0,c[i]={status:"fulfilled",value:t},--a||n(c))},function(t){s||(s=!0,c[i]={status:"rejected",reason:t},--a||n(c))})}),--a||n(c)});return f.error&&a(f.value),r.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(6),i=r(9),c=r(11),u=r(15),s=r(24),a=r(22),f=r(35);n({target:"Promise",stat:!0,forced:f},{any:function(t){var e=this,r=c("AggregateError"),n=u.f(e),f=n.resolve,p=n.reject,l=s(function(){var n=i(e.resolve),c=[],u=0,s=1,l=!1;a(t,function(t){var i=u++,a=!1;s++,o(n,e,t).then(function(t){a||l||(l=!0,f(t))},function(t){a||l||(a=!0,c[i]=t,--s||p(new r(c,"No one promise resolved")))})}),--s||p(new r(c,"No one promise resolved"))});return l.error&&p(l.value),n.promise}})},function(t,e,r){"use strict";var n=r(5),o=r(15);n({target:"Promise",stat:!0},{withResolvers:function(){var t=o.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}})},function(t,e,r){"use strict";var n=r(5),o=r(12),i=r(18),c=r(3),u=r(11),s=r(0),a=r(75),f=r(79),p=r(16),l=i&&i.prototype;if(n({target:"Promise",proto:!0,real:!0,forced:!!i&&c(function(){l.finally.call({then:function(){}},function(){})})},{finally:function(t){var e=a(this,u("Promise")),r=s(t);return this.then(r?function(r){return f(e,t()).then(function(){return r})}:t,r?function(r){return f(e,t()).then(function(){throw r})}:t)}}),!o&&s(i)){var v=u("Promise").prototype.finally;l.finally!==v&&p(l,"finally",v,{unsafe:!0})}},function(t,e,r){"use strict";var n=r(143).charAt,o=r(49),i=r(32),c=r(71),u=r(73),s=i.set,a=i.getterFor("String Iterator");c(String,"String",function(t){s(this,{type:"String Iterator",string:o(t),index:0})},function(){var t,e=a(this),r=e.string,o=e.index;return o>=r.length?u(void 0,!0):(t=n(r,o),e.index+=t.length,u(t,!1))})},function(t,e,r){"use strict";var n=r(2),o=r(43),i=r(49),c=r(28),u=n("".charAt),s=n("".charCodeAt),a=n("".slice),f=function(t){return function(e,r){var n,f,p=i(c(e)),l=o(r),v=p.length;return l<0||l>=v?t?"":void 0:(n=s(p,l))<55296||n>56319||l+1===v||(f=s(p,l+1))<56320||f>57343?t?u(p,l):n:t?a(p,l,l+2):f-56320+(n-55296<<10)+65536}};t.exports={codeAt:f(!1),charAt:f(!0)}},function(t,e,r){"use strict";var n=r(1);t.exports=n},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;__WEBPACK_AMD_DEFINE_ARRAY__=[__webpack_require__(80),__webpack_require__(146),__webpack_require__(147),__webpack_require__(148),__webpack_require__(149),__webpack_require__(150),__webpack_require__(151),__webpack_require__(152)],__WEBPACK_AMD_DEFINE_RESULT__=function(declare,_WidgetBase,domStyle,domAttr,domConstruct,lang,html,LinkPane){"use strict";return declare("HTMLSnippet.widget.HTMLSnippet",[_WidgetBase],{contenttype:"html",contents:"",contentsPath:"",oncl
5069ickmf:"",documentation:"",refreshOnContextChange:!1,refreshOnContextUpdate:!1,encloseHTMLWithDiv:!0,_objectChangeHandler:null,contextObj:null,postCreate:function(){console.debug(this.id+".postCreate"),this._setupEvents(),this.refreshOnContextChange||this.executeCode()},executeCode:function(){console.debug(this.id+".executeCode");var t=""!==this.contentsPath;switch(this.contenttype){case"html":if(t)new LinkPane({preload:!0,loadingMessage:"",href:this.contentsPath,onDownloadError:function(){console.log("Error loading html path")}}).placeAt(this.domNode.id).startup();else if(this.encloseHTMLWithDiv){domStyle.set(this.domNode,{height:"auto",width:"100%",outline:0}),domAttr.set(this.domNode,"style",this.style);var e=domConstruct.create("div",{innerHTML:this.contents});domConstruct.place(e,this.domNode,"only")}else html.set(this.domNode,this.contents);break;case"js":case"jsjQuery":if(t){var r=document.createElement("script"),n=+new Date;r.type="text/javascript",r.src=this.contentsPath+"?v="+n.toString(),domConstruct.place(r,this.domNode,"only")}else"jsjQuery"===this.contenttype?this._evalJQueryCode():this.evalJs()}},update:function(t,e){console.debug(this.id+".update"),this.contextObj=t,this.refreshOnContextChange&&(this.executeCode(),this.refreshOnContextUpdate&&(null!==this._objectChangeHandler&&this.unsubscribe(this._objectChangeHandler),t&&(this._objectChangeHandler=this.subscribe({guid:t.getGuid(),callback:lang.hitch(this,function(){this.executeCode()})})))),this._executeCallback(e,"update")},_setupEvents:function(){console.debug(this.id+"._setupEvents"),this.onclickmf&&this.connect(this.domNode,"click",this._executeMicroflow)},_executeMicroflow:function(){if(console.debug(this.id+"._executeMicroflow"),this.onclickmf){var t={actionname:this.onclickmf};null!==this.contextObj&&(t.applyto="selection",t.guids=[this.contextObj.getGuid()]),mx.data.action({params:t,callback:function(t){console.debug(this.id+" (executed microflow successfully).")},error:function(t){console.error(this.id+t)}})}},evalJs:function(){console.debug(this.id+".evalJS");try{eval(this.contents+"\r\n//# sourceURL="+this.id+".js")}catch(t){this._handleError(t)}},_evalJQueryCode:function(){console.debug(this.id+"._evalJQueryCode"),__webpack_require__.e(2).then(function(){var __WEBPACK_AMD_REQUIRE_ARRAY__=[__webpack_require__(153)];lang.hitch(this,function(jQuery){try{(function(snippetCode){var jqueryIdRegex1=/window.\jQuery/g,jqueryIdRegex2=/window.\$/g;snippetCode=snippetCode.replace(jqueryIdRegex1,"jQuery"),snippetCode=snippetCode.replace(jqueryIdRegex2,"$"),snippetCode="var jQuery, $; jQuery = $ = this.jquery;"+snippetCode+"console.debug('your code snippet is evaluated and executed against JQuery version:'+ this.jquery.fn.jquery);",eval(snippetCode)}).call({jquery:jQuery,widget:this},this.contents)}catch(t){this._handleError(t)}}).apply(null,__WEBPACK_AMD_REQUIRE_ARRAY__)}.bind(this)).catch(__webpack_require__.oe)},_handleError:function(t){console.debug(this.id+"._handleError"),domConstruct.place('<div class="alert alert-danger">Error while evaluating javascript input: '+t+"</div>",this.domNode,"only")},_executeCallback:function(t,e){console.debug(this.id+"._executeCallback"+(e?" from "+e:"")),t&&"function"==typeof t&&t()}})}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),void 0===__WEBPACK_AMD_DEFINE_RESULT__||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__146__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__147__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__148__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__149__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__150__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__151__},function(t,e){t.exports=__WEBPACK_EXTERNAL_MODULE__152__},,,function(t,e,r){r(81),t.exports=r(156)},function(t,e,r){var n,o;n=[r(80),r(145)],void 0===(o=function(t,e){"use strict";return t("HTMLSnippet.widget.HTMLSnippetContext",[e])}.apply(e,n))||(t.exports=o)}])});
5070},
5071'MicroflowTimer/widget/MicroflowTimer':function(){
5072define([
5073    "dojo/_base/declare",
5074    "mxui/widget/_WidgetBase",
5075    "dojo/_base/lang",
5076    "dojo/_base/array"
5077], function(declare, _WidgetBase, lang, dojoArray) {
5078    "use strict";
5079
5080    return declare("MicroflowTimer.widget.MicroflowTimer", [_WidgetBase], {
5081
5082        // Parameters configured in the Modeler.
5083        interval: 30000,
5084        once: false,
5085        startatonce: true,
5086        callEvent: "", // "callMicroflow" | "callNanoflow"
5087        microflow: "",
5088        nanoflow: null,
5089        firstIntervalAttr: null,
5090        intervalAttr: null,
5091        timerStatusAttr: null,
5092
5093        // Internal variables. Non-primitives created in the prototype are shared between all widget instances.
5094        _handles: null,
5095        _contextObj: null,
5096        _timer: null,
5097        _timeout: null,
5098        _timerStarted: false,
5099
5100        _flowRunning: false,
5101
5102        postCreate: function() {
5103            this._handles = [];
5104
5105            if(!(this.microflow && this.callEvent === "callMicroflow" || this.nanoflow.nanoflow && this.callEvent === "callNanoflow")) {
5106                mx.ui.error("No action specified for " + this.callEvent);
5107            }
5108        },
5109
5110        update: function (obj, callback) {
5111            console.debug(this.id + ".update");
5112
5113            this._contextObj = obj;
5114            this._resetSubscriptions();
5115
5116            //changes the interval to the attribute value, if set
5117            if (this._contextObj && this.intervalAttr) {
5118                this.interval = this._contextObj.get(this.intervalAttr);
5119            }
5120
5121            if (!this._timerStarted) {
5122                this._runTimer();
5123            }
5124
5125            this._executeCallback(callback, "update");
5126        },
5127
5128        resize: function(box) {},
5129
5130        uninitialize: function() {
5131            this._stopTimer();
5132        },
5133
5134        _checkTimerStatus: function() {
5135            console.debug(this.id + "._checkStatus");
5136
5137            var running, newInterval;
5138
5139            //both optional attributes are used
5140            if (this.intervalAttr && this.timerStatusAttr) {
5141                //get the running state
5142                running = this._contextObj.get(this.timerStatusAttr);
5143                //change the interval if it was set in the attribute
5144                newInterval = this._contextObj.get(this.intervalAttr);
5145                if (this.interval !== newInterval) {
5146                    this.interval = newInterval;
5147                    //stop and start the timer if it's running and will keep running
5148                    if (running && this._timerStarted) {
5149                        this._intervalChange(newInterval);
5150                    }
5151                }
5152
5153                this._timerStatusChange(running);
5154
5155                //just timer status is used
5156            } else if (this.timerStatusAttr) {
5157                running = this._contextObj.get(this.timerStatusAttr);
5158                this._timerStatusChange(running);
5159
5160                //just interval is used
5161            } else if (this.intervalAttr) {
5162                newInterval = this._contextObj.get(this.intervalAttr);
5163                if (this.interval !== newInterval) {
5164                    this.interval = newInterval;
5165                    this._intervalChange(newInterval);
5166                }
5167            }
5168
5169        },
5170
5171        _timerStatusChange: function (running) {
5172            if (running !== this._timerStarted) {
5173                if (running) {
5174                    this._runTimer();
5175                } else {
5176                    this._stopTimer();
5177                }
5178            }
5179        },
5180
5181        //Called when the optional timer interval attribute is changed
5182        _intervalChange: function (newInterval) {
5183            console.debug(this.id + "._intervalChange");
5184
5185            this.interval = newInterval;
5186
5187            if (this._timerStarted) {
5188                this._stopTimer();
5189                this._runTimer();
5190            }
5191        },
5192
5193        _runTimer: function() {
5194            console.debug(this.id + "._runTimer", this.interval);
5195            if (this.callEvent !== "" && this._contextObj) {
5196                this._timerStarted = true;
5197
5198                //if there's a first interval, get and use that first, then use the regular interval
5199                if (this.firstIntervalAttr) {
5200                    var firstInterval = this._contextObj.get(this.firstIntervalAttr);
5201
5202                    if (this.once) {
5203                        this._timeout = setTimeout(lang.hitch(this, this._executeEvent), firstInterval);
5204                    } else {
5205                        if (this.startatonce) {
5206                            this._executeEvent();
5207                        }
5208                        this._timeout = setTimeout(lang.hitch(this, function() {
5209                            this._executeEvent();
5210                            this._timer = setInterval(lang.hitch(this, this._executeEvent), this.interval);
5211                        }), firstInterval);
5212                    }
5213                    //otherwise just use the regulat interval
5214                } else {
5215                    if (this.once) {
5216                        this._timeout = setTimeout(lang.hitch(this, this._executeEvent), this.interval);
5217                    } else {
5218                        if (this.startatonce) {
5219                            this._executeEvent();
5220                        }
5221                        this._timer = setInterval(lang.hitch(this, this._executeEvent), this.interval);
5222                    }
5223                }
5224            }
5225        },
5226
5227        _stopTimer: function() {
5228            console.debug(this.id + "._stopTimer");
5229            this._timerStarted = false;
5230
5231            if (this._timer !== null) {
5232                console.debug(this.id + "._stopTimer timer cleared");
5233                clearInterval(this._timer);
5234                this._timer = null;
5235            }
5236            if (this._timeout !== null) {
5237                console.debug(this.id + "._stopTimer timeout cleared");
5238                clearTimeout(this._timeout);
5239                this._timeout = null;
5240            }
5241        },
5242
5243        _executeEvent: function() {
5244            if (this._flowRunning === true) {
5245                return;
5246              }
5247
5248              this._flowRunning = true;
5249
5250            if(this.callEvent === "callMicroflow" && this.microflow) {
5251                this._execMf();
5252            } else if (this.callEvent === "callNanoflow" && this.nanoflow.nanoflow){
5253                this._executeNanoFlow();
5254            } else {
5255                return;
5256            }
5257        },
5258
5259        _execMf: function() {
5260            console.debug(this.id + "._execMf");
5261            if (!this._contextObj) {
5262                return;
5263            }
5264
5265            if (this.microflow) {
5266                var mfObject = {
5267                    params: {
5268                        actionname: this.microflow,
5269                        applyto: "selection",
5270                        guids: [this._contextObj.getGuid()]
5271                    },
5272                    callback: lang.hitch(this, function(result) {
5273                        if (!result) {
5274                            console.debug(this.id + "._execMf callback, stopping timer");
5275                            this._stopTimer();
5276                        }
5277                        this._flowRunning = false;
5278                    }),
5279                    error: lang.hitch(this, function(error) {
5280                        console.error(this.id + ": An error ocurred while executing microflow: ", error);
5281                        this._flowRunning = false;
5282                    })
5283                };
5284
5285                if (!mx.version || mx.version && parseInt(mx.version.split(".")[0]) < 6) {
5286                    mfObject.store = {
5287                        caller: this.mxform
5288                    };
5289                } else {
5290                    mfObject.origin = this.mxform;
5291                }
5292
5293                mx.data.action(mfObject, this);
5294            }
5295        },
5296
5297        _executeNanoFlow: function() {
5298            if (this.nanoflow.nanoflow && this.mxcontext) {
5299                mx.data.callNanoflow({
5300                    nanoflow: this.nanoflow,
5301                    origin: this.mxform,
5302                    context: this.mxcontext,
5303                    callback: lang.hitch(this, function(result) {
5304                        if (!result) {
5305                            console.debug(this.id + "._executeNanoFlow callback, stopping timer");
5306                            this._stopTimer();
5307                        }
5308                        this._flowRunning = false;
5309                    }),
5310                    error: lang.hitch(this, function(error) {
5311                        console.error(this.id + ": An error ocurred while executing nanoflow: ", error);
5312                        this._flowRunning = false;
5313                    })
5314                });
5315            }
5316        },
5317
5318        // Reset subscriptions.
5319        _resetSubscriptions: function() {
5320            this.unsubscribeAll();
5321
5322            // When a mendix object exists create subscribtions.
5323            if (this._contextObj && this.timerStatusAttr) {
5324                this.subscribe({
5325                    guid: this._contextObj.getGuid(),
5326                    callback: lang.hitch(this, function(guid) {
5327                        this._checkTimerStatus();
5328                    })
5329                });
5330
5331                this.subscribe({
5332                    guid: this._contextObj.getGuid(),
5333                    attr: this.timerStatusAttr,
5334                    callback: lang.hitch(this, function(guid, attr, attrValue) {
5335                        this._checkTimerStatus();
5336                    })
5337                });
5338
5339                this.subscribe({
5340                    guid: this._contextObj.getGuid(),
5341                    attr: this.intervalAttr,
5342                    callback: lang.hitch(this, function(guid, attr, attrValue) {
5343                        this._intervalChange();
5344                    })
5345                });
5346            }
5347        },
5348
5349        _executeCallback: function (cb, from) {
5350            console.debug(this.id + "._executeCallback" + (from ? " from " + from : ""));
5351            if (cb && typeof cb === "function") {
5352                cb();
5353            }
5354        }
5355    });
5356});
5357
5358require(["MicroflowTimer/widget/MicroflowTimer"]);
5359
5360},
5361'url:RadioButtonList/widget/template/RadioButtonList.html':"<div class=\"RadioButtonList mx-radiobuttons form-group\" data-dojo-attach-point=\"radioButtonContainer\">\r\n    <label class=\"control-label\" id=\"${uniqueid}-label\" data-dojo-attach-point=\"radioButtonLabel\"></label>\r\n\t<div class=\"mx-radiogroup\"  aria-labelledby=\"${uniqueid}-label\" role=\"radiogroup\" data-dojo-attach-point=\"inputNodes\"></div>\r\n</div>\r\n",
5362'*now':function(r){r(['dojo/i18n!*preload*widgets/nls/widgets*["ar","ca","cs","da","de","el","en-gb","en-us","es-es","fi-fi","fr-fr","he-il","hu","it-it","ja-jp","ko-kr","nl-nl","nb","pl","pt-br","pt-pt","ru","sk","sl","sv","th","tr","zh-tw","zh-cn","ROOT"]']);}
5363,
5364'*noref':1}});
5365define("widgets/widgets", [
5366"RadioButtonList/widget/AttrRadioButtonList",
5367"RadioButtonList/widget/AssocRadioButtonList",
5368"HTMLSnippet/widget/HTMLSnippet",
5369"HTMLSnippet/widget/HTMLSnippetContext",
5370"MicroflowTimer/widget/MicroflowTimer"
5371], function() {});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.