diff --git a/crxOop.js b/crxOop.js index e688f6e..94b4806 100644 --- a/crxOop.js +++ b/crxOop.js @@ -1,4 +1,4 @@ -//version: 1.2 +//version: 1.2.01 /* The MIT License (MIT) @@ -357,10 +357,10 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA if(!gParsingData[vClass.CRX_CLASS_ID].remainingAbstractVirtuals.p.hasOwnProperty(tKey)) {continue;} - tRestOfMessage += (tIsNotFirst ? ", " : "") + tKey + "()"; + tRestOfMessage += (tIsNotFirst ? ", \"" : "\"") + tKey + "()\""; tIsNotFirst = true; } - halt("CAN NOT CREATE INSTANCE OF ABSTRACT CLASS. MISSING IMPLEMENTATIONS FOR FUNCTIONS " + tRestOfMessage); + halt("CAN NOT CREATE INSTANCE OF ABSTRACT CLASS \"" + getClassNameOrID(vClass) + "\". MISSING IMPLEMENTATIONS FOR FUNCTIONS " + tRestOfMessage); } vObjects = _new_build(gCompiledClasses[vClass.CRX_CLASS_ID], vCRX_CLASS_INFOs, {p: false}, vLength); @@ -1588,7 +1588,15 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA 'AN ABSTRACT VIRTUAL FUNCTION, CAN NOT BE DECLARED FINAL'); } else - {pVirtualFinalFunctions[tKey] = pClassNameOrID;} + { + if(pRemainingAbstractVirtuals.p[tKey]) + { + delete pRemainingAbstractVirtuals.p[tKey]; + pRemainingAbstractVirtuals.length--; + } + + pVirtualFinalFunctions[tKey] = pClassNameOrID; + } } else { diff --git a/minifed/crxOop.min.js b/minifed/crxOop.min.js index cfefb39..722c1c7 100644 --- a/minifed/crxOop.min.js +++ b/minifed/crxOop.min.js @@ -1,4 +1,4 @@ -//version: 1.2 +//version: 1.2.01 /* The MIT License (MIT) @@ -25,4 +25,4 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FO DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -(function(){if(window.crx_registerClass){return;}var aR=true;var e=(function(){return !this;})();var n=(e?(function(){return !this;})():(window.CRXNS_NON_STRICT_MODE?false:true));var ah=function(){};var p=null;var aG=null;var al=(Object.seal&&aR?Object.seal:function(){});var A=(Object.freeze?Object.freeze:function(){});var aa=false;var aL=false;var aA=false;var a=false;var u=null;var V={};var ao={};var at={};var a0={};var X=1;var ay={};var aU={};var a8={};var j={};var ar={};var ac={};var h={};var N={};var K={};var aE={};var o={};var aM={};var ae={};var v={};var aS=1;var Q={};var F={};var i={};var r=function(ba,a9){aP("CrxOop ==> "+ba,a9);};var aP=function(ba,a9){if(window.console){window.console.log(ba);}};var aY={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object Error]":"error"};var P=[null,null];var aD=[];var a7={};var z={};if(!Object.create){aG=function(a9){function ba(){}ba.prototype=a9;return new ba();};}else{aG=Object.create;}if(Object.defineProperty){var g={};try{Object.defineProperty(g,"s",{value:"d",writable:false});aa=true;}catch(aQ){}}function aj(){if(!z.x){n=true;}}function aZ(){return(aZ.caller===aj);}if(aa&&!n){Object.defineProperty(z,"x",{get:aZ,set:function(){},enumerable:true});aj();}if(!aa&&!n){am("CURRENT BROWSER IS NOT SUPPORTED IN NON STRICT MODE");}function I(a9){if(a9==null){return(a9+"");}return(((typeof(a9)==="object")||(typeof(a9)==="function"))?(aY[Object.prototype.toString.call(a9)]||"object"):(typeof(a9)));}function t(ba,a9){if(a){return;}aL=true;if(V.hasOwnProperty(ba)||v.hasOwnProperty(ba)){am("Interface or Class with name '"+ba+"' already declared");}if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;a9.CRX_CLASS_NAME=ba;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)||(a9.CRX_CLASS_NAME!==ba)||(a9.CRX_INTERFACE_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '"+ba+"'");}A(a9);a3(a9);X=X+1;}V[ba]=a9.CRX_CLASS_ID;}function ag(a9){if(a){return;}if(typeof(a9)==="string"){if(!V[a9]){return null;}else{return(ao[V[a9]]||null);}}else{if(a9.CRX_INTERFACE_ID!==undefined){return null;}else{if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '$C"+X+"'");}A(a9);a3(a9);X=X+1;}return ao[a9.CRX_CLASS_ID];}}}function aO(a9){if(a){return;}if(typeof(a9)==="string"){return(V[a9]||null);}return(a9.CRX_CLASS_ID||null);}function aT(a9){if(a9.CRX_CLASS_NAME){return a9.CRX_CLASS_NAME;}if(a9.CRX_CLASS_ID){return"$C"+a9.CRX_CLASS_ID;}return null;}function m(a9,ba){if(a){return;}aL=true;if(V.hasOwnProperty(a9)||v.hasOwnProperty(a9)){am("Interface or Class with name '"+a9+"' already declared");}if(!ba.CRX_INTERFACE_ID){ba.CRX_DEFINITION=true;ba.CRX_INTERFACE_ID=aS;ba.CRX_INTERFACE_NAME=a9;if((ba.CRX_DEFINITION!==true)||(ba.CRX_INTERFACE_ID!==aS)||(ba.CRX_INTERFACE_NAME!==a9)||(ba.CRX_CLASS_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '"+a9+"'");}A(ba);Q[aS]=ba;aS=aS+1;}v[a9]=ba.CRX_INTERFACE_ID;}function a4(a9){if(a){return;}if(typeof(a9)==="string"){if(!v[a9]){return null;}else{return(Q[v[a9]]||null);}}else{if(a9.CRX_CLASS_ID!==undefined){return null;}else{if(!a9.CRX_INTERFACE_ID){a9.CRX_DEFINITION=true;a9.CRX_INTERFACE_ID=aS;if((a9.CRX_DEFINITION!==true)||(a9.CRX_INTERFACE_ID!==aS)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '$I"+aS+"'");}A(a9);Q[aS]=a9;aS=aS+1;}return Q[a9.CRX_INTERFACE_ID];}}}function M(a9){if(a){return;}if(typeof(a9)==="string"){return(v[a9]||null);}return(a9.CRX_INTERFACE_ID||null);}function C(a9){if(a9.CRX_INTERFACE_NAME){return a9.CRX_INTERFACE_NAME;}if(a9.CRX_INTERFACE_ID){return"$I"+a9.CRX_INTERFACE_ID;}return null;}function c(bh,bb,ba){if(a){return;}var bc=false;var be=null;var bg=[];var bd=[];var bf=-1;var bo=null;var bi=I(bb);var bk=0;aL=true;aD.push(a7);a7={};if(typeof(bh)==="number"){bc=true;bf=Math.abs(bh);if((bi!=="array")&&(bi!=="function")){be=ag(bb);bo=Array.prototype.slice.call(arguments,2);}else{if((bi==="array")&&(bb.length<1)){return null;}be=ag(ba);bo=bb;}}else{be=ag(bh);bf=1;bo=Array.prototype.slice.call(arguments,1);}if(be===null){am("UNABLE TO RESOLVE CLASS DURING CALL TO crx_new");}for(bk=0;bk0){var bj="";var bl=false;for(bn in i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p){if(!i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p.hasOwnProperty(bn)){continue;}bj+=(bl?", ":"")+bn+"()";bl=true;}am("CAN NOT CREATE INSTANCE OF ABSTRACT CLASS. MISSING IMPLEMENTATIONS FOR FUNCTIONS "+bj);}bg=aH(a0[be.CRX_CLASS_ID],bd,{p:false},bf);if(bg.length===0){am("UNKNOWN ERROR DURING CALL TO crx_new");}for(var bn in aU[be.CRX_CLASS_ID]){if(!aU[be.CRX_CLASS_ID].hasOwnProperty(bn)){continue;}for(bk=0;bk-1;bb--){for(bd=0;bd-1;bb--){B(bh,bg.PRIVATE_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pr",bg.PRIVATE_FUNCTIONS[bb][0],bg.PRIVATE_FUNCTIONS[bb][1],false));if(!n){for(bd=0;bd-1;bb--){for(bd=0;bd-1;bb--){B(ba,bg.PUBLIC_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pu",bg.PUBLIC_FUNCTIONS[bb][0],bg.PUBLIC_FUNCTIONS[bb][1],false));}if(bg.PUBLIC_CONSTRUCT!==null){be=true;if(bg.EXTENDS&&ba[0].PARENT.CONSTRUCT){for(bb=0;bb-1;bb--){B(ba,bg.PROTECTED_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pro",bg.PROTECTED_FUNCTIONS[bb][0],bg.PROTECTED_FUNCTIONS[bb][1],true));}}for(bb=0;bb0){am("DEFINITION ERROR");}}}function a2(bc){if(aE[bc.CRX_CLASS_ID]){return bc;}var a9=[];var bd=[];var ba={};ba["extensionChain"]={};ba["virtuals"]={};ba["nonVirtuals"]={};ba["virtualFinalFunctions"]={};ba["remainingAbstractVirtuals"]={p:{},length:0};a3(bc);a5(ao[bc.CRX_CLASS_ID],a9,bd);H(ao[bc.CRX_CLASS_ID],a9,bd,ba);for(var bb=0;bb0){am("DEFINITION ERROR");}}function a3(bd){if(at[bd.CRX_CLASS_ID]!==undefined){return;}for(var ba in bd){if(ba==="VERBOSE"){var bg={};var bf=true;for(var bb in bd){if(!bd.hasOwnProperty(bb)){continue;}var bc=bb.split(/\s+/);var be=bg;if(bf){bf=false;continue;}if(bc.length===1){bc[0]=bc[0].toUpperCase();}else{for(var a9=0;a9"+"MEMBER ALREADY DECLARED AS VIRTUAL IN BASE CLASSES");}}}function l(bg,bf,a9,bb,bh,ba,bi){var bd=(a9.indexOf("STATIC")>-1);var be=(a9.indexOf("PROTECTED")>-1);for(var bc in bb){if(!bb.hasOwnProperty(bc)||af(bf,bg,a9,bc)||aI(bf,bg,a9,bc,bb[bc],false)){continue;}if(!bd){if(bh.hasOwnProperty(bc)){bf.push(bg+"::"+bc+"=>"+"MEMBER MUST BE DECLARED VIRTUAL. SEE BASE CLASSES.");}ba[bc]=true;}az(bf,bg,bc,bi);}}function ab(bg,bf,a9,bd,bh,bb,ba,bc,bj){var bi=(a9.indexOf("FINAL")>-1);for(var be in bd){if(!bd.hasOwnProperty(be)||af(bf,bg,a9,be)||aI(bf,bg,a9,be,bd[be],true)){continue;}if(bb.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+"MEMBER MUST BE DECLARED AS NON VIRTUAL. SEE BASE CLASSES");}bh[be]=true;az(bf,bg,be,bj);if(ba.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+'CAN NOT OVERRIDE VIRTUAL MEMBER. MEMBER ALREADY DECLARED FINAL IN BASE CLASS "'+ba[be]+'"');}if(bi){if(bd[be]===0){bf.push(bg+"::"+be+"=>"+"AN ABSTRACT VIRTUAL FUNCTION, CAN NOT BE DECLARED FINAL");}else{ba[be]=bg;}}else{if(bd[be]===0){if(!bc.p[be]){bc.p[be]=true;bc.length++;}}else{if(bc.p[be]){delete bc.p[be];bc.length--;}}}}}function k(bb,bg,ba,be,bc,a9,bd){for(var bf in be){if(!be.hasOwnProperty(bf)){continue;}if((bf!=="VARS")&&(bf!=="FUNCTIONS")){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+bf+'" IS NOT ALLOWED');}else{if(bf==="VARS"){O(bb,bg,ba+" VARS",be["VARS"],bc,bd);}else{if(bf==="FUNCTIONS"){if(n){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+'FUNCTIONS" IS NOT ALLOWED; RUNNING IN STRICT JS MODE OR STATIC FUNCTIONS CAN NOT '+"BE SUPPORTED IN THIS BROWSER");}else{l(bb,bg,ba+" FUNCTIONS",be["FUNCTIONS"],bc,a9,bd);}}}}}}function aW(be,bd,a9){if(F.hasOwnProperty(be.CRX_INTERFACE_ID)){return;}var bf={};F[be.CRX_INTERFACE_ID]={"functions":{},"trace":{},"fullTrace":{}};if(be.hasOwnProperty("INHERITS")){if(I(be["INHERITS"])!=="array"){bd.push("'INHERITS' DEFINITION FOR INTERFACE '"+C(be)+"' IS NOT AN ARRAY");}else{for(var bb=0;bb"+'"'+bb+'" MUST BE A FUNCTION');return true;}return false;}function az(bc,a9,bb,ba){if(ba.hasOwnProperty(bb)){bc.push('DUPLICATE MEMBER "'+bb+'" FOUND IN CLASS "'+a9+'"');}else{ba[bb]=true;}}function a1(a9){if(a0[a9.CRX_CLASS_ID]){return;}var bd={EXTENDS:null,IMPLEMENTES:null,PUBLIC:null,PRIVATE:null,PROTECTED:null};var ba=null;var bb={PUBLIC:{},PRIVATE:{},PROTECTED:{}};var bc={VARS:{},FUNCTIONS:{}};bd.CRX_CLASS_ID=a9.CRX_CLASS_ID;if(a9.hasOwnProperty("EXTENDS")){bd.EXTENDS=a0[aO(a9["EXTENDS"])];}if(a9.hasOwnProperty("IMPLEMENTS")){bd.IMPLEMENTS=a9["IMPLEMENTS"];}if(a9.hasOwnProperty("PUBLIC")){bd.PUBLIC_VARS=[];bd.PUBLIC_FUNCTIONS=[];bd.PUBLIC_VIRTUAL=null;bd.PUBLIC_VIRTUAL_FUNCTIONS=[];bd.PUBLIC_CONSTRUCT=null;if(a9["PUBLIC"].hasOwnProperty("VARS")){for(ba in a9["PUBLIC"]["VARS"]){if(a9["PUBLIC"]["VARS"].hasOwnProperty(ba)){bd.PUBLIC_VARS.push(S([ba,a9["PUBLIC"]["VARS"][ba]]));bb.PUBLIC[ba]=true;bc.VARS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["FUNCTIONS"]){if(a9["PUBLIC"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_FUNCTIONS.push([ba,a9["PUBLIC"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("VIRTUAL")){if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PUBLIC[ba]=true;}}}if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PUBLIC"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PUBLIC_VIRTUAL_FUNCTIONS.length>0){bd.PUBLIC_VIRTUAL=true;}}if(a9["PUBLIC"].hasOwnProperty("CONSTRUCT")){bd.PUBLIC_CONSTRUCT=a9["PUBLIC"]["CONSTRUCT"];}if((bd.PUBLIC_VARS.length>0)||(bd.PUBLIC_FUNCTIONS.length>0)||(bd.PUBLIC_VIRTUAL)||(bd.PUBLIC_CONSTRUCT)){bd.PUBLIC=true;}}if(a9.hasOwnProperty("PRIVATE")){bd.PRIVATE_VARS=[];bd.PRIVATE_FUNCTIONS=[];bd.PRIVATE_VIRTUAL=null;bd.PRIVATE_VIRTUAL_FUNCTIONS=[];if(a9["PRIVATE"].hasOwnProperty("VARS")){for(ba in a9["PRIVATE"]["VARS"]){if(a9["PRIVATE"]["VARS"].hasOwnProperty(ba)){bd.PRIVATE_VARS.push(S([ba,a9["PRIVATE"]["VARS"][ba]]));bb.PRIVATE[ba]=true;bc.VARS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["FUNCTIONS"]){if(a9["PRIVATE"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_FUNCTIONS.push([ba,a9["PRIVATE"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("VIRTUAL")){if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PRIVATE[ba]=true;}}}if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PRIVATE"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PRIVATE_VIRTUAL_FUNCTIONS.length>0){bd.PRIVATE_VIRTUAL=true;}}if((bd.PRIVATE_VARS.length>0)||(bd.PRIVATE_FUNCTIONS.length>0)||bd.PRIVATE_VIRTUAL){bd.PRIVATE=true;}}if(a9.hasOwnProperty("PROTECTED")){bd.PROTECTED_FUNCTIONS=[];bd.PROTECTED_VIRTUAL=null;bd.PROTECTED_VIRTUAL_FUNCTIONS=[];if(a9["PROTECTED"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["FUNCTIONS"]){if(a9["PROTECTED"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_FUNCTIONS.push([ba,a9["PROTECTED"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PROTECTED"].hasOwnProperty("VIRTUAL")){if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PROTECTED[ba]=true;}}}if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PROTECTED"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PROTECTED_VIRTUAL_FUNCTIONS.length>0){bd.PROTECTED_VIRTUAL=true;}}if((bd.PROTECTED_FUNCTIONS.length>0)||(bd.PROTECTED_VIRTUAL)){bd.PROTECTED=true;}}a0[a9.CRX_CLASS_ID]=bd;ac[a9.CRX_CLASS_ID]=bb;h[a9.CRX_CLASS_ID]=bc;}function ap(a9){aV(a9.CRX_CLASS_ID,a9);}function aV(bc,a9){if(a9.EXTENDS){aV(bc,a9.EXTENDS);}for(var ba=0;ba-1;bb--){if(a9[aV.KEYS[ba][2]][bb][1]!==0){aU[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9[aV.KEYS[ba][2]][bb][1];}j[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;if(!a8[bc][a9[aV.KEYS[ba][2]][bb][0]]){a8[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;}}}}}aV.KEYS=[["PUBLIC","PUBLIC_VIRTUAL","PUBLIC_VIRTUAL_FUNCTIONS"],["PRIVATE","PRIVATE_VIRTUAL","PRIVATE_VIRTUAL_FUNCTIONS"],["PROTECTED","PROTECTED_VIRTUAL","PROTECTED_VIRTUAL_FUNCTIONS"]];function ai(a9){if(N[a9.CRX_CLASS_ID]===undefined){if(a9.hasOwnProperty("PUBLIC")&&a9["PUBLIC"].hasOwnProperty("STATIC")){N[a9.CRX_CLASS_ID]={};if(a9["PUBLIC"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PUBLIC"]["STATIC"]["VARS"]){if(!a9["PUBLIC"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=a9["PUBLIC"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PUBLIC"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PUBLIC"]["STATIC"]["FUNCTIONS"]){if(!a9["PUBLIC"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=au(a9.CRX_CLASS_ID,a9["PUBLIC"]["STATIC"]["FUNCTIONS"][ba]);}}}else{N[a9.CRX_CLASS_ID]=null;}if(a9.hasOwnProperty("PRIVATE")&&a9["PRIVATE"].hasOwnProperty("STATIC")){if(N[a9.CRX_CLASS_ID]===null){K[a9.CRX_CLASS_ID]={};}else{K[a9.CRX_CLASS_ID]=aG(N[a9.CRX_CLASS_ID]);}if(a9["PRIVATE"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PRIVATE"]["STATIC"]["VARS"]){if(!a9["PRIVATE"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}K[a9.CRX_CLASS_ID][ba]=a9["PRIVATE"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PRIVATE"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PRIVATE"]["STATIC"]["FUNCTIONS"]){if(!a9["PRIVATE"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}T(K[a9.CRX_CLASS_ID],ba,au(a9.CRX_CLASS_ID,a9["PRIVATE"]["STATIC"]["FUNCTIONS"][ba]));}}}else{K[a9.CRX_CLASS_ID]=null;}}}function W(ba){if(a){return;}var a9=aO(ba);if(a9===null){return null;}return(aq(this).CRX_OBJECT_SEGMENTS[a9]||null);}function ad(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){return(N[ba.CRX_CLASS_ID]||null);}else{return null;}}function aJ(bf,ba){if(a){return;}var bc=null;var bd=null;var be=null;if((bf!==undefined)&&(bf!==null)){bc=aO(bf);bd=this.CAST(bf);}else{bc=aw(this.PARENT);bd=this.PARENT;}if(!bc){am('UNDECLARED CLASS "??'+bd+'??"');}if(!bd){am('CAN NOT CALL VIRTUAL FUNCTION "'+ba+'" ON CLASS "'+aT(ao[bc])+'" INSTANCE CAN NOT BE CASTED TO "'+aT(ao[bc])+'"');}if(J(this)===bc){if(h[bc].VARS[ba]){return this[ba];}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){return this[ba].apply(this,Array.prototype.slice.call(arguments,2));}else{if(h[bc].FUNCTIONS[ba]===2){var bg=Z(bc,"puv",ba);return bg.apply(bd,Array.prototype.slice.call(arguments,2));}}}}}else{if(h[bc].VARS[ba]){if(ac[bc].PUBLIC[ba]){if(arguments.length===2){return bd[ba];}else{if(arguments.length===3){bd[ba]=arguments[2];return;}}}}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){if(ac[bc].PUBLIC[ba]){return bd[ba].apply(bd,Array.prototype.slice.call(arguments,2));}else{if(ac[bc].PROTECTED[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){return bd[ba].apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}}}}else{if(h[bc].FUNCTIONS[ba]===2){if(!ac[bc].PRIVATE[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;var a9=false;var bi=false;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){bi=true;}while(bh!==null){bj=J(bh);if(h[bj].FUNCTIONS[ba]){if(ac[bj].PROTECTED[ba]||ac[bj].PUBLIC[ba]){if(ac[bj].PROTECTED[ba]){a9=true;}if(h[bj].FUNCTIONS[ba]===2){if((bj==bc)&&(bh===bb.CRX_OBJECT_SEGMENTS[bj])){if(!a9||(bi)){var bg=Z(bc,"puv",ba);return bg.apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}else{break;}}}}else{break;}}bh=bh.PARENT;}}}}}}}am('ILLEGAL ACCESS TO, OR UNKNOWN, MEMBER "'+ba+'" IN CLASS "'+aT(ao[bc])+'"');}function D(a9){return function(bb){if(a){return;}if(this===a9){var ba=aw(this.THIS);if(ba!==null){return(aq(this).CRX_PRIVATE_OBJECT_SEGMENTS[ba]||null);}}am("SECURITY ERROR WHILE USING 'O'");};}function ak(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){if((P[0]===ba.CRX_CLASS_ID)&&(ak.caller===P[1])){return(K[ba.CRX_CLASS_ID]||N[ba.CRX_CLASS_ID]||null);}else{return(N[ba.CRX_CLASS_ID]||null);}}else{return null;}}function aX(be,bd){if(typeof(be)==="string"){return false;}var bc=aN(be);var ba=null;var a9=null;if(typeof(bd)==="string"){ba=ag(bd);if(ba===null){ba=a4(bd);}if(ba===null){return false;}}else{ba=bd;}a9=aN(ba);if(bc==="$CRX__native"){if(a9==="$CRX__native"){return(be instanceof bd);}return false;}else{if((bc==="$CRX_DEFINITION__INTERFACE")||(bc==="$CRX_DEFINITION__CLASS")){return false;}else{if(bc==="$CRX_OBJECT"){if(a9==="$CRX_DEFINITION__CLASS"){var bb=ao[aw(be.THIS)];while(bb){if(ba.CRX_CLASS_ID===bb.CRX_CLASS_ID){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}else{if(a9==="$CRX_DEFINITION__INTERFACE"){var bb=ao[aw(be.THIS)];while(bb){if(aM[bb.CRX_CLASS_ID]&&aM[bb.CRX_CLASS_ID].hasOwnProperty(ba.CRX_INTERFACE_ID)){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}}}}}return false;}function aN(a9){if(a9.CRX_DEFINITION){if(a9.CRX_INTERFACE_ID&&(Q[a9.CRX_INTERFACE_ID]===a9)){return"$CRX_DEFINITION__INTERFACE";}if(a9.CRX_CLASS_ID&&((ao[a9.CRX_CLASS_ID]===a9)||(at[a9.CRX_CLASS_ID]===a9))){return"$CRX_DEFINITION__CLASS";}}if(a9.CRX_CLASS_INFO&&(aq(a9)!==null)){return"$CRX_OBJECT";}return"$CRX__native";}function q(bb,a9,be){if(a){return;}var bc=ag(bb);var ba=ag(a9);var bd=null;if(bc===null){am('UNDECLARED CLASS "??'+bb+'??"');}else{if(ba===null){am('UNDECLARED CLASS "??'+a9+'??"');}}E(bc);E(ba);bd=a0[bc.CRX_CLASS_ID];if(!be&&(bd===a0[ba.CRX_CLASS_ID])){return false;}else{while(bd){if(bd===a0[ba.CRX_CLASS_ID]){return true;}bd=bd.EXTENDS;}}return false;}function w(bb,ba){if(a){return;}var bc=ag(bb);var a9=a4(ba);if(a9===null){am('UNDECLARED INTERFACE "??'+ba+'??"');}E(bc);while(bc){if(aM[bc.CRX_CLASS_ID]&&aM[bc.CRX_CLASS_ID].hasOwnProperty(a9.CRX_INTERFACE_ID)){return true;}if(bc.hasOwnProperty("EXTENDS")){bc=ag(bc["EXTENDS"]);}else{bc=null;}}return false;}function Y(a9){return function(){p=a9;};}function a6(ba){var a9="Security Error, exposed method overriden";if(window.crx_new!==c){am(a9);return false;}else{if(window.crx_registerClass!==t){am(a9);return false;}else{if(window.crx_registerInterface!==m){am(a9);return false;}else{if(window.crx_static!==ad){am(a9);return false;}else{if(window.crxOop_setLogger!==aF){am(a9);return false;}else{if(window.crxOop_assertFunctionIdentity!==av){am(a9);return false;}else{if(window.crxOop_assertIdentity!==a6){am(a9);return false;}else{if(window.crxOop_instanceof!==aX){am(a9);return false;}else{if(window.crxOop_typeof!==aN){am(a9);return false;}else{return true;}}}}}}}}}}function av(bb,ba,a9){if(ay[aw(bb.THIS)][ba][a9]!==bb[a9]){am("Security Error, object's public method was overriden");return false;}}function am(ba){if(!a){if(!aA){U(V);U(ay);U(aU);U(a8);U(j);U(N);U(K);for(var a9 in ao){if(ao.hasOwnProperty(a9)){ao[a9]=null;}}U(ao);}a=true;u=ba;}if(!aA){r("CrxOop FATAL ERROR:: "+u,0);}throw"CrxOop FATAL ERROR:: "+u;}function U(ba){var a9=null;for(a9 in ba){if(ba.hasOwnProperty(a9)){delete ba[a9];}}}function G(bb,ba){for(var a9 in ba){if(!ba.hasOwnProperty(a9)||bb.hasOwnProperty(a9)){continue;}bb[a9]=ba[a9];}}function T(bb,ba,a9){if(aR&&aa){T.o.value=a9;Object.defineProperty(bb,ba,T.o);}else{bb[ba]=a9;}}T.o={value:null,writable:false};function B(bc,bb,a9){if(aR&&aa){T.o.value=a9;for(var ba=bc.length-1;ba>-1;ba--){Object.defineProperty(bc[ba],bb,T.o);}}else{for(var ba=bc.length-1;ba>-1;ba--){bc[ba][bb]=a9;}}}function aF(a9){if(a||aL){return false;}aP=a9;return true;}function S(a9,ba){if(typeof(a9)==="function"){return function(){if(a){return;}return a9.apply(null,arguments);};}else{return a9;}}T(window,"crx_new",c);T(window,"crx_registerClass",t);T(window,"crx_registerInterface",m);T(window,"crx_static",(n?ad:ak));T(window,"crxOop_setLogger",aF);T(window,"crxOop_instanceof",aX);T(window,"crxOop_typeof",aN);T(window,"crxOop_isClassExtending",function(ba,a9){return q(ba,a9,false);});T(window,"crxOop_isClassChaining",function(ba,a9){return q(ba,a9,true);});T(window,"crxOop_isClassImplementing",w);T(window,"crxOop_areStaticFunctionsSupported",function(){return !n;});T(window,"crxOop_createObject",aG);T(window,"crxOop_setStrictMode",function(a9){if(aL){return;}aR=a9;});T(window,"crxOop_areStructuresLocked",function(){return aa&&Object.seal&&A&&aR;});T(window,"crxOop_var",S);T(window,"crxOop_setRunningTestCasesMode",function(a9){if(aL){return;}if(a9){aA=true;}});T(window,"crxOop_unHalt",function(a9){if(aA){if(!a){am("UNHALTING WHEN NOT HALTED: "+a9);}a=false;}});})(); \ No newline at end of file +(function(){if(window.crx_registerClass){return;}var aR=true;var e=(function(){return !this;})();var n=(e?(function(){return !this;})():(window.CRXNS_NON_STRICT_MODE?false:true));var ah=function(){};var p=null;var aG=null;var al=(Object.seal&&aR?Object.seal:function(){});var A=(Object.freeze?Object.freeze:function(){});var aa=false;var aL=false;var aA=false;var a=false;var u=null;var V={};var ao={};var at={};var a0={};var X=1;var ay={};var aU={};var a8={};var j={};var ar={};var ac={};var h={};var N={};var K={};var aE={};var o={};var aM={};var ae={};var v={};var aS=1;var Q={};var F={};var i={};var r=function(ba,a9){aP("CrxOop ==> "+ba,a9);};var aP=function(ba,a9){if(window.console){window.console.log(ba);}};var aY={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object Error]":"error"};var P=[null,null];var aD=[];var a7={};var z={};if(!Object.create){aG=function(a9){function ba(){}ba.prototype=a9;return new ba();};}else{aG=Object.create;}if(Object.defineProperty){var g={};try{Object.defineProperty(g,"s",{value:"d",writable:false});aa=true;}catch(aQ){}}function aj(){if(!z.x){n=true;}}function aZ(){return(aZ.caller===aj);}if(aa&&!n){Object.defineProperty(z,"x",{get:aZ,set:function(){},enumerable:true});aj();}if(!aa&&!n){am("CURRENT BROWSER IS NOT SUPPORTED IN NON STRICT MODE");}function I(a9){if(a9==null){return(a9+"");}return(((typeof(a9)==="object")||(typeof(a9)==="function"))?(aY[Object.prototype.toString.call(a9)]||"object"):(typeof(a9)));}function t(ba,a9){if(a){return;}aL=true;if(V.hasOwnProperty(ba)||v.hasOwnProperty(ba)){am("Interface or Class with name '"+ba+"' already declared");}if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;a9.CRX_CLASS_NAME=ba;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)||(a9.CRX_CLASS_NAME!==ba)||(a9.CRX_INTERFACE_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '"+ba+"'");}A(a9);a3(a9);X=X+1;}V[ba]=a9.CRX_CLASS_ID;}function ag(a9){if(a){return;}if(typeof(a9)==="string"){if(!V[a9]){return null;}else{return(ao[V[a9]]||null);}}else{if(a9.CRX_INTERFACE_ID!==undefined){return null;}else{if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '$C"+X+"'");}A(a9);a3(a9);X=X+1;}return ao[a9.CRX_CLASS_ID];}}}function aO(a9){if(a){return;}if(typeof(a9)==="string"){return(V[a9]||null);}return(a9.CRX_CLASS_ID||null);}function aT(a9){if(a9.CRX_CLASS_NAME){return a9.CRX_CLASS_NAME;}if(a9.CRX_CLASS_ID){return"$C"+a9.CRX_CLASS_ID;}return null;}function m(a9,ba){if(a){return;}aL=true;if(V.hasOwnProperty(a9)||v.hasOwnProperty(a9)){am("Interface or Class with name '"+a9+"' already declared");}if(!ba.CRX_INTERFACE_ID){ba.CRX_DEFINITION=true;ba.CRX_INTERFACE_ID=aS;ba.CRX_INTERFACE_NAME=a9;if((ba.CRX_DEFINITION!==true)||(ba.CRX_INTERFACE_ID!==aS)||(ba.CRX_INTERFACE_NAME!==a9)||(ba.CRX_CLASS_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '"+a9+"'");}A(ba);Q[aS]=ba;aS=aS+1;}v[a9]=ba.CRX_INTERFACE_ID;}function a4(a9){if(a){return;}if(typeof(a9)==="string"){if(!v[a9]){return null;}else{return(Q[v[a9]]||null);}}else{if(a9.CRX_CLASS_ID!==undefined){return null;}else{if(!a9.CRX_INTERFACE_ID){a9.CRX_DEFINITION=true;a9.CRX_INTERFACE_ID=aS;if((a9.CRX_DEFINITION!==true)||(a9.CRX_INTERFACE_ID!==aS)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '$I"+aS+"'");}A(a9);Q[aS]=a9;aS=aS+1;}return Q[a9.CRX_INTERFACE_ID];}}}function M(a9){if(a){return;}if(typeof(a9)==="string"){return(v[a9]||null);}return(a9.CRX_INTERFACE_ID||null);}function C(a9){if(a9.CRX_INTERFACE_NAME){return a9.CRX_INTERFACE_NAME;}if(a9.CRX_INTERFACE_ID){return"$I"+a9.CRX_INTERFACE_ID;}return null;}function c(bh,bb,ba){if(a){return;}var bc=false;var be=null;var bg=[];var bd=[];var bf=-1;var bo=null;var bi=I(bb);var bk=0;aL=true;aD.push(a7);a7={};if(typeof(bh)==="number"){bc=true;bf=Math.abs(bh);if((bi!=="array")&&(bi!=="function")){be=ag(bb);bo=Array.prototype.slice.call(arguments,2);}else{if((bi==="array")&&(bb.length<1)){return null;}be=ag(ba);bo=bb;}}else{be=ag(bh);bf=1;bo=Array.prototype.slice.call(arguments,1);}if(be===null){am("UNABLE TO RESOLVE CLASS DURING CALL TO crx_new");}for(bk=0;bk0){var bj="";var bl=false;for(bn in i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p){if(!i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p.hasOwnProperty(bn)){continue;}bj+=(bl?', "':'"')+bn+'()"';bl=true;}am('CAN NOT CREATE INSTANCE OF ABSTRACT CLASS "'+aT(be)+'". MISSING IMPLEMENTATIONS FOR FUNCTIONS '+bj);}bg=aH(a0[be.CRX_CLASS_ID],bd,{p:false},bf);if(bg.length===0){am("UNKNOWN ERROR DURING CALL TO crx_new");}for(var bn in aU[be.CRX_CLASS_ID]){if(!aU[be.CRX_CLASS_ID].hasOwnProperty(bn)){continue;}for(bk=0;bk-1;bb--){for(bd=0;bd-1;bb--){B(bh,bg.PRIVATE_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pr",bg.PRIVATE_FUNCTIONS[bb][0],bg.PRIVATE_FUNCTIONS[bb][1],false));if(!n){for(bd=0;bd-1;bb--){for(bd=0;bd-1;bb--){B(ba,bg.PUBLIC_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pu",bg.PUBLIC_FUNCTIONS[bb][0],bg.PUBLIC_FUNCTIONS[bb][1],false));}if(bg.PUBLIC_CONSTRUCT!==null){be=true;if(bg.EXTENDS&&ba[0].PARENT.CONSTRUCT){for(bb=0;bb-1;bb--){B(ba,bg.PROTECTED_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pro",bg.PROTECTED_FUNCTIONS[bb][0],bg.PROTECTED_FUNCTIONS[bb][1],true));}}for(bb=0;bb0){am("DEFINITION ERROR");}}}function a2(bc){if(aE[bc.CRX_CLASS_ID]){return bc;}var a9=[];var bd=[];var ba={};ba["extensionChain"]={};ba["virtuals"]={};ba["nonVirtuals"]={};ba["virtualFinalFunctions"]={};ba["remainingAbstractVirtuals"]={p:{},length:0};a3(bc);a5(ao[bc.CRX_CLASS_ID],a9,bd);H(ao[bc.CRX_CLASS_ID],a9,bd,ba);for(var bb=0;bb0){am("DEFINITION ERROR");}}function a3(bd){if(at[bd.CRX_CLASS_ID]!==undefined){return;}for(var ba in bd){if(ba==="VERBOSE"){var bg={};var bf=true;for(var bb in bd){if(!bd.hasOwnProperty(bb)){continue;}var bc=bb.split(/\s+/);var be=bg;if(bf){bf=false;continue;}if(bc.length===1){bc[0]=bc[0].toUpperCase();}else{for(var a9=0;a9"+"MEMBER ALREADY DECLARED AS VIRTUAL IN BASE CLASSES");}}}function l(bg,bf,a9,bb,bh,ba,bi){var bd=(a9.indexOf("STATIC")>-1);var be=(a9.indexOf("PROTECTED")>-1);for(var bc in bb){if(!bb.hasOwnProperty(bc)||af(bf,bg,a9,bc)||aI(bf,bg,a9,bc,bb[bc],false)){continue;}if(!bd){if(bh.hasOwnProperty(bc)){bf.push(bg+"::"+bc+"=>"+"MEMBER MUST BE DECLARED VIRTUAL. SEE BASE CLASSES.");}ba[bc]=true;}az(bf,bg,bc,bi);}}function ab(bg,bf,a9,bd,bh,bb,ba,bc,bj){var bi=(a9.indexOf("FINAL")>-1);for(var be in bd){if(!bd.hasOwnProperty(be)||af(bf,bg,a9,be)||aI(bf,bg,a9,be,bd[be],true)){continue;}if(bb.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+"MEMBER MUST BE DECLARED AS NON VIRTUAL. SEE BASE CLASSES");}bh[be]=true;az(bf,bg,be,bj);if(ba.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+'CAN NOT OVERRIDE VIRTUAL MEMBER. MEMBER ALREADY DECLARED FINAL IN BASE CLASS "'+ba[be]+'"');}if(bi){if(bd[be]===0){bf.push(bg+"::"+be+"=>"+"AN ABSTRACT VIRTUAL FUNCTION, CAN NOT BE DECLARED FINAL");}else{if(bc.p[be]){delete bc.p[be];bc.length--;}ba[be]=bg;}}else{if(bd[be]===0){if(!bc.p[be]){bc.p[be]=true;bc.length++;}}else{if(bc.p[be]){delete bc.p[be];bc.length--;}}}}}function k(bb,bg,ba,be,bc,a9,bd){for(var bf in be){if(!be.hasOwnProperty(bf)){continue;}if((bf!=="VARS")&&(bf!=="FUNCTIONS")){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+bf+'" IS NOT ALLOWED');}else{if(bf==="VARS"){O(bb,bg,ba+" VARS",be["VARS"],bc,bd);}else{if(bf==="FUNCTIONS"){if(n){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+'FUNCTIONS" IS NOT ALLOWED; RUNNING IN STRICT JS MODE OR STATIC FUNCTIONS CAN NOT '+"BE SUPPORTED IN THIS BROWSER");}else{l(bb,bg,ba+" FUNCTIONS",be["FUNCTIONS"],bc,a9,bd);}}}}}}function aW(be,bd,a9){if(F.hasOwnProperty(be.CRX_INTERFACE_ID)){return;}var bf={};F[be.CRX_INTERFACE_ID]={"functions":{},"trace":{},"fullTrace":{}};if(be.hasOwnProperty("INHERITS")){if(I(be["INHERITS"])!=="array"){bd.push("'INHERITS' DEFINITION FOR INTERFACE '"+C(be)+"' IS NOT AN ARRAY");}else{for(var bb=0;bb"+'"'+bb+'" MUST BE A FUNCTION');return true;}return false;}function az(bc,a9,bb,ba){if(ba.hasOwnProperty(bb)){bc.push('DUPLICATE MEMBER "'+bb+'" FOUND IN CLASS "'+a9+'"');}else{ba[bb]=true;}}function a1(a9){if(a0[a9.CRX_CLASS_ID]){return;}var bd={EXTENDS:null,IMPLEMENTES:null,PUBLIC:null,PRIVATE:null,PROTECTED:null};var ba=null;var bb={PUBLIC:{},PRIVATE:{},PROTECTED:{}};var bc={VARS:{},FUNCTIONS:{}};bd.CRX_CLASS_ID=a9.CRX_CLASS_ID;if(a9.hasOwnProperty("EXTENDS")){bd.EXTENDS=a0[aO(a9["EXTENDS"])];}if(a9.hasOwnProperty("IMPLEMENTS")){bd.IMPLEMENTS=a9["IMPLEMENTS"];}if(a9.hasOwnProperty("PUBLIC")){bd.PUBLIC_VARS=[];bd.PUBLIC_FUNCTIONS=[];bd.PUBLIC_VIRTUAL=null;bd.PUBLIC_VIRTUAL_FUNCTIONS=[];bd.PUBLIC_CONSTRUCT=null;if(a9["PUBLIC"].hasOwnProperty("VARS")){for(ba in a9["PUBLIC"]["VARS"]){if(a9["PUBLIC"]["VARS"].hasOwnProperty(ba)){bd.PUBLIC_VARS.push(S([ba,a9["PUBLIC"]["VARS"][ba]]));bb.PUBLIC[ba]=true;bc.VARS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["FUNCTIONS"]){if(a9["PUBLIC"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_FUNCTIONS.push([ba,a9["PUBLIC"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("VIRTUAL")){if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PUBLIC[ba]=true;}}}if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PUBLIC"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PUBLIC_VIRTUAL_FUNCTIONS.length>0){bd.PUBLIC_VIRTUAL=true;}}if(a9["PUBLIC"].hasOwnProperty("CONSTRUCT")){bd.PUBLIC_CONSTRUCT=a9["PUBLIC"]["CONSTRUCT"];}if((bd.PUBLIC_VARS.length>0)||(bd.PUBLIC_FUNCTIONS.length>0)||(bd.PUBLIC_VIRTUAL)||(bd.PUBLIC_CONSTRUCT)){bd.PUBLIC=true;}}if(a9.hasOwnProperty("PRIVATE")){bd.PRIVATE_VARS=[];bd.PRIVATE_FUNCTIONS=[];bd.PRIVATE_VIRTUAL=null;bd.PRIVATE_VIRTUAL_FUNCTIONS=[];if(a9["PRIVATE"].hasOwnProperty("VARS")){for(ba in a9["PRIVATE"]["VARS"]){if(a9["PRIVATE"]["VARS"].hasOwnProperty(ba)){bd.PRIVATE_VARS.push(S([ba,a9["PRIVATE"]["VARS"][ba]]));bb.PRIVATE[ba]=true;bc.VARS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["FUNCTIONS"]){if(a9["PRIVATE"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_FUNCTIONS.push([ba,a9["PRIVATE"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("VIRTUAL")){if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PRIVATE[ba]=true;}}}if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PRIVATE"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PRIVATE_VIRTUAL_FUNCTIONS.length>0){bd.PRIVATE_VIRTUAL=true;}}if((bd.PRIVATE_VARS.length>0)||(bd.PRIVATE_FUNCTIONS.length>0)||bd.PRIVATE_VIRTUAL){bd.PRIVATE=true;}}if(a9.hasOwnProperty("PROTECTED")){bd.PROTECTED_FUNCTIONS=[];bd.PROTECTED_VIRTUAL=null;bd.PROTECTED_VIRTUAL_FUNCTIONS=[];if(a9["PROTECTED"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["FUNCTIONS"]){if(a9["PROTECTED"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_FUNCTIONS.push([ba,a9["PROTECTED"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PROTECTED"].hasOwnProperty("VIRTUAL")){if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PROTECTED[ba]=true;}}}if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PROTECTED"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PROTECTED_VIRTUAL_FUNCTIONS.length>0){bd.PROTECTED_VIRTUAL=true;}}if((bd.PROTECTED_FUNCTIONS.length>0)||(bd.PROTECTED_VIRTUAL)){bd.PROTECTED=true;}}a0[a9.CRX_CLASS_ID]=bd;ac[a9.CRX_CLASS_ID]=bb;h[a9.CRX_CLASS_ID]=bc;}function ap(a9){aV(a9.CRX_CLASS_ID,a9);}function aV(bc,a9){if(a9.EXTENDS){aV(bc,a9.EXTENDS);}for(var ba=0;ba-1;bb--){if(a9[aV.KEYS[ba][2]][bb][1]!==0){aU[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9[aV.KEYS[ba][2]][bb][1];}j[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;if(!a8[bc][a9[aV.KEYS[ba][2]][bb][0]]){a8[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;}}}}}aV.KEYS=[["PUBLIC","PUBLIC_VIRTUAL","PUBLIC_VIRTUAL_FUNCTIONS"],["PRIVATE","PRIVATE_VIRTUAL","PRIVATE_VIRTUAL_FUNCTIONS"],["PROTECTED","PROTECTED_VIRTUAL","PROTECTED_VIRTUAL_FUNCTIONS"]];function ai(a9){if(N[a9.CRX_CLASS_ID]===undefined){if(a9.hasOwnProperty("PUBLIC")&&a9["PUBLIC"].hasOwnProperty("STATIC")){N[a9.CRX_CLASS_ID]={};if(a9["PUBLIC"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PUBLIC"]["STATIC"]["VARS"]){if(!a9["PUBLIC"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=a9["PUBLIC"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PUBLIC"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PUBLIC"]["STATIC"]["FUNCTIONS"]){if(!a9["PUBLIC"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=au(a9.CRX_CLASS_ID,a9["PUBLIC"]["STATIC"]["FUNCTIONS"][ba]);}}}else{N[a9.CRX_CLASS_ID]=null;}if(a9.hasOwnProperty("PRIVATE")&&a9["PRIVATE"].hasOwnProperty("STATIC")){if(N[a9.CRX_CLASS_ID]===null){K[a9.CRX_CLASS_ID]={};}else{K[a9.CRX_CLASS_ID]=aG(N[a9.CRX_CLASS_ID]);}if(a9["PRIVATE"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PRIVATE"]["STATIC"]["VARS"]){if(!a9["PRIVATE"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}K[a9.CRX_CLASS_ID][ba]=a9["PRIVATE"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PRIVATE"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PRIVATE"]["STATIC"]["FUNCTIONS"]){if(!a9["PRIVATE"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}T(K[a9.CRX_CLASS_ID],ba,au(a9.CRX_CLASS_ID,a9["PRIVATE"]["STATIC"]["FUNCTIONS"][ba]));}}}else{K[a9.CRX_CLASS_ID]=null;}}}function W(ba){if(a){return;}var a9=aO(ba);if(a9===null){return null;}return(aq(this).CRX_OBJECT_SEGMENTS[a9]||null);}function ad(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){return(N[ba.CRX_CLASS_ID]||null);}else{return null;}}function aJ(bf,ba){if(a){return;}var bc=null;var bd=null;var be=null;if((bf!==undefined)&&(bf!==null)){bc=aO(bf);bd=this.CAST(bf);}else{bc=aw(this.PARENT);bd=this.PARENT;}if(!bc){am('UNDECLARED CLASS "??'+bd+'??"');}if(!bd){am('CAN NOT CALL VIRTUAL FUNCTION "'+ba+'" ON CLASS "'+aT(ao[bc])+'" INSTANCE CAN NOT BE CASTED TO "'+aT(ao[bc])+'"');}if(J(this)===bc){if(h[bc].VARS[ba]){return this[ba];}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){return this[ba].apply(this,Array.prototype.slice.call(arguments,2));}else{if(h[bc].FUNCTIONS[ba]===2){var bg=Z(bc,"puv",ba);return bg.apply(bd,Array.prototype.slice.call(arguments,2));}}}}}else{if(h[bc].VARS[ba]){if(ac[bc].PUBLIC[ba]){if(arguments.length===2){return bd[ba];}else{if(arguments.length===3){bd[ba]=arguments[2];return;}}}}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){if(ac[bc].PUBLIC[ba]){return bd[ba].apply(bd,Array.prototype.slice.call(arguments,2));}else{if(ac[bc].PROTECTED[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){return bd[ba].apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}}}}else{if(h[bc].FUNCTIONS[ba]===2){if(!ac[bc].PRIVATE[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;var a9=false;var bi=false;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){bi=true;}while(bh!==null){bj=J(bh);if(h[bj].FUNCTIONS[ba]){if(ac[bj].PROTECTED[ba]||ac[bj].PUBLIC[ba]){if(ac[bj].PROTECTED[ba]){a9=true;}if(h[bj].FUNCTIONS[ba]===2){if((bj==bc)&&(bh===bb.CRX_OBJECT_SEGMENTS[bj])){if(!a9||(bi)){var bg=Z(bc,"puv",ba);return bg.apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}else{break;}}}}else{break;}}bh=bh.PARENT;}}}}}}}am('ILLEGAL ACCESS TO, OR UNKNOWN, MEMBER "'+ba+'" IN CLASS "'+aT(ao[bc])+'"');}function D(a9){return function(bb){if(a){return;}if(this===a9){var ba=aw(this.THIS);if(ba!==null){return(aq(this).CRX_PRIVATE_OBJECT_SEGMENTS[ba]||null);}}am("SECURITY ERROR WHILE USING 'O'");};}function ak(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){if((P[0]===ba.CRX_CLASS_ID)&&(ak.caller===P[1])){return(K[ba.CRX_CLASS_ID]||N[ba.CRX_CLASS_ID]||null);}else{return(N[ba.CRX_CLASS_ID]||null);}}else{return null;}}function aX(be,bd){if(typeof(be)==="string"){return false;}var bc=aN(be);var ba=null;var a9=null;if(typeof(bd)==="string"){ba=ag(bd);if(ba===null){ba=a4(bd);}if(ba===null){return false;}}else{ba=bd;}a9=aN(ba);if(bc==="$CRX__native"){if(a9==="$CRX__native"){return(be instanceof bd);}return false;}else{if((bc==="$CRX_DEFINITION__INTERFACE")||(bc==="$CRX_DEFINITION__CLASS")){return false;}else{if(bc==="$CRX_OBJECT"){if(a9==="$CRX_DEFINITION__CLASS"){var bb=ao[aw(be.THIS)];while(bb){if(ba.CRX_CLASS_ID===bb.CRX_CLASS_ID){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}else{if(a9==="$CRX_DEFINITION__INTERFACE"){var bb=ao[aw(be.THIS)];while(bb){if(aM[bb.CRX_CLASS_ID]&&aM[bb.CRX_CLASS_ID].hasOwnProperty(ba.CRX_INTERFACE_ID)){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}}}}}return false;}function aN(a9){if(a9.CRX_DEFINITION){if(a9.CRX_INTERFACE_ID&&(Q[a9.CRX_INTERFACE_ID]===a9)){return"$CRX_DEFINITION__INTERFACE";}if(a9.CRX_CLASS_ID&&((ao[a9.CRX_CLASS_ID]===a9)||(at[a9.CRX_CLASS_ID]===a9))){return"$CRX_DEFINITION__CLASS";}}if(a9.CRX_CLASS_INFO&&(aq(a9)!==null)){return"$CRX_OBJECT";}return"$CRX__native";}function q(bb,a9,be){if(a){return;}var bc=ag(bb);var ba=ag(a9);var bd=null;if(bc===null){am('UNDECLARED CLASS "??'+bb+'??"');}else{if(ba===null){am('UNDECLARED CLASS "??'+a9+'??"');}}E(bc);E(ba);bd=a0[bc.CRX_CLASS_ID];if(!be&&(bd===a0[ba.CRX_CLASS_ID])){return false;}else{while(bd){if(bd===a0[ba.CRX_CLASS_ID]){return true;}bd=bd.EXTENDS;}}return false;}function w(bb,ba){if(a){return;}var bc=ag(bb);var a9=a4(ba);if(a9===null){am('UNDECLARED INTERFACE "??'+ba+'??"');}E(bc);while(bc){if(aM[bc.CRX_CLASS_ID]&&aM[bc.CRX_CLASS_ID].hasOwnProperty(a9.CRX_INTERFACE_ID)){return true;}if(bc.hasOwnProperty("EXTENDS")){bc=ag(bc["EXTENDS"]);}else{bc=null;}}return false;}function Y(a9){return function(){p=a9;};}function a6(ba){var a9="Security Error, exposed method overriden";if(window.crx_new!==c){am(a9);return false;}else{if(window.crx_registerClass!==t){am(a9);return false;}else{if(window.crx_registerInterface!==m){am(a9);return false;}else{if(window.crx_static!==ad){am(a9);return false;}else{if(window.crxOop_setLogger!==aF){am(a9);return false;}else{if(window.crxOop_assertFunctionIdentity!==av){am(a9);return false;}else{if(window.crxOop_assertIdentity!==a6){am(a9);return false;}else{if(window.crxOop_instanceof!==aX){am(a9);return false;}else{if(window.crxOop_typeof!==aN){am(a9);return false;}else{return true;}}}}}}}}}}function av(bb,ba,a9){if(ay[aw(bb.THIS)][ba][a9]!==bb[a9]){am("Security Error, object's public method was overriden");return false;}}function am(ba){if(!a){if(!aA){U(V);U(ay);U(aU);U(a8);U(j);U(N);U(K);for(var a9 in ao){if(ao.hasOwnProperty(a9)){ao[a9]=null;}}U(ao);}a=true;u=ba;}if(!aA){r("CrxOop FATAL ERROR:: "+u,0);}throw"CrxOop FATAL ERROR:: "+u;}function U(ba){var a9=null;for(a9 in ba){if(ba.hasOwnProperty(a9)){delete ba[a9];}}}function G(bb,ba){for(var a9 in ba){if(!ba.hasOwnProperty(a9)||bb.hasOwnProperty(a9)){continue;}bb[a9]=ba[a9];}}function T(bb,ba,a9){if(aR&&aa){T.o.value=a9;Object.defineProperty(bb,ba,T.o);}else{bb[ba]=a9;}}T.o={value:null,writable:false};function B(bc,bb,a9){if(aR&&aa){T.o.value=a9;for(var ba=bc.length-1;ba>-1;ba--){Object.defineProperty(bc[ba],bb,T.o);}}else{for(var ba=bc.length-1;ba>-1;ba--){bc[ba][bb]=a9;}}}function aF(a9){if(a||aL){return false;}aP=a9;return true;}function S(a9,ba){if(typeof(a9)==="function"){return function(){if(a){return;}return a9.apply(null,arguments);};}else{return a9;}}T(window,"crx_new",c);T(window,"crx_registerClass",t);T(window,"crx_registerInterface",m);T(window,"crx_static",(n?ad:ak));T(window,"crxOop_setLogger",aF);T(window,"crxOop_instanceof",aX);T(window,"crxOop_typeof",aN);T(window,"crxOop_isClassExtending",function(ba,a9){return q(ba,a9,false);});T(window,"crxOop_isClassChaining",function(ba,a9){return q(ba,a9,true);});T(window,"crxOop_isClassImplementing",w);T(window,"crxOop_areStaticFunctionsSupported",function(){return !n;});T(window,"crxOop_createObject",aG);T(window,"crxOop_setStrictMode",function(a9){if(aL){return;}aR=a9;});T(window,"crxOop_areStructuresLocked",function(){return aa&&Object.seal&&A&&aR;});T(window,"crxOop_var",S);T(window,"crxOop_setRunningTestCasesMode",function(a9){if(aL){return;}if(a9){aA=true;}});T(window,"crxOop_unHalt",function(a9){if(aA){if(!a){am("UNHALTING WHEN NOT HALTED: "+a9);}a=false;}});})(); \ No newline at end of file diff --git a/minifed/crxOop.strict.min.js b/minifed/crxOop.strict.min.js index 7d0416f..0268028 100644 --- a/minifed/crxOop.strict.min.js +++ b/minifed/crxOop.strict.min.js @@ -1,4 +1,4 @@ -//version: 1.2 +//version: 1.2.01 /* The MIT License (MIT) @@ -25,4 +25,4 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FO DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -(function(){"use strict";if(window.crx_registerClass){return;}var aR=true;var e=(function(){return !this;})();var n=(e?(function(){return !this;})():(window.CRXNS_NON_STRICT_MODE?false:true));var ah=function(){};var p=null;var aG=null;var al=(Object.seal&&aR?Object.seal:function(){});var A=(Object.freeze?Object.freeze:function(){});var aa=false;var aL=false;var aA=false;var a=false;var u=null;var V={};var ao={};var at={};var a0={};var X=1;var ay={};var aU={};var a8={};var j={};var ar={};var ac={};var h={};var N={};var K={};var aE={};var o={};var aM={};var ae={};var v={};var aS=1;var Q={};var F={};var i={};var r=function(ba,a9){aP("CrxOop ==> "+ba,a9);};var aP=function(ba,a9){if(window.console){window.console.log(ba);}};var aY={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object Error]":"error"};var P=[null,null];var aD=[];var a7={};var z={};if(!Object.create){aG=function(a9){function ba(){}ba.prototype=a9;return new ba();};}else{aG=Object.create;}if(Object.defineProperty){var g={};try{Object.defineProperty(g,"s",{value:"d",writable:false});aa=true;}catch(aQ){}}function aj(){if(!z.x){n=true;}}function aZ(){return(aZ.caller===aj);}if(aa&&!n){Object.defineProperty(z,"x",{get:aZ,set:function(){},enumerable:true});aj();}if(!aa&&!n){am("CURRENT BROWSER IS NOT SUPPORTED IN NON STRICT MODE");}function I(a9){if(a9==null){return(a9+"");}return(((typeof(a9)==="object")||(typeof(a9)==="function"))?(aY[Object.prototype.toString.call(a9)]||"object"):(typeof(a9)));}function t(ba,a9){if(a){return;}aL=true;if(V.hasOwnProperty(ba)||v.hasOwnProperty(ba)){am("Interface or Class with name '"+ba+"' already declared");}if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;a9.CRX_CLASS_NAME=ba;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)||(a9.CRX_CLASS_NAME!==ba)||(a9.CRX_INTERFACE_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '"+ba+"'");}A(a9);a3(a9);X=X+1;}V[ba]=a9.CRX_CLASS_ID;}function ag(a9){if(a){return;}if(typeof(a9)==="string"){if(!V[a9]){return null;}else{return(ao[V[a9]]||null);}}else{if(a9.CRX_INTERFACE_ID!==undefined){return null;}else{if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '$C"+X+"'");}A(a9);a3(a9);X=X+1;}return ao[a9.CRX_CLASS_ID];}}}function aO(a9){if(a){return;}if(typeof(a9)==="string"){return(V[a9]||null);}return(a9.CRX_CLASS_ID||null);}function aT(a9){if(a9.CRX_CLASS_NAME){return a9.CRX_CLASS_NAME;}if(a9.CRX_CLASS_ID){return"$C"+a9.CRX_CLASS_ID;}return null;}function m(a9,ba){if(a){return;}aL=true;if(V.hasOwnProperty(a9)||v.hasOwnProperty(a9)){am("Interface or Class with name '"+a9+"' already declared");}if(!ba.CRX_INTERFACE_ID){ba.CRX_DEFINITION=true;ba.CRX_INTERFACE_ID=aS;ba.CRX_INTERFACE_NAME=a9;if((ba.CRX_DEFINITION!==true)||(ba.CRX_INTERFACE_ID!==aS)||(ba.CRX_INTERFACE_NAME!==a9)||(ba.CRX_CLASS_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '"+a9+"'");}A(ba);Q[aS]=ba;aS=aS+1;}v[a9]=ba.CRX_INTERFACE_ID;}function a4(a9){if(a){return;}if(typeof(a9)==="string"){if(!v[a9]){return null;}else{return(Q[v[a9]]||null);}}else{if(a9.CRX_CLASS_ID!==undefined){return null;}else{if(!a9.CRX_INTERFACE_ID){a9.CRX_DEFINITION=true;a9.CRX_INTERFACE_ID=aS;if((a9.CRX_DEFINITION!==true)||(a9.CRX_INTERFACE_ID!==aS)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '$I"+aS+"'");}A(a9);Q[aS]=a9;aS=aS+1;}return Q[a9.CRX_INTERFACE_ID];}}}function M(a9){if(a){return;}if(typeof(a9)==="string"){return(v[a9]||null);}return(a9.CRX_INTERFACE_ID||null);}function C(a9){if(a9.CRX_INTERFACE_NAME){return a9.CRX_INTERFACE_NAME;}if(a9.CRX_INTERFACE_ID){return"$I"+a9.CRX_INTERFACE_ID;}return null;}function c(bh,bb,ba){if(a){return;}var bc=false;var be=null;var bg=[];var bd=[];var bf=-1;var bo=null;var bi=I(bb);var bk=0;aL=true;aD.push(a7);a7={};if(typeof(bh)==="number"){bc=true;bf=Math.abs(bh);if((bi!=="array")&&(bi!=="function")){be=ag(bb);bo=Array.prototype.slice.call(arguments,2);}else{if((bi==="array")&&(bb.length<1)){return null;}be=ag(ba);bo=bb;}}else{be=ag(bh);bf=1;bo=Array.prototype.slice.call(arguments,1);}if(be===null){am("UNABLE TO RESOLVE CLASS DURING CALL TO crx_new");}for(bk=0;bk0){var bj="";var bl=false;for(bn in i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p){if(!i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p.hasOwnProperty(bn)){continue;}bj+=(bl?", ":"")+bn+"()";bl=true;}am("CAN NOT CREATE INSTANCE OF ABSTRACT CLASS. MISSING IMPLEMENTATIONS FOR FUNCTIONS "+bj);}bg=aH(a0[be.CRX_CLASS_ID],bd,{p:false},bf);if(bg.length===0){am("UNKNOWN ERROR DURING CALL TO crx_new");}for(var bn in aU[be.CRX_CLASS_ID]){if(!aU[be.CRX_CLASS_ID].hasOwnProperty(bn)){continue;}for(bk=0;bk-1;bb--){for(bd=0;bd-1;bb--){B(bh,bg.PRIVATE_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pr",bg.PRIVATE_FUNCTIONS[bb][0],bg.PRIVATE_FUNCTIONS[bb][1],false));if(!n){for(bd=0;bd-1;bb--){for(bd=0;bd-1;bb--){B(ba,bg.PUBLIC_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pu",bg.PUBLIC_FUNCTIONS[bb][0],bg.PUBLIC_FUNCTIONS[bb][1],false));}if(bg.PUBLIC_CONSTRUCT!==null){be=true;if(bg.EXTENDS&&ba[0].PARENT.CONSTRUCT){for(bb=0;bb-1;bb--){B(ba,bg.PROTECTED_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pro",bg.PROTECTED_FUNCTIONS[bb][0],bg.PROTECTED_FUNCTIONS[bb][1],true));}}for(bb=0;bb0){am("DEFINITION ERROR");}}}function a2(bc){if(aE[bc.CRX_CLASS_ID]){return bc;}var a9=[];var bd=[];var ba={};ba["extensionChain"]={};ba["virtuals"]={};ba["nonVirtuals"]={};ba["virtualFinalFunctions"]={};ba["remainingAbstractVirtuals"]={p:{},length:0};a3(bc);a5(ao[bc.CRX_CLASS_ID],a9,bd);H(ao[bc.CRX_CLASS_ID],a9,bd,ba);for(var bb=0;bb0){am("DEFINITION ERROR");}}function a3(bd){if(at[bd.CRX_CLASS_ID]!==undefined){return;}for(var ba in bd){if(ba==="VERBOSE"){var bg={};var bf=true;for(var bb in bd){if(!bd.hasOwnProperty(bb)){continue;}var bc=bb.split(/\s+/);var be=bg;if(bf){bf=false;continue;}if(bc.length===1){bc[0]=bc[0].toUpperCase();}else{for(var a9=0;a9"+"MEMBER ALREADY DECLARED AS VIRTUAL IN BASE CLASSES");}}}function l(bg,bf,a9,bb,bh,ba,bi){var bd=(a9.indexOf("STATIC")>-1);var be=(a9.indexOf("PROTECTED")>-1);for(var bc in bb){if(!bb.hasOwnProperty(bc)||af(bf,bg,a9,bc)||aI(bf,bg,a9,bc,bb[bc],false)){continue;}if(!bd){if(bh.hasOwnProperty(bc)){bf.push(bg+"::"+bc+"=>"+"MEMBER MUST BE DECLARED VIRTUAL. SEE BASE CLASSES.");}ba[bc]=true;}az(bf,bg,bc,bi);}}function ab(bg,bf,a9,bd,bh,bb,ba,bc,bj){var bi=(a9.indexOf("FINAL")>-1);for(var be in bd){if(!bd.hasOwnProperty(be)||af(bf,bg,a9,be)||aI(bf,bg,a9,be,bd[be],true)){continue;}if(bb.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+"MEMBER MUST BE DECLARED AS NON VIRTUAL. SEE BASE CLASSES");}bh[be]=true;az(bf,bg,be,bj);if(ba.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+'CAN NOT OVERRIDE VIRTUAL MEMBER. MEMBER ALREADY DECLARED FINAL IN BASE CLASS "'+ba[be]+'"');}if(bi){if(bd[be]===0){bf.push(bg+"::"+be+"=>"+"AN ABSTRACT VIRTUAL FUNCTION, CAN NOT BE DECLARED FINAL");}else{ba[be]=bg;}}else{if(bd[be]===0){if(!bc.p[be]){bc.p[be]=true;bc.length++;}}else{if(bc.p[be]){delete bc.p[be];bc.length--;}}}}}function k(bb,bg,ba,be,bc,a9,bd){for(var bf in be){if(!be.hasOwnProperty(bf)){continue;}if((bf!=="VARS")&&(bf!=="FUNCTIONS")){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+bf+'" IS NOT ALLOWED');}else{if(bf==="VARS"){O(bb,bg,ba+" VARS",be["VARS"],bc,bd);}else{if(bf==="FUNCTIONS"){if(n){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+'FUNCTIONS" IS NOT ALLOWED; RUNNING IN STRICT JS MODE OR STATIC FUNCTIONS CAN NOT '+"BE SUPPORTED IN THIS BROWSER");}else{l(bb,bg,ba+" FUNCTIONS",be["FUNCTIONS"],bc,a9,bd);}}}}}}function aW(be,bd,a9){if(F.hasOwnProperty(be.CRX_INTERFACE_ID)){return;}var bf={};F[be.CRX_INTERFACE_ID]={"functions":{},"trace":{},"fullTrace":{}};if(be.hasOwnProperty("INHERITS")){if(I(be["INHERITS"])!=="array"){bd.push("'INHERITS' DEFINITION FOR INTERFACE '"+C(be)+"' IS NOT AN ARRAY");}else{for(var bb=0;bb"+'"'+bb+'" MUST BE A FUNCTION');return true;}return false;}function az(bc,a9,bb,ba){if(ba.hasOwnProperty(bb)){bc.push('DUPLICATE MEMBER "'+bb+'" FOUND IN CLASS "'+a9+'"');}else{ba[bb]=true;}}function a1(a9){if(a0[a9.CRX_CLASS_ID]){return;}var bd={EXTENDS:null,IMPLEMENTES:null,PUBLIC:null,PRIVATE:null,PROTECTED:null};var ba=null;var bb={PUBLIC:{},PRIVATE:{},PROTECTED:{}};var bc={VARS:{},FUNCTIONS:{}};bd.CRX_CLASS_ID=a9.CRX_CLASS_ID;if(a9.hasOwnProperty("EXTENDS")){bd.EXTENDS=a0[aO(a9["EXTENDS"])];}if(a9.hasOwnProperty("IMPLEMENTS")){bd.IMPLEMENTS=a9["IMPLEMENTS"];}if(a9.hasOwnProperty("PUBLIC")){bd.PUBLIC_VARS=[];bd.PUBLIC_FUNCTIONS=[];bd.PUBLIC_VIRTUAL=null;bd.PUBLIC_VIRTUAL_FUNCTIONS=[];bd.PUBLIC_CONSTRUCT=null;if(a9["PUBLIC"].hasOwnProperty("VARS")){for(ba in a9["PUBLIC"]["VARS"]){if(a9["PUBLIC"]["VARS"].hasOwnProperty(ba)){bd.PUBLIC_VARS.push(S([ba,a9["PUBLIC"]["VARS"][ba]]));bb.PUBLIC[ba]=true;bc.VARS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["FUNCTIONS"]){if(a9["PUBLIC"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_FUNCTIONS.push([ba,a9["PUBLIC"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("VIRTUAL")){if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PUBLIC[ba]=true;}}}if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PUBLIC"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PUBLIC_VIRTUAL_FUNCTIONS.length>0){bd.PUBLIC_VIRTUAL=true;}}if(a9["PUBLIC"].hasOwnProperty("CONSTRUCT")){bd.PUBLIC_CONSTRUCT=a9["PUBLIC"]["CONSTRUCT"];}if((bd.PUBLIC_VARS.length>0)||(bd.PUBLIC_FUNCTIONS.length>0)||(bd.PUBLIC_VIRTUAL)||(bd.PUBLIC_CONSTRUCT)){bd.PUBLIC=true;}}if(a9.hasOwnProperty("PRIVATE")){bd.PRIVATE_VARS=[];bd.PRIVATE_FUNCTIONS=[];bd.PRIVATE_VIRTUAL=null;bd.PRIVATE_VIRTUAL_FUNCTIONS=[];if(a9["PRIVATE"].hasOwnProperty("VARS")){for(ba in a9["PRIVATE"]["VARS"]){if(a9["PRIVATE"]["VARS"].hasOwnProperty(ba)){bd.PRIVATE_VARS.push(S([ba,a9["PRIVATE"]["VARS"][ba]]));bb.PRIVATE[ba]=true;bc.VARS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["FUNCTIONS"]){if(a9["PRIVATE"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_FUNCTIONS.push([ba,a9["PRIVATE"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("VIRTUAL")){if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PRIVATE[ba]=true;}}}if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PRIVATE"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PRIVATE_VIRTUAL_FUNCTIONS.length>0){bd.PRIVATE_VIRTUAL=true;}}if((bd.PRIVATE_VARS.length>0)||(bd.PRIVATE_FUNCTIONS.length>0)||bd.PRIVATE_VIRTUAL){bd.PRIVATE=true;}}if(a9.hasOwnProperty("PROTECTED")){bd.PROTECTED_FUNCTIONS=[];bd.PROTECTED_VIRTUAL=null;bd.PROTECTED_VIRTUAL_FUNCTIONS=[];if(a9["PROTECTED"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["FUNCTIONS"]){if(a9["PROTECTED"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_FUNCTIONS.push([ba,a9["PROTECTED"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PROTECTED"].hasOwnProperty("VIRTUAL")){if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PROTECTED[ba]=true;}}}if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PROTECTED"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PROTECTED_VIRTUAL_FUNCTIONS.length>0){bd.PROTECTED_VIRTUAL=true;}}if((bd.PROTECTED_FUNCTIONS.length>0)||(bd.PROTECTED_VIRTUAL)){bd.PROTECTED=true;}}a0[a9.CRX_CLASS_ID]=bd;ac[a9.CRX_CLASS_ID]=bb;h[a9.CRX_CLASS_ID]=bc;}function ap(a9){aV(a9.CRX_CLASS_ID,a9);}function aV(bc,a9){if(a9.EXTENDS){aV(bc,a9.EXTENDS);}for(var ba=0;ba-1;bb--){if(a9[aV.KEYS[ba][2]][bb][1]!==0){aU[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9[aV.KEYS[ba][2]][bb][1];}j[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;if(!a8[bc][a9[aV.KEYS[ba][2]][bb][0]]){a8[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;}}}}}aV.KEYS=[["PUBLIC","PUBLIC_VIRTUAL","PUBLIC_VIRTUAL_FUNCTIONS"],["PRIVATE","PRIVATE_VIRTUAL","PRIVATE_VIRTUAL_FUNCTIONS"],["PROTECTED","PROTECTED_VIRTUAL","PROTECTED_VIRTUAL_FUNCTIONS"]];function ai(a9){if(N[a9.CRX_CLASS_ID]===undefined){if(a9.hasOwnProperty("PUBLIC")&&a9["PUBLIC"].hasOwnProperty("STATIC")){N[a9.CRX_CLASS_ID]={};if(a9["PUBLIC"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PUBLIC"]["STATIC"]["VARS"]){if(!a9["PUBLIC"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=a9["PUBLIC"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PUBLIC"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PUBLIC"]["STATIC"]["FUNCTIONS"]){if(!a9["PUBLIC"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=au(a9.CRX_CLASS_ID,a9["PUBLIC"]["STATIC"]["FUNCTIONS"][ba]);}}}else{N[a9.CRX_CLASS_ID]=null;}if(a9.hasOwnProperty("PRIVATE")&&a9["PRIVATE"].hasOwnProperty("STATIC")){if(N[a9.CRX_CLASS_ID]===null){K[a9.CRX_CLASS_ID]={};}else{K[a9.CRX_CLASS_ID]=aG(N[a9.CRX_CLASS_ID]);}if(a9["PRIVATE"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PRIVATE"]["STATIC"]["VARS"]){if(!a9["PRIVATE"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}K[a9.CRX_CLASS_ID][ba]=a9["PRIVATE"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PRIVATE"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PRIVATE"]["STATIC"]["FUNCTIONS"]){if(!a9["PRIVATE"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}T(K[a9.CRX_CLASS_ID],ba,au(a9.CRX_CLASS_ID,a9["PRIVATE"]["STATIC"]["FUNCTIONS"][ba]));}}}else{K[a9.CRX_CLASS_ID]=null;}}}function W(ba){if(a){return;}var a9=aO(ba);if(a9===null){return null;}return(aq(this).CRX_OBJECT_SEGMENTS[a9]||null);}function ad(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){return(N[ba.CRX_CLASS_ID]||null);}else{return null;}}function aJ(bf,ba){if(a){return;}var bc=null;var bd=null;var be=null;if((bf!==undefined)&&(bf!==null)){bc=aO(bf);bd=this.CAST(bf);}else{bc=aw(this.PARENT);bd=this.PARENT;}if(!bc){am('UNDECLARED CLASS "??'+bd+'??"');}if(!bd){am('CAN NOT CALL VIRTUAL FUNCTION "'+ba+'" ON CLASS "'+aT(ao[bc])+'" INSTANCE CAN NOT BE CASTED TO "'+aT(ao[bc])+'"');}if(J(this)===bc){if(h[bc].VARS[ba]){return this[ba];}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){return this[ba].apply(this,Array.prototype.slice.call(arguments,2));}else{if(h[bc].FUNCTIONS[ba]===2){var bg=Z(bc,"puv",ba);return bg.apply(bd,Array.prototype.slice.call(arguments,2));}}}}}else{if(h[bc].VARS[ba]){if(ac[bc].PUBLIC[ba]){if(arguments.length===2){return bd[ba];}else{if(arguments.length===3){bd[ba]=arguments[2];return;}}}}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){if(ac[bc].PUBLIC[ba]){return bd[ba].apply(bd,Array.prototype.slice.call(arguments,2));}else{if(ac[bc].PROTECTED[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){return bd[ba].apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}}}}else{if(h[bc].FUNCTIONS[ba]===2){if(!ac[bc].PRIVATE[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;var a9=false;var bi=false;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){bi=true;}while(bh!==null){bj=J(bh);if(h[bj].FUNCTIONS[ba]){if(ac[bj].PROTECTED[ba]||ac[bj].PUBLIC[ba]){if(ac[bj].PROTECTED[ba]){a9=true;}if(h[bj].FUNCTIONS[ba]===2){if((bj==bc)&&(bh===bb.CRX_OBJECT_SEGMENTS[bj])){if(!a9||(bi)){var bg=Z(bc,"puv",ba);return bg.apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}else{break;}}}}else{break;}}bh=bh.PARENT;}}}}}}}am('ILLEGAL ACCESS TO, OR UNKNOWN, MEMBER "'+ba+'" IN CLASS "'+aT(ao[bc])+'"');}function D(a9){return function(bb){if(a){return;}if(this===a9){var ba=aw(this.THIS);if(ba!==null){return(aq(this).CRX_PRIVATE_OBJECT_SEGMENTS[ba]||null);}}am("SECURITY ERROR WHILE USING 'O'");};}function ak(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){if((P[0]===ba.CRX_CLASS_ID)&&(ak.caller===P[1])){return(K[ba.CRX_CLASS_ID]||N[ba.CRX_CLASS_ID]||null);}else{return(N[ba.CRX_CLASS_ID]||null);}}else{return null;}}function aX(be,bd){if(typeof(be)==="string"){return false;}var bc=aN(be);var ba=null;var a9=null;if(typeof(bd)==="string"){ba=ag(bd);if(ba===null){ba=a4(bd);}if(ba===null){return false;}}else{ba=bd;}a9=aN(ba);if(bc==="$CRX__native"){if(a9==="$CRX__native"){return(be instanceof bd);}return false;}else{if((bc==="$CRX_DEFINITION__INTERFACE")||(bc==="$CRX_DEFINITION__CLASS")){return false;}else{if(bc==="$CRX_OBJECT"){if(a9==="$CRX_DEFINITION__CLASS"){var bb=ao[aw(be.THIS)];while(bb){if(ba.CRX_CLASS_ID===bb.CRX_CLASS_ID){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}else{if(a9==="$CRX_DEFINITION__INTERFACE"){var bb=ao[aw(be.THIS)];while(bb){if(aM[bb.CRX_CLASS_ID]&&aM[bb.CRX_CLASS_ID].hasOwnProperty(ba.CRX_INTERFACE_ID)){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}}}}}return false;}function aN(a9){if(a9.CRX_DEFINITION){if(a9.CRX_INTERFACE_ID&&(Q[a9.CRX_INTERFACE_ID]===a9)){return"$CRX_DEFINITION__INTERFACE";}if(a9.CRX_CLASS_ID&&((ao[a9.CRX_CLASS_ID]===a9)||(at[a9.CRX_CLASS_ID]===a9))){return"$CRX_DEFINITION__CLASS";}}if(a9.CRX_CLASS_INFO&&(aq(a9)!==null)){return"$CRX_OBJECT";}return"$CRX__native";}function q(bb,a9,be){if(a){return;}var bc=ag(bb);var ba=ag(a9);var bd=null;if(bc===null){am('UNDECLARED CLASS "??'+bb+'??"');}else{if(ba===null){am('UNDECLARED CLASS "??'+a9+'??"');}}E(bc);E(ba);bd=a0[bc.CRX_CLASS_ID];if(!be&&(bd===a0[ba.CRX_CLASS_ID])){return false;}else{while(bd){if(bd===a0[ba.CRX_CLASS_ID]){return true;}bd=bd.EXTENDS;}}return false;}function w(bb,ba){if(a){return;}var bc=ag(bb);var a9=a4(ba);if(a9===null){am('UNDECLARED INTERFACE "??'+ba+'??"');}E(bc);while(bc){if(aM[bc.CRX_CLASS_ID]&&aM[bc.CRX_CLASS_ID].hasOwnProperty(a9.CRX_INTERFACE_ID)){return true;}if(bc.hasOwnProperty("EXTENDS")){bc=ag(bc["EXTENDS"]);}else{bc=null;}}return false;}function Y(a9){return function(){p=a9;};}function a6(ba){var a9="Security Error, exposed method overriden";if(window.crx_new!==c){am(a9);return false;}else{if(window.crx_registerClass!==t){am(a9);return false;}else{if(window.crx_registerInterface!==m){am(a9);return false;}else{if(window.crx_static!==ad){am(a9);return false;}else{if(window.crxOop_setLogger!==aF){am(a9);return false;}else{if(window.crxOop_assertFunctionIdentity!==av){am(a9);return false;}else{if(window.crxOop_assertIdentity!==a6){am(a9);return false;}else{if(window.crxOop_instanceof!==aX){am(a9);return false;}else{if(window.crxOop_typeof!==aN){am(a9);return false;}else{return true;}}}}}}}}}}function av(bb,ba,a9){if(ay[aw(bb.THIS)][ba][a9]!==bb[a9]){am("Security Error, object's public method was overriden");return false;}}function am(ba){if(!a){if(!aA){U(V);U(ay);U(aU);U(a8);U(j);U(N);U(K);for(var a9 in ao){if(ao.hasOwnProperty(a9)){ao[a9]=null;}}U(ao);}a=true;u=ba;}if(!aA){r("CrxOop FATAL ERROR:: "+u,0);}throw"CrxOop FATAL ERROR:: "+u;}function U(ba){var a9=null;for(a9 in ba){if(ba.hasOwnProperty(a9)){delete ba[a9];}}}function G(bb,ba){for(var a9 in ba){if(!ba.hasOwnProperty(a9)||bb.hasOwnProperty(a9)){continue;}bb[a9]=ba[a9];}}function T(bb,ba,a9){if(aR&&aa){T.o.value=a9;Object.defineProperty(bb,ba,T.o);}else{bb[ba]=a9;}}T.o={value:null,writable:false};function B(bc,bb,a9){if(aR&&aa){T.o.value=a9;for(var ba=bc.length-1;ba>-1;ba--){Object.defineProperty(bc[ba],bb,T.o);}}else{for(var ba=bc.length-1;ba>-1;ba--){bc[ba][bb]=a9;}}}function aF(a9){if(a||aL){return false;}aP=a9;return true;}function S(a9,ba){if(typeof(a9)==="function"){return function(){if(a){return;}return a9.apply(null,arguments);};}else{return a9;}}T(window,"crx_new",c);T(window,"crx_registerClass",t);T(window,"crx_registerInterface",m);T(window,"crx_static",(n?ad:ak));T(window,"crxOop_setLogger",aF);T(window,"crxOop_instanceof",aX);T(window,"crxOop_typeof",aN);T(window,"crxOop_isClassExtending",function(ba,a9){return q(ba,a9,false);});T(window,"crxOop_isClassChaining",function(ba,a9){return q(ba,a9,true);});T(window,"crxOop_isClassImplementing",w);T(window,"crxOop_areStaticFunctionsSupported",function(){return !n;});T(window,"crxOop_createObject",aG);T(window,"crxOop_setStrictMode",function(a9){if(aL){return;}aR=a9;});T(window,"crxOop_areStructuresLocked",function(){return aa&&Object.seal&&A&&aR;});T(window,"crxOop_var",S);T(window,"crxOop_setRunningTestCasesMode",function(a9){if(aL){return;}if(a9){aA=true;}});T(window,"crxOop_unHalt",function(a9){if(aA){if(!a){am("UNHALTING WHEN NOT HALTED: "+a9);}a=false;}});})(); \ No newline at end of file +(function(){"use strict";if(window.crx_registerClass){return;}var aR=true;var e=(function(){return !this;})();var n=(e?(function(){return !this;})():(window.CRXNS_NON_STRICT_MODE?false:true));var ah=function(){};var p=null;var aG=null;var al=(Object.seal&&aR?Object.seal:function(){});var A=(Object.freeze?Object.freeze:function(){});var aa=false;var aL=false;var aA=false;var a=false;var u=null;var V={};var ao={};var at={};var a0={};var X=1;var ay={};var aU={};var a8={};var j={};var ar={};var ac={};var h={};var N={};var K={};var aE={};var o={};var aM={};var ae={};var v={};var aS=1;var Q={};var F={};var i={};var r=function(ba,a9){aP("CrxOop ==> "+ba,a9);};var aP=function(ba,a9){if(window.console){window.console.log(ba);}};var aY={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object Error]":"error"};var P=[null,null];var aD=[];var a7={};var z={};if(!Object.create){aG=function(a9){function ba(){}ba.prototype=a9;return new ba();};}else{aG=Object.create;}if(Object.defineProperty){var g={};try{Object.defineProperty(g,"s",{value:"d",writable:false});aa=true;}catch(aQ){}}function aj(){if(!z.x){n=true;}}function aZ(){return(aZ.caller===aj);}if(aa&&!n){Object.defineProperty(z,"x",{get:aZ,set:function(){},enumerable:true});aj();}if(!aa&&!n){am("CURRENT BROWSER IS NOT SUPPORTED IN NON STRICT MODE");}function I(a9){if(a9==null){return(a9+"");}return(((typeof(a9)==="object")||(typeof(a9)==="function"))?(aY[Object.prototype.toString.call(a9)]||"object"):(typeof(a9)));}function t(ba,a9){if(a){return;}aL=true;if(V.hasOwnProperty(ba)||v.hasOwnProperty(ba)){am("Interface or Class with name '"+ba+"' already declared");}if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;a9.CRX_CLASS_NAME=ba;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)||(a9.CRX_CLASS_NAME!==ba)||(a9.CRX_INTERFACE_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '"+ba+"'");}A(a9);a3(a9);X=X+1;}V[ba]=a9.CRX_CLASS_ID;}function ag(a9){if(a){return;}if(typeof(a9)==="string"){if(!V[a9]){return null;}else{return(ao[V[a9]]||null);}}else{if(a9.CRX_INTERFACE_ID!==undefined){return null;}else{if(!a9.CRX_CLASS_ID){a9.CRX_DEFINITION=true;a9.CRX_CLASS_ID=X;if((a9.CRX_DEFINITION!==true)||(a9.CRX_CLASS_ID!==a9.CRX_CLASS_ID)){am("UNKNOWN ERROR IN DEFINITION OF CLASS '$C"+X+"'");}A(a9);a3(a9);X=X+1;}return ao[a9.CRX_CLASS_ID];}}}function aO(a9){if(a){return;}if(typeof(a9)==="string"){return(V[a9]||null);}return(a9.CRX_CLASS_ID||null);}function aT(a9){if(a9.CRX_CLASS_NAME){return a9.CRX_CLASS_NAME;}if(a9.CRX_CLASS_ID){return"$C"+a9.CRX_CLASS_ID;}return null;}function m(a9,ba){if(a){return;}aL=true;if(V.hasOwnProperty(a9)||v.hasOwnProperty(a9)){am("Interface or Class with name '"+a9+"' already declared");}if(!ba.CRX_INTERFACE_ID){ba.CRX_DEFINITION=true;ba.CRX_INTERFACE_ID=aS;ba.CRX_INTERFACE_NAME=a9;if((ba.CRX_DEFINITION!==true)||(ba.CRX_INTERFACE_ID!==aS)||(ba.CRX_INTERFACE_NAME!==a9)||(ba.CRX_CLASS_ID!==undefined)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '"+a9+"'");}A(ba);Q[aS]=ba;aS=aS+1;}v[a9]=ba.CRX_INTERFACE_ID;}function a4(a9){if(a){return;}if(typeof(a9)==="string"){if(!v[a9]){return null;}else{return(Q[v[a9]]||null);}}else{if(a9.CRX_CLASS_ID!==undefined){return null;}else{if(!a9.CRX_INTERFACE_ID){a9.CRX_DEFINITION=true;a9.CRX_INTERFACE_ID=aS;if((a9.CRX_DEFINITION!==true)||(a9.CRX_INTERFACE_ID!==aS)){am("UNKNOWN ERROR IN DEFINITION OF INTERFACE '$I"+aS+"'");}A(a9);Q[aS]=a9;aS=aS+1;}return Q[a9.CRX_INTERFACE_ID];}}}function M(a9){if(a){return;}if(typeof(a9)==="string"){return(v[a9]||null);}return(a9.CRX_INTERFACE_ID||null);}function C(a9){if(a9.CRX_INTERFACE_NAME){return a9.CRX_INTERFACE_NAME;}if(a9.CRX_INTERFACE_ID){return"$I"+a9.CRX_INTERFACE_ID;}return null;}function c(bh,bb,ba){if(a){return;}var bc=false;var be=null;var bg=[];var bd=[];var bf=-1;var bo=null;var bi=I(bb);var bk=0;aL=true;aD.push(a7);a7={};if(typeof(bh)==="number"){bc=true;bf=Math.abs(bh);if((bi!=="array")&&(bi!=="function")){be=ag(bb);bo=Array.prototype.slice.call(arguments,2);}else{if((bi==="array")&&(bb.length<1)){return null;}be=ag(ba);bo=bb;}}else{be=ag(bh);bf=1;bo=Array.prototype.slice.call(arguments,1);}if(be===null){am("UNABLE TO RESOLVE CLASS DURING CALL TO crx_new");}for(bk=0;bk0){var bj="";var bl=false;for(bn in i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p){if(!i[be.CRX_CLASS_ID].remainingAbstractVirtuals.p.hasOwnProperty(bn)){continue;}bj+=(bl?', "':'"')+bn+'()"';bl=true;}am('CAN NOT CREATE INSTANCE OF ABSTRACT CLASS "'+aT(be)+'". MISSING IMPLEMENTATIONS FOR FUNCTIONS '+bj);}bg=aH(a0[be.CRX_CLASS_ID],bd,{p:false},bf);if(bg.length===0){am("UNKNOWN ERROR DURING CALL TO crx_new");}for(var bn in aU[be.CRX_CLASS_ID]){if(!aU[be.CRX_CLASS_ID].hasOwnProperty(bn)){continue;}for(bk=0;bk-1;bb--){for(bd=0;bd-1;bb--){B(bh,bg.PRIVATE_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pr",bg.PRIVATE_FUNCTIONS[bb][0],bg.PRIVATE_FUNCTIONS[bb][1],false));if(!n){for(bd=0;bd-1;bb--){for(bd=0;bd-1;bb--){B(ba,bg.PUBLIC_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pu",bg.PUBLIC_FUNCTIONS[bb][0],bg.PUBLIC_FUNCTIONS[bb][1],false));}if(bg.PUBLIC_CONSTRUCT!==null){be=true;if(bg.EXTENDS&&ba[0].PARENT.CONSTRUCT){for(bb=0;bb-1;bb--){B(ba,bg.PROTECTED_FUNCTIONS[bb][0],L(bg.CRX_CLASS_ID,"pro",bg.PROTECTED_FUNCTIONS[bb][0],bg.PROTECTED_FUNCTIONS[bb][1],true));}}for(bb=0;bb0){am("DEFINITION ERROR");}}}function a2(bc){if(aE[bc.CRX_CLASS_ID]){return bc;}var a9=[];var bd=[];var ba={};ba["extensionChain"]={};ba["virtuals"]={};ba["nonVirtuals"]={};ba["virtualFinalFunctions"]={};ba["remainingAbstractVirtuals"]={p:{},length:0};a3(bc);a5(ao[bc.CRX_CLASS_ID],a9,bd);H(ao[bc.CRX_CLASS_ID],a9,bd,ba);for(var bb=0;bb0){am("DEFINITION ERROR");}}function a3(bd){if(at[bd.CRX_CLASS_ID]!==undefined){return;}for(var ba in bd){if(ba==="VERBOSE"){var bg={};var bf=true;for(var bb in bd){if(!bd.hasOwnProperty(bb)){continue;}var bc=bb.split(/\s+/);var be=bg;if(bf){bf=false;continue;}if(bc.length===1){bc[0]=bc[0].toUpperCase();}else{for(var a9=0;a9"+"MEMBER ALREADY DECLARED AS VIRTUAL IN BASE CLASSES");}}}function l(bg,bf,a9,bb,bh,ba,bi){var bd=(a9.indexOf("STATIC")>-1);var be=(a9.indexOf("PROTECTED")>-1);for(var bc in bb){if(!bb.hasOwnProperty(bc)||af(bf,bg,a9,bc)||aI(bf,bg,a9,bc,bb[bc],false)){continue;}if(!bd){if(bh.hasOwnProperty(bc)){bf.push(bg+"::"+bc+"=>"+"MEMBER MUST BE DECLARED VIRTUAL. SEE BASE CLASSES.");}ba[bc]=true;}az(bf,bg,bc,bi);}}function ab(bg,bf,a9,bd,bh,bb,ba,bc,bj){var bi=(a9.indexOf("FINAL")>-1);for(var be in bd){if(!bd.hasOwnProperty(be)||af(bf,bg,a9,be)||aI(bf,bg,a9,be,bd[be],true)){continue;}if(bb.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+"MEMBER MUST BE DECLARED AS NON VIRTUAL. SEE BASE CLASSES");}bh[be]=true;az(bf,bg,be,bj);if(ba.hasOwnProperty(be)){bf.push(bg+"::"+be+"=>"+'CAN NOT OVERRIDE VIRTUAL MEMBER. MEMBER ALREADY DECLARED FINAL IN BASE CLASS "'+ba[be]+'"');}if(bi){if(bd[be]===0){bf.push(bg+"::"+be+"=>"+"AN ABSTRACT VIRTUAL FUNCTION, CAN NOT BE DECLARED FINAL");}else{if(bc.p[be]){delete bc.p[be];bc.length--;}ba[be]=bg;}}else{if(bd[be]===0){if(!bc.p[be]){bc.p[be]=true;bc.length++;}}else{if(bc.p[be]){delete bc.p[be];bc.length--;}}}}}function k(bb,bg,ba,be,bc,a9,bd){for(var bf in be){if(!be.hasOwnProperty(bf)){continue;}if((bf!=="VARS")&&(bf!=="FUNCTIONS")){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+bf+'" IS NOT ALLOWED');}else{if(bf==="VARS"){O(bb,bg,ba+" VARS",be["VARS"],bc,bd);}else{if(bf==="FUNCTIONS"){if(n){bg.push(bb+"::"+bf+"=>"+'"'+ba+" "+'FUNCTIONS" IS NOT ALLOWED; RUNNING IN STRICT JS MODE OR STATIC FUNCTIONS CAN NOT '+"BE SUPPORTED IN THIS BROWSER");}else{l(bb,bg,ba+" FUNCTIONS",be["FUNCTIONS"],bc,a9,bd);}}}}}}function aW(be,bd,a9){if(F.hasOwnProperty(be.CRX_INTERFACE_ID)){return;}var bf={};F[be.CRX_INTERFACE_ID]={"functions":{},"trace":{},"fullTrace":{}};if(be.hasOwnProperty("INHERITS")){if(I(be["INHERITS"])!=="array"){bd.push("'INHERITS' DEFINITION FOR INTERFACE '"+C(be)+"' IS NOT AN ARRAY");}else{for(var bb=0;bb"+'"'+bb+'" MUST BE A FUNCTION');return true;}return false;}function az(bc,a9,bb,ba){if(ba.hasOwnProperty(bb)){bc.push('DUPLICATE MEMBER "'+bb+'" FOUND IN CLASS "'+a9+'"');}else{ba[bb]=true;}}function a1(a9){if(a0[a9.CRX_CLASS_ID]){return;}var bd={EXTENDS:null,IMPLEMENTES:null,PUBLIC:null,PRIVATE:null,PROTECTED:null};var ba=null;var bb={PUBLIC:{},PRIVATE:{},PROTECTED:{}};var bc={VARS:{},FUNCTIONS:{}};bd.CRX_CLASS_ID=a9.CRX_CLASS_ID;if(a9.hasOwnProperty("EXTENDS")){bd.EXTENDS=a0[aO(a9["EXTENDS"])];}if(a9.hasOwnProperty("IMPLEMENTS")){bd.IMPLEMENTS=a9["IMPLEMENTS"];}if(a9.hasOwnProperty("PUBLIC")){bd.PUBLIC_VARS=[];bd.PUBLIC_FUNCTIONS=[];bd.PUBLIC_VIRTUAL=null;bd.PUBLIC_VIRTUAL_FUNCTIONS=[];bd.PUBLIC_CONSTRUCT=null;if(a9["PUBLIC"].hasOwnProperty("VARS")){for(ba in a9["PUBLIC"]["VARS"]){if(a9["PUBLIC"]["VARS"].hasOwnProperty(ba)){bd.PUBLIC_VARS.push(S([ba,a9["PUBLIC"]["VARS"][ba]]));bb.PUBLIC[ba]=true;bc.VARS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["FUNCTIONS"]){if(a9["PUBLIC"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_FUNCTIONS.push([ba,a9["PUBLIC"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PUBLIC"].hasOwnProperty("VIRTUAL")){if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PUBLIC"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PUBLIC[ba]=true;}}}if(a9["PUBLIC"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PUBLIC"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PUBLIC_VIRTUAL_FUNCTIONS.push([ba,a9["PUBLIC"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PUBLIC[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PUBLIC_VIRTUAL_FUNCTIONS.length>0){bd.PUBLIC_VIRTUAL=true;}}if(a9["PUBLIC"].hasOwnProperty("CONSTRUCT")){bd.PUBLIC_CONSTRUCT=a9["PUBLIC"]["CONSTRUCT"];}if((bd.PUBLIC_VARS.length>0)||(bd.PUBLIC_FUNCTIONS.length>0)||(bd.PUBLIC_VIRTUAL)||(bd.PUBLIC_CONSTRUCT)){bd.PUBLIC=true;}}if(a9.hasOwnProperty("PRIVATE")){bd.PRIVATE_VARS=[];bd.PRIVATE_FUNCTIONS=[];bd.PRIVATE_VIRTUAL=null;bd.PRIVATE_VIRTUAL_FUNCTIONS=[];if(a9["PRIVATE"].hasOwnProperty("VARS")){for(ba in a9["PRIVATE"]["VARS"]){if(a9["PRIVATE"]["VARS"].hasOwnProperty(ba)){bd.PRIVATE_VARS.push(S([ba,a9["PRIVATE"]["VARS"][ba]]));bb.PRIVATE[ba]=true;bc.VARS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["FUNCTIONS"]){if(a9["PRIVATE"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_FUNCTIONS.push([ba,a9["PRIVATE"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PRIVATE"].hasOwnProperty("VIRTUAL")){if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PRIVATE"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PRIVATE[ba]=true;}}}if(a9["PRIVATE"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PRIVATE"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PRIVATE_VIRTUAL_FUNCTIONS.push([ba,a9["PRIVATE"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PRIVATE[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PRIVATE_VIRTUAL_FUNCTIONS.length>0){bd.PRIVATE_VIRTUAL=true;}}if((bd.PRIVATE_VARS.length>0)||(bd.PRIVATE_FUNCTIONS.length>0)||bd.PRIVATE_VIRTUAL){bd.PRIVATE=true;}}if(a9.hasOwnProperty("PROTECTED")){bd.PROTECTED_FUNCTIONS=[];bd.PROTECTED_VIRTUAL=null;bd.PROTECTED_VIRTUAL_FUNCTIONS=[];if(a9["PROTECTED"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["FUNCTIONS"]){if(a9["PROTECTED"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_FUNCTIONS.push([ba,a9["PROTECTED"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=1;}}}if(a9["PROTECTED"].hasOwnProperty("VIRTUAL")){if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]]);if((a9["PROTECTED"]["VIRTUAL"]["FUNCTIONS"][ba]!==0)){bc.FUNCTIONS[ba]=2;}else{bc.FUNCTIONS[ba]=3;}bb.PROTECTED[ba]=true;}}}if(a9["PROTECTED"]["VIRTUAL"].hasOwnProperty("FINAL")&&a9["PROTECTED"]["VIRTUAL"]["FINAL"].hasOwnProperty("FUNCTIONS")){for(ba in a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"]){if(a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"].hasOwnProperty(ba)){bd.PROTECTED_VIRTUAL_FUNCTIONS.push([ba,a9["PROTECTED"]["VIRTUAL"]["FINAL"]["FUNCTIONS"][ba]]);bb.PROTECTED[ba]=true;bc.FUNCTIONS[ba]=2;}}}if(bd.PROTECTED_VIRTUAL_FUNCTIONS.length>0){bd.PROTECTED_VIRTUAL=true;}}if((bd.PROTECTED_FUNCTIONS.length>0)||(bd.PROTECTED_VIRTUAL)){bd.PROTECTED=true;}}a0[a9.CRX_CLASS_ID]=bd;ac[a9.CRX_CLASS_ID]=bb;h[a9.CRX_CLASS_ID]=bc;}function ap(a9){aV(a9.CRX_CLASS_ID,a9);}function aV(bc,a9){if(a9.EXTENDS){aV(bc,a9.EXTENDS);}for(var ba=0;ba-1;bb--){if(a9[aV.KEYS[ba][2]][bb][1]!==0){aU[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9[aV.KEYS[ba][2]][bb][1];}j[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;if(!a8[bc][a9[aV.KEYS[ba][2]][bb][0]]){a8[bc][a9[aV.KEYS[ba][2]][bb][0]]=a9.CRX_CLASS_ID;}}}}}aV.KEYS=[["PUBLIC","PUBLIC_VIRTUAL","PUBLIC_VIRTUAL_FUNCTIONS"],["PRIVATE","PRIVATE_VIRTUAL","PRIVATE_VIRTUAL_FUNCTIONS"],["PROTECTED","PROTECTED_VIRTUAL","PROTECTED_VIRTUAL_FUNCTIONS"]];function ai(a9){if(N[a9.CRX_CLASS_ID]===undefined){if(a9.hasOwnProperty("PUBLIC")&&a9["PUBLIC"].hasOwnProperty("STATIC")){N[a9.CRX_CLASS_ID]={};if(a9["PUBLIC"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PUBLIC"]["STATIC"]["VARS"]){if(!a9["PUBLIC"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=a9["PUBLIC"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PUBLIC"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PUBLIC"]["STATIC"]["FUNCTIONS"]){if(!a9["PUBLIC"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}N[a9.CRX_CLASS_ID][ba]=au(a9.CRX_CLASS_ID,a9["PUBLIC"]["STATIC"]["FUNCTIONS"][ba]);}}}else{N[a9.CRX_CLASS_ID]=null;}if(a9.hasOwnProperty("PRIVATE")&&a9["PRIVATE"].hasOwnProperty("STATIC")){if(N[a9.CRX_CLASS_ID]===null){K[a9.CRX_CLASS_ID]={};}else{K[a9.CRX_CLASS_ID]=aG(N[a9.CRX_CLASS_ID]);}if(a9["PRIVATE"]["STATIC"].hasOwnProperty("VARS")){for(var ba in a9["PRIVATE"]["STATIC"]["VARS"]){if(!a9["PRIVATE"]["STATIC"]["VARS"].hasOwnProperty(ba)){continue;}K[a9.CRX_CLASS_ID][ba]=a9["PRIVATE"]["STATIC"]["VARS"][ba];}}if(!n&&a9["PRIVATE"]["STATIC"].hasOwnProperty("FUNCTIONS")){for(var ba in a9["PRIVATE"]["STATIC"]["FUNCTIONS"]){if(!a9["PRIVATE"]["STATIC"]["FUNCTIONS"].hasOwnProperty(ba)){continue;}T(K[a9.CRX_CLASS_ID],ba,au(a9.CRX_CLASS_ID,a9["PRIVATE"]["STATIC"]["FUNCTIONS"][ba]));}}}else{K[a9.CRX_CLASS_ID]=null;}}}function W(ba){if(a){return;}var a9=aO(ba);if(a9===null){return null;}return(aq(this).CRX_OBJECT_SEGMENTS[a9]||null);}function ad(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){return(N[ba.CRX_CLASS_ID]||null);}else{return null;}}function aJ(bf,ba){if(a){return;}var bc=null;var bd=null;var be=null;if((bf!==undefined)&&(bf!==null)){bc=aO(bf);bd=this.CAST(bf);}else{bc=aw(this.PARENT);bd=this.PARENT;}if(!bc){am('UNDECLARED CLASS "??'+bd+'??"');}if(!bd){am('CAN NOT CALL VIRTUAL FUNCTION "'+ba+'" ON CLASS "'+aT(ao[bc])+'" INSTANCE CAN NOT BE CASTED TO "'+aT(ao[bc])+'"');}if(J(this)===bc){if(h[bc].VARS[ba]){return this[ba];}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){return this[ba].apply(this,Array.prototype.slice.call(arguments,2));}else{if(h[bc].FUNCTIONS[ba]===2){var bg=Z(bc,"puv",ba);return bg.apply(bd,Array.prototype.slice.call(arguments,2));}}}}}else{if(h[bc].VARS[ba]){if(ac[bc].PUBLIC[ba]){if(arguments.length===2){return bd[ba];}else{if(arguments.length===3){bd[ba]=arguments[2];return;}}}}else{if(h[bc].FUNCTIONS[ba]){if(h[bc].FUNCTIONS[ba]===1){if(ac[bc].PUBLIC[ba]){return bd[ba].apply(bd,Array.prototype.slice.call(arguments,2));}else{if(ac[bc].PROTECTED[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){return bd[ba].apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}}}}else{if(h[bc].FUNCTIONS[ba]===2){if(!ac[bc].PRIVATE[ba]){var bb=aq(this);var bj=x(this.THIS,bb);var bh=this.PARENT;var a9=false;var bi=false;if((this===bb.CRX_PRIVATE_OBJECT_SEGMENTS[bj])||(!n&&(P[0]===bj)&&(P[1]===aJ.caller))){bi=true;}while(bh!==null){bj=J(bh);if(h[bj].FUNCTIONS[ba]){if(ac[bj].PROTECTED[ba]||ac[bj].PUBLIC[ba]){if(ac[bj].PROTECTED[ba]){a9=true;}if(h[bj].FUNCTIONS[ba]===2){if((bj==bc)&&(bh===bb.CRX_OBJECT_SEGMENTS[bj])){if(!a9||(bi)){var bg=Z(bc,"puv",ba);return bg.apply(bb.CRX_PRIVATE_OBJECT_SEGMENTS[bc],Array.prototype.slice.call(arguments,2));}else{break;}}}}else{break;}}bh=bh.PARENT;}}}}}}}am('ILLEGAL ACCESS TO, OR UNKNOWN, MEMBER "'+ba+'" IN CLASS "'+aT(ao[bc])+'"');}function D(a9){return function(bb){if(a){return;}if(this===a9){var ba=aw(this.THIS);if(ba!==null){return(aq(this).CRX_PRIVATE_OBJECT_SEGMENTS[ba]||null);}}am("SECURITY ERROR WHILE USING 'O'");};}function ak(a9){if(a){return;}var ba=ag(a9);if(ba===null){return null;}E(ba);if(N[ba.CRX_CLASS_ID]){if((P[0]===ba.CRX_CLASS_ID)&&(ak.caller===P[1])){return(K[ba.CRX_CLASS_ID]||N[ba.CRX_CLASS_ID]||null);}else{return(N[ba.CRX_CLASS_ID]||null);}}else{return null;}}function aX(be,bd){if(typeof(be)==="string"){return false;}var bc=aN(be);var ba=null;var a9=null;if(typeof(bd)==="string"){ba=ag(bd);if(ba===null){ba=a4(bd);}if(ba===null){return false;}}else{ba=bd;}a9=aN(ba);if(bc==="$CRX__native"){if(a9==="$CRX__native"){return(be instanceof bd);}return false;}else{if((bc==="$CRX_DEFINITION__INTERFACE")||(bc==="$CRX_DEFINITION__CLASS")){return false;}else{if(bc==="$CRX_OBJECT"){if(a9==="$CRX_DEFINITION__CLASS"){var bb=ao[aw(be.THIS)];while(bb){if(ba.CRX_CLASS_ID===bb.CRX_CLASS_ID){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}else{if(a9==="$CRX_DEFINITION__INTERFACE"){var bb=ao[aw(be.THIS)];while(bb){if(aM[bb.CRX_CLASS_ID]&&aM[bb.CRX_CLASS_ID].hasOwnProperty(ba.CRX_INTERFACE_ID)){return true;}if(bb.hasOwnProperty("EXTENDS")){bb=ag(bb["EXTENDS"]);}else{bb=null;}}return false;}}}}}return false;}function aN(a9){if(a9.CRX_DEFINITION){if(a9.CRX_INTERFACE_ID&&(Q[a9.CRX_INTERFACE_ID]===a9)){return"$CRX_DEFINITION__INTERFACE";}if(a9.CRX_CLASS_ID&&((ao[a9.CRX_CLASS_ID]===a9)||(at[a9.CRX_CLASS_ID]===a9))){return"$CRX_DEFINITION__CLASS";}}if(a9.CRX_CLASS_INFO&&(aq(a9)!==null)){return"$CRX_OBJECT";}return"$CRX__native";}function q(bb,a9,be){if(a){return;}var bc=ag(bb);var ba=ag(a9);var bd=null;if(bc===null){am('UNDECLARED CLASS "??'+bb+'??"');}else{if(ba===null){am('UNDECLARED CLASS "??'+a9+'??"');}}E(bc);E(ba);bd=a0[bc.CRX_CLASS_ID];if(!be&&(bd===a0[ba.CRX_CLASS_ID])){return false;}else{while(bd){if(bd===a0[ba.CRX_CLASS_ID]){return true;}bd=bd.EXTENDS;}}return false;}function w(bb,ba){if(a){return;}var bc=ag(bb);var a9=a4(ba);if(a9===null){am('UNDECLARED INTERFACE "??'+ba+'??"');}E(bc);while(bc){if(aM[bc.CRX_CLASS_ID]&&aM[bc.CRX_CLASS_ID].hasOwnProperty(a9.CRX_INTERFACE_ID)){return true;}if(bc.hasOwnProperty("EXTENDS")){bc=ag(bc["EXTENDS"]);}else{bc=null;}}return false;}function Y(a9){return function(){p=a9;};}function a6(ba){var a9="Security Error, exposed method overriden";if(window.crx_new!==c){am(a9);return false;}else{if(window.crx_registerClass!==t){am(a9);return false;}else{if(window.crx_registerInterface!==m){am(a9);return false;}else{if(window.crx_static!==ad){am(a9);return false;}else{if(window.crxOop_setLogger!==aF){am(a9);return false;}else{if(window.crxOop_assertFunctionIdentity!==av){am(a9);return false;}else{if(window.crxOop_assertIdentity!==a6){am(a9);return false;}else{if(window.crxOop_instanceof!==aX){am(a9);return false;}else{if(window.crxOop_typeof!==aN){am(a9);return false;}else{return true;}}}}}}}}}}function av(bb,ba,a9){if(ay[aw(bb.THIS)][ba][a9]!==bb[a9]){am("Security Error, object's public method was overriden");return false;}}function am(ba){if(!a){if(!aA){U(V);U(ay);U(aU);U(a8);U(j);U(N);U(K);for(var a9 in ao){if(ao.hasOwnProperty(a9)){ao[a9]=null;}}U(ao);}a=true;u=ba;}if(!aA){r("CrxOop FATAL ERROR:: "+u,0);}throw"CrxOop FATAL ERROR:: "+u;}function U(ba){var a9=null;for(a9 in ba){if(ba.hasOwnProperty(a9)){delete ba[a9];}}}function G(bb,ba){for(var a9 in ba){if(!ba.hasOwnProperty(a9)||bb.hasOwnProperty(a9)){continue;}bb[a9]=ba[a9];}}function T(bb,ba,a9){if(aR&&aa){T.o.value=a9;Object.defineProperty(bb,ba,T.o);}else{bb[ba]=a9;}}T.o={value:null,writable:false};function B(bc,bb,a9){if(aR&&aa){T.o.value=a9;for(var ba=bc.length-1;ba>-1;ba--){Object.defineProperty(bc[ba],bb,T.o);}}else{for(var ba=bc.length-1;ba>-1;ba--){bc[ba][bb]=a9;}}}function aF(a9){if(a||aL){return false;}aP=a9;return true;}function S(a9,ba){if(typeof(a9)==="function"){return function(){if(a){return;}return a9.apply(null,arguments);};}else{return a9;}}T(window,"crx_new",c);T(window,"crx_registerClass",t);T(window,"crx_registerInterface",m);T(window,"crx_static",(n?ad:ak));T(window,"crxOop_setLogger",aF);T(window,"crxOop_instanceof",aX);T(window,"crxOop_typeof",aN);T(window,"crxOop_isClassExtending",function(ba,a9){return q(ba,a9,false);});T(window,"crxOop_isClassChaining",function(ba,a9){return q(ba,a9,true);});T(window,"crxOop_isClassImplementing",w);T(window,"crxOop_areStaticFunctionsSupported",function(){return !n;});T(window,"crxOop_createObject",aG);T(window,"crxOop_setStrictMode",function(a9){if(aL){return;}aR=a9;});T(window,"crxOop_areStructuresLocked",function(){return aa&&Object.seal&&A&&aR;});T(window,"crxOop_var",S);T(window,"crxOop_setRunningTestCasesMode",function(a9){if(aL){return;}if(a9){aA=true;}});T(window,"crxOop_unHalt",function(a9){if(aA){if(!a){am("UNHALTING WHEN NOT HALTED: "+a9);}a=false;}});})(); \ No newline at end of file