Subversion Repositories wimsdev

Rev

Rev 15332 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
14550 bpr 1
(function(){/*
2
 https://mths.be/fromcodepoint v0.2.1 by @mathias */
16494 obado 3
'use strict';var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(m,p,a){m!=Array.prototype&&m!=Object.prototype&&(m[p]=a.value)};$jscomp.getGlobal=function(m){return"undefined"!=typeof window&&window===m?m:"undefined"!=typeof global&&null!=global?global:m};$jscomp.global=$jscomp.getGlobal(this);
4
$jscomp.polyfill=function(m,p,a,b){if(p){a=$jscomp.global;m=m.split(".");for(b=0;b<m.length-1;b++){var c=m[b];c in a||(a[c]={});a=a[c]}m=m[m.length-1];b=a[m];p=p(b);p!=b&&null!=p&&$jscomp.defineProperty(a,m,{configurable:!0,writable:!0,value:p})}};$jscomp.polyfill("Array.prototype.includes",function(m){return m?m:function(m,a){var b=this;b instanceof String&&(b=String(b));var c=b.length;a=a||0;for(0>a&&(a=Math.max(a+c,0));a<c;a++){var d=b[a];if(d===m||Object.is(d,m))return!0}return!1}},"es7","es3");
5
$jscomp.owns=function(m,p){return Object.prototype.hasOwnProperty.call(m,p)};$jscomp.polyfill("Object.values",function(m){return m?m:function(m){var a=[],b;for(b in m)$jscomp.owns(m,b)&&a.push(m[b]);return a}},"es8","es3");$jscomp.arrayIteratorImpl=function(m){var p=0;return function(){return p<m.length?{done:!1,value:m[p++]}:{done:!0}}};$jscomp.arrayIterator=function(m){return{next:$jscomp.arrayIteratorImpl(m)}};$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
6
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.SymbolClass=function(m,p){this.$jscomp$symbol$id_=m;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:p})};$jscomp.SymbolClass.prototype.toString=function(){return this.$jscomp$symbol$id_};
7
$jscomp.Symbol=function(){function m(a){if(this instanceof m)throw new TypeError("Symbol is not a constructor");return new $jscomp.SymbolClass($jscomp.SYMBOL_PREFIX+(a||"")+"_"+p++,a)}var p=0;return m}();
8
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var m=$jscomp.global.Symbol.iterator;m||(m=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("Symbol.iterator"));"function"!=typeof Array.prototype[m]&&$jscomp.defineProperty(Array.prototype,m,{configurable:!0,writable:!0,value:function(){return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this))}});$jscomp.initSymbolIterator=function(){}};
9
$jscomp.initSymbolAsyncIterator=function(){$jscomp.initSymbol();var m=$jscomp.global.Symbol.asyncIterator;m||(m=$jscomp.global.Symbol.asyncIterator=$jscomp.global.Symbol("Symbol.asyncIterator"));$jscomp.initSymbolAsyncIterator=function(){}};$jscomp.iteratorPrototype=function(m){$jscomp.initSymbolIterator();m={next:m};m[$jscomp.global.Symbol.iterator]=function(){return this};return m};
10
$jscomp.iteratorFromArray=function(m,p){$jscomp.initSymbolIterator();m instanceof String&&(m+="");var a=0,b={next:function(){if(a<m.length){var c=a++;return{value:p(c,m[c]),done:!1}}b.next=function(){return{done:!0,value:void 0}};return b.next()}};b[Symbol.iterator]=function(){return b};return b};$jscomp.polyfill("Array.prototype.values",function(m){return m?m:function(){return $jscomp.iteratorFromArray(this,function(m,a){return a})}},"es8","es3");
11
(function(m){function p(b){if(a[b])return a[b].exports;var c=a[b]={i:b,l:!1,exports:{}};m[b].call(c.exports,c,c.exports,p);c.l=!0;return c.exports}var a={};p.m=m;p.c=a;p.d=function(a,c,d){p.o(a,c)||Object.defineProperty(a,c,{enumerable:!0,get:d})};p.r=function(a){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"});Object.defineProperty(a,"__esModule",{value:!0})};p.t=function(a,c){c&1&&(a=p(a));if(c&8)return a;if(c&4&&"object"===typeof a&&
12
a&&a.__esModule)return a;var b=Object.create(null);p.r(b);Object.defineProperty(b,"default",{enumerable:!0,value:a});if(c&2&&"string"!=typeof a)for(var e in a)p.d(b,e,function(c){return a[c]}.bind(null,e));return b};p.n=function(a){var c=a&&a.__esModule?function(){return a["default"]}:function(){return a};p.d(c,"a",c);return c};p.o=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)};p.p="";return p(p.s=1)})([function(m,p){p=function(){return this}();try{p=p||(new Function("return this"))()}catch(a){"object"===
13
typeof window&&(p=window)}m.exports=p},function(m,p,a){a(2);Sk.global.strftime=a(3);Sk.global.strptime=a(4);a(5);a(7);a(8);a(9);a(10);a(11);a(12);a(13);a(14);a(15);a(16);a(17);a(18);a(19);a(20);a(21);a(23);a(24);a(25);a(26);a(27);a(28);a(29);a(30);a(31);a(32);a(33);a(34);a(35);a(36);a(37);a(38);a(39);a(40);a(41);a(42);a(43);a(44);a(45);a(46);a(47);a(48);a(49);a(50);a(51);a(52);a(53);a(54);a(55);a(56);a(57);a(58);a(59);a(60);a(61);a(62);a(63)},function(m,p,a){(function(a){var c={build:{githash:"4b86a6f1f3cf684f7e5ca17042fc5d6bd302df60",
14
date:"2020-10-10T16:16:41.699Z"}};c.global="undefined"!==typeof a?a:"undefined"!==typeof self?self:"undefined"!==typeof window?window:{};c.exportSymbol=function(a,b){a=a.split(".");var d=c.global,e;for(e=0;e<a.length-1;e++){var f=a[e];d=d.hasOwnProperty(f)?d[f]:d[f]={}}"undefined"!==typeof b&&(f=a[e],d[f]=b)};c.isArrayLike=function(a){return a instanceof Array||a&&a.length&&"number"==typeof a.length?!0:!1};c.js_beautify=function(a){return a};c.exportSymbol("Sk",c);c.exportSymbol("Sk.global",c.global);
15
c.exportSymbol("Sk.build",c.build);c.exportSymbol("Sk.exportSymbol",c.exportSymbol);c.exportSymbol("Sk.isArrayLike",c.isArrayLike);c.exportSymbol("Sk.js_beautify",c.js_beautify)}).call(this,a(0))},function(m,p){(function(){function a(n,l,z){function u(a,f,k,n){for(var l="",z=null,y=!1,t=a.length,H=!1,m=0;m<t;m++){var C=a.charCodeAt(m);if(!0===y)if(45===C)z="";else if(95===C)z=" ";else if(48===C)z="0";else if(58===C)H&&g("[WARNING] detected use of unsupported %:: or %::: modifiers to strftime"),H=
16
!0;else{switch(C){case 37:l+="%";break;case 65:l+=k.days[f.getDay()];break;case 66:l+=k.months[f.getMonth()];break;case 67:l+=b(Math.floor(f.getFullYear()/100),z);break;case 68:l+=u(k.formats.D,f,k,n);break;case 70:l+=u(k.formats.F,f,k,n);break;case 72:l+=b(f.getHours(),z);break;case 73:l+=b(d(f.getHours()),z);break;case 76:l+=c(Math.floor(n%1E3));break;case 77:l+=b(f.getMinutes(),z);break;case 80:l+=12>f.getHours()?k.am:k.pm;break;case 82:l+=u(k.formats.R,f,k,n);break;case 83:l+=b(f.getSeconds(),
17
z);break;case 84:l+=u(k.formats.T,f,k,n);break;case 85:l+=b(e(f,"sunday"),z);break;case 87:l+=b(e(f,"monday"),z);break;case 88:l+=u(k.formats.X,f,k,n);break;case 89:l+=f.getFullYear();break;case 90:K&&0===q?l+="GMT":(z=f.toString().match(/\(([\w\s]+)\)/),l+=z&&z[1]||"");break;case 97:l+=k.shortDays[f.getDay()];break;case 98:l+=k.shortMonths[f.getMonth()];break;case 99:l+=u(k.formats.c,f,k,n);break;case 100:l+=b(f.getDate(),z);break;case 101:l+=b(f.getDate(),null==z?" ":z);break;case 104:l+=k.shortMonths[f.getMonth()];
18
break;case 106:z=new Date(f.getFullYear(),0,1);z=Math.ceil((f.getTime()-z.getTime())/864E5);l+=c(z);break;case 107:l+=b(f.getHours(),null==z?" ":z);break;case 108:l+=b(d(f.getHours()),null==z?" ":z);break;case 109:l+=b(f.getMonth()+1,z);break;case 110:l+="\n";break;case 111:z=f.getDate();l=k.ordinalSuffixes?l+(String(z)+(k.ordinalSuffixes[z-1]||h(z))):l+(String(z)+h(z));break;case 112:l+=12>f.getHours()?k.AM:k.PM;break;case 114:l+=u(k.formats.r,f,k,n);break;case 115:l+=Math.floor(n/1E3);break;case 116:l+=
19
"\t";break;case 117:z=f.getDay();l+=0===z?7:z;break;case 118:l+=u(k.formats.v,f,k,n);break;case 119:l+=f.getDay();break;case 120:l+=u(k.formats.x,f,k,n);break;case 121:l+=(""+f.getFullYear()).slice(2);break;case 122:K&&0===q?l+=H?"+00:00":"+0000":(z=0!==q?q/6E4:-f.getTimezoneOffset(),y=H?":":"",C=Math.abs(z%60),l+=(0>z?"-":"+")+b(Math.floor(Math.abs(z/60)))+y+b(C));break;default:y&&(l+="%"),l+=a[m]}z=null;y=!1}else 37===C?y=!0:l+=a[m]}return l}var t=n||k,q=l||0,K=z||!1,m=0,F,L=function(a,c){if(c){var b=
20
c.getTime();if(K){var d=6E4*(c.getTimezoneOffset()||0);c=new Date(b+d+q);6E4*(c.getTimezoneOffset()||0)!==d&&(c=6E4*(c.getTimezoneOffset()||0),c=new Date(b+c+q))}}else b=Date.now(),b>m?(m=b,F=new Date(m),b=m,K&&(F=new Date(m+6E4*(F.getTimezoneOffset()||0)+q))):b=m,c=F;return u(a,c,t,b)};L.localize=function(c){return new a(c||t,q,K)};L.localizeByIdentifier=function(a){var c=f[a];return c?L.localize(c):(g('[WARNING] No locale found with identifier "'+a+'".'),L)};L.timezone=function(c){var b=q,d=K,f=
21
typeof c;if("number"===f||"string"===f)d=!0,"string"===f?(b="-"===c[0]?-1:1,f=parseInt(c.slice(1,3),10),c=parseInt(c.slice(3,5),10),b=b*(60*f+c)*6E4):"number"===f&&(b=6E4*c);return new a(t,b,d)};L.utc=function(){return new a(t,q,!0)};return L}function b(a,c){if(""===c||9<a)return a;null==c&&(c="0");return c+a}function c(a){return 99<a?a:9<a?"0"+a:"00"+a}function d(a){return 0===a?12:12<a?a-12:a}function e(a,c){c=c||"sunday";var b=a.getDay();"monday"===c&&(0===b?b=6:b--);c=Date.UTC(a.getFullYear(),
22
0,1);a=Date.UTC(a.getFullYear(),a.getMonth(),a.getDate());return Math.floor((Math.floor((a-c)/864E5)+7-b)/7)}function h(a){var c=a%10;a%=100;if(11<=a&&13>=a||0===c||4<=c)return"th";switch(c){case 1:return"st";case 2:return"nd";case 3:return"rd"}}function g(a){"undefined"!==typeof console&&"function"==typeof console.warn&&console.warn(a)}var f={de_DE:{days:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),shortDays:"So Mo Di Mi Do Fr Sa".split(" "),months:"Januar Februar M\u00e4rz April Mai Juni Juli August September Oktober November Dezember".split(" "),
14550 bpr 23
shortMonths:"Jan Feb M\u00e4r Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d.%m.%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},en_CA:{days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
24
ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},en_US:{days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),
25
shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),ordinalSuffixes:"st nd rd th th th th th th th th th th th th th th th th th st nd rd th th th th th th th st".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%m/%d/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},es_MX:{days:"domingo lunes martes mi\u00e9rcoles jueves viernes s\u00e1bado".split(" "),shortDays:"dom lun mar mi\u00e9 jue vie s\u00e1b".split(" "),
26
months:"enero;febrero;marzo;abril;mayo;junio;julio;agosto;septiembre;octubre;noviembre; diciembre".split(";"),shortMonths:"ene feb mar abr may jun jul ago sep oct nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},fr_FR:{days:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),shortDays:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),months:"janvier f\u00e9vrier mars avril mai juin juillet ao\u00fbt septembre octobre novembre d\u00e9cembre".split(" "),
27
shortMonths:"janv. f\u00e9vr. mars avril mai juin juil. ao\u00fbt sept. oct. nov. d\u00e9c.".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},it_IT:{days:"domenica luned\u00ec marted\u00ec mercoled\u00ec gioved\u00ec venerd\u00ec sabato".split(" "),shortDays:"dom lun mar mer gio ven sab".split(" "),months:"gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre".split(" "),
28
shortMonths:"pr mag giu lug ago set ott nov dic".split(" "),AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},nl_NL:{days:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),shortDays:"zo ma di wo do vr za".split(" "),months:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),shortMonths:"jan feb mrt apr mei jun jul aug sep okt nov dec".split(" "),
29
AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},pt_BR:{days:"domingo segunda ter\u00e7a quarta quinta sexta s\u00e1bado".split(" "),shortDays:"Dom Seg Ter Qua Qui Sex S\u00e1b".split(" "),months:"janeiro fevereiro mar\u00e7o abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),shortMonths:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),AM:"AM",PM:"PM",am:"am",
30
pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},ru_RU:{days:"\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435 \u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a \u0412\u0442\u043e\u0440\u043d\u0438\u043a \u0421\u0440\u0435\u0434\u0430 \u0427\u0435\u0442\u0432\u0435\u0440\u0433 \u041f\u044f\u0442\u043d\u0438\u0446\u0430 \u0421\u0443\u0431\u0431\u043e\u0442\u0430".split(" "),shortDays:"\u0412\u0441 \u041f\u043d \u0412\u0442 \u0421\u0440 \u0427\u0442 \u041f\u0442 \u0421\u0431".split(" "),
31
months:"\u042f\u043d\u0432\u0430\u0440\u044c \u0424\u0435\u0432\u0440\u0430\u043b\u044c \u041c\u0430\u0440\u0442 \u0410\u043f\u0440\u0435\u043b\u044c \u041c\u0430\u0439 \u0418\u044e\u043d\u044c \u0418\u044e\u043b\u044c \u0410\u0432\u0433\u0443\u0441\u0442 \u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c \u041e\u043a\u0442\u044f\u0431\u0440\u044c \u041d\u043e\u044f\u0431\u0440\u044c \u0414\u0435\u043a\u0430\u0431\u0440\u044c".split(" "),shortMonths:"\u044f\u043d\u0432 \u0444\u0435\u0432 \u043c\u0430\u0440 \u0430\u043f\u0440 \u043c\u0430\u0439 \u0438\u044e\u043d \u0438\u044e\u043b \u0430\u0432\u0433 \u0441\u0435\u043d \u043e\u043a\u0442 \u043d\u043e\u044f \u0434\u0435\u043a".split(" "),
32
AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X",D:"%d.%m.%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},tr_TR:{days:"Pazar Pazartesi Sal\u0131 \u00c7ar\u015famba Per\u015fembe Cuma Cumartesi".split(" "),shortDays:"Paz Pzt Sal \u00c7r\u015f Pr\u015f Cum Cts".split(" "),months:"Ocak \u015eubat Mart Nisan May\u0131s Haziran Temmuz A\u011fustos Eyl\u00fcl Ekim Kas\u0131m Aral\u0131k".split(" "),shortMonths:"Oca \u015eub Mar Nis May Haz Tem A\u011fu Eyl Eki Kas Ara".split(" "),
33
AM:"\u00d6\u00d6",PM:"\u00d6S",am:"\u00d6\u00d6",pm:"\u00d6S",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},zh_CN:{days:"\u661f\u671f\u65e5 \u661f\u671f\u4e00 \u661f\u671f\u4e8c \u661f\u671f\u4e09 \u661f\u671f\u56db \u661f\u671f\u4e94 \u661f\u671f\u516d".split(" "),shortDays:"\u65e5\u4e00\u4e8c\u4e09\u56db\u4e94\u516d".split(""),months:"\u4e00\u6708\u4efd \u4e8c\u6708\u4efd \u4e09\u6708\u4efd \u56db\u6708\u4efd \u4e94\u6708\u4efd \u516d\u6708\u4efd \u4e03\u6708\u4efd \u516b\u6708\u4efd \u4e5d\u6708\u4efd \u5341\u6708\u4efd \u5341\u4e00\u6708\u4efd \u5341\u4e8c\u6708\u4efd".split(" "),
16494 obado 34
shortMonths:"\u4e00\u6708 \u4e8c\u6708 \u4e09\u6708 \u56db\u6708 \u4e94\u6708 \u516d\u6708 \u4e03\u6708 \u516b\u6708 \u4e5d\u6708 \u5341\u6708 \u5341\u4e00\u6708 \u5341\u4e8c\u6708".split(" "),AM:"\u4e0a\u5348",PM:"\u4e0b\u5348",am:"\u4e0a\u5348",pm:"\u4e0b\u5348",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}}},k=f.en_US,n=new a(k,0,!1);if("undefined"!==typeof m)var l=m.exports=n;else l=function(){return this||(0,eval)("this")}(),
35
l.strftime=n;"function"!==typeof Date.now&&(Date.now=function(){return+new Date})})()},function(m,p,a){(function(){var a=function(c,b,e){return a.parse(c,b,e)};a.version="0.0.1";(m.exports=a).strptime=a;a.locale={a:"Sun Mon Tue Wed Thu Fri Sat".split(" "),A:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),b:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),B:"January February March April May June July August September October November December".split(" "),f:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),
14550 bpr 36
c:"%Y-%m-%d %H:%M:%S",P:["am","pm"],r:"%I:%M:%S %p",x:"%m/%d/%y",X:"%H:%M:%S",day:["Yesterday","Today","Tomorrow"],bg:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),Bg:"January February March April May June July August September October November December".split(" "),fg:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),Date_dBY_year_in_HM:"%#B %-d, %Y at %-H:%M",Date_dBY_year:"%#B %-d, %Y",Date_dBY:"%#B %-d, %Y",Date_AdBY:"%A, %#B %-d, %Y",Date_dBA:"%#B %-d, %A",
16494 obado 37
Date_df_in_HM:"%#f, %-d at %-H:%M",Date_dfY:"%-d %#f %Y",Date_dB_in_HM:"%#B %-d at %-H:%M",Date_df:"%-d %#f"};(function(a){function c(a,b,d,e,g,h){b=String(b);d=String(d);b=b.replace(/^[#_0\^\-!~]+/,"");e=f[b];if(!e)return a;var k=!1;-1===d.indexOf("!")&&1===b.length&&(-1<d.indexOf("~")||-1<"bBf".indexOf(b)&&/%[0\-_]?d[\s]+$/.test(h.substr(0,g)))&&(k=!0);if(("I"===b||"l"===b)&&!/%[pP]/.test(h))throw Error("Undefined AM/PM");switch(typeof e){case "function":return e();case "string":return e;case "object":return c.make.push([e.make,
38
d,k]),"("+e.reg+")";default:return a}}function b(a,c){a=String(a);c=String(c);return-1!==c.indexOf("#")?a.substr(0,1).toUpperCase()+a.substr(1):-1!==c.indexOf("^")?a.substr(0,1)+a.substr(1).toLowerCase():a}var h=Array.prototype.indexOf||function(a){for(var c=this.length,b=0;b<c;){if(a==this[b])return b;b++}return-1},g=a.locale,f={"%":"\\%",a:"\\S+",A:"\\S+",b:{reg:"\\S+",make:function(a,c,d,f){c=h.call(f?g.bg:g.b,b(c,d));if(-1===c)return!1;a.setUTCMonth(c);return!0}},h:{reg:"\\S+",make:function(a,
39
c,d,f){c=h.call(f?g.bg:g.b,b(c,d));if(-1===c)return!1;a.setUTCMonth(c);return!0}},B:{reg:"\\S+",make:function(a,c,d,f){c=h.call(f?g.Bg:g.B,b(c,d));if(-1===c)return!1;a.setUTCMonth(c);return!0}},f:{reg:"\\S+",make:function(a,c,d,f){c=h.call(f?g.fg:g.f,b(c,d));if(-1===c)return!1;a.setUTCMonth(c);return!0}},g:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(0>c||99<c)return!1;c+=100*parseInt((new Date).getUTCFullYear()/100,10);a.setUTCFullYear(c);return!0}},G:{reg:"\\d{4}",make:function(a,
40
c){c=parseInt(c,10);a.setUTCFullYear(c);return!0}},d:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(1>c||31<c)return!1;a.setUTCDate(c);return!0}},e:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(1>c||31<c)return!1;a.setUTCDate(c);return!0}},H:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(0>c||23<c)return!1;a.setUTCHours(c);return!0}},I:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(1>c||12<c)return!1;a.setUTCHours(a.getUTCHours()+c);return!0}},m:{reg:"[\\d\\s]?\\d",
41
make:function(a,c){c=parseInt(c,10);if(1>c||12<c)return!1;a.setUTCMonth(c-1);return!0}},M:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(0>c||59<c)return!1;a.setUTCMinutes(c);return!0}},n:"\\n",p:{reg:"\\S+",make:function(a,c){c=h.call(g.P,c.toLowerCase());if(-1===c)return!1;1===c&&a.setUTCHours(a.getUTCHours()+12);return!0}},P:{reg:"\\S+",make:function(a,c){c=h.call(g.P,c.toLowerCase());if(-1===c)return!1;1===c&&a.setUTCHours(a.getUTCHours()+12);return!0}},S:{reg:"[\\d\\s]?\\d",make:function(a,
42
c){c=parseInt(c,10);if(0>c||60<c)return!1;a.setUTCSeconds(c);return!0}},t:"\\t",u:"\\d",U:"[\\d\\s]?\\d",w:"\\d",W:"[\\d\\s]?\\d",y:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(0>c||99<c)return!1;c+=100*parseInt((new Date).getUTCFullYear()/100,10);a.setUTCFullYear(c);return!0}},Y:{reg:"\\d{4}",make:function(a,c){c=parseInt(c,10);a.setUTCFullYear(c);return!0}},z:{reg:"[+\\-]\\d{4}",make:function(a,c){c=c.match(/^([+\-])(\d{2})(\d{2})$/);if(!c)return!1;var b=6E4*(60*parseInt(c[2],10)+
43
parseInt(c[3],10));"+"===c[1]&&(b=-b);a.setTime(a.getTime()+b);return!0}},l:{reg:"[\\d\\s]?\\d",make:function(a,c){c=parseInt(c,10);if(1>c||12<c)return!1;a.setUTCHours(a.getUTCHours()+c);return!0}},s:{reg:"\\d+",make:function(a,c){c=parseInt(c,10);a.setTime(1E3*c);return!0}},c:g.c,r:g.r,R:"%H:%M",T:"%H:%M:%S",x:g.x,X:g.X,D:"%m/%d/%y",F:"%Y-%m-%d",Date_iso:"%Y-%m-%dT%H:%M:%S",Date_dBY_year_in_HM:g.Date_dBY_year_in_HM,Date_dBY_year:g.Date_dBY_year,Date_dBY:g.Date_dBY,Date_dBA:g.Date_dBA,Date_AdBY:g.Date_AdBY,
44
Date_df_in_HM:g.Date_df_in_HM,Date_dfY:g.Date_dfY,Date_dB_in_HM:g.Date_dB_in_HM,Date_dmY__dot:"%d.%m.%Y",Date_df:g.Date_df,Date_FT:"%F %T",Date_dmY__minus:"%d-%m-%Y"};a.parse=function(a,b,d){a=String(a);b=String(b);for(var f=5;/%(Date_[a-zA-Z0-9_]+|[cDFrRTxX])/g.test(b)&&f;)b=b.replace(/%(Date_[a-zA-Z0-9_]+|[cDFrRTxX])/,c),f--;c.make=[];b=b.replace(/%(([#\^!~]{0,2})[aAbBfh]|([0\-_]?)[degHImMSVWyl]|[GnpPtuUwYzZs%])/g,c);a=a.match(new RegExp(b));if(!a||!c.make.length)return null;b=new Date(Date.UTC(0,
45
0));f=0;for(var e=c.make.length;f<e;f++){var g=c.make[f];if(!g[0](b,a[f+1],g[1],g[2]))return null}d&&b.setTime(b.getTime()+6E4*b.getTimezoneOffset());return b}})(a)})()},function(m,p,a){(function(a,c){(function(a,b){function d(a){delete y[a]}function e(a){if(t)setTimeout(e,0,a);else{var c=y[a];if(c){t=!0;try{var f=c.callback,g=c.args;switch(g.length){case 0:f();break;case 1:f(g[0]);break;case 2:f(g[0],g[1]);break;case 3:f(g[0],g[1],g[2]);break;default:f.apply(b,g)}}finally{d(a),t=!1}}}}function f(){m=
46
function(a){c.nextTick(function(){e(a)})}}function k(){if(a.postMessage&&!a.importScripts){var c=!0,b=a.onmessage;a.onmessage=function(){c=!1};a.postMessage("","*");a.onmessage=b;return c}}function n(){var c="setImmediate$"+Math.random()+"$",b=function(b){b.source===a&&"string"===typeof b.data&&0===b.data.indexOf(c)&&e(+b.data.slice(c.length))};a.addEventListener?a.addEventListener("message",b,!1):a.attachEvent("onmessage",b);m=function(b){a.postMessage(c+b,"*")}}function l(){var a=new MessageChannel;
47
a.port1.onmessage=function(a){e(a.data)};m=function(c){a.port2.postMessage(c)}}function q(){var a=H.documentElement;m=function(c){var b=H.createElement("script");b.onreadystatechange=function(){e(c);b.onreadystatechange=null;a.removeChild(b);b=null};a.appendChild(b)}}function u(){m=function(a){setTimeout(e,0,a)}}if(!a.setImmediate){var z=1,y={},t=!1,H=a.document,m,C=Object.getPrototypeOf&&Object.getPrototypeOf(a);C=C&&C.setTimeout?C:a;"[object process]"==={}.toString.call(a.process)?f():k()?n():a.MessageChannel?
48
l():H&&"onreadystatechange"in H.createElement("script")?q():u();C.setImmediate=function(a){"function"!==typeof a&&(a=new Function(""+a));for(var c=Array(arguments.length-1),b=0;b<c.length;b++)c[b]=arguments[b+1];y[z]={callback:a,args:c};m(z);return z++};C.clearImmediate=d}})("undefined"===typeof self?"undefined"===typeof a?this:a:self)}).call(this,a(0),a(6))},function(m,p){function a(){throw Error("setTimeout has not been defined");}function b(){throw Error("clearTimeout has not been defined");}function c(c){if(k===
49
setTimeout)return setTimeout(c,0);if((k===a||!k)&&setTimeout)return k=setTimeout,setTimeout(c,0);try{return k(c,0)}catch(t){try{return k.call(null,c,0)}catch(H){return k.call(this,c,0)}}}function d(a){if(n===clearTimeout)return clearTimeout(a);if((n===b||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(a);try{return n(a)}catch(t){try{return n.call(null,a)}catch(H){return n.call(this,a)}}}function e(){q&&u&&(q=!1,u.length?l=u.concat(l):z=-1,l.length&&h())}function h(){if(!q){var a=c(e);q=!0;for(var b=
50
l.length;b;){u=l;for(l=[];++z<b;)u&&u[z].run();z=-1;b=l.length}u=null;q=!1;d(a)}}function g(a,c){this.fun=a;this.array=c}function f(){}m=m.exports={};try{var k="function"===typeof setTimeout?setTimeout:a}catch(y){k=a}try{var n="function"===typeof clearTimeout?clearTimeout:b}catch(y){n=b}var l=[],q=!1,u,z=-1;m.nextTick=function(a){var b=Array(arguments.length-1);if(1<arguments.length)for(var d=1;d<arguments.length;d++)b[d-1]=arguments[d];l.push(new g(a,b));1!==l.length||q||c(h)};g.prototype.run=function(){this.fun.apply(null,
51
this.array)};m.title="browser";m.browser=!0;m.env={};m.argv=[];m.version="";m.versions={};m.on=f;m.addListener=f;m.once=f;m.off=f;m.removeListener=f;m.removeAllListeners=f;m.emit=f;m.prependListener=f;m.prependOnceListener=f;m.listeners=function(a){return[]};m.binding=function(a){throw Error("process.binding is not supported");};m.cwd=function(){return"/"};m.chdir=function(a){throw Error("process.chdir is not supported");};m.umask=function(){return 0}},function(m,p){Sk.asserts={};Sk.asserts.assert=
52
function(a,b){return a};Sk.exportSymbol("Sk.asserts.assert",Sk.asserts.assert);Sk.asserts.fail=function(a){};Sk.exportSymbol("Sk.asserts.fail",Sk.asserts.fail)},function(m,p){Sk.bool_check=function(a,b){if(void 0===a||null===a||"boolean"!==typeof a)throw Error("must specify "+b+" and it must be a boolean");};Sk.python2={print_function:!1,division:!1,absolute_import:null,unicode_literals:!1,python3:!1,class_repr:!1,inherit_from_object:!1,super_args:!1,octal_number_literal:!1,bankers_rounding:!1,python_version:!1,
53
dunder_round:!1,exceptions:!1,no_long_type:!1,ceil_floor_int:!1,silent_octal_literal:!0};Sk.python3={print_function:!0,division:!0,absolute_import:null,unicode_literals:!0,python3:!0,class_repr:!0,inherit_from_object:!0,super_args:!0,octal_number_literal:!0,bankers_rounding:!0,python_version:!0,dunder_round:!0,exceptions:!0,no_long_type:!0,ceil_floor_int:!0,silent_octal_literal:!1};Sk.configure=function(a){Sk.output=a.output||Sk.output;Sk.asserts.assert("function"===typeof Sk.output);Sk.debugout=
15332 obado 54
a.debugout||Sk.debugout;Sk.asserts.assert("function"===typeof Sk.debugout);Sk.uncaughtException=a.uncaughtException||Sk.uncaughtException;Sk.asserts.assert("function"===typeof Sk.uncaughtException);Sk.read=a.read||Sk.read;Sk.asserts.assert("function"===typeof Sk.read);Sk.nonreadopen=a.nonreadopen||!1;Sk.asserts.assert("boolean"===typeof Sk.nonreadopen);Sk.fileopen=a.fileopen||void 0;Sk.asserts.assert("function"===typeof Sk.fileopen||"undefined"===typeof Sk.fileopen);Sk.filewrite=a.filewrite||void 0;
55
Sk.asserts.assert("function"===typeof Sk.filewrite||"undefined"===typeof Sk.filewrite);Sk.timeoutMsg=a.timeoutMsg||Sk.timeoutMsg;Sk.asserts.assert("function"===typeof Sk.timeoutMsg);Sk.exportSymbol("Sk.timeoutMsg",Sk.timeoutMsg);Sk.sysargv=a.sysargv||Sk.sysargv;Sk.asserts.assert(Sk.isArrayLike(Sk.sysargv));Sk.__future__=a.__future__||Sk.python2;Sk.bool_check(Sk.__future__.print_function,"Sk.__future__.print_function");Sk.bool_check(Sk.__future__.division,"Sk.__future__.division");Sk.bool_check(Sk.__future__.unicode_literals,
16494 obado 56
"Sk.__future__.unicode_literals");Sk.bool_check(Sk.__future__.class_repr,"Sk.__future__.class_repr");Sk.bool_check(Sk.__future__.inherit_from_object,"Sk.__future__.inherit_from_object");Sk.bool_check(Sk.__future__.super_args,"Sk.__future__.super_args");Sk.bool_check(Sk.__future__.octal_number_literal,"Sk.__future__.octal_number_literal");Sk.bool_check(Sk.__future__.bankers_rounding,"Sk.__future__.bankers_rounding");Sk.bool_check(Sk.__future__.python_version,"Sk.__future__.python_version");Sk.bool_check(Sk.__future__.dunder_round,
57
"Sk.__future__.dunder_round");Sk.bool_check(Sk.__future__.exceptions,"Sk.__future__.exceptions");Sk.bool_check(Sk.__future__.no_long_type,"Sk.__future__.no_long_type");Sk.bool_check(Sk.__future__.ceil_floor_int,"Sk.__future__.ceil_floor_int");Sk.bool_check(Sk.__future__.silent_octal_literal,"Sk.__future__.silent_octal_literal");Sk.imageProxy=a.imageProxy||"http://localhost:8080/320x";Sk.asserts.assert("string"===typeof Sk.imageProxy||"function"===typeof Sk.imageProxy);Sk.inputfun=a.inputfun||Sk.inputfun;
58
Sk.asserts.assert("function"===typeof Sk.inputfun);Sk.inputfunTakesPrompt=a.inputfunTakesPrompt||!1;Sk.asserts.assert("boolean"===typeof Sk.inputfunTakesPrompt);Sk.retainGlobals=a.retainglobals||a.retainGlobals||!1;Sk.asserts.assert("boolean"===typeof Sk.retainGlobals);Sk.debugging=a.debugging||!1;Sk.asserts.assert("boolean"===typeof Sk.debugging);Sk.killableWhile=a.killableWhile||!1;Sk.asserts.assert("boolean"===typeof Sk.killableWhile);Sk.killableFor=a.killableFor||!1;Sk.asserts.assert("boolean"===
59
typeof Sk.killableFor);Sk.signals=a.signals;Sk.signals=!0===Sk.signals?{listeners:[],addEventListener:function(a){Sk.signals.listeners.push(a)},removeEventListener:function(a){a=Sk.signals.listeners.indexOf(a);0<=a&&Sk.signals.listeners.splice(a,1)},signal:function(a,c){for(var b=0;b<Sk.signals.listeners.length;b++)Sk.signals.listeners[b].call(null,a,c)}}:null;Sk.asserts.assert("object"===typeof Sk.signals);Sk.breakpoints=a.breakpoints||function(){return!0};Sk.asserts.assert("function"===typeof Sk.breakpoints);
60
Sk.setTimeout=a.setTimeout;void 0===Sk.setTimeout&&(Sk.setTimeout="function"===typeof setTimeout?function(a,c){setTimeout(a,c)}:function(a,c){a()});Sk.asserts.assert("function"===typeof Sk.setTimeout);"execLimit"in a&&(Sk.execLimit=a.execLimit);"yieldLimit"in a&&(Sk.yieldLimit=a.yieldLimit);a.syspath&&(Sk.syspath=a.syspath,Sk.asserts.assert(Sk.isArrayLike(Sk.syspath)),Sk.realsyspath=void 0,Sk.sysmodules=new Sk.builtin.dict([]));Sk.misceval.softspace_=!1;Sk.switch_version("round$",Sk.__future__.dunder_round);
61
Sk.switch_version("next$",Sk.__future__.python3);Sk.switch_version("haskey$",Sk.__future__.python3);Sk.switch_version("clear$",Sk.__future__.python3);Sk.switch_version("copy$",Sk.__future__.python3);Sk.builtin.lng.prototype.tp$name=Sk.__future__.no_long_type?"int":"long";Sk.builtin.lng.prototype.ob$type=Sk.__future__.no_long_type?Sk.builtin.int_:Sk.builtin.lng;Sk.builtin.str.$next=Sk.__future__.python3?new Sk.builtin.str("__next__"):new Sk.builtin.str("next");Sk.setupOperators(Sk.__future__.python3);
62
Sk.setupDunderMethods(Sk.__future__.python3);Sk.__future__.python3?(Sk.builtin.dict.prototype.keys=new Sk.builtin.func(Sk.builtin.dict.prototype.py3$keys),Sk.builtin.dict.prototype.values=new Sk.builtin.func(Sk.builtin.dict.prototype.py3$values),Sk.builtin.dict.prototype.items=new Sk.builtin.func(Sk.builtin.dict.prototype.py3$items)):(Sk.builtin.dict.prototype.keys=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$keys),Sk.builtin.dict.prototype.values=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$values),
63
Sk.builtin.dict.prototype.items=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$items));Sk.setupObjects(Sk.__future__.python3)};Sk.exportSymbol("Sk.configure",Sk.configure);Sk.uncaughtException=function(a){throw a;};Sk.uncaughtException=function(a){throw a;};Sk.exportSymbol("Sk.uncaughtException",Sk.uncaughtException);Sk.timeoutMsg=function(){return"Program exceeded run time limit."};Sk.exportSymbol("Sk.timeoutMsg",Sk.timeoutMsg);Sk.execLimit=Number.POSITIVE_INFINITY;Sk.yieldLimit=Number.POSITIVE_INFINITY;
64
Sk.output=function(a){};Sk.read=function(a){if(void 0===Sk.builtinFiles)throw"skulpt-stdlib.js has not been loaded";if(void 0===Sk.builtinFiles.files[a])throw"File not found: '"+a+"'";return Sk.builtinFiles.files[a]};Sk.sysargv=[];Sk.getSysArgv=function(){return Sk.sysargv};Sk.exportSymbol("Sk.getSysArgv",Sk.getSysArgv);Sk.syspath=[];Sk.inBrowser=void 0!==Sk.global.document;Sk.debugout=function(a){};(function(){void 0!==Sk.global.write?Sk.output=Sk.global.write:void 0!==Sk.global.console&&void 0!==
65
Sk.global.console.log?Sk.output=function(a){Sk.global.console.log(a)}:void 0!==Sk.global.print&&(Sk.output=Sk.global.print);void 0!==Sk.global.console&&void 0!==Sk.global.console.log?Sk.debugout=function(a){Sk.global.console.log(a)}:void 0!==Sk.global.print&&(Sk.debugout=Sk.global.print)})();Sk.inputfun=function(a){return window.prompt(a)};Sk.setup_method_mappings=function(){return{round$:{classes:[Sk.builtin.float_,Sk.builtin.int_,Sk.builtin.nmber],2:null,3:"__round__"},clear$:{classes:[Sk.builtin.list],
66
2:null,3:"clear"},copy$:{classes:[Sk.builtin.list],2:null,3:"copy"},next$:{classes:[Sk.builtin.dict_iter_,Sk.builtin.list_iter_,Sk.builtin.set_iter_,Sk.builtin.str_iter_,Sk.builtin.tuple_iter_,Sk.builtin.generator,Sk.builtin.enumerate,Sk.builtin.filter_,Sk.builtin.zip_,Sk.builtin.map_,Sk.builtin.iterator],2:"next",3:"__next__"},haskey$:{classes:[Sk.builtin.dict],2:"has_key",3:null}}};Sk.switch_version=function(a,b){var c;var d=Sk.setup_method_mappings()[a];if(b){b=d[3];var e=d[2]}else b=d[2],e=d[3];
67
var h=d.classes;var g=h.length;for(c=0;c<g;c++)d=h[c],e&&d.prototype.hasOwnProperty(e)&&delete d.prototype[e],b&&(d.prototype[b]=new Sk.builtin.func(d.prototype[a]))};Sk.exportSymbol("Sk.__future__",Sk.__future__);Sk.exportSymbol("Sk.inputfun",Sk.inputfun)},function(m,p){void 0===Sk.builtin&&(Sk.builtin={});Sk.dunderToSkulpt={__eq__:"ob$eq",__ne__:"ob$ne",__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge",__hash__:"tp$hash",__abs__:"nb$abs",__neg__:"nb$negative",__pos__:"nb$positive",__int__:"nb$int_",
68
__long__:"nb$lng",__float__:"nb$float_",__add__:"nb$add",__radd__:"nb$reflected_add",__sub__:"nb$subtract",__rsub__:"nb$reflected_subtract",__mul__:"nb$multiply",__rmul__:"nb$reflected_multiply",__div__:"nb$divide",__rdiv__:"nb$reflected_divide",__floordiv__:"nb$floor_divide",__rfloordiv__:"nb$reflected_floor_divide",__invert__:"nb$invert",__mod__:"nb$remainder",__rmod__:"nb$reflected_remainder",__divmod__:"nb$divmod",__rdivmod__:"nb$reflected_divmod",__pow__:"nb$power",__rpow__:"nb$reflected_power",
69
__contains__:"sq$contains",__iter__:"tp$iter",__bool__:["nb$bool",1],__nonzero__:["nb$nonzero",1],__len__:["sq$length",1],__get__:["tp$descr_get",3],__set__:["tp$descr_set",3]};Sk.setupDunderMethods=function(a){a?(Sk.dunderToSkulpt.__matmul__="tp$matmul",Sk.dunderToSkulpt.__rmatmul__="tp$reflected_matmul"):(Sk.dunderToSkulpt.__matmul__&&delete Sk.dunderToSkulpt.__matmul__,Sk.dunderToSkulpt.__rmatmul__&&delete Sk.dunderToSkulpt.__rmatmul__)};Sk.exportSymbol("Sk.setupDunderMethods",Sk.setupDunderMethods);
70
Sk.builtin.type=function(a,b,c){if(void 0===b&&void 0===c)return a.ob$type;{if("dict"!==c.tp$name)throw new Sk.builtin.TypeError("type() argument 3 must be dict, not "+Sk.abstr.typeName(c));if(!Sk.builtin.checkString(a))throw new Sk.builtin.TypeError("type() argument 1 must be str, not "+Sk.abstr.typeName(a));if("tuple"!==b.tp$name)throw new Sk.builtin.TypeError("type() argument 2 must be tuple, not "+Sk.abstr.typeName(b));var d=function(a,c){void 0!==d.prototype.tp$base&&(d.prototype.tp$base.sk$klass?
71
d.prototype.tp$base.call(this,a,c):(a=a.slice(),a.unshift(d,this),Sk.abstr.superConstructor.apply(void 0,a)));this.$d=new Sk.builtin.dict([])};var e=Sk.ffi.remapToJs(a);var h=!1;d.tp$call=function(a,c){var b=Sk.builtin.type.typeLookup(d,Sk.builtin.str.$new);a=a||[];c=c||[];if(void 0===b||b===Sk.builtin.object.prototype.__new__){var f=new d(a,c);b=void 0}else{var e=a.slice();e.unshift(d);f=Sk.misceval.applyOrSuspend(b,void 0,void 0,c,e)}return Sk.misceval.chain(f,function(d){var e=Sk.builtin.type.typeLookup(d.ob$type,
72
Sk.builtin.str.$init);f=d;if(void 0!==e)return a.unshift(f),Sk.misceval.applyOrSuspend(e,void 0,void 0,c,a);if(void 0===b&&(0!==a.length||0!==c.length)&&!h)throw new Sk.builtin.TypeError("__init__() got unexpected argument(s)");},function(a){if(a!==Sk.builtin.none.none$&&void 0!==a)throw new Sk.builtin.TypeError("__init__() should return None, not "+Sk.abstr.typeName(a));return f})};0===b.v.length&&Sk.__future__.inherit_from_object&&(b.v.push(Sk.builtin.object),Sk.abstr.setUpInheritance(e,d,Sk.builtin.object));
73
var g,f,k=[];var n=b.tp$iter();for(g=n.tp$iternext();void 0!==g;g=n.tp$iternext()){for(void 0===f&&(f=g);g.sk$klass&&g.prototype.tp$base;)g=g.prototype.tp$base;!g.sk$klass&&0>k.indexOf(g)&&(k.push(g),h=!0)}if(1<k.length)throw new Sk.builtin.TypeError("Multiple inheritance with more than one builtin type is unsupported");void 0!==f&&(Sk.abstr.inherits(d,f),f.prototype instanceof Sk.builtin.object||f===Sk.builtin.object)&&(d.prototype.tp$base=f);d.prototype.tp$name=e;d.prototype.ob$type=Sk.builtin.type.makeIntoTypeObj(e,
74
d);void 0===c.mp$lookup(Sk.builtin.str.$module)&&c.mp$ass_subscript(Sk.builtin.str.$module,Sk.globals.__name__);n=c.tp$iter();for(g=n.tp$iternext();void 0!==g;g=n.tp$iternext())e=c.mp$subscript(g),void 0===e&&(e=null),d.prototype[g.v]=e,d[g.v]=e;d.__class__=d;d.__name__=a;d.sk$klass=!0;d.prototype.hp$type=!0;d.prototype.$r=function(){const a=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$repr);return void 0!==a&&a!==Sk.builtin.object.prototype.__repr__?Sk.misceval.callsimArray(a,[this]):void 0!==d.prototype.tp$base&&
75
void 0!==d.prototype.tp$base.prototype.$r?d.prototype.tp$base.prototype.$r.call(this):Sk.builtin.object.prototype.$r.call(this)};d.prototype.tp$setattr=function(a,c,b){var d=Sk.builtin.object.prototype.GenericGetAttr.call(this,Sk.builtin.str.$setattr);return void 0!==d?(a=Sk.misceval.callsimOrSuspendArray(d,[a,c]),b?a:Sk.misceval.retryOptionalSuspensionOrThrow(a)):Sk.builtin.object.prototype.GenericSetAttr.call(this,a,c,b)};d.prototype.tp$str=function(){const a=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$str);
76
return void 0!==a&&a!==Sk.builtin.object.prototype.__str__?Sk.misceval.callsimArray(a,[this]):void 0!==d.prototype.tp$base&&d.prototype.tp$base!==Sk.builtin.object&&void 0!==d.prototype.tp$base.prototype.tp$str?d.prototype.tp$base.prototype.tp$str.call(this):this.$r()};d.prototype.tp$length=function(a){var c=Sk.misceval.chain(Sk.abstr.gattr(this,Sk.builtin.str.$len,a),function(a){return Sk.misceval.applyOrSuspend(a,void 0,void 0,void 0,[])});return a?c:Sk.misceval.retryOptionalSuspensionOrThrow(c)};
77
d.prototype.tp$call=function(a,c){return Sk.misceval.chain(this.tp$getattr(Sk.builtin.str.$call,!0),function(b){if(void 0===b)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this)+"' object is not callable");return Sk.misceval.applyOrSuspend(b,void 0,void 0,c,a)})};const q=c.mp$lookup(Sk.builtin.str.$next);void 0!==q&&(d.prototype.tp$iternext=function(a){const c=this,b=Sk.misceval.tryCatch(()=>Sk.misceval.callsimOrSuspendArray(q,[c]),a=>{if(!(a instanceof Sk.builtin.StopIteration))throw a;});
78
return a?b:Sk.misceval.retryOptionalSuspensionOrThrow(b)});d.prototype.tp$getitem=function(a,c){var b=this.tp$getattr(Sk.builtin.str.$getitem,c);if(void 0!==b)return a=Sk.misceval.applyOrSuspend(b,void 0,void 0,void 0,[a]),c?a:Sk.misceval.retryOptionalSuspensionOrThrow(a);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this)+"' object does not support indexing");};d.prototype.tp$setitem=function(a,c,b){var d=this.tp$getattr(Sk.builtin.str.$setitem,b);if(void 0!==d)return a=Sk.misceval.applyOrSuspend(d,
79
void 0,void 0,void 0,[a,c]),b?a:Sk.misceval.retryOptionalSuspensionOrThrow(a);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(this)+"' object does not support item assignment");};b&&(d.$d=new Sk.builtin.dict([]),d.$d.mp$ass_subscript(Sk.builtin.type.basesStr_,b),a=Sk.builtin.type.buildMRO(d),d.$d.mp$ass_subscript(Sk.builtin.type.mroStr_,a),d.tp$mro=a);d.tp$setattr=Sk.builtin.type.prototype.tp$setattr;for(var l in Sk.dunderToSkulpt)d.hasOwnProperty(l)&&Sk.builtin.type.$allocateSlot(d,l);let u=
80
Sk.builtin.type.typeLookup(d,Sk.builtin.str.$getattribute);void 0!==u&&u!==Sk.builtin.object.prototype.__getattribute__?d.prototype.tp$getattr=function(a,c){let b=Sk.misceval.tryCatch(()=>Sk.misceval.callsimOrSuspendArray(u,[this,a]),function(a){if(!(a instanceof Sk.builtin.AttributeError))throw a;});return c?b:Sk.misceval.retryOptionalSuspensionOrThrow(b)}:d.prototype.tp$getattr||(d.prototype.tp$getattr=Sk.builtin.object.prototype.GenericGetAttr);return d}};Object.defineProperties(Sk.builtin.type.prototype,
81
{call:{value:Function.prototype.call},apply:{value:Function.prototype.apply},ob$type:{value:Sk.builtin.type,writable:!0},tp$name:{value:"type",writable:!0},tp$base:{value:Sk.builtin.object,writable:!0},sk$type:{value:!0}});Sk.builtin.type.makeTypeObj=function(a,b){Sk.builtin.type.makeIntoTypeObj(a,b);return b};Sk.builtin.type.makeIntoTypeObj=function(a,b){Sk.asserts.assert(void 0!==a);Sk.asserts.assert(void 0!==b);Object.setPrototypeOf(b,Sk.builtin.type.prototype);return b};Sk.builtin.type.prototype.$r=
82
function(){let a=this.prototype.__module__,b="",c="class";a&&Sk.builtin.checkString(a)?b=a.v+".":a=null;a||this.sk$klass||Sk.__future__.class_repr||(c="type");return new Sk.builtin.str("<"+c+" '"+b+this.prototype.tp$name+"'>")};Sk.builtin.type.prototype.tp$getattr=function(a,b){if(this.$d){var c=this.$d.mp$lookup(a);if(void 0!==c)return c}a=Sk.builtin.type.typeLookup(this,a);if(void 0!==a&&null!==a&&void 0!==a.ob$type)var d=a.tp$descr_get;if(d)return d.call(a,Sk.builtin.none.none$,this,b);if(void 0!==
83
a)return a};Sk.builtin.type.prototype.tp$setattr=function(a,b){if(void 0===this.sk$klass)throw new Sk.builtin.TypeError("can't set attributes of built-in/extension type '"+this.prototype.tp$name+"'");a=Sk.fixReserved(a.$jsstr());this[a]=b;this.prototype[a]=b;a in Sk.dunderToSkulpt&&Sk.builtin.type.$allocateSlot(this,a)};Sk.builtin.type.typeLookup=function(a,b){var c=a.tp$mro,d,e=b.$mangled;if(c)for(d=0;d<c.v.length;++d){a=c.v[d];if(a.hasOwnProperty(e))return a[e];var h=a.$d.mp$lookup(b);if(void 0!==
84
h)return h;if(a.prototype&&void 0!==a.prototype[e])return a.prototype[e]}else if(a.prototype)return a.prototype[e]};Sk.builtin.type.mroMerge_=function(a){for(var b,c,d,e,h,g,f=[];;){for(c=0;c<a.length&&(b=a[c],0===b.length);++c);if(c===a.length)return f;d=[];for(c=0;c<a.length;++c)if(b=a[c],0!==b.length){g=b[0];h=0;a:for(;h<a.length;++h)for(e=a[h],b=1;b<e.length;++b)if(e[b]===g)break a;h===a.length&&d.push(g)}if(0===d.length)throw new Sk.builtin.TypeError("Inconsistent precedences in type hierarchy");
85
d=d[0];f.push(d);for(c=0;c<a.length;++c)b=a[c],0<b.length&&b[0]===d&&b.splice(0,1)}};Sk.builtin.type.buildMRO_=function(a){var b=[[a]],c=a.$d.mp$subscript(Sk.builtin.type.basesStr_);for(a=0;a<c.v.length;++a)b.push(Sk.builtin.type.buildMRO_(c.v[a]));var d=[];for(a=0;a<c.v.length;++a)d.push(c.v[a]);b.push(d);return Sk.builtin.type.mroMerge_(b)};Sk.builtin.type.buildMRO=function(a){return new Sk.builtin.tuple(Sk.builtin.type.buildMRO_(a))};Sk.builtin.type.prototype.__format__=function(a,b){Sk.builtin.pyCheckArgsLen("__format__",
86
arguments.length,1,2);return new Sk.builtin.str(a)};Sk.builtin.type.pythonFunctions=["__format__"];Sk.builtin.type.$allocateSlot=function(a,b){const c=a[b];b=Sk.dunderToSkulpt[b];if("string"===typeof b)a.prototype[b]=function(){let a,b,h;a=arguments.length;b=Array(a+1);b[0]=this;for(h=0;h<a;h++)b[h+1]=arguments[h];return Sk.misceval.callsimArray(c,b)};else{let d=b[1];b=b[0];a.prototype[b]=function(){let a,b,g,f,k=!1;a=arguments.length;b=d<=a?Array(a):Array(a+1);b[0]=this;f=1;for(g=0;g<a;g++)g===d-
87
1?k=arguments[g]:(b[f]=arguments[g],f+=1);return k?Sk.misceval.callsimOrSuspendArray(c,b):Sk.misceval.callsimArray(c,b)}}}},function(m,p){Sk.abstr={};Sk.abstr.typeName=function(a){return void 0!==a.tp$name?a.tp$name:"<invalid type>"};Sk.abstr.binop_type_error=function(a,b,c){a=Sk.abstr.typeName(a);b=Sk.abstr.typeName(b);throw new Sk.builtin.TypeError("unsupported operand type(s) for "+c+": '"+a+"' and '"+b+"'");};Sk.abstr.unop_type_error=function(a,b){a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("bad operand type for unary "+
88
{UAdd:"+",USub:"-",Invert:"~"}[b]+": '"+a+"'");};Sk.abstr.boNameToSlotFuncLhs_=function(a,b){if(null!==a)switch(b){case "Add":return a.nb$add?a.nb$add:a.__add__;case "Sub":return a.nb$subtract?a.nb$subtract:a.__sub__;case "Mult":return a.nb$multiply?a.nb$multiply:a.__mul__;case "MatMult":if(Sk.__future__.python3)return a.tp$matmul?a.tp$matmul:a.__matmul__;case "Div":return a.nb$divide?a.nb$divide:a.__div__;case "FloorDiv":return a.nb$floor_divide?a.nb$floor_divide:a.__floordiv__;case "Mod":return a.nb$remainder?
89
a.nb$remainder:a.__mod__;case "DivMod":return a.nb$divmod?a.nb$divmod:a.__divmod__;case "Pow":return a.nb$power?a.nb$power:a.__pow__;case "LShift":return a.nb$lshift?a.nb$lshift:a.__lshift__;case "RShift":return a.nb$rshift?a.nb$rshift:a.__rshift__;case "BitAnd":return a.nb$and?a.nb$and:a.__and__;case "BitXor":return a.nb$xor?a.nb$xor:a.__xor__;case "BitOr":return a.nb$or?a.nb$or:a.__or__}};Sk.abstr.boNameToSlotFuncRhs_=function(a,b){if(null!==a)switch(b){case "Add":return a.nb$reflected_add?a.nb$reflected_add:
90
a.__radd__;case "Sub":return a.nb$reflected_subtract?a.nb$reflected_subtract:a.__rsub__;case "Mult":return a.nb$reflected_multiply?a.nb$reflected_multiply:a.__rmul__;case "MatMult":if(Sk.__future__.python3)return a.tp$reflected_matmul?a.tp$reflected_matmul:a.__rmatmul__;case "Div":return a.nb$reflected_divide?a.nb$reflected_divide:a.__rdiv__;case "FloorDiv":return a.nb$reflected_floor_divide?a.nb$reflected_floor_divide:a.__rfloordiv__;case "Mod":return a.nb$reflected_remainder?a.nb$reflected_remainder:
91
a.__rmod__;case "DivMod":return a.nb$reflected_divmod?a.nb$reflected_divmod:a.__rdivmod__;case "Pow":return a.nb$reflected_power?a.nb$reflected_power:a.__rpow__;case "LShift":return a.nb$reflected_lshift?a.nb$reflected_lshift:a.__rlshift__;case "RShift":return a.nb$reflected_rshift?a.nb$reflected_rshift:a.__rrshift__;case "BitAnd":return a.nb$reflected_and?a.nb$reflected_and:a.__rand__;case "BitXor":return a.nb$reflected_xor?a.nb$reflected_xor:a.__rxor__;case "BitOr":return a.nb$reflected_or?a.nb$reflected_or:
92
a.__ror__}};Sk.abstr.iboNameToSlotFunc_=function(a,b){switch(b){case "Add":return a.nb$inplace_add?a.nb$inplace_add:a.__iadd__;case "Sub":return a.nb$inplace_subtract?a.nb$inplace_subtract:a.__isub__;case "Mult":return a.nb$inplace_multiply?a.nb$inplace_multiply:a.__imul__;case "MatMult":if(Sk.__future__.python3)return a.tp$inplace_matmul?a.tp$inplace_matmul:a.__imatmul__;case "Div":return a.nb$inplace_divide?a.nb$inplace_divide:a.__idiv__;case "FloorDiv":return a.nb$inplace_floor_divide?a.nb$inplace_floor_divide:
93
a.__ifloordiv__;case "Mod":return a.nb$inplace_remainder;case "Pow":return a.nb$inplace_power;case "LShift":return a.nb$inplace_lshift?a.nb$inplace_lshift:a.__ilshift__;case "RShift":return a.nb$inplace_rshift?a.nb$inplace_rshift:a.__irshift__;case "BitAnd":return a.nb$inplace_and;case "BitOr":return a.nb$inplace_or;case "BitXor":return a.nb$inplace_xor?a.nb$inplace_xor:a.__ixor__}};Sk.abstr.uoNameToSlotFunc_=function(a,b){if(null!==a)switch(b){case "USub":return a.nb$negative?a.nb$negative:a.__neg__;
94
case "UAdd":return a.nb$positive?a.nb$positive:a.__pos__;case "Invert":return a.nb$invert?a.nb$invert:a.__invert__}};Sk.abstr.binary_op_=function(a,b,c){var d=a.constructor;d=b.constructor!==d&&b instanceof d;if(d){var e=Sk.abstr.boNameToSlotFuncRhs_(b,c);if(void 0!==e&&(e=e.call?e.call(b,a):Sk.misceval.callsimArray(e,[b,a]),void 0!==e&&e!==Sk.builtin.NotImplemented.NotImplemented$))return e}e=Sk.abstr.boNameToSlotFuncLhs_(a,c);if(void 0!==e&&(e=e.call?e.call(a,b):Sk.misceval.callsimArray(e,[a,b]),
95
void 0!==e&&e!==Sk.builtin.NotImplemented.NotImplemented$)||!d&&(e=Sk.abstr.boNameToSlotFuncRhs_(b,c),void 0!==e&&(e=e.call?e.call(b,a):Sk.misceval.callsimArray(e,[b,a]),void 0!==e&&e!==Sk.builtin.NotImplemented.NotImplemented$)))return e;Sk.abstr.binop_type_error(a,b,c)};Sk.abstr.binary_iop_=function(a,b,c){var d=Sk.abstr.iboNameToSlotFunc_(a,c);return void 0!==d&&(d=d.call?d.call(a,b):Sk.misceval.callsimArray(d,[a,b]),void 0!==d&&d!==Sk.builtin.NotImplemented.NotImplemented$)?d:Sk.abstr.binary_op_(a,
96
b,c)};Sk.abstr.unary_op_=function(a,b){var c=Sk.abstr.uoNameToSlotFunc_(a,b);if(void 0!==c&&(c=c.call?c.call(a):Sk.misceval.callsimArray(c,[a]),void 0!==c))return c;Sk.abstr.unop_type_error(a,b)};Sk.abstr.numberBinOp=function(a,b,c){return Sk.abstr.binary_op_(a,b,c)};Sk.exportSymbol("Sk.abstr.numberBinOp",Sk.abstr.numberBinOp);Sk.abstr.numberInplaceBinOp=function(a,b,c){return Sk.abstr.binary_iop_(a,b,c)};Sk.exportSymbol("Sk.abstr.numberInplaceBinOp",Sk.abstr.numberInplaceBinOp);Sk.abstr.numberUnaryOp=
97
function(a,b){return"Not"===b?Sk.misceval.isTrue(a)?Sk.builtin.bool.false$:Sk.builtin.bool.true$:Sk.abstr.unary_op_(a,b)};Sk.exportSymbol("Sk.abstr.numberUnaryOp",Sk.abstr.numberUnaryOp);Sk.abstr.fixSeqIndex_=function(a,b){b=Sk.builtin.asnum$(b);0>b&&a.sq$length&&(b+=a.sq$length());return b};Sk.abstr.sequenceContains=function(a,b,c){if(a.sq$contains)return a.sq$contains(b);var d=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$contains);if(null!=d)return Sk.misceval.isTrue(Sk.misceval.callsimArray(d,[a,b]));
98
if(!Sk.builtin.checkIterable(a))throw c=Sk.abstr.typeName(a),new Sk.builtin.TypeError("argument of type '"+c+"' is not iterable");a=Sk.misceval.iterFor(Sk.abstr.iter(a),function(a){return Sk.misceval.richCompareBool(a,b,"Eq")?new Sk.misceval.Break(!0):!1},!1);return c?a:Sk.misceval.retryOptionalSuspensionOrThrow(a)};Sk.abstr.sequenceConcat=function(a,b){if(a.sq$concat)return a.sq$concat(b);a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' object can't be concatenated");};Sk.abstr.sequenceGetIndexOf=
99
function(a,b){if(a.index)return Sk.misceval.callsimArray(a.index,[a,b]);if(Sk.builtin.checkIterable(a)){var c=0;var d=Sk.abstr.iter(a);for(a=d.tp$iternext();void 0!==a;a=d.tp$iternext()){if(Sk.misceval.richCompareBool(b,a,"Eq"))return new Sk.builtin.int_(c);c+=1}throw new Sk.builtin.ValueError("sequence.index(x): x not in sequence");}b=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("argument of type '"+b+"' is not iterable");};Sk.abstr.sequenceGetCountOf=function(a,b){if(a.count)return Sk.misceval.callsimArray(a.count,
100
[a,b]);if(Sk.builtin.checkIterable(a)){var c=0;var d=Sk.abstr.iter(a);for(a=d.tp$iternext();void 0!==a;a=d.tp$iternext())Sk.misceval.richCompareBool(b,a,"Eq")&&(c+=1);return new Sk.builtin.int_(c)}b=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("argument of type '"+b+"' is not iterable");};Sk.abstr.sequenceGetItem=function(a,b,c){if(a.mp$subscript)return a.mp$subscript(b);a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' object is unsubscriptable");};Sk.abstr.sequenceSetItem=function(a,
101
b,c,d){if(a.mp$ass_subscript)return a.mp$ass_subscript(b,c);a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' object does not support item assignment");};Sk.abstr.sequenceDelItem=function(a,b){if(a.sq$del_item)b=Sk.abstr.fixSeqIndex_(a,b),a.sq$del_item(b);else throw a=Sk.abstr.typeName(a),new Sk.builtin.TypeError("'"+a+"' object does not support item deletion");};Sk.abstr.sequenceRepeat=function(a,b,c){c=Sk.builtin.asnum$(c);if(void 0===Sk.misceval.asIndex(c))throw a=Sk.abstr.typeName(c),
102
new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+a+"'");return a.call(b,c)};Sk.abstr.sequenceGetSlice=function(a,b,c){if(a.sq$slice)return b=Sk.abstr.fixSeqIndex_(a,b),c=Sk.abstr.fixSeqIndex_(a,c),a.sq$slice(b,c);if(a.mp$subscript)return a.mp$subscript(new Sk.builtin.slice(b,c));a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' object is unsliceable");};Sk.abstr.sequenceDelSlice=function(a,b,c){if(a.sq$del_slice)b=Sk.abstr.fixSeqIndex_(a,b),c=Sk.abstr.fixSeqIndex_(a,
103
c),a.sq$del_slice(b,c);else throw a=Sk.abstr.typeName(a),new Sk.builtin.TypeError("'"+a+"' doesn't support slice deletion");};Sk.abstr.sequenceSetSlice=function(a,b,c,d){if(a.sq$ass_slice)b=Sk.abstr.fixSeqIndex_(a,b),c=Sk.abstr.fixSeqIndex_(a,c),a.sq$ass_slice(b,c,d);else if(a.mp$ass_subscript)a.mp$ass_subscript(new Sk.builtin.slice(b,c),d);else throw a=Sk.abstr.typeName(a),new Sk.builtin.TypeError("'"+a+"' object doesn't support slice assignment");};Sk.abstr.sequenceUnpack=function(a,b,c,d){if(!Sk.builtin.checkIterable(a))throw new Sk.builtin.TypeError("cannot unpack non-iterable "+
104
Sk.abstr.typeName(a)+" object");const e=Sk.abstr.iter(a),h=[];let g=0,f;0<b&&(f=Sk.misceval.iterFor(e,a=>{h.push(a);if(++g===b)return new Sk.misceval.Break}));return Sk.misceval.chain(f,()=>{if(h.length<b)throw new Sk.builtin.ValueError("not enough values to unpack (expected at least "+c+", got "+h.length+")");if(!d)return Sk.misceval.chain(e.tp$iternext(!0),a=>{if(void 0!==a)throw new Sk.builtin.ValueError("too many values to unpack (expected "+b+")");return h});const a=[];return Sk.misceval.chain(Sk.misceval.iterFor(e,
105
c=>{a.push(c)}),()=>{const d=a.length+b-c;if(0>d)throw new Sk.builtin.ValueError("not enough values to unpack (expected at least "+c+", got "+(c+d)+")");h.push(new Sk.builtin.list(a.slice(0,d)));h.push(...a.slice(d));return h})})};Sk.abstr.mappingUnpackIntoKeywordArray=function(a,b,c){return Sk.misceval.chain(b.tp$getattr(new Sk.builtin.str("items")),function(a){if(!a)throw new Sk.builtin.TypeError("Object is not a mapping");return Sk.misceval.callsimOrSuspend(a)},function(b){return Sk.misceval.iterFor(Sk.abstr.iter(b),
106
function(b){if(!b||!b.v)throw new Sk.builtin.TypeError("Object is not a mapping; items() does not return tuples");if(!(b.v[0]instanceof Sk.builtin.str))throw new Sk.builtin.TypeError((c.tp$name?c.tp$name+":":"")+"keywords must be strings");a.push(b.v[0].v,b.v[1])})})};Sk.abstr.objectFormat=function(a,b){var c=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$format);if(null==c)return Sk.misceval.callsimArray(Sk.builtin.object.prototype.__format__,[a,b]);a=Sk.misceval.callsimArray(c,[a,b]);if(!Sk.builtin.checkString(a))throw new Sk.builtin.TypeError("__format__ must return a str, not "+
107
Sk.abstr.typeName(a));return a};Sk.abstr.objectAdd=function(a,b){if(a.nb$add)return a.nb$add(b);a=Sk.abstr.typeName(a);b=Sk.abstr.typeName(b);throw new Sk.builtin.TypeError("unsupported operand type(s) for +: '"+a+"' and '"+b+"'");};Sk.abstr.objectNegative=function(a){if(a.nb$negative)return a.nb$negative();throw new Sk.builtin.TypeError("bad operand type for unary -: '"+Sk.abstr.typeName(a)+"'");};Sk.abstr.objectPositive=function(a){if(a.nb$positive)return a.nb$positive();throw new Sk.builtin.TypeError("bad operand type for unary +: '"+
108
Sk.abstr.typeName(a)+"'");};Sk.abstr.objectDelItem=function(a,b){if(null!==a){if(a.mp$del_subscript){a.mp$del_subscript(b);return}if(a.sq$ass_item){var c=Sk.misceval.asIndex(b);if(void 0===c)throw a=Sk.abstr.typeName(b),new Sk.builtin.TypeError("sequence index must be integer, not '"+a+"'");Sk.abstr.sequenceDelItem(a,c);return}}a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' object does not support item deletion");};Sk.exportSymbol("Sk.abstr.objectDelItem",Sk.abstr.objectDelItem);Sk.abstr.objectGetItem=
109
function(a,b,c){if(null!==a){if(a.tp$getitem)return a.tp$getitem(b,c);if(a.mp$subscript)return a.mp$subscript(b,c);if(Sk.misceval.isIndex(b)&&a.sq$item)return Sk.abstr.sequenceGetItem(a,Sk.misceval.asIndex(b),c)}a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' does not support indexing");};Sk.exportSymbol("Sk.abstr.objectGetItem",Sk.abstr.objectGetItem);Sk.abstr.objectSetItem=function(a,b,c,d){if(null!==a){if(a.tp$setitem)return a.tp$setitem(b,c,d);if(a.mp$ass_subscript)return a.mp$ass_subscript(b,
110
c,d);if(Sk.misceval.isIndex(b)&&a.sq$ass_item)return Sk.abstr.sequenceSetItem(a,Sk.misceval.asIndex(b),c,d)}a=Sk.abstr.typeName(a);throw new Sk.builtin.TypeError("'"+a+"' does not support item assignment");};Sk.exportSymbol("Sk.abstr.objectSetItem",Sk.abstr.objectSetItem);Sk.abstr.gattr=function(a,b,c){if(null===a||!a.tp$getattr)throw c=Sk.abstr.typeName(a),new Sk.builtin.AttributeError("'"+c+"' object has no attribute '"+b.$jsstr()+"'");c=a.tp$getattr(b,c);let d;if(void 0===c)throw d=a.sk$type?"type object '"+
111
a.prototype.tp$name+"'":"'"+Sk.abstr.typeName(a)+"' object",new Sk.builtin.AttributeError(d+" has no attribute '"+b.$jsstr()+"'");return c.$isSuspension?Sk.misceval.chain(c,function(c){if(void 0===c)throw d=a.sk$type?"type object '"+a.prototype.tp$name+"'":"'"+Sk.abstr.typeName(a)+"' object",new Sk.builtin.AttributeError(d+" has no attribute '"+b.$jsstr()+"'");return c}):c};Sk.exportSymbol("Sk.abstr.gattr",Sk.abstr.gattr);Sk.abstr.sattr=function(a,b,c,d){var e=Sk.abstr.typeName(a);if(null===a)throw new Sk.builtin.AttributeError("'"+
112
e+"' object has no attribute '"+b.$jsstr()+"'");if(void 0!==a.tp$setattr)return a.tp$setattr(b,c,d);throw new Sk.builtin.AttributeError("'"+e+"' object has no attribute '"+b.$jsstr()+"'");};Sk.exportSymbol("Sk.abstr.sattr",Sk.abstr.sattr);Sk.abstr.iternext=function(a,b){return a.tp$iternext(b)};Sk.exportSymbol("Sk.abstr.iternext",Sk.abstr.iternext);Sk.abstr.iter=function(a){var b=function(a){this.idx=0;this.myobj=a;this.getitem=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$getitem);this.tp$iternext=function(){try{var a=
113
Sk.misceval.callsimArray(this.getitem,[this.myobj,Sk.ffi.remapToPy(this.idx)])}catch(e){if(e instanceof Sk.builtin.IndexError||e instanceof Sk.builtin.StopIteration)return;throw e;}this.idx++;return a}};if(a.tp$iter){if(b=a.tp$iter(),b.tp$iternext)return b}else if(Sk.abstr.lookupSpecial(a,Sk.builtin.str.$getitem))return new b(a);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not iterable");};Sk.exportSymbol("Sk.abstr.iter",Sk.abstr.iter);Sk.abstr.lookupSpecial=function(a,b){if(a.ob$type)a=
114
a.ob$type;else return null;return Sk.builtin.type.typeLookup(a,b)};Sk.exportSymbol("Sk.abstr.lookupSpecial",Sk.abstr.lookupSpecial);Sk.abstr.markUnhashable=function(a){a=a.prototype;a.__hash__=Sk.builtin.none.none$;a.tp$hash=Sk.builtin.none.none$};Sk.abstr.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a};Sk.abstr.setUpInheritance=function(a,b,c){Sk.abstr.inherits(b,c);b.prototype.tp$base=c;b.prototype.tp$name=a;b.prototype.ob$type=
115
Sk.builtin.type.makeIntoTypeObj(a,b)};Sk.abstr.superConstructor=function(a,b,c){var d=Array.prototype.slice.call(arguments,2);a.prototype.tp$base.apply(b,d)}},function(m,p){Sk.builtin.object=function(){return this instanceof Sk.builtin.object?this:new Sk.builtin.object};Object.defineProperties(Sk.builtin.object.prototype,{ob$type:{value:Sk.builtin.object,writable:!0},tp$name:{value:"object",writable:!0},tp$base:{value:void 0,writable:!0},sk$object:{value:!0}});Object.setPrototypeOf(Sk.builtin.type.prototype,
116
Sk.builtin.object.prototype);Object.setPrototypeOf(Sk.builtin.type,Sk.builtin.type.prototype);Object.setPrototypeOf(Sk.builtin.object,Sk.builtin.type.prototype);Sk.builtin.type.prototype.tp$base=Sk.builtin.object;Sk.builtin.object.prototype.__init__=function(){return Sk.builtin.none.none$};Sk.builtin.object.prototype.__init__.co_kwargs=1;Sk.builtin._tryGetSubscript=function(a,b){try{return a.mp$subscript(b)}catch(c){}};Sk.exportSymbol("Sk.builtin._tryGetSubscript",Sk.builtin._tryGetSubscript);Sk.builtin.object.prototype.GenericGetAttr=
117
function(a,b){var c,d;var e=this.ob$type;Sk.asserts.assert(void 0!==e,"object has no ob$type!");if(d=this.$d||this.constructor.$d){d.mp$lookup?c=d.mp$lookup(a):d.mp$subscript?c=Sk.builtin._tryGetSubscript(d,a):"object"===typeof d&&(c=d[a.$mangled]);if(void 0!==c)return c;if("__dict__"==a.$jsstr()&&d instanceof Sk.builtin.dict)return d}d=Sk.builtin.type.typeLookup(e,a);if(void 0!==d&&null!==d&&(c=d.tp$descr_get))return c.call(d,this,this.ob$type,b);if(void 0!==d)return d;d=Sk.builtin.type.typeLookup(e,
118
Sk.builtin.str.$getattr);if(void 0!==d&&null!==d){var h=(c=d.tp$descr_get)?c.call(d,this,this.ob$type):d;c=Sk.misceval.tryCatch(function(){return Sk.misceval.callsimOrSuspendArray(h,[a])},function(a){if(!(a instanceof Sk.builtin.AttributeError))throw a;});return b?c:Sk.misceval.retryOptionalSuspensionOrThrow(c)}};Sk.exportSymbol("Sk.builtin.object.prototype.GenericGetAttr",Sk.builtin.object.prototype.GenericGetAttr);Sk.builtin.object.prototype.GenericPythonGetAttr=function(a,b){a=Sk.builtin.object.prototype.GenericGetAttr.call(a,
119
b,!0);if(void 0===a)throw new Sk.builtin.AttributeError(b);return a};Sk.exportSymbol("Sk.builtin.object.prototype.GenericPythonGetAttr",Sk.builtin.object.prototype.GenericPythonGetAttr);Sk.builtin.object.prototype.GenericSetAttr=function(a,b,c){var d=Sk.abstr.typeName(this),e=a.$jsstr(),h=this.ob$type;Sk.asserts.assert(void 0!==h,"object has no ob$type!");var g=this.$d||this.constructor.$d;if("__class__"==e){if(void 0===b.tp$mro||void 0===b.sk$klass)throw new Sk.builtin.TypeError("attempted to assign non-class to __class__");
120
this.ob$type=b}else{e=Sk.builtin.type.typeLookup(h,a);if(void 0!==e&&null!==e&&(h=e.tp$descr_set))return h.call(e,this,b,c);if(g.mp$ass_subscript){if(this instanceof Sk.builtin.object&&!this.ob$type.sk$klass&&void 0===g.mp$lookup(a))throw new Sk.builtin.AttributeError("'"+d+"' object has no attribute '"+a.$jsstr()+"'");g.mp$ass_subscript(a,b)}else"object"===typeof g&&(g[a.$mangled]=b)}};Sk.exportSymbol("Sk.builtin.object.prototype.GenericSetAttr",Sk.builtin.object.prototype.GenericSetAttr);Sk.builtin.object.prototype.GenericPythonSetAttr=
121
function(a,b,c){return Sk.builtin.object.prototype.GenericSetAttr.call(a,b,c,!0)};Sk.exportSymbol("Sk.builtin.object.prototype.GenericPythonSetAttr",Sk.builtin.object.prototype.GenericPythonSetAttr);Sk.builtin.object.prototype.HashNotImplemented=function(){throw new Sk.builtin.TypeError("unhashable type: '"+Sk.abstr.typeName(this)+"'");};Sk.builtin.object.prototype.tp$getattr=Sk.builtin.object.prototype.GenericGetAttr;Sk.builtin.object.prototype.tp$setattr=Sk.builtin.object.prototype.GenericSetAttr;
122
Sk.builtin.object.prototype.__getattribute__=Sk.builtin.object.prototype.GenericPythonGetAttr;Sk.builtin.object.prototype.__setattr__=Sk.builtin.object.prototype.GenericPythonSetAttr;Sk.builtin.object.prototype.tp$descr_set=void 0;Sk.builtin.object.prototype.__new__=function(a){Sk.builtin.pyCheckArgsLen("__new__",arguments.length,1,1,!1,!1);return new a([],[])};Sk.builtin.object.prototype.__repr__=function(a){Sk.builtin.pyCheckArgsLen("__repr__",arguments.length,0,0,!1,!0);return a.$r()};Sk.builtin.object.prototype.__format__=
123
function(a,b){Sk.builtin.pyCheckArgsLen("__format__",arguments.length,2,2);if(Sk.builtin.checkString(b)){var c=Sk.ffi.remapToJs(b);if(""!==c)throw new Sk.builtin.NotImplementedError("format spec is not yet implemented");}else{if(Sk.__future__.exceptions)throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+Sk.abstr.typeName(b));throw new Sk.builtin.TypeError("format expects arg 2 to be string or unicode, not "+Sk.abstr.typeName(b));}return new Sk.builtin.str(a)};Sk.builtin.object.prototype.__str__=
124
function(a){Sk.builtin.pyCheckArgsLen("__str__",arguments.length,0,0,!1,!0);return a.$r()};Sk.builtin.object.prototype.__hash__=function(a){Sk.builtin.pyCheckArgsLen("__hash__",arguments.length,0,0,!1,!0);return a.tp$hash()};Sk.builtin.object.prototype.__eq__=function(a,b){Sk.builtin.pyCheckArgsLen("__eq__",arguments.length,1,1,!1,!0);return a.ob$eq(b)};Sk.builtin.object.prototype.__ne__=function(a,b){Sk.builtin.pyCheckArgsLen("__ne__",arguments.length,1,1,!1,!0);return a.ob$ne(b)};Sk.builtin.object.prototype.__lt__=
125
function(a,b){Sk.builtin.pyCheckArgsLen("__lt__",arguments.length,1,1,!1,!0);return a.ob$lt(b)};Sk.builtin.object.prototype.__le__=function(a,b){Sk.builtin.pyCheckArgsLen("__le__",arguments.length,1,1,!1,!0);return a.ob$le(b)};Sk.builtin.object.prototype.__gt__=function(a,b){Sk.builtin.pyCheckArgsLen("__gt__",arguments.length,1,1,!1,!0);return a.ob$gt(b)};Sk.builtin.object.prototype.__ge__=function(a,b){Sk.builtin.pyCheckArgsLen("__ge__",arguments.length,1,1,!1,!0);return a.ob$ge(b)};Sk.builtin.object.prototype.$r=
126
function(){const a=Sk.abstr.lookupSpecial(this,Sk.builtin.str.$module);let b="";a&&Sk.builtin.checkString(a)&&(b=a.v+".");return new Sk.builtin.str("<"+b+Sk.abstr.typeName(this)+" object>")};Sk.builtin.object.prototype.tp$str=function(){return this.$r()};Sk.builtin.hashCount=1;Sk.builtin.idCount=1;Sk.builtin.object.prototype.tp$hash=function(){this.$savedHash_||(this.$savedHash_=new Sk.builtin.int_(Sk.builtin.hashCount++));return this.$savedHash_};Sk.builtin.object.prototype.ob$eq=function(a){return this===
127
a?Sk.builtin.bool.true$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.prototype.ob$ne=function(a){return this===a?Sk.builtin.bool.false$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.prototype.ob$lt=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.prototype.ob$le=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.prototype.ob$gt=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.prototype.ob$ge=
128
function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.object.pythonFunctions="__repr__ __str__ __hash__ __eq__ __ne__ __lt__ __le__ __gt__ __ge__ __getattribute__ __setattr__ __format__".split(" ");Sk.builtin.none=function(){return Sk.builtin.none.none$};Sk.abstr.setUpInheritance("NoneType",Sk.builtin.none,Sk.builtin.object);Sk.builtin.none.prototype.$r=function(){return new Sk.builtin.str("None")};Sk.builtin.none.prototype.tp$hash=function(){return new Sk.builtin.int_(0)};Sk.builtin.none.none$=
129
Object.create(Sk.builtin.none.prototype,{v:{value:null,enumerable:!0}});Sk.builtin.NotImplemented=function(){return Sk.builtin.NotImplemented.NotImplemented$};Sk.abstr.setUpInheritance("NotImplementedType",Sk.builtin.NotImplemented,Sk.builtin.object);Sk.builtin.NotImplemented.prototype.$r=function(){return new Sk.builtin.str("NotImplemented")};Sk.builtin.NotImplemented.NotImplemented$=Object.create(Sk.builtin.NotImplemented.prototype,{v:{value:null,enumerable:!0}});Sk.exportSymbol("Sk.builtin.none",
130
Sk.builtin.none);Sk.exportSymbol("Sk.builtin.NotImplemented",Sk.builtin.NotImplemented)},function(m,p){Sk.builtin.pyCheckArgs=function(a,b,c,d,e,h){b=b.length;void 0===d&&(d=Infinity);e&&--b;h&&--b;if(b<c||b>d)throw new Sk.builtin.TypeError((c===d?a+"() takes exactly "+c+" arguments":b<c?a+"() takes at least "+c+" arguments":a+"() takes at most "+d+" arguments")+(" ("+b+" given)"));};Sk.exportSymbol("Sk.builtin.pyCheckArgs",Sk.builtin.pyCheckArgs);Sk.builtin.pyCheckArgsLen=function(a,b,c,d,e,h){void 0===
131
d&&(d=Infinity);e&&--b;h&&--b;if(b<c||b>d)throw new Sk.builtin.TypeError((c===d?a+"() takes exactly "+c+" arguments":b<c?a+"() takes at least "+c+" arguments":a+"() takes at most "+d+" arguments")+(" ("+b+" given)"));};Sk.builtin.pyCheckType=function(a,b,c){if(!c)throw new Sk.builtin.TypeError(a+" must be a "+b);};Sk.exportSymbol("Sk.builtin.pyCheckType",Sk.builtin.pyCheckType);Sk.builtin.checkSequence=function(a){return null!==a&&void 0!==a.mp$subscript};Sk.exportSymbol("Sk.builtin.checkSequence",
14550 bpr 132
Sk.builtin.checkSequence);Sk.builtin.checkIterable=function(a){var b=!1;if(null!==a)try{return(b=Sk.abstr.iter(a))?!0:!1}catch(c){if(c instanceof Sk.builtin.TypeError)return!1;throw c;}return b};Sk.exportSymbol("Sk.builtin.checkIterable",Sk.builtin.checkIterable);Sk.builtin.checkCallable=function(a){return"function"===typeof a||a instanceof Sk.builtin.func||a instanceof Sk.builtin.method||void 0!==Sk.abstr.lookupSpecial(a,Sk.builtin.str.$call)?!0:!1};Sk.builtin.checkNumber=function(a){return null!==
16494 obado 133
a&&("number"===typeof a||a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_||a instanceof Sk.builtin.lng)};Sk.exportSymbol("Sk.builtin.checkNumber",Sk.builtin.checkNumber);Sk.builtin.checkComplex=function(a){return Sk.builtin.complex._complex_check(a)};Sk.exportSymbol("Sk.builtin.checkComplex",Sk.builtin.checkComplex);Sk.builtin.checkInt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||"number"===typeof a&&Number.isInteger(a)};Sk.exportSymbol("Sk.builtin.checkInt",
134
Sk.builtin.checkInt);Sk.builtin.checkFloat=function(a){return null!==a&&a instanceof Sk.builtin.float_};Sk.exportSymbol("Sk.builtin.checkFloat",Sk.builtin.checkFloat);Sk.builtin.checkString=function(a){return null!==a&&a.__class__==Sk.builtin.str};Sk.exportSymbol("Sk.builtin.checkString",Sk.builtin.checkString);Sk.builtin.checkBytes=function(a){return a instanceof Sk.builtin.bytes};Sk.builtin.checkClass=function(a){return null!==a&&a.sk$type};Sk.exportSymbol("Sk.builtin.checkClass",Sk.builtin.checkClass);
135
Sk.builtin.checkBool=function(a){return a instanceof Sk.builtin.bool};Sk.exportSymbol("Sk.builtin.checkBool",Sk.builtin.checkBool);Sk.builtin.checkNone=function(a){return a===Sk.builtin.none.none$};Sk.exportSymbol("Sk.builtin.checkNone",Sk.builtin.checkNone);Sk.builtin.checkFunction=function(a){return null!==a&&void 0!==a.tp$call};Sk.exportSymbol("Sk.builtin.checkFunction",Sk.builtin.checkFunction);Sk.builtin.func=function(a,b,c,d){if(!(this instanceof Sk.builtin.func))throw Error("builtin func should be called as a class with `new`");
136
var e;this.func_code=a;this.func_globals=b||null;if(void 0!==d)for(e in d)c[e]=d[e];this.$d={__name__:a.co_name,__class__:Sk.builtin.func};this.func_closure=c;this.tp$name=this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||this.func_code.name||"<native JS>";this.$memoiseFlags();if(this.memoised=a.co_fastcall)this.tp$call=a;return this};Sk.abstr.setUpInheritance("function",Sk.builtin.func,Sk.builtin.object);Sk.exportSymbol("Sk.builtin.func",Sk.builtin.func);Sk.builtin.func.prototype.tp$name=
137
"function";Sk.builtin.func.prototype.$memoiseFlags=function(){this.co_varnames=this.func_code.co_varnames;this.co_argcount=this.func_code.co_argcount;void 0===this.co_argcount&&this.co_varnames&&(this.co_argcount=this.co_varnames.length);this.co_kwonlyargcount=this.func_code.co_kwonlyargcount||0;this.co_varargs=this.func_code.co_varargs;this.co_kwargs=this.func_code.co_kwargs;this.$defaults=this.func_code.$defaults||[];this.$kwdefs=this.func_code.$kwdefs||[]};Sk.builtin.func.prototype.tp$descr_get=
138
function(a,b){Sk.asserts.assert(!(void 0===a&&void 0===b));return b&&b.prototype&&b.prototype.tp$name in Sk.builtin&&Sk.builtin[b.prototype.tp$name]===b?new Sk.builtin.method(this,a,b,!0):new Sk.builtin.method(this,a,b)};Sk.builtin.func.pythonFunctions=["__get__"];Sk.builtin.func.prototype.__get__=function(a,b,c){Sk.builtin.pyCheckArgsLen("__get__",arguments.length,1,2,!1,!0);if(b===Sk.builtin.none.none$&&c===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("__get__(None, None) is invalid");return a.tp$descr_get(b,
139
c)};Sk.builtin.func.prototype.tp$getname=function(){return this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||this.func_code.name||"<native JS>"};Sk.builtin.func.prototype.$resolveArgs=function(a,b){var c=this.co_argcount;void 0===c&&(c=this.co_varnames?this.co_varnames.length:a.length);var d=this.co_varnames||[],e=this.co_kwonlyargcount||0;let h=c+e;if(!(0!==e||this.co_kwargs||b&&0!==b.length||this.co_varargs)){if(a.length==c)return a;if(0===a.length&&this.$defaults&&this.$defaults.length===
140
c){for(d=0;d!=this.$defaults.length;d++)a[d]=this.$defaults[d];return a}}let g;this.co_kwargs&&(g=[]);var f=a.length;let k=a.length<=c?a:a.slice(0,c);if(this.co_varargs)a=a.length>k.length?a.slice(k.length):[],k[h]=new Sk.builtin.tuple(a);else if(f>c)throw new Sk.builtin.TypeError(this.tp$getname()+"() takes "+c+" positional argument"+(1==c?"":"s")+" but "+f+(1==f?" was ":" were ")+" given");if(b){if(this.func_code.no_kw)throw new Sk.builtin.TypeError(this.tp$getname()+"() takes no keyword arguments");
141
for(a=0;a<b.length;a+=2){f=b[a];var n=b[a+1],l=d.indexOf(f);if(0<=l){if(void 0!==k[l])throw new Sk.builtin.TypeError(this.tp$getname()+"() got multiple values for argument '"+f+"'");k[l]=n}else if(g)g.push(new Sk.builtin.str(f),n);else throw new Sk.builtin.TypeError(this.tp$getname()+"() got an unexpected keyword argument '"+f+"'");}}b=this.$defaults||[];a=0;f=[];n=!1;for(l=c-b.length;a<l;a++)void 0===k[a]&&(f.push(d[a]),void 0===d[a]&&(n=!0));if(0!=f.length&&(this.co_argcount||this.co_varnames))throw new Sk.builtin.TypeError(this.tp$getname()+
142
"() missing "+f.length+" required argument"+(1==f.length?"":"s")+(n?"":": "+f.join(", ")));for(;a<c;a++)void 0===k[a]&&(k[a]=b[a-l]);if(0<e){e=[];b=this.$kwdefs;for(a=c;a<h;a++)void 0===k[a]&&(void 0!==b[a-c]?k[a]=b[a-c]:e.push(d[a]));if(0!==e.length)throw new Sk.builtin.TypeError(this.tp$getname()+"() missing "+e.length+" required keyword argument"+(1==e.length?"":"s")+": "+e.join(", "));}if(this.func_closure&&d)for(c=k.length;c<d.length;c++)k.push(void 0);g&&k.unshift(g);return k};Sk.builtin.func.prototype.tp$call=
143
function(a,b){this.memoised||(this.$memoiseFlags(),this.memoised=!0);if(void 0===this.co_argcount&&void 0===this.co_varnames&&!this.co_kwargs&&!this.func_closure){if(b&&0!==b.length)throw new Sk.builtin.TypeError(this.tp$getname()+"() takes no keyword arguments");return this.func_code.apply(this.func_globals,a)}a=this.$resolveArgs(a,b);this.func_closure&&a.push(this.func_closure);return this.func_code.apply(this.func_globals,a)};Sk.builtin.func.prototype.$r=function(){var a=this.tp$getname();return a in
144
Sk.builtins&&this===Sk.builtins[a]?new Sk.builtin.str("<built-in function "+a+">"):new Sk.builtin.str("<function "+a+">")}},function(m,p){Sk.builtin.range=function(a,b,c){var d=[],e;Sk.builtin.pyCheckArgsLen("range",arguments.length,1,3);Sk.builtin.pyCheckType("start","integer",Sk.misceval.isIndex(a));a=Sk.misceval.asIndex(a);void 0!==b&&(Sk.builtin.pyCheckType("stop","integer",Sk.misceval.isIndex(b)),b=Sk.misceval.asIndex(b));void 0!==c&&(Sk.builtin.pyCheckType("step","integer",Sk.misceval.isIndex(c)),
145
c=Sk.misceval.asIndex(c));void 0===b&&void 0===c?(b=a,a=0,c=1):void 0===c&&(c=1);if(0===c)throw new Sk.builtin.ValueError("range() step argument must not be zero");if("number"===typeof a&&"number"===typeof b&&"number"===typeof c)if(0<c)for(e=a;e<b;e+=c)d.push(new Sk.builtin.int_(e));else for(e=a;e>b;e+=c)d.push(new Sk.builtin.int_(e));else{e=new Sk.builtin.lng(a);var h=new Sk.builtin.lng(b),g=new Sk.builtin.lng(c);if(g.nb$ispositive())for(;Sk.misceval.isTrue(e.ob$lt(h));)d.push(e),e=e.nb$add(g);else for(;Sk.misceval.isTrue(e.ob$gt(h));)d.push(e),
146
e=e.nb$add(g)}d=new Sk.builtin.list(d);return Sk.__future__.python3?new Sk.builtin.range_(a,b,c,d):d};Sk.builtin.asnum$=function(a){return void 0===a||null===a?a:a===Sk.builtin.none.none$?null:a instanceof Sk.builtin.bool?a.v?1:0:"number"===typeof a?a:"string"===typeof a?a:a instanceof Sk.builtin.int_?a.v:a instanceof Sk.builtin.float_?a.v:a instanceof Sk.builtin.lng?a.cantBeInt()?a.str$(10,!0):a.toInt$():a.constructor===Sk.builtin.biginteger?0<a.trueCompare(new Sk.builtin.biginteger(Sk.builtin.int_.threshold$))||
147
0>a.trueCompare(new Sk.builtin.biginteger(-Sk.builtin.int_.threshold$))?a.toString():a.intValue():a};Sk.exportSymbol("Sk.builtin.asnum$",Sk.builtin.asnum$);Sk.builtin.assk$=function(a){return 0===a%1?new Sk.builtin.int_(a):new Sk.builtin.float_(a)};Sk.exportSymbol("Sk.builtin.assk$",Sk.builtin.assk$);Sk.builtin.asnum$nofloat=function(a){if(void 0===a||null===a)return a;if(a.constructor===Sk.builtin.none)return null;if(a.constructor===Sk.builtin.bool)return a.v?1:0;"number"===typeof a&&(a=a.toString());
148
a.constructor===Sk.builtin.int_&&(a=a.v.toString());a.constructor===Sk.builtin.float_&&(a=a.v.toString());a.constructor===Sk.builtin.lng&&(a=a.str$(10,!0));a.constructor===Sk.builtin.biginteger&&(a=a.toString());if(0>a.indexOf(".")&&0>a.indexOf("e")&&0>a.indexOf("E"))return a;var b=0;if(0<=a.indexOf("e")){var c=a.substr(0,a.indexOf("e"));b=a.substr(a.indexOf("e")+1)}else 0<=a.indexOf("E")?(c=a.substr(0,a.indexOf("e")),b=a.substr(a.indexOf("E")+1)):c=a;b=parseInt(b,10);a=c.indexOf(".");if(0>a){if(0<=
149
b){for(;0<b--;)c+="0";return c}return c.length>-b?c.substr(0,c.length+b):0}c=0===a?c.substr(1):a<c.length?c.substr(0,a)+c.substr(a+1):c.substr(0,a);for(a+=b;a>c.length;)c+="0";return c=0>=a?0:c.substr(0,a)};Sk.exportSymbol("Sk.builtin.asnum$nofloat",Sk.builtin.asnum$nofloat);Sk.builtin.round=function(a,b){Sk.builtin.pyCheckArgsLen("round",arguments.length,1,2);if(!Sk.builtin.checkNumber(a)){if(!Sk.builtin.checkFunction(a))throw new Sk.builtin.TypeError("a float is required");if(!Sk.__future__.exceptions)throw new Sk.builtin.AttributeError(Sk.abstr.typeName(a)+
150
" instance has no attribute '__float__'");}if(void 0!==b&&!Sk.misceval.isIndex(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object cannot be interpreted as an index");if(!Sk.__future__.dunder_round&&a.round$)return a.round$(a,b);var c=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$round);if(null!=c)return Sk.builtin.checkFunction(a)?Sk.misceval.callsimArray(c,[a]):Sk.misceval.callsimArray(c,[a,b]);throw new Sk.builtin.TypeError("a float is required");};Sk.builtin.len=function(a){Sk.builtin.pyCheckArgsLen("len",
151
arguments.length,1,1);var b=function(a){return new Sk.builtin.int_(a)};var c=function(a){if(Sk.builtin.checkInt(a))return b(a);if(Sk.__future__.exceptions)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object cannot be interpreted as an integer");throw new Sk.builtin.TypeError("__len__() should return an int");};if(a.sq$length)return Sk.misceval.chain(a.sq$length(!0),c);if(a.mp$length)return Sk.misceval.chain(a.mp$length(),b);if(a.tp$length)if(Sk.builtin.checkFunction(a)){c=Sk.abstr.lookupSpecial(a,
152
Sk.builtin.str.$len);if(null!=c)return Sk.misceval.callsimArray(c,[a]);if(!Sk.__future__.exceptions)throw new Sk.builtin.AttributeError(Sk.abstr.typeName(a)+" instance has no attribute '__len__'");}else return Sk.misceval.chain(a.tp$length(!0),c);throw new Sk.builtin.TypeError("object of type '"+Sk.abstr.typeName(a)+"' has no len()");};Sk.builtin.min=function(a,b,c){const d=c.sq$length();if(!d)throw new Sk.builtin.TypeError("min expected 1 argument, got 0");if(1<d&&null!==a)throw new Sk.builtin.TypeError("Cannot specify a default for min() with multiple positional arguments");
153
if(1==d&&(c=c.v[0],!Sk.builtin.checkIterable(c)))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object is not iterable");let e=Sk.abstr.iter(c);if(!Sk.builtin.checkNone(b)&&!Sk.builtin.checkCallable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not callable");let h;return Sk.misceval.chain(e.tp$iternext(!0),a=>{h=a;if(void 0!==h)return Sk.builtin.checkNone(b)?Sk.misceval.iterFor(e,a=>{Sk.misceval.richCompareBool(a,h,"Lt")&&(h=a)}):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(b,
154
[h]),a=>Sk.misceval.iterFor(e,c=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(b,[c]),b=>{Sk.misceval.richCompareBool(b,a,"Lt")&&(h=c,a=b)})))},()=>{if(void 0===h){if(null===a)throw new Sk.builtin.ValueError("min() arg is an empty sequence");h=a}return h})};Sk.builtin.min.co_argcount=0;Sk.builtin.min.co_kwonlyargcount=2;Sk.builtin.min.$kwdefs=[null,Sk.builtin.none.none$];Sk.builtin.min.co_varnames=["default","key"];Sk.builtin.min.co_varargs=1;Sk.builtin.max=function(a,b,c){const d=c.sq$length();
155
if(!d)throw new Sk.builtin.TypeError("max expected 1 argument, got 0");if(1<d&&null!==a)throw new Sk.builtin.TypeError("Cannot specify a default for max() with multiple positional arguments");if(1==d&&(c=c.v[0],!Sk.builtin.checkIterable(c)))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object is not iterable");let e=Sk.abstr.iter(c);if(!Sk.builtin.checkNone(b)&&!Sk.builtin.checkCallable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not callable");let h;return Sk.misceval.chain(e.tp$iternext(!0),
156
a=>{h=a;if(void 0!==h)return Sk.builtin.checkNone(b)?Sk.misceval.iterFor(e,a=>{Sk.misceval.richCompareBool(a,h,"Gt")&&(h=a)}):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(b,[h]),a=>Sk.misceval.iterFor(e,c=>Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(b,[c]),b=>{Sk.misceval.richCompareBool(b,a,"Gt")&&(h=c,a=b)})))},()=>{if(void 0===h){if(null===a)throw new Sk.builtin.ValueError("min() arg is an empty sequence");h=a}return h})};Sk.builtin.max.co_argcount=0;Sk.builtin.max.co_kwonlyargcount=
157
2;Sk.builtin.max.$kwdefs=[null,Sk.builtin.none.none$];Sk.builtin.max.co_varnames=["default","key"];Sk.builtin.max.co_varargs=1;Sk.builtin.any=function(a){Sk.builtin.pyCheckArgsLen("any",arguments.length,1,1);return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(a),function(a){if(Sk.misceval.isTrue(a))return new Sk.misceval.Break(Sk.builtin.bool.true$)}),a=>a||Sk.builtin.bool.false$)};Sk.builtin.all=function(a){Sk.builtin.pyCheckArgsLen("all",arguments.length,1,1);return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(a),
158
function(a){if(!Sk.misceval.isTrue(a))return new Sk.misceval.Break(Sk.builtin.bool.false$)}),a=>a||Sk.builtin.bool.true$)};Sk.builtin.sum=function(a,b){function c(){return Sk.misceval.iterFor(h,a=>{if(a.constructor===Sk.builtin.int_)g=g.nb$add(a);else{if(a.constructor===Sk.builtin.float_)return g=(new Sk.builtin.float_(g)).nb$add(a),new Sk.misceval.Break("float");g=Sk.abstr.numberBinOp(g,a,"Add");return new Sk.misceval.Break("slow")}})}function d(){return Sk.misceval.iterFor(h,a=>{if(a.constructor===
159
Sk.builtin.float_||a.constructor===Sk.builtin.int_)g=g.nb$add(a);else return g=Sk.abstr.numberBinOp(g,a,"Add"),new Sk.misceval.Break("slow")})}function e(){return Sk.misceval.iterFor(h,a=>{g=Sk.abstr.numberBinOp(g,a,"Add")})}Sk.builtin.pyCheckArgsLen("sum",arguments.length,1,2);const h=Sk.abstr.iter(a);if(void 0===b)var g=new Sk.builtin.int_(0);else{if(Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("sum() can't sum strings [use ''.join(seq) instead]");g=b}let f;f=void 0===b||b.constructor===
160
Sk.builtin.int_?c():b.constructor===Sk.builtin.float_?"float":"slow";return Sk.misceval.chain(f,a=>"float"===a?d():a,a=>{if("slow"===a)return e()},()=>g)};Sk.builtin.zip=function(){var a,b;if(0===arguments.length)return new Sk.builtin.list([]);var c=[];for(b=0;b<arguments.length;b++)if(Sk.builtin.checkIterable(arguments[b]))c.push(Sk.abstr.iter(arguments[b]));else throw new Sk.builtin.TypeError("argument "+b+" must support iteration");var d=[];for(a=!1;!a;){var e=[];for(b=0;b<arguments.length;b++){var h=
161
c[b].tp$iternext();if(void 0===h){a=!0;break}e.push(h)}a||d.push(new Sk.builtin.tuple(e))}return new Sk.builtin.list(d)};Sk.builtin.abs=function(a){Sk.builtin.pyCheckArgsLen("abs",arguments.length,1,1);if(a.nb$abs)return a.nb$abs();throw new TypeError("bad operand type for abs(): '"+Sk.abstr.typeName(a)+"'");};Sk.builtin.fabs=function(a){return Sk.builtin.abs(a)};Sk.builtin.ord=function(a){Sk.builtin.pyCheckArgsLen("ord",arguments.length,1,1);if(Sk.builtin.checkString(a)){if(1!==a.v.length&&1!==a.sq$length())throw new Sk.builtin.TypeError("ord() expected a character, but string of length "+
162
a.v.length+" found");return new Sk.builtin.int_(a.v.codePointAt(0))}if(Sk.builtin.checkBytes(a)){if(1!==a.sq$length())throw new Sk.builtin.TypeError("ord() expected a character, but string of length "+a.v.length+" found");return new Sk.builtin.int_(a.v[0])}throw new Sk.builtin.TypeError("ord() expected a string of length 1, but "+Sk.abstr.typeName(a)+" found");};Sk.builtin.chr=function(a){Sk.builtin.pyCheckArgsLen("chr",arguments.length,1,1);if(!Sk.builtin.checkInt(a))throw new Sk.builtin.TypeError("an integer is required");
163
a=Sk.builtin.asnum$(a);if(Sk.__future__.python3){if(0>a||1114112<=a)throw new Sk.builtin.ValueError("chr() arg not in range(0x110000)");}else if(0>a||256<=a)throw new Sk.builtin.ValueError("chr() arg not in range(256)");return new Sk.builtin.str(String.fromCodePoint(a))};Sk.builtin.unichr=function(a){Sk.builtin.pyCheckArgsLen("chr",arguments.length,1,1);if(!Sk.builtin.checkInt(a))throw new Sk.builtin.TypeError("an integer is required");a=Sk.builtin.asnum$(a);try{return new Sk.builtin.str(String.fromCodePoint(a))}catch(b){if(b instanceof
164
RangeError)throw new Sk.builtin.ValueError(b.message);throw b;}};Sk.builtin.int2str_=function(a,b,c){if(a instanceof Sk.builtin.lng){var d="";2===b||Sk.__future__.python3||(d="L");b=a.str$(b,!1);return a.nb$isnegative()?new Sk.builtin.str("-"+c+b+d):new Sk.builtin.str(c+b+d)}a=Sk.misceval.asIndex(a);b=a.toString(b);return 0>a?new Sk.builtin.str("-"+c+b.slice(1)):new Sk.builtin.str(c+b)};Sk.builtin.hex=function(a){Sk.builtin.pyCheckArgsLen("hex",arguments.length,1,1);if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("hex() argument can't be converted to hex");
165
return Sk.builtin.int2str_(a,16,"0x")};Sk.builtin.oct=function(a){Sk.builtin.pyCheckArgsLen("oct",arguments.length,1,1);if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("oct() argument can't be converted to hex");return Sk.__future__.octal_number_literal?Sk.builtin.int2str_(a,8,"0o"):Sk.builtin.int2str_(a,8,"0")};Sk.builtin.bin=function(a){Sk.builtin.pyCheckArgsLen("bin",arguments.length,1,1);if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object can't be interpreted as an index");
166
return Sk.builtin.int2str_(a,2,"0b")};Sk.builtin.dir=function(a){var b,c;Sk.builtin.pyCheckArgsLen("dir",arguments.length,1,1);var d=function(a){var c=null;if(-1!=="__bases__ __mro__ __class__ __name__ GenericGetAttr GenericSetAttr GenericPythonGetAttr GenericPythonSetAttr pythonFunctions HashNotImplemented constructor __dict__".split(" ").indexOf(a))return null;a=Sk.unfixReserved(a);-1!==a.indexOf("$")?c=Sk.builtin.dir.slotNameToRichName(a):"_"!==a.charAt(a.length-1)?c=a:"_"===a.charAt(0)&&(c=a);
167
return c};var e=[];var h=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$dir);if(null!=h){var g=Sk.misceval.callsimArray(h,[a]);if(!Sk.builtin.checkSequence(g))throw new Sk.builtin.TypeError("__dir__ must return sequence.");g=Sk.ffi.remapToJs(g);for(b=0;b<g.length;++b)e.push(new Sk.builtin.str(g[b]))}else{for(b in a.constructor.prototype)(c=d(b))&&e.push(new Sk.builtin.str(c));if(a.$d)if(a.$d.tp$iter)for(h=a.$d.tp$iter(),b=h.tp$iternext();void 0!==b;b=h.tp$iternext())c=new Sk.builtin.str(b),(c=d(c.v))&&
168
e.push(new Sk.builtin.str(c));else for(c in a.$d)e.push(new Sk.builtin.str(c));var f=a.tp$mro;!f&&a.ob$type&&(f=a.ob$type.tp$mro);if(f)for(b=0;b<f.v.length;++b)for(g in h=f.v[b],h)h.hasOwnProperty(g)&&(c=d(g))&&e.push(new Sk.builtin.str(c))}e.sort(function(a,c){return(a.v>c.v)-(a.v<c.v)});return new Sk.builtin.list(e.filter(function(a,c,b){return a!==b[c+1]}))};Sk.builtin.dir.slotNameToRichName=function(a){};Sk.builtin.repr=function(a){Sk.builtin.pyCheckArgsLen("repr",arguments.length,1,1);return Sk.misceval.objectRepr(a)};
169
Sk.builtin.ascii=function(a){return Sk.misceval.chain(Sk.misceval.objectRepr(a),a=>{if(!(a instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("__repr__ returned non-string (type "+Sk.abstr.typeName(a)+")");let c,b;for(b=0;b<a.v.length;b++)if(127<=a.v.charCodeAt(b)){c=a.v.substr(0,b);break}if(!c)return a;for(;b<a.v.length;b++){var e=a.v.charAt(b),h=a.v.charCodeAt(b);127<h&&255>=h?(e=h.toString(16),2>e.length&&(e="0"+e),c+="\\x"+e):127<h&&55296>h||57344<=h?c+="\\u"+("000"+h.toString(16)).slice(-4):
170
55296<=h?(e=a.v.codePointAt(b),b++,e=e.toString(16),h="0000000"+e.toString(16),c=4<e.length?c+("\\U"+h.slice(-8)):c+("\\u"+h.slice(-4))):c+=e}return new Sk.builtin.str(c)})};Sk.builtin.open=function(a,b,c){Sk.builtin.pyCheckArgsLen("open",arguments.length,1,3);void 0===b&&(b=new Sk.builtin.str("r"));if(/\+/.test(b.v))throw"todo; haven't implemented read/write mode";if(("w"===b.v||"wb"===b.v||"a"===b.v||"ab"===b.v)&&!Sk.nonreadopen)throw"todo; haven't implemented non-read opens";return new Sk.builtin.file(a,
171
b,c)};Sk.builtin.isinstance=function(a,b){var c;Sk.builtin.pyCheckArgsLen("isinstance",arguments.length,2,2);if(!(Sk.builtin.checkClass(b)||b instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("isinstance() arg 2 must be a class, type, or tuple of classes and types");if(b===Sk.builtin.none.prototype.ob$type)return a===Sk.builtin.none.none$?Sk.builtin.bool.true$:Sk.builtin.bool.false$;if(a.ob$type===b)return Sk.builtin.bool.true$;if(b instanceof Sk.builtin.tuple){for(c=0;c<b.v.length;++c)if(Sk.misceval.isTrue(Sk.builtin.isinstance(a,
172
b.v[c])))return Sk.builtin.bool.true$;return Sk.builtin.bool.false$}if(a instanceof b)return Sk.builtin.bool.true$;var d=function(a,c){if(a===c)return Sk.builtin.bool.true$;if(void 0===a.$d)return Sk.builtin.bool.false$;var b=a.$d.mp$subscript(Sk.builtin.type.basesStr_);for(a=0;a<b.v.length;++a)if(Sk.misceval.isTrue(d(b.v[a],c)))return Sk.builtin.bool.true$;return Sk.builtin.bool.false$};return d(a.ob$type,b)};Sk.builtin.hash=function(a){Sk.builtin.pyCheckArgsLen("hash",arguments.length,1,1);if(a instanceof
15332 obado 173
Object){if(Sk.builtin.checkNone(a.tp$hash))throw new Sk.builtin.TypeError(new Sk.builtin.str("unhashable type: '"+Sk.abstr.typeName(a)+"'"));if(void 0!==a.tp$hash){if(a.$savedHash_)return a.$savedHash_;a.$savedHash_=a.tp$hash();return a.$savedHash_}void 0===a.__hash&&(Sk.builtin.hashCount+=1,a.__hash=Sk.builtin.hashCount);return new Sk.builtin.int_(a.__hash)}if("number"===typeof a||null===a||!0===a||!1===a)throw new Sk.builtin.TypeError("unsupported Javascript type");return new Sk.builtin.str(typeof a+
16494 obado 174
" "+String(a))};Sk.builtin.getattr=function(a,b,c){Sk.builtin.pyCheckArgsLen("getattr",arguments.length,2,3);if(!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("attribute name must be string");var d=a.tp$getattr(b);if(void 0===d){if(void 0!==c)return c;throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(a)+"' object has no attribute '"+b.$jsstr()+"'");}return d};Sk.builtin.setattr=function(a,b,c){Sk.builtin.pyCheckArgsLen("setattr",arguments.length,3,3);if(!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("attribute name must be string");
175
if(a.tp$setattr)a.tp$setattr(b,c);else throw new Sk.builtin.AttributeError("object has no attribute "+b.$jsstr());return Sk.builtin.none.none$};Sk.builtin.raw_input=function(a){var b=a?a:"";return Sk.misceval.chain(Sk.importModule("sys",!1,!0),function(a){return Sk.inputfunTakesPrompt?Sk.misceval.callsimOrSuspendArray(Sk.builtin.file.$readline,[a.$d.stdin,null,b]):Sk.misceval.chain(void 0,function(){return Sk.misceval.callsimOrSuspendArray(a.$d.stdout.write,[a.$d.stdout,new Sk.builtin.str(b)])},function(){return Sk.misceval.callsimOrSuspendArray(a.$d.stdin.readline,
176
[a.$d.stdin])})})};Sk.builtin.input=Sk.builtin.raw_input;Sk.builtin.jseval=function(a){a=Sk.global.eval(Sk.ffi.remapToJs(a));return Sk.ffi.remapToPy(a)};Sk.builtin.jsmillis=function(){return(new Date).valueOf()};Sk.builtin.eval_=function(){throw new Sk.builtin.NotImplementedError("eval is not yet implemented");};Sk.builtin.map=function(a,b){var c=[],d,e;Sk.builtin.pyCheckArgsLen("map",arguments.length,2);if(2<arguments.length){var h=[];var g=Array.prototype.slice.apply(arguments).slice(1);for(e=0;e<
177
g.length;e++){if(!Sk.builtin.checkIterable(g[e])){var f=parseInt(e,10)+2;throw new Sk.builtin.TypeError("argument "+f+" to map() must support iteration");}g[e]=Sk.abstr.iter(g[e])}for(;;){var k=[];for(e=d=0;e<g.length;e++)f=g[e].tp$iternext(),void 0===f?(k.push(Sk.builtin.none.none$),d++):k.push(f);if(d!==g.length)h.push(k);else break}b=new Sk.builtin.list(h)}if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");return Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(b),
178
function(b){if(a===Sk.builtin.none.none$)b instanceof Array&&(b=new Sk.builtin.tuple(b)),c.push(b);else return b instanceof Array||(b=[b]),Sk.misceval.chain(Sk.misceval.applyOrSuspend(a,void 0,void 0,void 0,b),function(a){c.push(a)})}),function(){return new Sk.builtin.list(c)})};Sk.builtin.reduce=function(a,b,c){var d;Sk.builtin.pyCheckArgsLen("reduce",arguments.length,2,3);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var e=Sk.abstr.iter(b);
179
if(void 0===c&&(c=e.tp$iternext(),void 0===c))throw new Sk.builtin.TypeError("reduce() of empty sequence with no initial value");var h=c;for(d=e.tp$iternext();void 0!==d;d=e.tp$iternext())h=Sk.misceval.callsimArray(a,[h,d]);return h};Sk.builtin.filter=function(a,b){var c;Sk.builtin.pyCheckArgsLen("filter",arguments.length,2,2);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var d=function(){return[]};var e=function(a,c){a.push(c);
180
return a};var h=function(a){return new Sk.builtin.list(a)};b.__class__===Sk.builtin.str?(d=function(){return new Sk.builtin.str("")},e=function(a,c){return a.sq$concat(c)},h=function(a){return a}):b.__class__===Sk.builtin.tuple&&(h=function(a){return new Sk.builtin.tuple(a)});var g=d();var f=Sk.abstr.iter(b);for(c=f.tp$iternext();void 0!==c;c=f.tp$iternext())d=a===Sk.builtin.none.none$?new Sk.builtin.bool(c):Sk.misceval.callsimArray(a,[c]),Sk.misceval.isTrue(d)&&(g=e(g,c));return h(g)};Sk.builtin.hasattr=
181
function(a,b){Sk.builtin.pyCheckArgsLen("hasattr",arguments.length,2,2);if(!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("hasattr(): attribute name must be string");if(a.tp$getattr)return a.tp$getattr(b)?Sk.builtin.bool.true$:Sk.builtin.bool.false$;throw new Sk.builtin.AttributeError("Object has no tp$getattr method");};Sk.builtin.pow=function(a,b,c){Sk.builtin.pyCheckArgsLen("pow",arguments.length,2,3);c===Sk.builtin.none.none$&&(c=void 0);if(Sk.builtin.checkComplex(a))return a.nb$power(b,
182
c);var d=Sk.builtin.asnum$(a);var e=Sk.builtin.asnum$(b);var h=Sk.builtin.asnum$(c);if(!Sk.builtin.checkNumber(a)||!Sk.builtin.checkNumber(b)){if(void 0===c)throw new Sk.builtin.TypeError("unsupported operand type(s) for pow(): '"+Sk.abstr.typeName(a)+"' and '"+Sk.abstr.typeName(b)+"'");throw new Sk.builtin.TypeError("unsupported operand type(s) for pow(): '"+Sk.abstr.typeName(a)+"', '"+Sk.abstr.typeName(b)+"', '"+Sk.abstr.typeName(c)+"'");}if(0>d&&b instanceof Sk.builtin.float_)throw new Sk.builtin.ValueError("negative number cannot be raised to a fractional power");
183
if(void 0===c){if(a instanceof Sk.builtin.float_||b instanceof Sk.builtin.float_||0>e)return new Sk.builtin.float_(Math.pow(d,e));h=new Sk.builtin.int_(d);e=new Sk.builtin.int_(e);e=h.nb$power(e);return a instanceof Sk.builtin.lng||b instanceof Sk.builtin.lng?new Sk.builtin.lng(e):e}if(!Sk.builtin.checkInt(a)||!Sk.builtin.checkInt(b)||!Sk.builtin.checkInt(c))throw new Sk.builtin.TypeError("pow() 3rd argument not allowed unless all arguments are integers");if(0>e){if(Sk.__future__.exceptions)throw new Sk.builtin.ValueError("pow() 2nd argument cannot be negative when 3rd argument specified");
184
throw new Sk.builtin.TypeError("pow() 2nd argument cannot be negative when 3rd argument specified");}if(0===h)throw new Sk.builtin.ValueError("pow() 3rd argument cannot be 0");return a instanceof Sk.builtin.lng||b instanceof Sk.builtin.lng||c instanceof Sk.builtin.lng||Infinity===Math.pow(d,e)?(a=new Sk.builtin.lng(a),a.nb$power(b,c)):(new Sk.builtin.int_(Math.pow(d,e))).nb$remainder(c)};Sk.builtin.quit=function(a){a=(new Sk.builtin.str(a)).v;throw new Sk.builtin.SystemExit(a);};Sk.builtin.issubclass=
185
function(a,b){var c;Sk.builtin.pyCheckArgsLen("issubclass",arguments.length,2,2);if(!Sk.builtin.checkClass(a))throw new Sk.builtin.TypeError("issubclass() arg 1 must be a class");if(!(Sk.builtin.checkClass(b)||b instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("issubclass() arg 2 must be a class or tuple of classes");var d=function(a,c){if(a===c)return!0;if(void 0!==a.$d&&a.$d.mp$subscript)if(a.$d.sq$contains(Sk.builtin.type.basesStr_))var b=a.$d.mp$subscript(Sk.builtin.type.basesStr_);
186
else return!1;else return!1;for(a=0;a<b.v.length;++a)if(d(b.v[a],c))return!0;return!1};if(Sk.builtin.checkClass(b))return a===b?!0:d(a,b);if(b instanceof Sk.builtin.tuple){for(c=0;c<b.v.length;++c)if(Sk.builtin.issubclass(a,b.v[c]))return!0;return!1}};Sk.builtin.globals=function(){var a,b=new Sk.builtin.dict([]);for(a in Sk.globals){var c=Sk.unfixReserved(a);b.mp$ass_subscript(new Sk.builtin.str(c),Sk.globals[a])}return b};Sk.builtin.divmod=function(a,b){return Sk.abstr.numberBinOp(a,b,"DivMod")};
187
Sk.builtin.format=function(a,b){Sk.builtin.pyCheckArgsLen("format",arguments.length,1,2);void 0===b&&(b=Sk.builtin.str.$emptystr);return Sk.abstr.objectFormat(a,b)};Sk.builtin.reversed=function(a){Sk.builtin.pyCheckArgsLen("reversed",arguments.length,1,1);var b=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$reversed);if(null!=b)return Sk.misceval.callsimArray(b,[a]);if(!Sk.builtin.checkSequence(a))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not a sequence");return new function(a){this.idx=
188
a.sq$length()-1;this.myobj=a;this.getitem=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$getitem);this.tp$iter=function(){return this};this.tp$iternext=function(){if(!(0>this.idx)){try{var a=Sk.misceval.callsimArray(this.getitem,[this.myobj,Sk.ffi.remapToPy(this.idx)])}catch(e){if(e instanceof Sk.builtin.IndexError)return;throw e;}this.idx--;return a}}}(a)};Sk.builtin.id=function(a){Sk.builtin.pyCheckArgsLen("id",arguments.length,1,1);void 0===a.__id&&(Sk.builtin.idCount+=1,a.__id=Sk.builtin.idCount);return new Sk.builtin.int_(a.__id)};
15332 obado 189
Sk.builtin.bytearray=function(){throw new Sk.builtin.NotImplementedError("bytearray is not yet implemented");};Sk.builtin.callable=function(a){Sk.builtin.pyCheckArgsLen("callable",arguments.length,1,1);return Sk.builtin.checkCallable(a)?Sk.builtin.bool.true$:Sk.builtin.bool.false$};Sk.builtin.delattr=function(a,b){Sk.builtin.pyCheckArgsLen("delattr",arguments.length,2,2);if(void 0!==a.$d[b.v])return Sk.misceval.tryCatch(function(){return Sk.builtin.setattr(a,b,void 0)},function(c){Sk.misceval.tryCatch(function(){return Sk.builtin.setattr(a.$d,
16494 obado 190
b,void 0)},function(c){if(c instanceof Sk.builtin.AttributeError)throw new Sk.builtin.AttributeError(Sk.abstr.typeName(a)+" instance has no attribute '"+b.v+"'");throw c;})});if("type"!==a.$r().v.slice(1,5)){if(a.ob$type===Sk.builtin.type&&void 0!==a[b.v])return a[b.v]=void 0,Sk.builtin.none.none$;throw new Sk.builtin.AttributeError(Sk.abstr.typeName(a)+" instance has no attribute '"+b.v+"'");}throw new Sk.builtin.TypeError("can't set attributes of built-in/extension type '"+a.prototype.tp$name+"'");
191
};Sk.builtin.execfile=function(){throw new Sk.builtin.NotImplementedError("execfile is not yet implemented");};Sk.builtin.help=function(){throw new Sk.builtin.NotImplementedError("help is not yet implemented");};Sk.builtin.iter=function(a,b){Sk.builtin.pyCheckArgsLen("iter",arguments.length,1,2);if(1===arguments.length){if(Sk.builtin.checkIterable(a))return new Sk.builtin.iterator(a);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not iterable");}if(Sk.builtin.checkCallable(a))return new Sk.builtin.iterator(a,
192
b);throw new TypeError("iter(v, w): v must be callable");};Sk.builtin.locals=function(){throw new Sk.builtin.NotImplementedError("locals is not yet implemented");};Sk.builtin.memoryview=function(){throw new Sk.builtin.NotImplementedError("memoryview is not yet implemented");};Sk.builtin.next_=function(a,b){Sk.builtin.pyCheckArgsLen("next",arguments.length,1,2);if(!a.tp$iternext)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not an iterator");var c=a.tp$iternext();if(void 0===
193
c){if(b)return b;throw new Sk.builtin.StopIteration;}return c};Sk.builtin.reload=function(){throw new Sk.builtin.NotImplementedError("reload is not yet implemented");};Sk.builtin.vars=function(){throw new Sk.builtin.NotImplementedError("vars is not yet implemented");};Sk.builtin.xrange=Sk.builtin.range;Sk.builtin.apply_=function(){throw new Sk.builtin.NotImplementedError("apply is not yet implemented");};Sk.builtin.buffer=function(){throw new Sk.builtin.NotImplementedError("buffer is not yet implemented");
194
};Sk.builtin.coerce=function(){throw new Sk.builtin.NotImplementedError("coerce is not yet implemented");};Sk.builtin.intern=function(){throw new Sk.builtin.NotImplementedError("intern is not yet implemented");}},function(m,p){String.fromCodePoint||function(){var a=function(){try{var a={},c=Object.defineProperty;var b=c(a,"foo",a)&&c}catch(f){}return b}(),b=String.fromCharCode,c=Math.floor,d=function(a){var d=[],e=-1,f=arguments.length;if(!f)return"";for(var k="";++e<f;){var n=Number(arguments[e]);
195
if(!isFinite(n)||0>n||1114111<n||c(n)!=n)throw RangeError("Invalid code point: "+n);if(65535>=n)d.push(n);else{n-=65536;var l=(n>>10)+55296;n=n%1024+56320;d.push(l,n)}if(e+1==f||16384<d.length)k+=b.apply(null,d),d.length=0}return k};a?a(String,"fromCodePoint",{value:d,configurable:!0,writable:!0}):String.fromCodePoint=d}()},function(m,p){Sk.builtin.BaseException=function(...a){if(!(this instanceof Sk.builtin.BaseException)){var b=Object.create(Sk.builtin.BaseException.prototype);b.constructor.apply(b,
196
arguments);return b}this.traceback=[];"string"===typeof a[0]?(this.args=new Sk.builtin.tuple([new Sk.builtin.str(a[0])]),3<=a.length&&this.traceback.push({lineno:a[2],filename:a[1]||"<unknown>"})):this.args=new Sk.builtin.tuple(a)};Sk.abstr.setUpInheritance("BaseException",Sk.builtin.BaseException,Sk.builtin.object);Sk.builtin.BaseException.prototype.$r=function(){let a=this.tp$name;a+="("+this.args.v.map(a=>Sk.misceval.objectRepr(a).v).join(", ")+")";return new Sk.builtin.str(a)};Sk.builtin.BaseException.prototype.tp$str=
197
function(){return 1>=this.args.v.length?new Sk.builtin.str(this.args.v[0]):this.args.$r()};Sk.builtin.BaseException.prototype.toString=function(){let a=this.tp$name;a+=": "+this.tp$str().v;return a=0!==this.traceback.length?a+(" on line "+this.traceback[0].lineno):a+" at <unknown>"};Sk.builtin.BaseException.prototype.args={tp$descr_get:function(a,b){return a.args}};Sk.exportSymbol("Sk.builtin.BaseException",Sk.builtin.BaseException);Sk.builtin.Exception=function(a){if(!(this instanceof Sk.builtin.Exception)){var b=
198
Object.create(Sk.builtin.Exception.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.BaseException.apply(this,arguments)};Sk.abstr.setUpInheritance("Exception",Sk.builtin.Exception,Sk.builtin.BaseException);Sk.exportSymbol("Sk.builtin.Exception",Sk.builtin.Exception);Sk.builtin.AssertionError=function(a){if(!(this instanceof Sk.builtin.AssertionError)){var b=Object.create(Sk.builtin.AssertionError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};
199
Sk.abstr.setUpInheritance("AssertionError",Sk.builtin.AssertionError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.AssertionError",Sk.builtin.AssertionError);Sk.builtin.AttributeError=function(a){if(!(this instanceof Sk.builtin.AttributeError)){var b=Object.create(Sk.builtin.AttributeError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("AttributeError",Sk.builtin.AttributeError,Sk.builtin.Exception);Sk.builtin.ImportError=
200
function(a){if(!(this instanceof Sk.builtin.ImportError)){var b=Object.create(Sk.builtin.ImportError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("ImportError",Sk.builtin.ImportError,Sk.builtin.Exception);Sk.builtin.IndentationError=function(a){if(!(this instanceof Sk.builtin.IndentationError)){var b=Object.create(Sk.builtin.IndentationError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,
201
arguments)};Sk.abstr.setUpInheritance("IndentationError",Sk.builtin.IndentationError,Sk.builtin.Exception);Sk.builtin.IndexError=function(a){if(!(this instanceof Sk.builtin.IndexError)){var b=Object.create(Sk.builtin.IndexError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("IndexError",Sk.builtin.IndexError,Sk.builtin.Exception);Sk.builtin.LookupError=function(a){if(!(this instanceof Sk.builtin.LookupError)){var b=Object.create(Sk.builtin.LookupError.prototype);
202
b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("LookupError",Sk.builtin.LookupError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.LookupError",Sk.builtin.LookupError);Sk.builtin.KeyError=function(a){if(!(this instanceof Sk.builtin.KeyError)){var b=Object.create(Sk.builtin.KeyError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.LookupError.apply(this,arguments)};Sk.abstr.setUpInheritance("KeyError",Sk.builtin.KeyError,
203
Sk.builtin.LookupError);Sk.builtin.NameError=function(a){if(!(this instanceof Sk.builtin.NameError)){var b=Object.create(Sk.builtin.NameError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("NameError",Sk.builtin.NameError,Sk.builtin.Exception);Sk.builtin.UnboundLocalError=function(a){if(!(this instanceof Sk.builtin.UnboundLocalError)){var b=Object.create(Sk.builtin.UnboundLocalError.prototype);b.constructor.apply(b,arguments);
204
return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("UnboundLocalError",Sk.builtin.UnboundLocalError,Sk.builtin.Exception);Sk.builtin.OverflowError=function(a){if(!(this instanceof Sk.builtin.OverflowError)){var b=Object.create(Sk.builtin.OverflowError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("OverflowError",Sk.builtin.OverflowError,Sk.builtin.Exception);Sk.builtin.SyntaxError=function(a){if(!(this instanceof
205
Sk.builtin.SyntaxError)){var b=Object.create(Sk.builtin.SyntaxError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("SyntaxError",Sk.builtin.SyntaxError,Sk.builtin.Exception);Sk.builtin.RuntimeError=function(a){if(!(this instanceof Sk.builtin.RuntimeError)){var b=Object.create(Sk.builtin.RuntimeError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("RuntimeError",
206
Sk.builtin.RuntimeError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.RuntimeError",Sk.builtin.RuntimeError);Sk.builtin.SuspensionError=function(a){if(!(this instanceof Sk.builtin.SuspensionError)){var b=Object.create(Sk.builtin.SuspensionError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("SuspensionError",Sk.builtin.SuspensionError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.SuspensionError",Sk.builtin.SuspensionError);
207
Sk.builtin.SystemExit=function(a){if(!(this instanceof Sk.builtin.SystemExit)){var b=Object.create(Sk.builtin.SystemExit.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.BaseException.apply(this,arguments)};Sk.abstr.setUpInheritance("SystemExit",Sk.builtin.SystemExit,Sk.builtin.BaseException);Sk.exportSymbol("Sk.builtin.SystemExit",Sk.builtin.SystemExit);Sk.builtin.TypeError=function(a){if(!(this instanceof Sk.builtin.TypeError)){var b=Object.create(Sk.builtin.TypeError.prototype);
208
b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("TypeError",Sk.builtin.TypeError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.TypeError",Sk.builtin.TypeError);Sk.builtin.ValueError=function(a){if(!(this instanceof Sk.builtin.ValueError)){var b=Object.create(Sk.builtin.ValueError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("ValueError",Sk.builtin.ValueError,
209
Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.ValueError",Sk.builtin.ValueError);Sk.builtin.ZeroDivisionError=function(a){if(!(this instanceof Sk.builtin.ZeroDivisionError)){var b=Object.create(Sk.builtin.ZeroDivisionError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("ZeroDivisionError",Sk.builtin.ZeroDivisionError,Sk.builtin.Exception);Sk.builtin.TimeLimitError=function(a){if(!(this instanceof Sk.builtin.TimeLimitError)){var b=
210
Object.create(Sk.builtin.TimeLimitError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("TimeLimitError",Sk.builtin.TimeLimitError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.TimeLimitError",Sk.builtin.TimeLimitError);Sk.builtin.IOError=function(a){if(!(this instanceof Sk.builtin.IOError)){var b=Object.create(Sk.builtin.IOError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};
211
Sk.abstr.setUpInheritance("IOError",Sk.builtin.IOError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.IOError",Sk.builtin.IOError);Sk.builtin.NotImplementedError=function(a){if(!(this instanceof Sk.builtin.NotImplementedError)){var b=Object.create(Sk.builtin.NotImplementedError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("NotImplementedError",Sk.builtin.NotImplementedError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.NotImplementedError",
212
Sk.builtin.NotImplementedError);Sk.builtin.NegativePowerError=function(a){if(!(this instanceof Sk.builtin.NegativePowerError)){var b=Object.create(Sk.builtin.NegativePowerError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("NegativePowerError",Sk.builtin.NegativePowerError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.NegativePowerError",Sk.builtin.NegativePowerError);Sk.builtin.ExternalError=function(a,b){if(!(this instanceof
213
Sk.builtin.ExternalError)){var c=Object.create(Sk.builtin.ExternalError.prototype);c.constructor.apply(c,arguments);return c}b=Array.prototype.slice.call(arguments);this.nativeError=b[0];b[0]instanceof Sk.builtin.str||(b[0]=""+b[0]);Sk.builtin.Exception.apply(this,b)};Sk.abstr.setUpInheritance("ExternalError",Sk.builtin.ExternalError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.ExternalError",Sk.builtin.ExternalError);Sk.builtin.OperationError=function(a){if(!(this instanceof Sk.builtin.OperationError)){var b=
214
Object.create(Sk.builtin.OperationError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("OperationError",Sk.builtin.OperationError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.OperationError",Sk.builtin.OperationError);Sk.builtin.SystemError=function(a){if(!(this instanceof Sk.builtin.SystemError)){var b=Object.create(Sk.builtin.SystemError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,
215
arguments)};Sk.abstr.setUpInheritance("SystemError",Sk.builtin.SystemError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.SystemError",Sk.builtin.SystemError);Sk.builtin.UnicodeDecodeError=function(a){if(!(this instanceof Sk.builtin.UnicodeDecodeError)){var b=Object.create(Sk.builtin.UnicodeDecodeError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("UnicodeDecodeError",Sk.builtin.UnicodeDecodeError,Sk.builtin.Exception);
216
Sk.exportSymbol("Sk.builtin.UnicodeDecodeError",Sk.builtin.UnicodeDecodeError);Sk.builtin.UnicodeEncodeError=function(a){if(!(this instanceof Sk.builtin.UnicodeEncodeError)){var b=Object.create(Sk.builtin.UnicodeEncodeError.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("UnicodeEncodeError",Sk.builtin.UnicodeEncodeError,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.UnicodeEncodeError",Sk.builtin.UnicodeEncodeError);Sk.builtin.StopIteration=
217
function(a){if(!(this instanceof Sk.builtin.StopIteration)){var b=Object.create(Sk.builtin.StopIteration.prototype);b.constructor.apply(b,arguments);return b}Sk.builtin.Exception.apply(this,arguments)};Sk.abstr.setUpInheritance("StopIteration",Sk.builtin.StopIteration,Sk.builtin.Exception);Sk.exportSymbol("Sk.builtin.StopIteration",Sk.builtin.StopIteration);Sk.builtin.getExcInfo=function(a){return new Sk.builtin.tuple([a.ob$type||Sk.builtin.none.none$,a,Sk.builtin.none.none$])}},function(m,p){Sk.builtin.method=
218
function(a,b,c,d){if(!(this instanceof Sk.builtin.method)){Sk.builtin.pyCheckArgsLen("method",arguments.length,3,3);if(!Sk.builtin.checkCallable(a))throw new Sk.builtin.TypeError("First argument must be callable");if(void 0===b.ob$type)throw new Sk.builtin.TypeError("Second argument must be object of known type");return new Sk.builtin.method(a,b,c)}this.tp$name=a.tp$name;this.im_func=a;this.im_self=b||Sk.builtin.none.none$;this.im_class=c||Sk.builtin.none.none$;this.im_builtin=d;this.$d={im_func:a,
219
im_self:b,im_class:c}};Sk.exportSymbol("Sk.builtin.method",Sk.builtin.method);Sk.abstr.setUpInheritance("instancemethod",Sk.builtin.method,Sk.builtin.object);Sk.builtin.method.prototype.tp$name="method";Sk.builtin.method.prototype.ob$eq=function(a){if(this.im_self==Sk.builtin.none.none$&&a.im_self!=Sk.builtin.none.none$||a.im_self==Sk.builtin.none.none$&&this.im_self!=Sk.builtin.none.none$)return!1;try{return Sk.misceval.richCompareBool(this.im_self,a.im_self,"Eq",!1)&&this.im_func==a.im_func}catch(b){return!1}};
220
Sk.builtin.method.prototype.ob$ne=function(a){return!this.ob$eq(a)};Sk.builtin.method.prototype.tp$hash=function(){var a=this.im_self==Sk.builtin.none.none$?0:Sk.builtin.asnum$(Sk.builtin.hash(this.im_self));var b=Sk.builtin.asnum$(Sk.builtin.hash(this.im_func));return new Sk.builtin.int_(a+b)};Sk.builtin.method.prototype.tp$call=function(a,b){this.im_self!==Sk.builtin.none.none$&&a.unshift(this.im_self);if(this.im_self===Sk.builtin.none.none$){var c=function(a){return"unbound method "+this.tp$name+
221
"() must be called with "+Sk.abstr.typeName(this.im_class)+" instance as first argument (got "+a+" instead)"}.bind(this);if(0<a.length){if(this.im_class!=Sk.builtin.none.none$&&!Sk.builtin.issubclass(a[0].ob$type,this.im_class)&&!this.im_builtin)throw new Sk.builtin.TypeError(c(Sk.abstr.typeName(a[0].ob$type)+" instance"));}else throw new Sk.builtin.TypeError(c("nothing"));}return this.im_func.tp$call(a,b)};Sk.builtin.method.prototype.tp$descr_get=function(a,b){Sk.asserts.assert(void 0!==a&&void 0!==
222
b);return new Sk.builtin.method(this,a,b,this.im_builtin)};Sk.builtin.method.pythonFunctions=["__get__"];Sk.builtin.method.prototype.__get__=function(a,b,c){Sk.builtin.pyCheckArgsLen("__get__",arguments.length,1,2,!1,!0);if(b===Sk.builtin.none.none$&&c===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("__get__(None, None) is invalid");return c&&c!==Sk.builtin.none.none$?Sk.builtin.issubclass(c,a.im_class)?a.tp$descr_get(b,c):a:a.tp$descr_get(b,Sk.builtin.none.none$)};Sk.builtin.method.prototype.$r=
223
function(){return this.im_builtin?new Sk.builtin.str("<built-in method "+this.tp$name+" of type object>"):this.im_self===Sk.builtin.none.none$?new Sk.builtin.str("<unbound method "+this.im_class.prototype.tp$name+"."+this.tp$name+">"):new Sk.builtin.str("<bound method "+(this.im_class!==Sk.builtin.none.none$?this.im_class.prototype.tp$name:"?")+"."+this.tp$name+" of "+Sk.ffi.remapToJs(Sk.misceval.objectRepr(this.im_self))+">")}},function(m,p){Sk.misceval={};Sk.misceval.Suspension=function(a,b,c){this.$isSuspension=
224
!0;void 0!==a&&void 0!==b&&(this.resume=function(){return a(b.resume())});this.child=b;this.optional=void 0!==b&&b.optional;this.data=void 0===c&&void 0!==b?b.data:c};Sk.exportSymbol("Sk.misceval.Suspension",Sk.misceval.Suspension);Sk.misceval.retryOptionalSuspensionOrThrow=function(a,b){for(;a instanceof Sk.misceval.Suspension;){if(!a.optional)throw new Sk.builtin.SuspensionError(b||"Cannot call a function that blocks or suspends here");a=a.resume()}return a};Sk.exportSymbol("Sk.misceval.retryOptionalSuspensionOrThrow",
225
Sk.misceval.retryOptionalSuspensionOrThrow);Sk.misceval.isIndex=function(a){return Sk.builtin.checkInt(a)||Sk.abstr.lookupSpecial(a,Sk.builtin.str.$index)?!0:!1};Sk.exportSymbol("Sk.misceval.isIndex",Sk.misceval.isIndex);Sk.misceval.asIndex=function(a){var b;if(Sk.misceval.isIndex(a)&&null!==a){if(!0===a)return 1;if(!1===a)return 0;if("number"===typeof a)return a;if(a.constructor===Sk.builtin.int_)return a.v;if(a.constructor===Sk.builtin.lng)return a.cantBeInt()?a.str$(10,!0):a.toInt$();if(a.constructor===
226
Sk.builtin.bool)return Sk.builtin.asnum$(a);if(b=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$index)){a=Sk.misceval.callsimArray(b,[a]);if(!Sk.builtin.checkInt(a))throw new Sk.builtin.TypeError("__index__ returned non-(int,long) (type "+Sk.abstr.typeName(a)+")");return Sk.builtin.asnum$(a)}Sk.asserts.fail("todo asIndex;")}};Sk.misceval.applySlice=function(a,b,c,d){return a.sq$slice&&Sk.misceval.isIndex(b)&&Sk.misceval.isIndex(c)?(b=Sk.misceval.asIndex(b),void 0===b&&(b=0),c=Sk.misceval.asIndex(c),void 0===
227
c&&(c=1E100),Sk.abstr.sequenceGetSlice(a,b,c)):Sk.abstr.objectGetItem(a,new Sk.builtin.slice(b,c,null),d)};Sk.exportSymbol("Sk.misceval.applySlice",Sk.misceval.applySlice);Sk.misceval.assignSlice=function(a,b,c,d,e){if(a.sq$ass_slice&&Sk.misceval.isIndex(b)&&Sk.misceval.isIndex(c))e=Sk.misceval.asIndex(b)||0,c=Sk.misceval.asIndex(c)||1E100,null===d?Sk.abstr.sequenceDelSlice(a,e,c):Sk.abstr.sequenceSetSlice(a,e,c,d);else return c=new Sk.builtin.slice(b,c),null===d?Sk.abstr.objectDelItem(a,c):Sk.abstr.objectSetItem(a,
228
c,d,e)};Sk.exportSymbol("Sk.misceval.assignSlice",Sk.misceval.assignSlice);Sk.misceval.arrayFromArguments=function(a){var b;if(1!=a.length)return a;var c=a[0];c instanceof Sk.builtin.set?c=c.tp$iter().$obj:c instanceof Sk.builtin.dict&&(c=Sk.builtin.dict.prototype.keys.func_code(c));if(c instanceof Sk.builtin.list||c instanceof Sk.builtin.tuple)return c.v;if(Sk.builtin.checkIterable(c)){a=[];c=Sk.abstr.iter(c);for(b=c.tp$iternext();void 0!==b;b=c.tp$iternext())a.push(b);return a}throw new Sk.builtin.TypeError("'"+
229
Sk.abstr.typeName(c)+"' object is not iterable");};Sk.exportSymbol("Sk.misceval.arrayFromArguments",Sk.misceval.arrayFromArguments);Sk.misceval.swappedOp_={Eq:"Eq",NotEq:"NotEq",Lt:"Gt",LtE:"GtE",Gt:"Lt",GtE:"LtE"};Sk.misceval.opSymbols={Eq:"==",NotEq:"!=",Lt:"<",LtE:"<=",Gt:">",GtE:">=",Is:"is",IsNot:"is not",In_:"in",NotIn:"not in"};Sk.misceval.richCompareBool=function(a,b,c,d){var e;Sk.asserts.assert(null!==a&&void 0!==a,"passed null or undefined parameter to Sk.misceval.richCompareBool");Sk.asserts.assert(null!==
230
b&&void 0!==b,"passed null or undefined parameter to Sk.misceval.richCompareBool");var h=a.ob$type;var g=b.ob$type;if(!Sk.__future__.python3&&h!==g&&("GtE"===c||"Gt"===c||"LtE"===c||"Lt"===c)){var f=[Sk.builtin.float_,Sk.builtin.int_,Sk.builtin.lng,Sk.builtin.bool],k=[Sk.builtin.dict,Sk.builtin.enumerate,Sk.builtin.filter_,Sk.builtin.list,Sk.builtin.map_,Sk.builtin.str,Sk.builtin.tuple,Sk.builtin.zip_];const d=f.indexOf(h),e=k.indexOf(h);f=f.indexOf(g);k=k.indexOf(g);if(a===Sk.builtin.none.none$)switch(c){case "Lt":return!0;
231
case "LtE":return!0;case "Gt":return!1;case "GtE":return!1}if(b===Sk.builtin.none.none$)switch(c){case "Lt":return!1;case "LtE":return!1;case "Gt":return!0;case "GtE":return!0}if(-1!==d&&-1!==k)switch(c){case "Lt":return!0;case "LtE":return!0;case "Gt":return!1;case "GtE":return!1}if(-1!==e&&-1!==f)switch(c){case "Lt":return!1;case "LtE":return!1;case "Gt":return!0;case "GtE":return!0}if(-1!==e&&-1!==k)switch(c){case "Lt":return e<k;case "LtE":return e<=k;case "Gt":return e>k;case "GtE":return e>=
232
k}}if("Is"===c){if(h===g){if(a===b)return!0;if(h===Sk.builtin.float_||h===Sk.builtin.int_)return a.v===b.v;if(h===Sk.builtin.lng)return 0===a.longCompare(b)}return!1}if("IsNot"===c)return h!==g?!0:h===Sk.builtin.float_||h===Sk.builtin.int_?a.v!==b.v:h===Sk.builtin.lng?0!==a.longCompare(b):a!==b;if("In"===c)return Sk.misceval.chain(Sk.abstr.sequenceContains(b,a,d),Sk.misceval.isTrue);if("NotIn"===c)return Sk.misceval.chain(Sk.abstr.sequenceContains(b,a,d),function(a){return!Sk.misceval.isTrue(a)});
233
g={Eq:"ob$eq",NotEq:"ob$ne",Gt:"ob$gt",GtE:"ob$ge",Lt:"ob$lt",LtE:"ob$le"};h=g[c];if((d=a.constructor.prototype.hasOwnProperty(h))&&(e=a[h](b))!==Sk.builtin.NotImplemented.NotImplemented$)return Sk.misceval.isTrue(e);g=g[Sk.misceval.swappedOp_[c]];if((h=b.constructor.prototype.hasOwnProperty(g))&&(e=b[g](a))!==Sk.builtin.NotImplemented.NotImplemented$)return Sk.misceval.isTrue(e);if(a.tp$richcompare&&void 0!==(e=a.tp$richcompare(b,c))&&e!==Sk.builtin.NotImplemented.NotImplemented$||b.tp$richcompare&&
234
void 0!==(e=b.tp$richcompare(a,Sk.misceval.swappedOp_[c]))&&e!==Sk.builtin.NotImplemented.NotImplemented$)return Sk.misceval.isTrue(e);if((g=Sk.abstr.lookupSpecial(a,Sk.misceval.op2method_[c]))&&!d&&(e=Sk.misceval.callsimArray(g,[a,b]),e!=Sk.builtin.NotImplemented.NotImplemented$)||(d=Sk.abstr.lookupSpecial(b,Sk.misceval.op2method_[Sk.misceval.swappedOp_[c]]))&&!h&&(e=Sk.misceval.callsimArray(d,[b,a]),e!=Sk.builtin.NotImplemented.NotImplemented$))return Sk.misceval.isTrue(e);if(!Sk.__future__.python3){if(d=
235
Sk.abstr.lookupSpecial(a,Sk.builtin.str.$cmp))try{e=Sk.misceval.callsimArray(d,[a,b]);if(Sk.builtin.checkNumber(e)){e=Sk.builtin.asnum$(e);if("Eq"===c)return 0===e;if("NotEq"===c)return 0!==e;if("Lt"===c)return 0>e;if("Gt"===c)return 0<e;if("LtE"===c)return 0>=e;if("GtE"===c)return 0<=e}if(e!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int");}catch(n){throw new Sk.builtin.TypeError("comparison did not return an int");}if(d=Sk.abstr.lookupSpecial(b,
236
Sk.builtin.str.$cmp))try{e=Sk.misceval.callsimArray(d,[b,a]);if(Sk.builtin.checkNumber(e)){e=Sk.builtin.asnum$(e);if("Eq"===c)return 0===e;if("NotEq"===c)return 0!==e;if("Lt"===c)return 0<e;if("Gt"===c)return 0>e;if("LtE"===c)return 0<=e;if("GtE"===c)return 0>=e}if(e!==Sk.builtin.NotImplemented.NotImplemented$)throw new Sk.builtin.TypeError("comparison did not return an int");}catch(n){throw new Sk.builtin.TypeError("comparison did not return an int");}if(a===Sk.builtin.none.none$&&b===Sk.builtin.none.none$){if("Eq"===
237
c)return a.v===b.v;if("NotEq"===c)return a.v!==b.v;if("Gt"===c)return a.v>b.v;if("GtE"===c)return a.v>=b.v;if("Lt"===c)return a.v<b.v;if("LtE"===c)return a.v<=b.v}}if("Eq"===c)return a===b;if("NotEq"===c)return a!==b;a=Sk.abstr.typeName(a);b=Sk.abstr.typeName(b);throw new Sk.builtin.TypeError("'"+Sk.misceval.opSymbols[c]+"' not supported between instances of '"+a+"' and '"+b+"'");};Sk.exportSymbol("Sk.misceval.richCompareBool",Sk.misceval.richCompareBool);Sk.misceval.objectRepr=function(a){Sk.asserts.assert(void 0!==
238
a,"trying to repr undefined");return null===a||a===Sk.builtin.none.none$?new Sk.builtin.str("None"):!0===a?new Sk.builtin.str("True"):!1===a?new Sk.builtin.str("False"):"number"===typeof a?new Sk.builtin.str(""+a):"string"===typeof a?new Sk.builtin.str(a):a.$r?a.constructor===Sk.builtin.float_?Infinity===a.v?new Sk.builtin.str("inf"):-Infinity===a.v?new Sk.builtin.str("-inf"):a.$r():a.$r():a.tp$name?new Sk.builtin.str("<"+a.tp$name+" object>"):new Sk.builtin.str("<unknown>")};Sk.exportSymbol("Sk.misceval.objectRepr",
239
Sk.misceval.objectRepr);Sk.misceval.opAllowsEquality=function(a){switch(a){case "LtE":case "Eq":case "GtE":return!0}return!1};Sk.exportSymbol("Sk.misceval.opAllowsEquality",Sk.misceval.opAllowsEquality);Sk.misceval.isTrue=function(a){if(!0===a)return!0;if(!1===a||null===a||a.constructor===Sk.builtin.none||a.constructor===Sk.builtin.NotImplemented)return!1;if(a.constructor===Sk.builtin.bool)return a.v;if("number"===typeof a)return 0!==a;if(a instanceof Sk.builtin.lng)return a.nb$nonzero();if(a.constructor===
240
Sk.builtin.int_||a.constructor===Sk.builtin.float_)return 0!==a.v;if(Sk.__future__.python3){if(a.nb$bool){a=a.nb$bool();if(!(a instanceof Sk.builtin.bool))throw new Sk.builtin.TypeError("__bool__ should return bool, returned "+Sk.abstr.typeName(a));return a.v}}else if(a.nb$nonzero){a=a.nb$nonzero();if(!Sk.builtin.checkInt(a))throw new Sk.builtin.TypeError("__nonzero__ should return an int");return 0!==Sk.builtin.asnum$(a)}if(a.sq$length){a=a.sq$length();if(!Sk.builtin.checkInt(a))throw new Sk.builtin.TypeError("__len__ should return an int");
241
return 0!==Sk.builtin.asnum$(a)}return a.mp$length?0!==Sk.builtin.asnum$(a.mp$length()):a.sq$length?0!==Sk.builtin.asnum$(a.sq$length()):!0};Sk.exportSymbol("Sk.misceval.isTrue",Sk.misceval.isTrue);Sk.misceval.softspace_=!1;Sk.misceval.print_=function(a){Sk.misceval.softspace_&&("\n"!==a&&Sk.output(" "),Sk.misceval.softspace_=!1);var b=new Sk.builtin.str(a);return Sk.misceval.chain(Sk.importModule("sys",!1,!0),function(a){return Sk.misceval.apply(a.$d.stdout.write,void 0,void 0,void 0,[a.$d.stdout,
242
b])},function(){var a;(a=0===b.v.length)||(a=b.v[b.v.length-1],a=!("\n"===a||"\t"===a||"\r"===a));if(a||" "===b.v[b.v.length-1])Sk.misceval.softspace_=!0})};Sk.exportSymbol("Sk.misceval.print_",Sk.misceval.print_);Sk.misceval.loadname=function(a,b){b=b[a];if(void 0!==b)return"function"===typeof b&&void 0===b.$d&&void 0===b.tp$name?b():b;b=Sk.builtins[a];if(void 0!==b)return b;throw new Sk.builtin.NameError("name '"+Sk.unfixReserved(a)+"' is not defined");};Sk.exportSymbol("Sk.misceval.loadname",Sk.misceval.loadname);
243
Sk.misceval.call=function(a,b,c,d,e){e=Array.prototype.slice.call(arguments,4);return Sk.misceval.apply(a,b,c,d,e)};Sk.exportSymbol("Sk.misceval.call",Sk.misceval.call);Sk.misceval.callAsync=function(a,b,c,d,e,h){h=Array.prototype.slice.call(arguments,5);return Sk.misceval.applyAsync(a,b,c,d,e,h)};Sk.exportSymbol("Sk.misceval.callAsync",Sk.misceval.callAsync);Sk.misceval.callOrSuspend=function(a,b,c,d,e){e=Array.prototype.slice.call(arguments,4);return Sk.misceval.applyOrSuspend(a,b,c,d,e)};Sk.exportSymbol("Sk.misceval.callOrSuspend",
244
Sk.misceval.callOrSuspend);Sk.misceval.callsim=function(a,b){b=Array.prototype.slice.call(arguments,1);return Sk.misceval.apply(a,void 0,void 0,void 0,b)};Sk.exportSymbol("Sk.misceval.callsim",Sk.misceval.callsim);Sk.misceval.callsimArray=function(a,b,c){return Sk.misceval.apply(a,void 0,void 0,c,b?b:[])};Sk.exportSymbol("Sk.misceval.callsimArray",Sk.misceval.callsimArray);Sk.misceval.callsimAsync=function(a,b,c){c=Array.prototype.slice.call(arguments,2);return Sk.misceval.applyAsync(a,b,void 0,void 0,
245
void 0,c)};Sk.exportSymbol("Sk.misceval.callsimAsync",Sk.misceval.callsimAsync);Sk.misceval.callsimOrSuspend=function(a,b){b=Array.prototype.slice.call(arguments,1);return Sk.misceval.applyOrSuspend(a,void 0,void 0,void 0,b)};Sk.exportSymbol("Sk.misceval.callsimOrSuspend",Sk.misceval.callsimOrSuspend);Sk.misceval.callsimOrSuspendArray=function(a,b,c){b||(b=[]);return a.tp$call?a.tp$call(b,c):Sk.misceval.applyOrSuspend(a,void 0,void 0,c,b)};Sk.exportSymbol("Sk.misceval.callsimOrSuspendArray",Sk.misceval.callsimOrSuspendArray);
246
Sk.misceval.apply=function(a,b,c,d,e){a=Sk.misceval.applyOrSuspend(a,b,c,d,e);return a instanceof Sk.misceval.Suspension?Sk.misceval.retryOptionalSuspensionOrThrow(a):a};Sk.exportSymbol("Sk.misceval.apply",Sk.misceval.apply);Sk.misceval.asyncToPromise=function(a,b){return new Promise(function(c,d){try{(function g(a){try{for(var f=function(){try{g(a.resume())}catch(u){d(u)}},h=function(c){try{a.data.result=c,f()}catch(z){d(z)}},n=function(c){try{a.data.error=c,f()}catch(z){d(z)}};a instanceof Sk.misceval.Suspension;){var l=
247
b&&(b[a.data.type]||b["*"]);if(l){var q=l(a);if(q){q.then(g,d);return}}if("Sk.promise"==a.data.type){a.data.promise.then(h,n);return}if("Sk.yield"==a.data.type){Sk.global.setImmediate(f);return}if("Sk.delay"==a.data.type){Sk.global.setImmediate(f);return}if(a.optional)a=a.resume();else throw new Sk.builtin.SuspensionError("Unhandled non-optional suspension of type '"+a.data.type+"'");}c(a)}catch(u){d(u)}})(a())}catch(e){d(e)}})};Sk.exportSymbol("Sk.misceval.asyncToPromise",Sk.misceval.asyncToPromise);
248
Sk.misceval.applyAsync=function(a,b,c,d,e,h){return Sk.misceval.asyncToPromise(function(){return Sk.misceval.applyOrSuspend(b,c,d,e,h)},a)};Sk.exportSymbol("Sk.misceval.applyAsync",Sk.misceval.applyAsync);Sk.misceval.chain=function(a,b){for(var c=1,d=a,e,h;;){if(c==arguments.length)return d;if(d&&d.$isSuspension)break;d=arguments[c](d);c++}h=Array(arguments.length-c);for(e=0;e<arguments.length-c;e++)h[e]=arguments[c+e];e=0;return function k(a){for(;e<h.length;){if(a instanceof Sk.misceval.Suspension)return new Sk.misceval.Suspension(k,
249
a);a=h[e](a);e++}return a}(d)};Sk.exportSymbol("Sk.misceval.chain",Sk.misceval.chain);Sk.misceval.tryCatch=function(a,b){try{var c=a()}catch(d){return b(d)}return c instanceof Sk.misceval.Suspension?(a=new Sk.misceval.Suspension(void 0,c),a.resume=function(){return Sk.misceval.tryCatch(c.resume,b)},a):c};Sk.exportSymbol("Sk.misceval.tryCatch",Sk.misceval.tryCatch);Sk.misceval.iterFor=function(a,b,c){var d=c,e=function(c){d=c;return c instanceof Sk.misceval.Break?c:a.tp$iternext(!0)};return function f(a){for(;void 0!==
250
a;){if(a instanceof Sk.misceval.Suspension)return new Sk.misceval.Suspension(f,a);if(a===Sk.misceval.Break||a instanceof Sk.misceval.Break)return a.brValue;a=Sk.misceval.chain(b(a,d),e)}return d}(a.tp$iternext(!0))};Sk.exportSymbol("Sk.misceval.iterFor",Sk.misceval.iterFor);Sk.misceval.arrayFromIterable=function(a,b){if(void 0===a)return[];if(void 0===(a.hp$type||void 0)&&void 0!==a.sk$asarray)return a.sk$asarray();const c=[];a=Sk.misceval.chain(Sk.misceval.iterFor(Sk.abstr.iter(a),a=>{c.push(a)}),
251
()=>c);return b?a:Sk.misceval.retryOptionalSuspensionOrThrow(a)};Sk.misceval.Break=function(a){if(!(this instanceof Sk.misceval.Break))return new Sk.misceval.Break(a);this.brValue=a};Sk.exportSymbol("Sk.misceval.Break",Sk.misceval.Break);Sk.misceval.applyOrSuspend=function(a,b,c,d,e){var h;if(null===a||a===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not callable");"function"===typeof a&&void 0===a.tp$call&&(a=new Sk.builtin.func(a));var g=a.tp$call;if(void 0!==
252
g){if(c)for(c=c.tp$iter(),h=c.tp$iternext();void 0!==h;h=c.tp$iternext())e.push(h);if(b)for(c=Sk.abstr.iter(b),h=c.tp$iternext();void 0!==h;h=c.tp$iternext()){if(!Sk.builtin.checkString(h))throw new Sk.builtin.TypeError("Function keywords must be strings");d.push(h.v);d.push(Sk.abstr.objectGetItem(b,h,!1))}return g.call(a,e,d,b)}g=a.__call__;if(void 0!==g)return e.unshift(a),Sk.misceval.apply(g,b,c,d,e);throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not callable");};Sk.exportSymbol("Sk.misceval.applyOrSuspend",
253
Sk.misceval.applyOrSuspend);Sk.misceval.promiseToSuspension=function(a){var b=new Sk.misceval.Suspension;b.resume=function(){if(b.data.error)throw b.data.error;return b.data.result};b.data={type:"Sk.promise",promise:a};return b};Sk.exportSymbol("Sk.misceval.promiseToSuspension",Sk.misceval.promiseToSuspension);Sk.misceval.buildClass=function(a,b,c,d,e){var h=Sk.builtin.type,g={};b(a,g,void 0===e?{}:e);a.__name__&&(g.__module__=a.__name__);a=new Sk.builtin.str(c);d=new Sk.builtin.tuple(d);b=[];for(var f in g)g.hasOwnProperty(f)&&
254
(b.push(new Sk.builtin.str(f)),b.push(g[f]));b=new Sk.builtin.dict(b);return Sk.misceval.callsimArray(h,[a,d,b])};Sk.exportSymbol("Sk.misceval.buildClass",Sk.misceval.buildClass)},function(m,p){Sk.builtin.seqtype=function(){throw new Sk.builtin.ExternalError("Cannot instantiate abstract Sk.builtin.seqtype class");};Sk.abstr.setUpInheritance("SequenceType",Sk.builtin.seqtype,Sk.builtin.object);Sk.builtin.seqtype.sk$abstract=!0;Sk.builtin.seqtype.prototype.__len__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__len__",
255
arguments.length,0,0,!1,!0);return new Sk.builtin.int_(a.sq$length())});Sk.builtin.seqtype.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!1,!0);return a.tp$iter()});Sk.builtin.seqtype.prototype.__contains__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,1,1,!1,!0);return a.sq$contains(b)?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.seqtype.prototype.__getitem__=new Sk.builtin.func(function(a,
256
b){Sk.builtin.pyCheckArgsLen("__getitem__",arguments.length,1,1,!1,!0);return a.mp$subscript(b)});Sk.builtin.seqtype.prototype.__add__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__add__",arguments.length,1,1,!1,!0);return a.sq$concat(b)});Sk.builtin.seqtype.prototype.__mul__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__mul__",arguments.length,1,1,!1,!0);if(!Sk.misceval.isIndex(b))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(b)+
257
"'");return a.sq$repeat(b)});Sk.builtin.seqtype.prototype.__rmul__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__rmul__",arguments.length,1,1,!1,!0);return a.sq$repeat(b)})},function(m,p){Sk.builtin.list=function(a,b){if(!(this instanceof Sk.builtin.list))return Sk.builtin.pyCheckArgsLen("list",arguments.length,0,1),new Sk.builtin.list(a,!0);if(void 0===a)this.v=[];else if(Array.isArray(a))this.v=a;else return Sk.misceval.chain(Sk.misceval.arrayFromIterable(a,b),a=>{this.v=a;return this})};
258
Sk.abstr.setUpInheritance("list",Sk.builtin.list,Sk.builtin.seqtype);Sk.abstr.markUnhashable(Sk.builtin.list);Sk.builtin.list.prototype.__class__=Sk.builtin.list;Sk.builtin.list.prototype.sk$asarray=function(){return this.v.slice(0)};Sk.builtin.list.prototype.list_concat_=function(a){if(!a.__class__||a.__class__!=Sk.builtin.list)throw new Sk.builtin.TypeError("can only concatenate list to list");return new Sk.builtin.list(this.v.concat(a.v),!1)};Sk.builtin.list.prototype.list_extend_=function(a){var b;
259
if(a.sk$asarray)return this.v.push.apply(this.v,a.sk$asarray()),this;if(!Sk.builtin.checkIterable(a))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not iterable");a=Sk.abstr.iter(a);for(b=a.tp$iternext();void 0!==b;b=a.tp$iternext())this.v.push(b);return this};Sk.builtin.list.prototype.list_del_item_=function(a){a=Sk.builtin.asnum$(a);if(0>a||a>=this.v.length)throw new Sk.builtin.IndexError("list assignment index out of range");this.list_del_slice_(a,a+1)};Sk.builtin.list.prototype.list_del_slice_=
15332 obado 260
function(a,b){a=Sk.builtin.asnum$(a);b=Sk.builtin.asnum$(b);var c=[];c.unshift(b-a);c.unshift(a);this.v.splice.apply(this.v,c)};Sk.builtin.list.prototype.list_ass_item_=function(a,b){a=Sk.builtin.asnum$(a);if(0>a||a>=this.v.length)throw new Sk.builtin.IndexError("list assignment index out of range");this.v[a]=b};Sk.builtin.list.prototype.list_ass_slice_=function(a,b,c){a=Sk.builtin.asnum$(a);b=Sk.builtin.asnum$(b);if(Sk.builtin.checkIterable(c))c=(new Sk.builtin.list(c,!1)).v.slice(0);else throw new Sk.builtin.TypeError("can only assign an iterable");
16494 obado 261
c.unshift(b-a);c.unshift(a);this.v.splice.apply(this.v,c)};Sk.builtin.list.prototype.$r=function(){var a,b=[];var c=Sk.abstr.iter(this);for(a=c.tp$iternext();void 0!==a;a=c.tp$iternext())a===this?b.push("[...]"):b.push(Sk.misceval.objectRepr(a).v);return new Sk.builtin.str("["+b.join(", ")+"]")};Sk.builtin.list.prototype.tp$richcompare=function(a,b){var c;if(this===a&&Sk.misceval.opAllowsEquality(b))return!0;if(!a.__class__||a.__class__!=Sk.builtin.list)return"Eq"===b?!1:"NotEq"===b?!0:Sk.__future__.python3?
262
Sk.builtin.NotImplemented.NotImplemented$:!1;var d=this.v;a=a.v;var e=d.length;var h=a.length;for(c=0;c<e&&c<h;++c){var g=Sk.misceval.richCompareBool(d[c],a[c],"Eq");if(!g)break}if(c>=e||c>=h)switch(b){case "Lt":return e<h;case "LtE":return e<=h;case "Eq":return e===h;case "NotEq":return e!==h;case "Gt":return e>h;case "GtE":return e>=h;default:Sk.asserts.fail()}return"Eq"===b?!1:"NotEq"===b?!0:Sk.misceval.richCompareBool(d[c],a[c],b)};Sk.builtin.list.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",
263
arguments.length,0,0,!0,!1);return new Sk.builtin.list_iter_(a)});Sk.builtin.list.prototype.tp$iter=function(){return new Sk.builtin.list_iter_(this)};Sk.builtin.list.prototype.sq$length=function(){return this.v.length};Sk.builtin.list.prototype.sq$concat=Sk.builtin.list.prototype.list_concat_;Sk.builtin.list.prototype.nb$add=Sk.builtin.list.prototype.list_concat_;Sk.builtin.list.prototype.nb$inplace_add=Sk.builtin.list.prototype.list_extend_;Sk.builtin.list.prototype.sq$repeat=function(a){if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+
264
Sk.abstr.typeName(a)+"'");var b=Sk.misceval.asIndex(a);if("number"!==typeof b)throw new Sk.builtin.OverflowError("cannot fit '"+Sk.abstr.typeName(a)+"' into an index-sized integer");var c=[];for(a=0;a<b;++a)c.push.apply(c,this.v);return new Sk.builtin.list(c,!1)};Sk.builtin.list.prototype.nb$multiply=Sk.builtin.list.prototype.sq$repeat;Sk.builtin.list.prototype.nb$inplace_multiply=function(a){if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+
265
Sk.abstr.typeName(a)+"'");var b=Sk.misceval.asIndex(a);if("number"!==typeof b)throw new Sk.builtin.OverflowError("cannot fit '"+Sk.abstr.typeName(a)+"' into an index-sized integer");for(a=1;a<b;++a)this.v.push.apply(this.v,this.v);return this};Sk.builtin.list.prototype.sq$ass_item=Sk.builtin.list.prototype.list_ass_item_;Sk.builtin.list.prototype.sq$del_item=Sk.builtin.list.prototype.list_del_item_;Sk.builtin.list.prototype.sq$ass_slice=Sk.builtin.list.prototype.list_ass_slice_;Sk.builtin.list.prototype.sq$del_slice=
266
Sk.builtin.list.prototype.list_del_slice_;Sk.builtin.list.prototype.sq$contains=function(a){var b,c=this.v;for(b=0;b<c.length;b++)if(Sk.misceval.richCompareBool(c[b],a,"Eq"))return!0;return!1};Sk.builtin.list.prototype.__contains__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,2,2);return new Sk.builtin.bool(a.sq$contains(b))});Sk.builtin.list.prototype.list_subscript_=function(a){if(Sk.misceval.isIndex(a)){let b=Sk.misceval.asIndex(a);if("number"!==typeof b)throw new Sk.builtin.IndexError("cannot fit '"+
267
Sk.abstr.typeName(a)+"' into an index-sized integer");if(void 0!==b){0>b&&(b=this.v.length+b);if(0>b||b>=this.v.length)throw new Sk.builtin.IndexError("list index out of range");return this.v[b]}}else if(a instanceof Sk.builtin.slice){const b=[];a.sssiter$(this.v.length,a=>{b.push(this.v[a])});return new Sk.builtin.list(b,!1)}throw new Sk.builtin.TypeError("list indices must be integers, not "+Sk.abstr.typeName(a));};Sk.builtin.list.prototype.list_ass_subscript_=function(a,b){if(Sk.misceval.isIndex(a)){var c=
268
Sk.misceval.asIndex(a);if("number"!==typeof c)throw new Sk.builtin.IndexError("cannot fit '"+Sk.abstr.typeName(a)+"' into an index-sized integer");if(void 0!==c){0>c&&(c=this.v.length+c);this.list_ass_item_(c,b);return}}else if(a instanceof Sk.builtin.slice){c=a.slice_indices_(this.v.length);if(1===c[2])this.list_ass_slice_(c[0],c[1],b);else{const d=[];a.sssiter$(this.v.length,a=>{d.push(a)});a=0;if(d.length!==b.v.length)throw new Sk.builtin.ValueError("attempt to assign sequence of size "+b.v.length+
269
" to extended slice of size "+d.length);for(c=0;c<d.length;++c)this.v.splice(d[c],1,b.v[a]),a+=1}return}throw new Sk.builtin.TypeError("list indices must be integers, not "+Sk.abstr.typeName(a));};Sk.builtin.list.prototype.list_del_subscript_=function(a){if(Sk.misceval.isIndex(a)){var b=Sk.misceval.asIndex(a);if(void 0!==b){0>b&&(b=this.v.length+b);this.list_del_item_(b);return}}else if(a instanceof Sk.builtin.slice){b=a.slice_indices_(this.v.length);if(1===b[2])this.list_del_slice_(b[0],b[1]);else{const c=
270
this.v;let d=0;const e=0<b[2]?1:0;a.sssiter$(c.length,a=>{c.splice(a-d,1);d+=e})}return}throw new Sk.builtin.TypeError("list indices must be integers, not "+typeof a);};Sk.builtin.list.prototype.mp$subscript=Sk.builtin.list.prototype.list_subscript_;Sk.builtin.list.prototype.mp$ass_subscript=Sk.builtin.list.prototype.list_ass_subscript_;Sk.builtin.list.prototype.mp$del_subscript=Sk.builtin.list.prototype.list_del_subscript_;Sk.builtin.list.prototype.__getitem__=new Sk.builtin.func(function(a,b){return Sk.builtin.list.prototype.list_subscript_.call(a,
271
b)});Sk.builtin.list.prototype.__setitem__=new Sk.builtin.func(function(a,b,c){return Sk.builtin.list.prototype.list_ass_subscript_.call(a,b,c)});Sk.builtin.list.prototype.__delitem__=new Sk.builtin.func(function(a,b){return Sk.builtin.list.prototype.list_del_subscript_.call(a,b)});Sk.builtin.list.prototype.list_sort_=function(a,b,c,d){var e,h=void 0!==c&&null!==c&&c!==Sk.builtin.none.none$;var g=void 0!==b&&null!==b&&b!==Sk.builtin.none.none$;if(void 0===d)var f=!1;else{if(d===Sk.builtin.none.none$)throw new Sk.builtin.TypeError("an integer is required");
272
f=Sk.misceval.isTrue(d)}d=new Sk.builtin.timSort(a);a.v=[];var k=new Sk.builtin.int_(0);if(h)for(d.lt=g?function(a,c){a=Sk.misceval.callsimArray(b,[a[0],c[0]]);return Sk.misceval.richCompareBool(a,k,"Lt")}:function(a,c){return Sk.misceval.richCompareBool(a[0],c[0],"Lt")},e=0;e<d.listlength;e++){g=d.list.v[e];var n=Sk.misceval.callsimArray(c,[g]);d.list.v[e]=[n,g]}else g&&(d.lt=function(a,c){a=Sk.misceval.callsimArray(b,[a,c]);return Sk.misceval.richCompareBool(a,k,"Lt")});f&&d.list.list_reverse_(d.list);
273
d.sort();f&&d.list.list_reverse_(d.list);if(h)for(c=0;c<d.listlength;c++)g=d.list.v[c][1],d.list.v[c]=g;c=0<a.sq$length();a.v=d.list.v;if(c)throw new Sk.builtin.OperationError("list modified during sort");return Sk.builtin.none.none$};Sk.builtin.list.prototype.list_sort_.co_varnames=["__self__","cmp","key","reverse"];Sk.builtin.list.prototype.list_sort_.$defaults=[Sk.builtin.none.none$,Sk.builtin.none.none$,!1];Sk.builtin.list.prototype.list_reverse_=function(a){Sk.builtin.pyCheckArgsLen("reverse",
274
arguments.length,1,1);var b=a.v.length;var c=a.v;var d=[];for(--b;-1<b;--b)d.push(c[b]);a.v=d;return Sk.builtin.none.none$};Sk.builtin.list.prototype.append=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("append",arguments.length,2,2);a.v.push(b);return Sk.builtin.none.none$});Sk.builtin.list.prototype.insert=new Sk.builtin.func(function(a,b,c){Sk.builtin.pyCheckArgsLen("insert",arguments.length,3,3);if(!Sk.builtin.checkNumber(b))throw new Sk.builtin.TypeError("an integer is required");
275
b=Sk.builtin.asnum$(b);0>b&&(b+=a.v.length);0>b?b=0:b>a.v.length&&(b=a.v.length);a.v.splice(b,0,c);return Sk.builtin.none.none$});Sk.builtin.list.prototype.extend=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("extend",arguments.length,2,2);a.list_extend_(b);return Sk.builtin.none.none$});Sk.builtin.list.prototype.pop=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("pop",arguments.length,1,2);void 0===b&&(b=a.v.length-1);if(!Sk.builtin.checkNumber(b))throw new Sk.builtin.TypeError("an integer is required");
276
b=Sk.builtin.asnum$(b);0>b&&(b+=a.v.length);if(0>b||b>=a.v.length)throw new Sk.builtin.IndexError("pop index out of range");var c=a.v[b];a.v.splice(b,1);return c});Sk.builtin.list.prototype.remove=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("remove",arguments.length,2,2);var c=Sk.builtin.list.prototype.index.func_code(a,b);a.v.splice(Sk.builtin.asnum$(c),1);return Sk.builtin.none.none$});Sk.builtin.list.prototype.clear$=function(a){Sk.builtin.pyCheckArgsLen("clear",arguments.length,
277
1,1);a.v=[];return Sk.builtin.none.none$};Sk.builtin.list.prototype.copy$=function(a){Sk.builtin.pyCheckArgsLen("copy",arguments.length,1,1);return new Sk.builtin.list(a)};Sk.builtin.list.prototype.index=new Sk.builtin.func(function(a,b,c,d){Sk.builtin.pyCheckArgsLen("index",arguments.length,2,4);if(void 0!==c&&!Sk.builtin.checkInt(c))throw new Sk.builtin.TypeError("slice indices must be integers");if(void 0!==d&&!Sk.builtin.checkInt(d))throw new Sk.builtin.TypeError("slice indices must be integers");
278
var e=a.v.length;var h=a.v;c=void 0===c?0:c.v;0>c&&(c=0<=c+e?c+e:0);d=void 0===d?e:d.v;0>d&&(d=0<=d+e?d+e:0);for(e=c;e<d;++e)if(Sk.misceval.richCompareBool(h[e],b,"Eq"))return new Sk.builtin.int_(e);throw new Sk.builtin.ValueError("list.index(x): x not in list");});Sk.builtin.list.prototype.count=new Sk.builtin.func(function(a,b){var c,d;Sk.builtin.pyCheckArgsLen("count",arguments.length,2,2);var e=a.v.length;var h=a.v;for(c=d=0;c<e;++c)Sk.misceval.richCompareBool(h[c],b,"Eq")&&(d+=1);return new Sk.builtin.int_(d)});
279
Sk.builtin.list.prototype.reverse=new Sk.builtin.func(Sk.builtin.list.prototype.list_reverse_);Sk.builtin.list.prototype.sort=new Sk.builtin.func(Sk.builtin.list.prototype.list_sort_);Sk.exportSymbol("Sk.builtin.list",Sk.builtin.list);Sk.builtin.list_iter_=function(a){if(!(this instanceof Sk.builtin.list_iter_))return new Sk.builtin.list_iter_(a);this.$index=0;this.lst=a.v;this.$done=!1;this.tp$iter=()=>this;this.tp$iternext=function(){if(this.$done||this.$index>=this.lst.length)this.$done=!0;else return this.lst[this.$index++]};
280
this.$r=function(){return new Sk.builtin.str("<listiterator>")};return this};Sk.abstr.setUpInheritance("listiterator",Sk.builtin.list_iter_,Sk.builtin.object);Sk.builtin.list_iter_.prototype.__class__=Sk.builtin.list_iter_;Sk.builtin.list_iter_.prototype.__iter__=new Sk.builtin.func(function(a){return a});Sk.builtin.list_iter_.prototype.next$=function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a}},function(m,p){function a(a,c){return new Sk.builtin.func(function(b,
281
d,e){Sk.builtin.pyCheckArgsLen(c?"center":a?"rjust":"ljust",arguments.length,2,3);if(!Sk.builtin.checkInt(d))throw new Sk.builtin.TypeError("integer argument expected, got "+Sk.abstr.typeName(d));if(void 0!==e&&(!Sk.builtin.checkString(e)||1!==e.v.length&&1!==e.sq$length()))throw new Sk.builtin.TypeError("must be char, not "+Sk.abstr.typeName(e));e=void 0===e?" ":e.v;d=Sk.builtin.asnum$(d);let f=b.sq$length();if(f>=d)return b;if(c){var g=e.repeat(Math.floor((d-f)/2));g=g+b.v+g;(d-f)%2&&(g+=e);return new Sk.builtin.str(g)}g=
282
e.repeat(d-f);return new Sk.builtin.str(a?g+b.v:b.v+g)})}function b(a,c,b){const d=a.sq$length();if(void 0===c||Sk.builtin.checkNone(c))c=0;else if(Sk.misceval.isIndex(c))c=Sk.misceval.asIndex(c),c=0<=c?c:d+c,0>c&&(c=0);else throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0===b||Sk.builtin.checkNone(b))b=d;else if(Sk.misceval.isIndex(b))b=Sk.misceval.asIndex(b),b=0<=b?b:d+b,0>b?b=0:b>d&&(b=d);else throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");
283
a.$hasAstralCodePoints()&&(c=a.codepoints[c],b=a.codepoints[b],c=void 0===c?a.v.length:c,b=void 0===b?a.v.length:b);return{start:c,end:b}}function c(a){return new Sk.builtin.func(function(c,d,f,e){Sk.builtin.pyCheckArgsLen("find",arguments.length,2,4);if(!Sk.builtin.checkString(d))throw new Sk.builtin.TypeError("expected a character buffer object");({start:f,end:e}=b(c,f,e));const g=c.sq$length();if(e<f)return new Sk.builtin.int_(-1);e-=d.v.length;let h=a?c.v.lastIndexOf(d.v,e):c.v.indexOf(d.v,f);
284
h=h>=f&&h<=e?h:-1;if(c.$hasAstralCodePoints()){var k=-1;for(let a=0;a<g;a++)h==c.codepoints[a]&&(k=a)}else k=h;return new Sk.builtin.int_(k)})}Sk.builtin.interned=Object.create(null);Sk.builtin.str=function(a,c,b){void 0===a&&(a="");if(c){Sk.builtin.pyCheckArgsLen("str",arguments.length,0,Sk.__future__.python3?3:1);if(!Sk.builtin.checkBytes(a))throw new TypeError("decoding "+Sk.abstr.typeName(a)+" is not supported");return Sk.builtin.bytes.$decode(a,c,b)}if(a instanceof Sk.builtin.str)return a;if(!(this instanceof
285
Sk.builtin.str))return new Sk.builtin.str(a);if(!0===a)var f="True";else if(!1===a)f="False";else if(null===a||a===Sk.builtin.none.none$)f="None";else if(a instanceof Sk.builtin.bool)f=a.v?"True":"False";else if("number"===typeof a)f=a.toString(),"Infinity"===f?f="inf":"-Infinity"===f&&(f="-inf");else if("string"===typeof a)f=a;else{if(void 0!==a.tp$str){f=a.tp$str();if(!(f instanceof Sk.builtin.str))throw new Sk.builtin.ValueError("__str__ didn't return a str");return f}return Sk.misceval.objectRepr(a)}const e=
286
Sk.builtin.interned[f];if(void 0!==e)return e;this.__class__=Sk.builtin.str;this.v=f;Sk.builtin.interned[f]=this;f=void 0===d[f]?f:f+"_$rw$";this.$mangled=f;this.$savedKeyHash_=void 0;return this};Sk.exportSymbol("Sk.builtin.str",Sk.builtin.str);Sk.abstr.setUpInheritance("str",Sk.builtin.str,Sk.builtin.seqtype);Sk.builtin.str.prototype.sk$builtinBase=Sk.builtin.str;Sk.builtin.str.prototype.$hasAstralCodePoints=function(){if(null===this.codepoints)return!1;if(void 0!==this.codepoints)return!0;for(var a=
287
0;a<this.v.length;a++){let c=this.v.charCodeAt(a);if(55296<=c&&57344>c){this.codepoints=[];for(a=0;a<this.v.length;a++)this.codepoints.push(a),c=this.v.charCodeAt(a),55296<=c&&56320>c&&a++;return!0}}this.codepoints=null;return!1};Sk.builtin.str.prototype.$jsstr=function(){return this.v};Sk.builtin.str.prototype.mp$subscript=function(a){let c;if(Sk.misceval.isIndex(a)){a=Sk.misceval.asIndex(a);c=this.sq$length();0>a&&(a=c+a);if(0>a||a>=c)throw new Sk.builtin.IndexError("string index out of range");
288
return this.codepoints?new Sk.builtin.str(this.v.substring(this.codepoints[a],this.codepoints[a+1])):new Sk.builtin.str(this.v.charAt(a))}if(a instanceof Sk.builtin.slice){let b="";c=this.sq$length();this.codepoints?a.sssiter$(c,a=>{b+=this.v.substring(this.codepoints[a],this.codepoints[a+1])}):a.sssiter$(c,a=>{b+=this.v.charAt(a)});return new Sk.builtin.str(b)}throw new Sk.builtin.TypeError("string indices must be integers, not "+Sk.abstr.typeName(a));};Sk.builtin.str.prototype.sq$length=function(){return this.$hasAstralCodePoints()?
289
this.codepoints.length:this.v.length};Sk.builtin.str.prototype.sq$concat=function(a){if(!a||!Sk.builtin.checkString(a))throw a=Sk.abstr.typeName(a),new Sk.builtin.TypeError("cannot concatenate 'str' and '"+a+"' objects");return new Sk.builtin.str(this.v+a.v)};Sk.builtin.str.prototype.nb$add=Sk.builtin.str.prototype.sq$concat;Sk.builtin.str.prototype.nb$inplace_add=Sk.builtin.str.prototype.sq$concat;Sk.builtin.str.prototype.sq$repeat=function(a){var c;if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+
290
Sk.abstr.typeName(a)+"'");a=Sk.misceval.asIndex(a);var b="";for(c=0;c<a;++c)b+=this.v;return new Sk.builtin.str(b)};Sk.builtin.str.prototype.nb$multiply=Sk.builtin.str.prototype.sq$repeat;Sk.builtin.str.prototype.nb$inplace_multiply=Sk.builtin.str.prototype.sq$repeat;Sk.builtin.str.prototype.sq$item=function(){Sk.asserts.fail()};Sk.builtin.str.prototype.sq$slice=function(a,c){a=Sk.builtin.asnum$(a);c=Sk.builtin.asnum$(c);0>a&&(a=0);return this.$hasAstralCodePoints()?a>=this.codepoints.length?Sk.builtin.str.$emptystr:
291
new Sk.builtin.str(this.v.substring(this.codepoints[a],this.codepoints[c])):new Sk.builtin.str(this.v.substring(a,c))};Sk.builtin.str.prototype.sq$contains=function(a){if(!(a instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("TypeError: 'In <string> requires string as left operand");return-1!=this.v.indexOf(a.v)};Sk.builtin.str.prototype.__contains__=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length-1,1,1);return new Sk.builtin.bool(-1!=a.v.indexOf(c.v))});
292
Sk.builtin.str.prototype.__iter__=new Sk.builtin.func(function(a){return new Sk.builtin.str_iter_(a)});Sk.builtin.str.prototype.tp$iter=function(){return new Sk.builtin.str_iter_(this)};Sk.builtin.str.prototype.tp$richcompare=function(a,c){if(!(a instanceof Sk.builtin.str))return Sk.builtin.NotImplemented.NotImplemented$;switch(c){case "Lt":return this.v<a.v;case "LtE":return this.v<=a.v;case "Eq":return this.v===a.v;case "NotEq":return this.v!==a.v;case "Gt":return this.v>a.v;case "GtE":return this.v>=
293
a.v;default:Sk.asserts.fail()}};Sk.builtin.str.prototype.$r=function(){var a,c="'";-1!==this.v.indexOf("'")&&-1===this.v.indexOf('"')&&(c='"');var b=this.v.length;var d=c;for(a=0;a<b;++a){var k=this.v.charAt(a);var n=this.v.charCodeAt(a);k===c||"\\"===k?d+="\\"+k:"\t"===k?d+="\\t":"\n"===k?d+="\\n":"\r"===k?d+="\\r":(255<n&&55296>n||57344<=n)&&!Sk.__future__.python3?d+="\\u"+("000"+n.toString(16)).slice(-4):55296<=n&&!Sk.__future__.python3?(k=this.v.codePointAt(a),a++,k=k.toString(16),n="0000000"+
294
k.toString(16),d=4<k.length?d+("\\U"+n.slice(-8)):d+("\\u"+n.slice(-4))):255<n&&!Sk.__future__.python3?d+="\\ufffd":" ">k||127<=n&&!Sk.__future__.python3?(k=k.charCodeAt(0).toString(16),2>k.length&&(k="0"+k),d+="\\x"+k):d+=k}return new Sk.builtin.str(d+c)};Sk.builtin.str.re_escape_=function(a){var c,b=[],d=/^[A-Za-z0-9]+$/;for(c=0;c<a.length;++c){var e=a.charAt(c);d.test(e)?b.push(e):"\\000"===e?b.push("\\000"):b.push("\\"+e)}return b.join("")};Sk.builtin.str.prototype.lower=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("lower",
295
arguments.length,1,1);return new Sk.builtin.str(a.v.toLowerCase())});Sk.builtin.str.prototype.upper=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("upper",arguments.length,1,1);return new Sk.builtin.str(a.v.toUpperCase())});Sk.builtin.str.prototype.capitalize=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("capitalize",arguments.length,1,1);var b=a.v;if(0===b.length)return new Sk.builtin.str("");var d=b.charAt(0).toUpperCase();for(c=1;c<b.length;c++)d+=b.charAt(c).toLowerCase();
296
return new Sk.builtin.str(d)});Sk.builtin.str.prototype.join=new Sk.builtin.func(function(a,c){var b;Sk.builtin.pyCheckArgsLen("join",arguments.length,2,2);Sk.builtin.pyCheckType("seq","iterable",Sk.builtin.checkIterable(c));var d=[];var e=c.tp$iter();for(b=e.tp$iternext();void 0!==b;b=e.tp$iternext()){if(b.constructor!==Sk.builtin.str)throw new Sk.builtin.TypeError("TypeError: sequence item "+d.length+": expected string, "+Sk.abstr.typeName(b)+" found");d.push(b.v)}return new Sk.builtin.str(d.join(a.v))});
297
Sk.builtin.str.prototype.split=new Sk.builtin.func(function(a,c,b){var d,e;Sk.builtin.pyCheckArgsLen("split",arguments.length,1,3);if(void 0===c||c===Sk.builtin.none.none$)c=null;if(null!==c&&!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("expected a string");if(null!==c&&""===c.v)throw new Sk.builtin.ValueError("empty separator");if(void 0!==b&&!Sk.builtin.checkInt(b))throw new Sk.builtin.TypeError("an integer is required");b=Sk.builtin.asnum$(b);var g=/[\s\xa0]+/g;var h=a.v;if(null===
298
c)h=h.replace(/^[\s\xa0]+/,"");else{var q=c.v.replace(/([.*+?=|\\\/()\[\]\{\}^$])/g,"\\$1");g=new RegExp(q,"g")}var u=[];for(q=d=0;null!=(e=g.exec(h))&&e.index!==g.lastIndex&&!(u.push(new Sk.builtin.str(h.substring(d,e.index))),d=g.lastIndex,q+=1,b&&q>=b););h=h.substring(d);(null!==c||0<h.length)&&u.push(new Sk.builtin.str(h));return new Sk.builtin.list(u)});Sk.builtin.str.prototype.strip=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("strip",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("strip arg must be None or str");
299
if(void 0===c)var b=/^\s+|\s+$/g;else b=Sk.builtin.str.re_escape_(c.v),b=new RegExp("^["+b+"]+|["+b+"]+$","g");return new Sk.builtin.str(a.v.replace(b,""))});Sk.builtin.str.prototype.lstrip=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("lstrip",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("lstrip arg must be None or str");if(void 0===c)var b=/^\s+/g;else b=Sk.builtin.str.re_escape_(c.v),b=new RegExp("^["+b+"]+","g");return new Sk.builtin.str(a.v.replace(b,
300
""))});Sk.builtin.str.prototype.rstrip=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("rstrip",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("rstrip arg must be None or str");if(void 0===c)var b=/\s+$/g;else b=Sk.builtin.str.re_escape_(c.v),b=new RegExp("["+b+"]+$","g");return new Sk.builtin.str(a.v.replace(b,""))});Sk.builtin.str.prototype.__format__=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("__format__",arguments.length,
301
2,2);if(Sk.builtin.checkString(c)){var b=Sk.ffi.remapToJs(c);if(""!==b&&"s"!==b)throw new Sk.builtin.NotImplementedError("format spec is not yet implemented");}else{if(Sk.__future__.exceptions)throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+Sk.abstr.typeName(c));throw new Sk.builtin.TypeError("format expects arg 2 to be string or unicode, not "+Sk.abstr.typeName(c));}return new Sk.builtin.str(a)});Sk.builtin.str.prototype.partition=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("partition",
302
arguments.length,2,2);Sk.builtin.pyCheckType("sep","string",Sk.builtin.checkString(c));var b=new Sk.builtin.str(c);var d=a.v.indexOf(b.v);return 0>d?new Sk.builtin.tuple([a,Sk.builtin.str.$emptystr,Sk.builtin.str.$emptystr]):new Sk.builtin.tuple([new Sk.builtin.str(a.v.substring(0,d)),b,new Sk.builtin.str(a.v.substring(d+b.v.length))])});Sk.builtin.str.prototype.rpartition=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("rpartition",arguments.length,2,2);Sk.builtin.pyCheckType("sep","string",
303
Sk.builtin.checkString(c));var b=new Sk.builtin.str(c);var d=a.v.lastIndexOf(b.v);return 0>d?new Sk.builtin.tuple([Sk.builtin.str.$emptystr,Sk.builtin.str.$emptystr,a]):new Sk.builtin.tuple([new Sk.builtin.str(a.v.substring(0,d)),b,new Sk.builtin.str(a.v.substring(d+b.v.length))])});Sk.builtin.str.prototype.count=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("count",arguments.length,2,4);if(!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("expected a character buffer object");
304
if(void 0!==b&&!Sk.builtin.checkInt(b)&&!Sk.builtin.checkNone(b))throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0!==d&&!Sk.builtin.checkInt(d)&&!Sk.builtin.checkNone(d))throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");var f=a.sq$length();if(void 0===b||b===Sk.builtin.none.none$)b=0;else if(b=Sk.builtin.asnum$(b),b=0<=b?b:f+b,b>f)return new Sk.builtin.int_(0);void 0===d||d===Sk.builtin.none.none$?
305
d=f:(d=Sk.builtin.asnum$(d),d=0<=d?d:f+d);f=c.v.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");f=new RegExp(f,"g");return(f=a.v.slice(a.codepoints?a.codepoints[b]:b,a.codepoints?a.codepoints[d]:d).match(f))?new Sk.builtin.int_(f.length):new Sk.builtin.int_(0)});Sk.builtin.str.prototype.ljust=a(!1);Sk.builtin.str.prototype.rjust=a(!0);Sk.builtin.str.prototype.center=a(!1,!0);Sk.builtin.str.prototype.find=c(!1);Sk.builtin.str.prototype.index=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("index",
306
arguments.length,2,4);var f=Sk.misceval.callsimArray(a.find,[a,c,b,d]);if(-1===Sk.builtin.asnum$(f))throw new Sk.builtin.ValueError("substring not found");return f});Sk.builtin.str.prototype.rfind=c(!0);Sk.builtin.str.prototype.rindex=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("rindex",arguments.length,2,4);var f=Sk.misceval.callsimArray(a.rfind,[a,c,b,d]);if(-1===Sk.builtin.asnum$(f))throw new Sk.builtin.ValueError("substring not found");return f});Sk.builtin.str.prototype.startswith=
307
new Sk.builtin.func(function(a,c,d,f){Sk.builtin.pyCheckArgsLen("startswith",arguments.length-1,1,3);if(!(c instanceof Sk.builtin.str||c instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("startswith first arg must be str or a tuple of str, not "+Sk.abstr.typeName(c));({start:d,end:f}=b(a,d,f));if(d>f)return Sk.builtin.bool.false$;let e=a.v.slice(d,f);if(c instanceof Sk.builtin.tuple){for(let a=Sk.abstr.iter(c),b=a.tp$iternext();void 0!==b;b=a.tp$iternext()){if(!(b instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("tuple for startswith must only contain str, not "+
308
Sk.abstr.typeName(b));if(0===e.indexOf(b.v))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return new Sk.builtin.bool(0===e.indexOf(c.v))});Sk.builtin.str.prototype.endswith=new Sk.builtin.func(function(a,c,d,f){Sk.builtin.pyCheckArgsLen("endswith",arguments.length-1,1,3);if(!(c instanceof Sk.builtin.str||c instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("endswith first arg must be str or a tuple of str, not "+Sk.abstr.typeName(c));({start:d,end:f}=b(a,d,f));if(d>f)return Sk.builtin.bool.false$;
309
let e=a.v.slice(d,f);if(c instanceof Sk.builtin.tuple){for(let a=Sk.abstr.iter(c),b=a.tp$iternext();void 0!==b;b=a.tp$iternext()){if(!(b instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("tuple for endswith must only contain str, not "+Sk.abstr.typeName(b));if(-1!==e.indexOf(b.v,e.length-b.v.length))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return new Sk.builtin.bool(-1!==e.indexOf(c.v,e.length-c.v.length))});Sk.builtin.str.prototype.replace=new Sk.builtin.func(function(a,
310
c,b,d){Sk.builtin.pyCheckArgsLen("replace",arguments.length,3,4);Sk.builtin.pyCheckType("oldS","string",Sk.builtin.checkString(c));Sk.builtin.pyCheckType("newS","string",Sk.builtin.checkString(b));if(void 0!==d&&!Sk.builtin.checkInt(d))throw new Sk.builtin.TypeError("integer argument expected, got "+Sk.abstr.typeName(d));d=Sk.builtin.asnum$(d);var f=new RegExp(Sk.builtin.str.re_escape_(c.v),"g");if(void 0===d||0>d)return new Sk.builtin.str(a.v.replace(f,b.v));var e=0;return new Sk.builtin.str(a.v.replace(f,
311
function(a){e++;return e<=d?b.v:a}))});Sk.builtin.str.prototype.zfill=new Sk.builtin.func(function(a,c){var b=a.v,d="";Sk.builtin.pyCheckArgsLen("zfill",arguments.length,2,2);if(!Sk.builtin.checkInt(c))throw new Sk.builtin.TypeError("integer argument expected, got "+Sk.abstr.typeName(c));var e=c.v-b.length;var h="+"===b[0]||"-"===b[0]?1:0;for(var l=0;l<e;l++)d+="0";b=b.substr(0,h)+d+b.substr(h);return new Sk.builtin.str(b)});Sk.builtin.str.prototype.isdigit=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isdigit",
312
arguments.length,1,1);return new Sk.builtin.bool(/^\d+$/.test(a.v))});Sk.builtin.str.prototype.isspace=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isspace",arguments.length,1,1);return new Sk.builtin.bool(/^\s+$/.test(a.v))});Sk.builtin.str.prototype.expandtabs=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("expandtabs",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkInt(c))throw new Sk.builtin.TypeError("integer argument expected, got "+Sk.abstr.typeName(c));c=void 0===
313
c?8:Sk.builtin.asnum$(c);var b=Array(c+1).join(" ");var d=a.v.replace(/([^\r\n\t]*)\t/g,function(a,d){return d+b.slice(d.length%c)});return new Sk.builtin.str(d)});Sk.builtin.str.prototype.swapcase=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("swapcase",arguments.length,1,1);var c=a.v.replace(/[a-z]/gi,function(a){var c=a.toLowerCase();return c===a?a.toUpperCase():c});return new Sk.builtin.str(c)});Sk.builtin.str.prototype.splitlines=new Sk.builtin.func(function(a,c){var b=a.v,d,e=a.v.length,
314
h=[],l=0;Sk.builtin.pyCheckArgsLen("splitlines",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkBool(c))throw new Sk.builtin.TypeError("boolean argument expected, got "+Sk.abstr.typeName(c));c=void 0===c?!1:c.v;for(d=0;d<e;d++){var q=b.charAt(d);if("\n"===b.charAt(d+1)&&"\r"===q)q=d+2,l=b.slice(l,q),c||(l=l.replace(/(\r|\n)/g,"")),h.push(new Sk.builtin.str(l)),l=q;else if("\n"===q&&"\r"!==b.charAt(d-1)||"\r"===q)q=d+1,l=b.slice(l,q),c||(l=l.replace(/(\r|\n)/g,"")),h.push(new Sk.builtin.str(l)),
315
l=q}l<e&&(l=b.slice(l,e),c||(l=l.replace(/(\r|\n)/g,"")),h.push(new Sk.builtin.str(l)));return new Sk.builtin.list(h)});Sk.builtin.str.prototype.title=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("title",arguments.length,1,1);var c=a.v.replace(/[a-z][a-z]*/gi,function(a){return a[0].toUpperCase()+a.substr(1).toLowerCase()});return new Sk.builtin.str(c)});Sk.builtin.str.prototype.isalpha=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isalpha",arguments.length,1,1);return new Sk.builtin.bool(a.v.length&&
316
!/[^a-zA-Z]/.test(a.v))});Sk.builtin.str.prototype.isalnum=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isalnum",arguments.length,1,1);return new Sk.builtin.bool(a.v.length&&!/[^a-zA-Z0-9]/.test(a.v))});Sk.builtin.str.prototype.isnumeric=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isnumeric",arguments.length,1,1);return new Sk.builtin.bool(a.v.length&&!/[^0-9]/.test(a.v))});Sk.builtin.str.prototype.islower=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("islower",
317
arguments.length,1,1);return new Sk.builtin.bool(a.v.length&&/[a-z]/.test(a.v)&&!/[A-Z]/.test(a.v))});Sk.builtin.str.prototype.isupper=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("isupper",arguments.length,1,1);return new Sk.builtin.bool(a.v.length&&!/[a-z]/.test(a.v)&&/[A-Z]/.test(a.v))});Sk.builtin.str.prototype.istitle=new Sk.builtin.func(function(a){var c=a.v,b=!1,d=!1,e;Sk.builtin.pyCheckArgsLen("istitle",arguments.length,1,1);for(e=0;e<c.length;e++){var n=c.charAt(e);if(!/[a-z]/.test(n)&&
318
/[A-Z]/.test(n)){if(d)return new Sk.builtin.bool(!1);b=d=!0}else if(/[a-z]/.test(n)&&!/[A-Z]/.test(n)){if(!d)return new Sk.builtin.bool(!1);b=!0}else d=!1}return new Sk.builtin.bool(b)});Sk.builtin.str.prototype.encode=new Sk.builtin.func(function(a,c,b){Sk.builtin.pyCheckArgsLen("encode",arguments.length,1,3);c=c||Sk.builtin.str.$utf8;Sk.builtin.pyCheckType("encoding","string",Sk.builtin.checkString(c));c=c.v;void 0!==b?(Sk.builtin.pyCheckType("errors","string",Sk.builtin.checkString(b)),b=b.v):
319
b="strict";const d=Sk.builtin.bytes.$strEncode(a,c,b);return Sk.__future__.python3?d:new Sk.builtin.str(d.$jsstr())});Sk.builtin.str.$py2decode=new Sk.builtin.func(function(a,c,b){Sk.builtin.pyCheckArgsLen("decode",arguments.length,1,3);const d=new Sk.builtin.bytes(a.$jsstr());return Sk.builtin.bytes.$decode(d,c,b)});Sk.builtin.str.prototype.nb$remainder=function(a){var c;const b=this.sk$builtinBase;a.constructor===Sk.builtin.tuple||void 0!==a.mp$subscript&&a.constructor!==b||(a=new Sk.builtin.tuple([a]));
320
var d=0;var e=this.$jsstr().replace(/%(\([a-zA-Z0-9]+\))?([#0 +\-]+)?(\*|[0-9]+)?(\.(\*|[0-9]+))?[hlL]?([diouxXeEfFgGcrsb%])/g,function(f,e,g,h,k,y,t){var u,l,z,n,q;h=Sk.builtin.asnum$(h);k=Sk.builtin.asnum$(k);void 0!==e&&""!==e||"%"==t||(u=d++);""===k&&(k=void 0);var m=l=z=n=q=!1;g&&(-1!==g.indexOf("-")?n=!0:-1!==g.indexOf("0")&&(q=!0),-1!==g.indexOf("+")?l=!0:-1!==g.indexOf(" ")&&(z=!0),m=-1!==g.indexOf("#"));k&&(k=parseInt(k.substr(1),10));g=function(a,c){var b;c=Sk.builtin.asnum$(c);var d=!1;
321
if("number"===typeof a){0>a&&(a=-a,d=!0);var f=a.toString(c)}else a instanceof Sk.builtin.float_?(f=a.str$(c,!1),2<f.length&&".0"===f.substr(-2)&&(f=f.substr(0,f.length-2)),d=a.nb$isnegative()):a instanceof Sk.builtin.int_?(f=a.str$(c,!1),d=a.nb$isnegative()):a instanceof Sk.builtin.lng&&(f=a.str$(c,!1),d=a.nb$isnegative());Sk.asserts.assert(void 0!==f,"unhandled number format");a=!1;if(k)for(b=f.length;b<k;++b)f="0"+f,a=!0;b="";d?b="-":l?b="+"+b:z&&(b=" "+b);m&&(16===c?b+="0x":8!==c||a||"0"===f||
322
(b+="0"));return[b,f]};f=function(a){var c=a[0];a=a[1];if(h){h=parseInt(h,10);var b=a.length+c.length;if(q)for(;b<h;++b)a="0"+a;else if(n){for(;b<h;++b)a+=" ";Sk.__future__.python3&&(a+=c,c="")}else for(;b<h;++b)c=" "+c}return c+a};if(a.constructor===Sk.builtin.tuple)e=a.v[u];else if(void 0!==a.mp$subscript&&void 0!==e)e=e.substring(1,e.length-1),e=a.mp$subscript(new b(e));else if(a.constructor===Sk.builtin.dict||a.constructor===Sk.builtin.list)e=a;else throw new Sk.builtin.AttributeError(a.tp$name+
323
" instance has no attribute 'mp$subscript'");if("d"===t||"i"===t){var p=g(e,10);if(void 0===p[1])throw new Sk.builtin.TypeError("%"+t+" format: a number is required, not "+Sk.abstr.typeName(e));t=p[1];p[1]=-1!==t.indexOf(".")?parseInt(t,10).toString():t;return f(p)}if("o"===t)return f(g(e,8));if("x"===t)return f(g(e,16));if("X"===t)return f(g(e,16)).toUpperCase();if("f"===t||"F"===t||"e"===t||"E"===t||"g"===t||"G"===t){p=Sk.builtin.asnum$(e);"string"===typeof p&&(p=Number(p));if(Infinity===p)return"inf";
324
if(-Infinity===p)return"-inf";if(isNaN(p))return"nan";u=["toExponential","toFixed","toPrecision"]["efg".indexOf(t.toLowerCase())];if(void 0===k||""===k)if("e"===t||"E"===t)k=6;else if("f"===t||"F"===t)k=Sk.__future__.python3?6:7;u=p[u](k);Sk.builtin.checkFloat(e)&&0===p&&-Infinity===1/p&&(u="-"+u);Sk.__future__.python3&&(7<=u.length&&"0.0000"==u.slice(0,6)&&(c=parseFloat(u),u=c.toExponential()),"-"==u.charAt(u.length-2)&&(u=u.slice(0,u.length-1)+"0"+u.charAt(u.length-1)));-1!=="EFG".indexOf(t)&&(u=
325
u.toUpperCase());return f(["",u])}if("c"===t){if("number"===typeof e)return String.fromCharCode(e);if(e instanceof Sk.builtin.int_)return String.fromCharCode(e.v);if(e instanceof Sk.builtin.float_)return String.fromCharCode(e.v);if(e instanceof Sk.builtin.lng)return String.fromCharCode(e.str$(10,!1)[0]);if(e.constructor===Sk.builtin.str)return e.v.substr(0,1);throw new Sk.builtin.TypeError("an integer is required");}if("r"===t)return t=Sk.builtin.repr(e),k?t.v.substr(0,k):t.v;if("s"===t&&b===Sk.builtin.str){t=
326
new Sk.builtin.str(e);t=t.$jsstr();if(k)return t.substr(0,k);h&&(t=f([" ",t]));return t}if("b"===t||"s"===t){if(b===Sk.builtin.str)throw new Sk.builtin.ValueError("unsupported format character 'b'");if(!(e instanceof Sk.builtin.bytes)&&void 0===(p=Sk.abstr.lookupSpecial(e,Sk.builtin.str.$bytes)))throw new Sk.builtin.TypeError("%b requires a bytes-like object, or an object that implements __bytes__, not '"+Sk.abstr.typeName(e)+"'");void 0!==p&&(e=new Sk.builtin.bytes(e));t=e.$jsstr();if(k)return t.substr(0,
327
k);h&&(t=f([" ",t]));return t}if("%"===t)return"%"});return new b(e)};Sk.builtin.str_iter_=function(a){if(!(this instanceof Sk.builtin.str_iter_))return new Sk.builtin.str_iter_(a);this.$index=0;this.$obj=a.v.slice();this.tp$iter=()=>this;a.$hasAstralCodePoints()?(this.sq$length=a.codepoints.length,this.$codepoints=a.codepoints.slice(),this.tp$iternext=function(){if(!(this.$index>=this.sq$length)){var a=new Sk.builtin.str(this.$obj.substring(this.$codepoints[this.$index],this.$codepoints[this.$index+
328
1]));this.$index++;return a}}):(this.sq$length=this.$obj.length,this.tp$iternext=function(){if(!(this.$index>=this.sq$length))return new Sk.builtin.str(this.$obj.substr(this.$index++,1))});this.$r=function(){return new Sk.builtin.str("iterator")};return this};Sk.abstr.setUpInheritance("iterator",Sk.builtin.str_iter_,Sk.builtin.object);Sk.builtin.str_iter_.prototype.__class__=Sk.builtin.str_iter_;Sk.builtin.str_iter_.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",
329
arguments.length,0,0,!0,!1);return a});Sk.builtin.str_iter_.prototype.next$=function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a};var d={"abstract":!0,as:!0,"boolean":!0,"break":!0,"byte":!0,"case":!0,"catch":!0,"char":!0,"class":!0,"continue":!0,"const":!0,"debugger":!0,"default":!0,"delete":!0,"do":!0,"double":!0,"else":!0,"enum":!0,"export":!0,"extends":!0,"false":!0,"final":!0,"finally":!0,"float":!0,"for":!0,"function":!0,"goto":!0,"if":!0,"implements":!0,"import":!0,
330
"in":!0,"instanceof":!0,"int":!0,"interface":!0,is:!0,"long":!0,namespace:!0,"native":!0,"new":!0,"null":!0,"package":!0,"private":!0,"protected":!0,"public":!0,"return":!0,"short":!0,"static":!0,"switch":!0,"synchronized":!0,"this":!0,"throw":!0,"throws":!0,"transient":!0,"true":!0,"try":!0,"typeof":!0,use:!0,"var":!0,"void":!0,"volatile":!0,"while":!0,"with":!0,__defineGetter__:!0,__defineSetter__:!0,apply:!0,arguments:!0,call:!0,caller:!0,eval:!0,hasOwnProperty:!0,isPrototypeOf:!0,__lookupGetter__:!0,
331
__lookupSetter__:!0,__noSuchMethod__:!0,propertyIsEnumerable:!0,prototype:!0,toSource:!0,toLocaleString:!0,toString:!0,unwatch:!0,valueOf:!0,watch:!0,length:!0,name:!0};Sk.builtin.str.reservedWords_=d},function(m,p,a){function b(a){var c=a.replace(/\s+/g,"").toLowerCase();c=n[c];return void 0===c?a:c}function c(a){if(Uint8Array.from)return Uint8Array.from(a);const c=new Uint8Array(a.length);for(let b=0;b<a.length;b++)c[b]=a[b];return c}function d(a,d,f){a=a.$jsstr();d=b(d);if("strict"!==f&&"ignore"!==
332
f&&"replace"!==f)throw new Sk.builtin.NotImplementedError("'"+f+"' error handling not implemented in Skulpt");if("ascii"===d){d=[];for(e in a){const c=a.charCodeAt(e);if(0>c||127<c){if("strict"===f)throw f=h(c),new Sk.builtin.UnicodeEncodeError("'ascii' codec can't encode character '"+f+"' in position "+e+": ordinal not in range(128)");"replace"===f&&d.push(63)}else d.push(c)}var e=c(d)}else if("utf-8"===d)e=l.encode(a);else throw new Sk.builtin.LookupError("unknown encoding: "+d);return new Sk.builtin.bytes(e)}
333
function e(a,c,b){Sk.builtin.pyCheckArgsLen("bytes",arguments.length,0,3);let f;var e;if(1<arguments.length){if(!Sk.builtin.checkString(c))throw new Sk.builtin.TypeError("bytes() argument 2 must be str not "+Sk.abstr.typeName(c));if(void 0!==b&&!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("bytes() argument 3 must be str not "+Sk.abstr.typeName(c));if(!Sk.builtin.checkString(a))throw new Sk.builtin.TypeError((void 0!==c?"encoding":"errors")+" without a string argument");}if(void 0===a)return new Sk.builtin.bytes;
334
if(Sk.builtin.checkString(a)){if(void 0===c)throw new Sk.builtin.TypeError("string argument without an encoding");b=void 0===b?"strict":b.$jsstr();c=c.$jsstr();return d(a,c,b)}if(Sk.builtin.checkInt(a)){f=Sk.builtin.asnum$(a);if(0>f)throw new Sk.builtin.ValueError("negative count");if(f>Number.MAX_SAFE_INTEGER)throw new Sk.builtin.OverflowError("cannot fit 'int' into an index-sized integer");return new Sk.builtin.bytes(f)}if(Sk.builtin.checkBytes(a))return new Sk.builtin.bytes(a.v);if(null!=(e=Sk.abstr.lookupSpecial(a,
335
Sk.builtin.str.$bytes)))return e=Sk.misceval.callsimOrSuspendArray(e,[a]),Sk.misceval.chain(e,a=>{if(!Sk.builtin.checkBytes(a))throw new Sk.builtin.TypeError("__bytes__ returned non-bytes (type "+Sk.abstr.typeName(a)+")");return a});if(Sk.builtin.checkIterable(a))return f=[],e=Sk.misceval.iterFor(Sk.abstr.iter(a),a=>{if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object cannot be interpreted as an integer");a=Sk.misceval.asIndex(a);if(0>a||255<a)throw new Sk.builtin.ValueError("bytes must be in range(0, 256)");
336
f.push(a)}),Sk.misceval.chain(e,()=>new Sk.builtin.bytes(f));e="";void 0===a.sk$object&&(e+=", if calling constructor with a javascript object use 'new'");throw new Sk.builtin.TypeError("cannot convert '"+Sk.abstr.typeName(a)+"' object into bytes"+e);}function h(a){var c=265>=a?"\\x":"\\u";a=a.toString(16);3===a.length&&(a=a.slice(1,3));return a=1===a.length?c+"0"+a:c+a}function g(a){return function(c){return c instanceof Sk.builtin.bytes?a(this.$jsstr(),c.$jsstr()):Sk.builtin.NotImplemented.NotImplemented$}}
337
function f(a,c,b){a=a.v.byteLength;if(void 0===c||c===Sk.builtin.none.none$)c=0;else if(Sk.misceval.isIndex(c))c=Sk.misceval.asIndex(c),c=0<=c?c:a+c,0>c&&(c=0);else throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0===b||Sk.builtin.checkNone(b))b=a;else if(Sk.misceval.isIndex(b))b=Sk.misceval.asIndex(b),b=0<=b?b:a+b,0>b?b=0:b>a&&(b=a);else throw new Sk.builtin.TypeError("slice indices must be integers or None or have an __index__ method");
338
return{start:c,end:b}}function k(a){return 9<=a&&13>=a||32===a}a(22);const n={utf:"utf-8",utf8:"utf-8","utf-8":"utf-8",ascii:"ascii"},l=new TextEncoder,q=new TextDecoder;Sk.builtin.bytes=function(a,b,d){if(!(this instanceof Sk.builtin.bytes))return e(...arguments);if(void 0===a)this.v=new Uint8Array;else if(a instanceof Uint8Array)this.v=a;else if(Array.isArray(a))Sk.asserts.assert(a.every(a=>0<=a&&256>a),"bad internal call to bytes with array"),this.v=c(a);else if("string"===typeof a){const b=[];
339
for(let c in a){var f=a.charCodeAt(c);if(255<f)throw new Sk.builtin.UnicodeDecodeError("invalid string (possibly contains a unicode character)");b.push(f)}this.v=c(b)}else if("number"===typeof a)this.v=new Uint8Array(a);else return f=Sk.misceval.chain(e(...arguments),a=>{this.v=a.v;return this}),Sk.misceval.retryOptionalSuspensionOrThrow(f)};Sk.abstr.setUpInheritance("bytes",Sk.builtin.bytes,Sk.builtin.seqtype);Sk.builtin.bytes.prototype.__class__=Sk.builtin.bytes;Sk.builtin.bytes.prototype.sk$builtinBase=
340
Sk.builtin.bytes;Sk.builtin.bytes.$strEncode=d;Sk.builtin.bytes.prototype.$jsstr=function(){let a="";for(let c=0;c<this.v.byteLength;c++)a+=String.fromCharCode(this.v[c]);return a};Sk.builtin.bytes.prototype.tp$hash=function(){return Sk.builtin.hash(new Sk.builtin.str(this.$jsstr()))};Sk.builtin.bytes.prototype.$r=function(){let a,c="'";const b=-1!==this.v.indexOf(34);let d="";for(let f=0;f<this.v.byteLength;f++)if(a=this.v[f],9>a||10<a&&13>a||13<a&&32>a||126<a)d+=h(a);else if(9===a||10===a||13===
341
a||39===a||92===a)switch(a){case 9:d+="\\t";break;case 10:d+="\\n";break;case 13:d+="\\r";break;case 39:b?d+="\\'":(d+="'",c='"');break;case 92:d+="\\\\"}else d+=String.fromCharCode(a);return new Sk.builtin.str("b"+c+d+c)};Sk.builtin.bytes.prototype.mp$subscript=function(a){if(Sk.misceval.isIndex(a)){var c=Sk.misceval.asIndex(a);if(void 0!==c){0>c&&(c=this.v.byteLength+c);if(0>c||c>=this.v.byteLength)throw new Sk.builtin.IndexError("index out of range");return new Sk.builtin.int_(this.v[c])}}else if(a instanceof
342
Sk.builtin.slice){var b=[];a.sssiter$(this.v.byteLength,a=>{b.push(this.v[a])});return new Sk.builtin.bytes(b)}throw new Sk.builtin.TypeError("byte indices must be integers, not "+Sk.abstr.typeName(a));};Sk.builtin.bytes.prototype.ob$eq=function(a){if(this===a)return Sk.builtin.bool.true$;if(!(a instanceof Sk.builtin.bytes))return Sk.builtin.NotImplemented.NotImplemented$;if(this.v.byteLength!=a.v.byteLength)return Sk.builtin.bool.false$;for(let c=0;c<this.v.byteLength;c++)if(this.v[c]!=a.v[c])return Sk.builtin.bool.false$;
343
return Sk.builtin.bool.true$};Sk.builtin.bytes.prototype.ob$ne=function(a){a=this.ob$eq(a);return a===Sk.builtin.NotImplemented.NotImplemented$?a:Sk.misceval.isTrue(a)?Sk.builtin.bool.false$:Sk.builtin.bool.true$};Sk.builtin.bytes.prototype.ob$lt=g((a,c)=>new Sk.builtin.bool(a<c));Sk.builtin.bytes.prototype.ob$le=g((a,c)=>new Sk.builtin.bool(a<=c));Sk.builtin.bytes.prototype.ob$gt=g((a,c)=>new Sk.builtin.bool(a>c));Sk.builtin.bytes.prototype.ob$ge=g((a,c)=>new Sk.builtin.bool(a>=c));Sk.builtin.bytes.prototype.sq$length=
344
function(){return this.v.byteLength};Sk.builtin.bytes.prototype.sq$concat=function(a){var c;if(!(a instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("can't concat "+Sk.abstr.typeName(a)+" to bytes");var b=[];for(c=0;c<this.v.byteLength;c++)b.push(this.v[c]);for(c=0;c<a.v.byteLength;c++)b.push(a.v[c]);return new Sk.builtin.bytes(b)};Sk.builtin.bytes.prototype.nb$add=Sk.builtin.bytes.prototype.sq$concat;Sk.builtin.bytes.prototype.nb$inplace_add=Sk.builtin.bytes.prototype.sq$concat;Sk.builtin.bytes.prototype.sq$repeat=
345
function(a){var c,b;if(!(a instanceof Sk.builtin.int_))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(a)+"'");var d=[];for(b=0;b<a.v;b++)for(c=0;c<this.v.byteLength;c++)d.push(this.v[c]);return new Sk.builtin.bytes(d)};Sk.builtin.bytes.prototype.nb$multiply=Sk.builtin.bytes.prototype.sq$repeat;Sk.builtin.bytes.prototype.nb$inplace_multiply=Sk.builtin.bytes.prototype.sq$repeat;Sk.builtin.bytes.prototype.sq$contains=function(a){if(Sk.builtin.checkInt(a)){a=
346
Sk.builtin.asnum$(a);if(0>a||255<a)throw new Sk.builtin.ValueError("byte must be in range(0, 256)");return-1!==this.v.indexOf(a)}if(!(a instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not "+Sk.abstr.typeName(a));if(0===a.v.byteLength)return!0;if(1===a.v.byteLength)return-1!==this.v.indexOf(a.v[0]);for(var c=0;c<this.v.byteLength;){c=this.v.indexOf(a.v[0],c);if(-1===c)break;let b=!0;for(let d=0;d<a.v.byteLength;d++)if(this.v[c+d]!==a.v[d]){b=!1;break}if(b)return!0;
347
c+=1}return!1};Sk.builtin.bytes.prototype.nb$remainder=Sk.builtin.str.prototype.nb$remainder;Sk.builtin.bytes.$decode=function(a,c,d){var f;Sk.builtin.pyCheckArgsLen("decode",arguments.length-1,0,2);if(void 0===c)c="utf-8";else if(c instanceof Sk.builtin.str)c=c.v;else throw new Sk.builtin.TypeError("decode() argument 1 must be str, not "+Sk.abstr.typeName(c));c=b(c);if(void 0===d)d="strict";else if(d instanceof Sk.builtin.str)d=d.v;else throw new Sk.builtin.TypeError("decode() argument 2 must be str, not "+
348
Sk.abstr.typeName(d));if("strict"!==d&&"ignore"!==d&&"replace"!==d)throw new Sk.builtin.NotImplementedError("'"+d+"' error handling not implemented in Skulpt");if("ascii"!==c&&"utf-8"!==c)throw new Sk.builtin.LookupError("unknown encoding: "+c.v);if("ascii"===c){var e="";for(f=0;f<a.v.byteLength;f++){var g=a.v[f];if(127<g){if("strict"===d)throw g=g.toString(16),new Sk.builtin.UnicodeDecodeError("'ascii' codec can't decode byte 0x"+g+" in position "+f.toString()+": ordinal not in range(128)");"replace"===
349
d&&(e+=String.fromCharCode(65533))}else e+=String.fromCharCode(g)}}else{g=q.decode(a.v);if("replace"===d)return new Sk.builtin.str(g);e="";for(f in g)if(65533===g[f].charCodeAt(0)){if("strict"===d)throw g=a.v[f],g=g.toString(16),new Sk.builtin.UnicodeDecodeError("'utf-8' codec can't decode byte 0x"+g+" in position "+f.toString()+": invalid start byte");}else e+=g[f]}return new Sk.builtin.str(e)};Sk.builtin.bytes.prototype.decode=new Sk.builtin.func(Sk.builtin.bytes.$decode);Sk.builtin.bytes.prototype.fromhex=
350
new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("fromhex",arguments.length,1,1);if(!(a instanceof Sk.builtin.str))throw new Sk.builtin.TypeError("fromhex() argument must be str, not "+Sk.abstr.typeName(a));var b=[];var d=function(a){return"0123456789abcdefABCDEF".includes(a)?!0:!1};var f=function(a){a=a.charCodeAt(0);return 9===a||10===a||11===a||12===a||13===a||32===a||133===a?!0:!1};for(c=0;c<a.v.length;){var e=a.v.charAt(c);if(d(e))if(c+1<a.v.length)if(d(a.v.charAt(c+1)))e=a.v.slice(c,
351
c+2),e=parseInt(e,16),b.push(e),c+=2;else throw new Sk.builtin.ValueError("non-hexadecimal number found in fromhex() arg at position "+(c+1).toString());else throw new Sk.builtin.ValueError("non-hexadecimal number found in fromhex() arg at position "+c.toString());else if(f(e))c++;else throw new Sk.builtin.ValueError("non-hexadecimal number found in fromhex() arg at position "+c.toString());}return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.hex=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("hex",
352
arguments.length-1,0,0);var b="";for(c=0;c<a.v.byteLength;c++){var d=a.v[c];d=d.toString(16);1===d.length&&(d="0"+d);b+=d}return new Sk.builtin.str(b)});Sk.builtin.bytes.prototype.count=new Sk.builtin.func(function(a,c,b,d){var e;Sk.builtin.pyCheckArgsLen("count",arguments.length-1,1,3);({start:b,end:d}=f(a,b,d));var g=0;if(c instanceof Sk.builtin.int_)for(e=b;e<d;e++)a.v[e]===c.v&&g++;else if(c instanceof Sk.builtin.bytes)for(e=c.v.byteLength;b<d;){const f=a.find$left(c,b,d);if(-1===f)break;g++;
353
b=f+e}else throw new Sk.builtin.TypeError("argument should be integer or bytes-like object, not '"+Sk.abstr.typeName(c)+"'");return new Sk.builtin.int_(g)});Sk.builtin.bytes.prototype.endswith=new Sk.builtin.func(function(a,c,b,d){function e(c){const f=c.v.byteLength;if(d-b>=f){for(let b=d-f,e=0;b<d;b++,e++)if(a.v[b]!==c.v[e])return!1;return!0}return!1}Sk.builtin.pyCheckArgsLen("endswith",arguments.length-1,1,3);if(!(c instanceof Sk.builtin.bytes||c instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("endswith first arg must be bytes or a tuple of bytes, not "+
354
Sk.abstr.typeName(c));({start:b,end:d}=f(a,b,d));if(d<b)return Sk.builtin.bool.false$;if(c instanceof Sk.builtin.tuple){for(let a=Sk.abstr.iter(c),b=a.tp$iternext();void 0!==b;b=a.tp$iternext()){if(!(b instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(b)+"'");if(e(b))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return e(c)?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.bytes.prototype.find$left=function(a,
355
c,b){let d=-1;({start:c,end:b}=f(this,c,b));if(a instanceof Sk.builtin.int_)for(var e=c;e<b;e++){if(this.v[e]===a.v){d=e;break}}else if(a instanceof Sk.builtin.bytes)for(e=a.v.byteLength;c<b-e+1;c++){let b=!0;for(let d=c,f=0;f<e;d++,f++)if(this.v[d]!==a.v[f]){b=!1;break}if(b){d=c;break}}else throw new Sk.builtin.TypeError("argument should be integer or bytes-like object, not '"+Sk.abstr.typeName(a)+"'");return d};Sk.builtin.bytes.prototype.find$right=function(a,c,b){let d=-1;({start:c,end:b}=f(this,
356
c,b));if(a instanceof Sk.builtin.int_)for(var e=b-1;e>=c;e--){if(this.v[e]===a.v){d=e;break}}else if(a instanceof Sk.builtin.bytes)for(e=a.v.byteLength,b-=e;b>=c;b--){let c=!0;for(let d=b,f=0;f<e;d++,f++)if(this.v[d]!==a.v[f]){c=!1;break}if(c){d=b;break}}else throw new Sk.builtin.TypeError("argument should be integer or bytes-like object, not '"+Sk.abstr.typeName(a)+"'");return d};Sk.builtin.bytes.prototype.find=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("find",arguments.length-
357
1,1,3);return Sk.builtin.int_(a.find$left(c,b,d))});Sk.builtin.bytes.prototype.index=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("index",arguments.length-1,1,3);var f=a.find$left(c,b,d);if(-1===f)throw new Sk.builtin.ValueError("subsection not found");return Sk.builtin.int_(f)});Sk.builtin.bytes.prototype.join=new Sk.builtin.func(function(a,c){var b,d;Sk.builtin.pyCheckArgsLen("join",arguments.length-1,1,1);if(!Sk.builtin.checkIterable(c))throw Sk.builtin.TypeError("can only join an iterable");
358
var f=[];var e=[];for(b=0;b<a.v.byteLength;b++)e.push(a.v[b]);b=0;var g=Sk.abstr.iter(c);for(d=g.tp$iternext();void 0!==d;d=g.tp$iternext()){if(!(d instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("sequence item "+b.toString()+": expected a bytes-like object, "+Sk.abstr.typeName(d)+" found");0<f.length&&(f=f.concat(e));for(b=0;b<d.v.byteLength;b++)f.push(d.v[b]);b++}return new Sk.builtin.bytes(f)});Sk.builtin.bytes.prototype.maketrans=new Sk.builtin.func(function(){throw new Sk.builtin.NotImplementedError("maketrans() bytes method not implemented in Skulpt");
359
});Sk.builtin.bytes.prototype.partition=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("partition",arguments.length-1,1,1);if(!(c instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(c)+"'");var b=a.find$left(c);if(-1===b){var d=a;var f=new Sk.builtin.bytes(0);b=new Sk.builtin.bytes(0)}else d=new Sk.builtin.bytes(a.v.subarray(0,b)),f=new Sk.builtin.bytes(a.v.subarray(b,b+c.v.byteLength)),b=new Sk.builtin.bytes(a.v.subarray(b+
360
c.v.byteLength,a.v.byteLength));return new Sk.builtin.tuple([d,f,b])});Sk.builtin.bytes.prototype.replace=new Sk.builtin.func(function(a,c,b,d){var f,e;Sk.builtin.pyCheckArgsLen("replace",arguments.length-1,2,3);if(!(c instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(c)+"'");if(!(b instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(b)+"'");if(void 0===d)d=-1;else if(d instanceof
361
Sk.builtin.int_)d=d.v;else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(d)+"' object cannot be interpreted as an integer");var g=[];var h=[];for(f=0;f<b.v.byteLength;f++)h.push(b.v[f]);var k=c.v.byteLength;for(e=f=0;f<a.v.byteLength&&(-1===d||e<d);){const b=a.find$left(c,f,a.v.byteLength);if(-1===b)break;for(;f<b;f++)g.push(a.v[f]);g=g.concat(h);f=b+k;e++}for(k=f;k<a.v.byteLength;k++)g.push(a.v[k]);return new Sk.builtin.bytes(g)});Sk.builtin.bytes.prototype.rfind=new Sk.builtin.func(function(a,
362
c,b,d){Sk.builtin.pyCheckArgsLen("rfind",arguments.length-1,1,3);return Sk.builtin.int_(a.find$right(c,b,d))});Sk.builtin.bytes.prototype.rindex=new Sk.builtin.func(function(a,c,b,d){Sk.builtin.pyCheckArgsLen("rindex",arguments.length-1,1,3);var f=a.find$right(c,b,d);if(-1===f)throw new Sk.builtin.ValueError("subsection not found");return Sk.builtin.int_(f)});Sk.builtin.bytes.prototype.rpartition=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("rpartition",arguments.length-1,1,1);if(!(c instanceof
363
Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(c)+"'");var b=a.find$right(c);if(-1===b){var d=new Sk.builtin.bytes(0);var f=new Sk.builtin.bytes(0);return new Sk.builtin.tuple([d,f,a])}d=new Sk.builtin.bytes(a.v.subarray(0,b));f=new Sk.builtin.bytes(a.v.subarray(b,b+c.v.byteLength));b=new Sk.builtin.bytes(a.v.subarray(b+c.v.byteLength,a.v.byteLength));return new Sk.builtin.tuple([d,f,b])});Sk.builtin.bytes.prototype.startswith=new Sk.builtin.func(function(a,
364
c,b,d){function e(c){const f=c.v.byteLength;if(b+f<=d){for(let d=b,e=0;e<f;d++,e++)if(a.v[d]!==c.v[e])return!1;return!0}return!1}Sk.builtin.pyCheckArgsLen("startswith",arguments.length-1,1,3);if(!(c instanceof Sk.builtin.bytes||c instanceof Sk.builtin.tuple))throw new Sk.builtin.TypeError("startswith first arg must be bytes or a tuple of bytes, not "+Sk.abstr.typeName(c));({start:b,end:d}=f(a,b,d));if(d<b)return Sk.builtin.bool.false$;if(c instanceof Sk.builtin.tuple){for(let a=Sk.abstr.iter(c),b=
365
a.tp$iternext();void 0!==b;b=a.tp$iternext()){if(!(b instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(b)+"'");if(e(b))return Sk.builtin.bool.true$}return Sk.builtin.bool.false$}return e(c)?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.bytes.prototype.translate=new Sk.builtin.func(function(){throw new Sk.builtin.NotImplementedError("translate() bytes method not implemented in Skulpt");});Sk.builtin.bytes.prototype.center=
366
new Sk.builtin.func(function(a,c,b){Sk.builtin.pyCheckArgsLen("center",arguments.length-1,1,2);if(void 0===b)b=32;else if(b instanceof Sk.builtin.bytes&&1==b.v.byteLength)b=b.v[0];else throw new Sk.builtin.TypeError("center() argument 2 must be a byte string of length 1, not "+Sk.abstr.typeName(b));if(c instanceof Sk.builtin.int_)c=c.v;else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object cannot be interpreted as an integer");if(c<=a.v.byteLength)return a;var d=[];var f=c-a.v.byteLength;
367
if(f%2){var e=f/2-.5;var g=f/2+.5}else g=e=f/2;for(f=0;f<e;f++)d.push(b);for(f=0;f<a.v.byteLength;f++)d.push(a.v[f]);for(f=0;f<g;f++)d.push(b);return new Sk.builtin.bytes(d)});Sk.builtin.bytes.prototype.ljust=new Sk.builtin.func(function(a,c,b){var d;Sk.builtin.pyCheckArgsLen("ljust",arguments.length-1,1,2);if(void 0===b)b=32;else if(b instanceof Sk.builtin.bytes&&1==b.v.byteLength)b=b.v[0];else throw new Sk.builtin.TypeError("ljust() argument 2 must be a byte string of length 1, not "+Sk.abstr.typeName(b));
368
if(c instanceof Sk.builtin.int_)c=c.v;else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object cannot be interpreted as an integer");if(c<=a.v.byteLength)return a;var f=[];for(d=0;d<a.v.byteLength;d++)f.push(a.v[d]);for(d=0;d<c-a.v.byteLength;d++)f.push(b);return new Sk.builtin.bytes(f)});Sk.builtin.bytes.prototype.left$strip=function(a){var c;if(void 0===a||a===Sk.builtin.none.none$)var b=[9,10,11,12,13,32,133];else if(a instanceof Sk.builtin.bytes)for(b=[],c=0;c<a.v.byteLength;c++)b.push(a.v[c]);
369
else throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(a)+"'");a=[];for(c=0;c<this.v.byteLength;)if(b.includes(this.v[c]))c++;else break;for(b=c;b<this.v.byteLength;b++)a.push(this.v[b]);return new Sk.builtin.bytes(a)};Sk.builtin.bytes.prototype.lstrip=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("lstrip",arguments.length-1,0,1);return a.left$strip(c)});Sk.builtin.bytes.prototype.rjust=new Sk.builtin.func(function(a,c,b){var d;Sk.builtin.pyCheckArgsLen("rjust",
370
arguments.length-1,1,2);if(void 0===b)b=32;else if(b instanceof Sk.builtin.bytes&&1==b.v.byteLength)b=b.v[0];else throw new Sk.builtin.TypeError("rjust() argument 2 must be a byte string of length 1, not "+Sk.abstr.typeName(b));if(c instanceof Sk.builtin.int_)c=c.v;else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object cannot be interpreted as an integer");if(c<=a.v.byteLength)return a;var f=[];for(d=0;d<c-a.v.byteLength;d++)f.push(b);for(d=0;d<a.v.byteLength;d++)f.push(a.v[d]);return new Sk.builtin.bytes(f)});
371
Sk.builtin.bytes.prototype.rsplit=new Sk.builtin.func(function(a,c,b){Sk.builtin.pyCheckArgsLen("rsplit",arguments.length,1,3);if(void 0===c||c===Sk.builtin.none.none$)c=null;if(null!==c&&!(c instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("expected bytes");if(null!==c&&0==c.v.byteLength)throw new Sk.builtin.ValueError("empty separator");if(void 0!==b&&!Sk.builtin.checkInt(b))throw new Sk.builtin.TypeError("an integer is required");b=void 0===b?-1:Sk.builtin.asnum$(b);let d=[],f=0;if(c){for(var e=
372
a.v.byteLength;0<=e;){var g=a.find$right(c,0,e);if(-1===g)break;d.push(new Sk.builtin.bytes(a.v.subarray(g+c.v.byteLength,e)));e=g;f++;if(-1<b&&f>=b)break}d.push(new Sk.builtin.bytes(a.v.subarray(0,e)))}else{for(e=a.v.byteLength-1;-1===b||f<b;){for(;0<=e&&k(a.v[e]);)e--;if(0>e)break;g=e+1;for(e--;0<=e&&!k(a.v[e]);)e--;d.push(new Sk.builtin.bytes(a.v.subarray(e+1,g)));f++}if(0<=e){for(;0<=e&&k(a.v[e]);)e--;0<=e&&d.push(new Sk.builtin.bytes(a.v.subarray(0,e+1)))}}return new Sk.builtin.list(d.reverse())});
373
Sk.builtin.bytes.prototype.right$strip=function(a){var c;if(void 0===a||a===Sk.builtin.none.none$)var b=[9,10,11,12,13,32,133];else if(a instanceof Sk.builtin.bytes)for(b=[],c=0;c<a.v.byteLength;c++)b.push(a.v[c]);else throw new Sk.builtin.TypeError("a bytes-like object is required, not '"+Sk.abstr.typeName(a)+"'");a=[];for(c=this.v.byteLength-1;-1<c;)if(b.includes(this.v[c]))c--;else break;for(b=0;b<=c;b++)a.push(this.v[b]);return new Sk.builtin.bytes(a)};Sk.builtin.bytes.prototype.rstrip=new Sk.builtin.func(function(a,
374
c){Sk.builtin.pyCheckArgsLen("rstrip",arguments.length-1,0,1);return a.right$strip(c)});Sk.builtin.bytes.prototype.split=new Sk.builtin.func(function(a,c,b){Sk.builtin.pyCheckArgsLen("split",arguments.length,1,3);if(void 0===c||c===Sk.builtin.none.none$)c=null;if(null!==c&&!(c instanceof Sk.builtin.bytes))throw new Sk.builtin.TypeError("expected bytes");if(null!==c&&0==c.v.byteLength)throw new Sk.builtin.ValueError("empty separator");if(void 0!==b&&!Sk.builtin.checkInt(b))throw new Sk.builtin.TypeError("an integer is required");
375
b=void 0===b?-1:Sk.builtin.asnum$(b);let d=[],f=0,e=0;if(c){for(;e<a.v.byteLength;){var g=a.find$left(c,e);if(-1===g)break;d.push(new Sk.builtin.bytes(a.v.subarray(e,g)));e=g+c.v.byteLength;f++;if(-1<b&&f>=b)break}d.push(new Sk.builtin.bytes(a.v.subarray(e,a.v.byteLength)))}else{g=0;let c=a.v.byteLength;for(;-1===b||f<b;){for(;g<c&&k(a.v[g]);)g++;if(g==c)break;e=g;for(g++;g<c&&!k(a.v[g]);)g++;d.push(new Sk.builtin.bytes(a.v.subarray(e,g)));f++}if(g<c){for(;g<c&&k(a.v[g]);)g++;g<c&&d.push(new Sk.builtin.bytes(a.v.subarray(g,
376
c)))}}return new Sk.builtin.list(d)});Sk.builtin.bytes.prototype.strip=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("strip",arguments.length-1,0,1);return a.left$strip(c).right$strip(c)});Sk.builtin.bytes.prototype.capitalize=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("capitalize",arguments.length-1,0,0);if(0===a.v.byteLength)return new Sk.builtin.bytes(0);var b=[];var d=97<=a.v[0]&&122>=a.v[0]?a.v[0]-32:a.v[0];b.push(d);for(c=1;c<a.v.byteLength;c++)d=a.v[c],65<=
377
d&&90>=d&&(d+=32),b.push(d);return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.expandtabs=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("expandtabs",arguments.length,1,2);if(void 0!==c&&!Sk.builtin.checkInt(c))throw new Sk.builtin.TypeError("integer argument exepected, got "+Sk.abstr.typeName(c));c=void 0===c?8:Sk.builtin.asnum$(c);let b=[],d=0;for(let f=0;f<a.v.byteLength;f++)if(9===a.v[f]){let a=c-d%c;b=b.concat(Array(a).fill(32));d+=a}else 10===a.v[f]||13===a.v[f]?(b.push(a.v[f]),
378
d=0):(b.push(a.v[f]),d++);return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.isalnum=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("isalnum",arguments.length-1,0,0);if(0===a.v.byteLength)return Sk.builtin.bool.false$;for(c=0;c<a.v.byteLength;c++){var b=a.v[c];if(!(48<=b&&57>=b||65<=b&&90>=b||97<=b&&122>=b))return Sk.builtin.bool.false$}return Sk.builtin.bool.true$});Sk.builtin.bytes.prototype.isalpha=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("isalpha",
379
arguments.length-1,0,0);if(0===a.v.byteLength)return Sk.builtin.bool.false$;for(c=0;c<a.v.byteLength;c++){var b=a.v[c];if(!(65<=b&&90>=b||97<=b&&122>=b))return Sk.builtin.bool.false$}return Sk.builtin.bool.true$});Sk.builtin.bytes.prototype.isascii=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("isascii",arguments.length-1,0,0);for(c=0;c<a.v.byteLength;c++){var b=a.v[c];if(!(0<=b&&128>b))return Sk.builtin.bool.false$}return Sk.builtin.bool.true$});Sk.builtin.bytes.prototype.isdigit=
380
new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("isdigit",arguments.length-1,0,0);if(0===a.v.byteLength)return Sk.builtin.bool.false$;for(c=0;c<a.v.byteLength;c++){var b=a.v[c];if(!(48<=b&&58>b))return Sk.builtin.bool.false$}return Sk.builtin.bool.true$});Sk.builtin.bytes.prototype.islower=new Sk.builtin.func(function(a){var c,b;Sk.builtin.pyCheckArgsLen("islower",arguments.length-1,0,0);for(c=0;c<a.v.byteLength;c++){var d=a.v[c];if(65<=d&&90>=d)return Sk.builtin.bool.false$;!b&&97<=
381
d&&122>=d&&(b=!0)}return b?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.bytes.prototype.isspace=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("isspace",arguments.length-1,0,0);if(0===a.v.byteLength)return Sk.builtin.bool.false$;for(c=0;c<a.v.byteLength;c++){var b=a.v[c];if(32!==b&&9!==b&&10!==b&&13!==b&&11!==b&&12!==b)return Sk.builtin.bool.false$}return Sk.builtin.bool.true$});Sk.builtin.bytes.prototype.istitle=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("istitle",
382
arguments.length-1,0,0);if(0===a.v.byteLength)return Sk.builtin.bool.false$;let c=!1,b=!1;for(let d=0;d<a.v.byteLength;d++){const f=a.v[d];if(65<=f&&90>=f){if(c)return Sk.builtin.bool.false$;b=c=!0}else if(97<=f&&122>=f){if(!c)return Sk.builtin.bool.false$;b=!0}else c=!1}return b?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.bytes.prototype.isupper=new Sk.builtin.func(function(a){var c,b;Sk.builtin.pyCheckArgsLen("isupper",arguments.length-1,0,0);for(c=0;c<a.v.byteLength;c++){var d=a.v[c];
383
!b&&65<=d&&90>=d&&(b=!0);if(97<=d&&122>=d)return Sk.builtin.bool.false$}return b?Sk.builtin.bool.true$:Sk.builtin.bool.false$});Sk.builtin.bytes.prototype.lower=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("lower",arguments.length-1,0,0);var b=[];for(c=0;c<a.v.byteLength;c++){var d=a.v[c];65<=d&&90>=d&&(d+=32);b.push(d)}return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.splitlines=new Sk.builtin.func(function(a,c){Sk.builtin.pyCheckArgsLen("splitlines",arguments.length,
384
1,2);if(void 0!==c&&!Sk.builtin.checkBool(c))throw new Sk.builtin.TypeError("boolean argument expected, got "+Sk.abstr.typeName(c));c=void 0===c?!1:c.v;let b=[],d=0;let f=0;for(;f<a.v.byteLength;){var e=a.v[f];if(13===e){let g=!1;f<a.v.byteLength-1&&10===a.v[f+1]&&(g=!0);e=c?g?f+2:f+1:f;b.push(new Sk.builtin.bytes(a.v.subarray(d,e)));f=d=g?f+2:f+1}else 10===e?(e=c?f+1:f,b.push(new Sk.builtin.bytes(a.v.subarray(d,e))),f=d=f+1):f++}d<a.v.byteLength&&b.push(new Sk.builtin.bytes(a.v.subarray(d,a.v.byteLength)));
385
return new Sk.builtin.list(b)});Sk.builtin.bytes.prototype.swapcase=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("swapcase",arguments.length-1,0,0);var b=[];for(c=0;c<a.v.byteLength;c++){var d=a.v[c];65<=d&&90>=d?d+=32:97<=d&&122>=d&&(d-=32);b.push(d)}return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.title=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("title",arguments.length-1,0,0);if(0===a.v.byteLength)return new Sk.builtin.bytes(0);let c=[],b=!1;for(let d=
386
0;d<a.v.byteLength;d++){const f=a.v[d];65<=f&&90>=f?b?c.push(f+32):(b=!0,c.push(f)):97<=f&&122>=f?b?c.push(f):(b=!0,c.push(f-32)):(b=!1,c.push(f))}return new Sk.builtin.bytes(c)});Sk.builtin.bytes.prototype.upper=new Sk.builtin.func(function(a){var c;Sk.builtin.pyCheckArgsLen("upper",arguments.length-1,0,0);var b=[];for(c=0;c<a.v.byteLength;c++){var d=a.v[c];97<=d&&122>=d&&(d-=32);b.push(d)}return new Sk.builtin.bytes(b)});Sk.builtin.bytes.prototype.zfill=new Sk.builtin.func(function(a,c){var b;Sk.builtin.pyCheckArgsLen("zfill",
387
arguments.length-1,1,1);if(!(c instanceof Sk.builtin.int_))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object cannot be interpreted as an integer");if(c.v<=a.v.byteLength)return a;var d=[];var f=c.v-a.v.byteLength;if(43===a.v[0]||45===a.v[0]){var e=a.v[0];d.push(e);for(b=0;b<f;b++)d.push(48);b=1}else{for(b=0;b<f;b++)d.push(48);b=0}for(;b<a.v.byteLength;b++)e=a.v[b],d.push(e);return new Sk.builtin.bytes(d)});Sk.builtin.bytes.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",
388
arguments.length,0,0,!0,!1);return new Sk.builtin.bytes_iter_(a)});Sk.builtin.bytes.prototype.tp$iter=function(){return new Sk.builtin.bytes_iter_(this)};Sk.builtin.bytes_iter_=function(a){if(!(this instanceof Sk.builtin.bytes_iter_))return new Sk.builtin.bytes_iter_(a);this.$index=0;this.sq$length=a.v.byteLength;this.tp$iter=()=>this;this.tp$iternext=function(){if(!(this.$index>=this.sq$length))return new Sk.builtin.int_(a.v[this.$index++])};this.$r=function(){return new Sk.builtin.str("bytesiterator")};
389
return this};Sk.abstr.setUpInheritance("bytesiterator",Sk.builtin.bytes_iter_,Sk.builtin.object);Sk.builtin.bytes_iter_.prototype.__class__=Sk.builtin.bytes_iter_;Sk.builtin.bytes_iter_.prototype.__iter__=new Sk.builtin.func(function(a){return a});Sk.builtin.bytes_iter_.prototype.next$=function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a};Sk.exportSymbol("Sk.builtin.bytes",Sk.builtin.bytes)},function(m,p,a){(function(a){(function(a){function c(){}function b(){}var h=
390
String.fromCharCode,g={}.toString,f=g.call(a.SharedArrayBuffer),k=g(),n=a.Uint8Array,l=n||Array,q=n?ArrayBuffer:l,m=q.isView||function(a){return a&&"length"in a},z=g.call(q.prototype);q=b.prototype;var p=a.TextEncoder,t=new (n?Uint16Array:l)(32);c.prototype.decode=function(a){if(!m(a)){var c=g.call(a);if(c!==z&&c!==f&&c!==k)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");a=n?new l(a):a||[]}for(var b=c="",d=0,e=a.length|
391
0,q=e-32|0,u,p,y=0,H=0,S,R=0,V=-1;d<e;){for(u=d<=q?32:e-d|0;R<u;d=d+1|0,R=R+1|0){p=a[d]&255;switch(p>>4){case 15:S=a[d=d+1|0]&255;if(2!==S>>6||247<p){d=d-1|0;break}y=(p&7)<<6|S&63;H=5;p=256;case 14:S=a[d=d+1|0]&255,y<<=6,y|=(p&15)<<6|S&63,H=2===S>>6?H+4|0:24,p=p+256&768;case 13:case 12:S=a[d=d+1|0]&255,y<<=6,y|=(p&31)<<6|S&63,H=H+7|0,d<e&&2===S>>6&&y>>H&&1114112>y?(p=y,y=y-65536|0,0<=y&&(V=(y>>10)+55296|0,p=(y&1023)+56320|0,31>R?(t[R]=V,R=R+1|0,V=-1):(S=V,V=p,p=S))):(p>>=8,d=d-p-1|0,p=65533),y=H=
392
0,u=d<=q?32:e-d|0;default:t[R]=p;continue;case 11:case 10:case 9:case 8:}t[R]=65533}b+=h(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30],t[31]);32>R&&(b=b.slice(0,R-32|0));if(d<e){if(t[0]=V,R=~V>>>31,V=-1,b.length<c.length)continue}else-1!==V&&(b+=h(V));c+=b;b=""}return c};q.encode=function(a){a=void 0===a?"":""+a;var c=a.length|0,b=new l((c<<1)+8|0),d,f=0,e=!n;for(d=0;d<
393
c;d=d+1|0,f=f+1|0){var g=a.charCodeAt(d)|0;if(127>=g)b[f]=g;else{if(2047>=g)b[f]=192|g>>6;else{a:{if(55296<=g)if(56319>=g){var h=a.charCodeAt(d=d+1|0)|0;if(56320<=h&&57343>=h){g=(g<<10)+h-56613888|0;if(65535<g){b[f]=240|g>>18;b[f=f+1|0]=128|g>>12&63;b[f=f+1|0]=128|g>>6&63;b[f=f+1|0]=128|g&63;continue}break a}g=65533}else 57343>=g&&(g=65533);!e&&d<<1<f&&d<<1<(f-7|0)&&(e=!0,h=new l(3*c),h.set(b),b=h)}b[f]=224|g>>12;b[f=f+1|0]=128|g>>6&63}b[f=f+1|0]=128|g&63}}return n?b.subarray(0,f):b.slice(0,f)};p||
394
(a.TextDecoder=c,a.TextEncoder=b)})("undefined"==typeof a?"undefined"==typeof self?this:self:a)}).call(this,a(0))},function(m,p){const a=/^(?:(.)?([<>=\^]))?([\+\-\s])?(#)?(0)?(\d+)?(,)?(?:\.(\d+))?([bcdeEfFgGnosxX%])?$/;Sk.formatting={};let b=function(a,c,b,d){Sk.asserts.assert("string"===typeof c);if(a[6]){var f=parseInt(a[6],10);d=a[2]||(a[5]?"=":d?">":"<");let e=f-(c.length+(b?b.length:0));if(0>=e)return c;f=(a[1]||(a[5]?"0":" ")).repeat(e);switch(d){case "=":if("s"===a[9])throw new Sk.builtin.ValueError("'=' alignment not allowed in string format specifier");
395
return b+f+c;case ">":return f+b+c;case "<":return b+c+f;case "^":return a=Math.floor(e/2),f.substring(0,a)+b+c+f.substring(a)}}return b+c},c=function(a,c){return c?"-":"+"===a[3]?"+":" "===a[3]?" ":""},d=function(a,d,f){Sk.asserts.assert(d instanceof Sk.builtin.int_||d instanceof Sk.builtin.lng);if(a[8])throw new Sk.builtin.ValueError("Precision not allowed in integer format");let e=d.str$(f,!1);d=d.nb$isnegative();d=c(a,d);a[4]&&(16===f?d+="0x":8===f?d+="0o":2===f&&(d+="0b"));"X"===a[9]&&(e=e.toUpperCase());
396
"n"===a[9]?e=(+e).toLocaleString():a[7]&&(f=e.toString().split("."),f[0]=f[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e=f.join("."));return b(a,e,d,!0)},e=function(e,g,f){if(!g)return e.str$(10,!0);g=g.match(a);if(!g)throw new Sk.builtin.ValueError("Invalid format specifier");var k=g[9];k||(k=f?"g":"d");if(-1==(f?"fFeEgG%":"bcdoxXnfFeEgG%").indexOf(k))throw new Sk.builtin.ValueError("Unknown format code '"+g[9]+"' for object of type '"+Sk.abstr.typeName(e)+"'");switch(k){case "d":case "n":return d(g,
397
e,10);case "x":case "X":return d(g,e,16);case "o":return d(g,e,8);case "b":return d(g,e,2);case "c":if(g[3])throw new Sk.builtin.ValueError("Sign not allowed with integer format specifier 'c'");if(g[4])throw new Sk.builtin.ValueError("Alternate form not allowed with integer format specifier 'c'");if(g[7])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");if(g[8])throw new Sk.builtin.ValueError("Cannot specify ',' with 'c'");return b(g,String.fromCodePoint(Sk.builtin.asnum$(e)),"",!0);
398
case "f":case "F":case "e":case "E":case "g":case "G":{if(g[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed in float format specifier");f=Sk.builtin.asnum$(e);"string"===typeof f&&(f=Number(f));if(Infinity===f)return b(g,"inf","",!0);if(-Infinity===f)return b(g,"inf","-",!0);if(isNaN(f))return b(g,"nan","",!0);e=!1;0>f&&(f=-f,e=!0);let a=["toExponential","toFixed","toPrecision"]["efg".indexOf(k.toLowerCase())],d=g[8]?parseInt(g[8],10):6;f=f[a](d);-1!=="EFG".indexOf(k)&&(f=f.toUpperCase());
399
if("g"===k.toLowerCase()||!g[9]){if(k=f.match(/\.(\d*[1-9])?(0+)$/)){let [,a,c]=k;f=f.slice(0,a?-c.length:-(c.length+1))}-1!=f.indexOf(".")||g[9]||(f+=".0")}g[7]&&(k=f.toString().split("."),k[0]=k[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),f=k.join("."));return b(g,f,c(g,e),!0)}case "%":if(g[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed with format specifier '%'");e=Sk.builtin.asnum$(e);"string"===typeof e&&(e=Number(e));if(Infinity===e)return b(g,"inf%","",!0);if(-Infinity===e)return b(g,
400
"inf%","-",!0);if(isNaN(e))return b(g,"nan%","",!0);k=!1;0>e&&(e=-e,k=!0);f=g[8]?parseInt(g[8],10):6;e=(100*e).toFixed(f)+"%";return b(g,e,c(g,k),!0);default:throw new Sk.builtin.ValueError("Unknown format code '"+g[9]+"'");}};Sk.formatting.mkNumber__format__=a=>new Sk.builtin.func(function(c,b){Sk.builtin.pyCheckArgsLen("__format__",arguments.length,2,2);if(!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+Sk.abstr.typeName(b));return new Sk.builtin.str(e(c,
401
b.$jsstr(),a))});m=function(a){var c={};Sk.builtin.pyCheckArgsLen("format",arguments.length,0,Infinity,!0,!0);var b=new Sk.builtins.tuple(Array.prototype.slice.call(arguments,1));var d=new Sk.builtins.dict(a);if(void 0===arguments[1])return b.v;var e=0;if(0!==d.size){let a,b,f;a=d.tp$iter();for(b=a.tp$iternext();void 0!==b;b=a.tp$iternext())f=d.mp$lookup(b),c[b.v]=f}for(var h in b.v)"0"!==h&&(c[h-1]=b.v[h]);b=b.v[0].v.replace(/{(((?:\d+)|(?:\w+))?((?:\.(\w+))|(?:\[((?:\d+)|(?:\w+))\])?))?(?:!([rs]))?(?::([^}]*))?}/g,
402
function(a,b,d,f,g,h,k,l,n,m){let q;if(void 0!==h&&""!==h)a=c[d],q=a.constructor===Array?a[h]:/^\d+$/.test(h)?Sk.abstr.objectGetItem(a,new Sk.builtin.int_(parseInt(h,10)),!1):Sk.abstr.objectGetItem(a,new Sk.builtin.str(h),!1),e++;else if(void 0!==g&&""!==g)q=Sk.abstr.gattr(c[d||e++],new Sk.builtin.str(g));else if(void 0!==d&&""!==d)q=c[d];else if(void 0===b||""===b)q=c[e],e++;else if(b instanceof Sk.builtin.int_||b instanceof Sk.builtin.float_||b instanceof Sk.builtin.lng||/^\d+$/.test(b))q=c[b],
403
e++;if("s"===k)q=new Sk.builtin.str(q);else if("r"===k)q=Sk.builtin.repr(q);else if(""!==k&&void 0!==k)throw new Sk.builtin.ValueError("Unknown conversion specifier "+k);return Sk.abstr.objectFormat(q,new Sk.builtin.str(l)).$jsstr()});return new Sk.builtin.str(b)};m.co_kwargs=!0;Sk.builtin.str.prototype.format=new Sk.builtin.func(m);Sk.builtin.str.prototype.__format__=new Sk.builtin.func(function(c,d){Sk.builtin.pyCheckArgsLen("__format__",arguments.length,2,2);if(!Sk.builtin.checkString(d))throw new Sk.builtin.TypeError("format() argument 2 must be str, not "+
404
Sk.abstr.typeName(d));let f=d.$jsstr().match(a);if(f[9]&&"s"!==f[9])throw new Sk.builtin.ValueError("Unknown format code '"+f[9]+"' for object of type 'str'");if(f[3])throw new Sk.builtin.ValueError("Sign not allowed in string format specifier");if(f[4])throw new Sk.builtin.ValueError("Alternate form (#) not allowed with string format specifier");if(f[7])throw new Sk.builtin.ValueError("Cannot specify ',' with 's'");let e=c.v;f[8]&&(e=e.substring(0,f[8]));return new Sk.builtin.str(b(f,e,"",!1))})},
405
function(m,p){Sk.builtin.tuple=function(a,b){if(!(this instanceof Sk.builtin.tuple))return Sk.builtin.pyCheckArgsLen("tuple",arguments.length,0,1),new Sk.builtin.tuple(a,!0);if(void 0===a)this.v=[];else if(Array.isArray(a))this.v=a;else return Sk.misceval.chain(Sk.misceval.arrayFromIterable(a,b),a=>{this.v=a;return this})};Sk.abstr.setUpInheritance("tuple",Sk.builtin.tuple,Sk.builtin.seqtype);Sk.builtin.tuple.prototype.__class__=Sk.builtin.tuple;Sk.builtin.tuple.prototype.sk$asarray=function(){return this.v.slice(0)};
406
Sk.builtin.tuple.prototype.$r=function(){var a;if(0===this.v.length)return new Sk.builtin.str("()");var b=[];for(a=0;a<this.v.length;++a)b[a]=Sk.misceval.objectRepr(this.v[a]).v;a=b.join(", ");1===this.v.length&&(a+=",");return new Sk.builtin.str("("+a+")")};Sk.builtin.tuple.prototype.mp$subscript=function(a){let b;if(Sk.misceval.isIndex(a)){b=Sk.misceval.asIndex(a);if("number"!==typeof b)throw new Sk.builtin.IndexError("cannot fit '"+Sk.abstr.typeName(a)+"' into an index-sized integer");if(void 0!==
407
b){0>b&&(b=this.v.length+b);if(0>b||b>=this.v.length)throw new Sk.builtin.IndexError("tuple index out of range");return this.v[b]}}else if(a instanceof Sk.builtin.slice){const c=[];a.sssiter$(this.v.length,a=>{c.push(this.v[a])});return new Sk.builtin.tuple(c)}throw new Sk.builtin.TypeError("tuple indices must be integers, not "+Sk.abstr.typeName(a));};Sk.builtin.tuple.prototype.tp$hash=function(){var a,b=1000003,c=3430008,d=this.v.length;for(a=0;a<d;++a){var e=Sk.builtin.hash(this.v[a]).v;if(-1===
408
e)return new Sk.builtin.int_(-1);c=(c^e)*b;b+=82520+d+d}c+=97531;-1===c&&(c=-2);return new Sk.builtin.int_(c|0)};Sk.builtin.tuple.prototype.sq$repeat=function(a){if(!Sk.misceval.isIndex(a))throw new Sk.builtin.TypeError("can't multiply sequence by non-int of type '"+Sk.abstr.typeName(a)+"'");var b=Sk.misceval.asIndex(a);if("number"!==typeof b)throw new Sk.builtin.OverflowError("cannot fit '"+Sk.abstr.typeName(a)+"' into an index-sized integer");var c=[];for(a=0;a<b;++a)c.push.apply(c,this.v);return new Sk.builtin.tuple(c)};
409
Sk.builtin.tuple.prototype.nb$multiply=Sk.builtin.tuple.prototype.sq$repeat;Sk.builtin.tuple.prototype.nb$inplace_multiply=Sk.builtin.tuple.prototype.sq$repeat;Sk.builtin.tuple.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,1,1);return new Sk.builtin.tuple_iter_(a)});Sk.builtin.tuple.prototype.tp$iter=function(){return new Sk.builtin.tuple_iter_(this)};Sk.builtin.tuple.prototype.tp$richcompare=function(a,b){var c;if(!a.__class__||!Sk.misceval.isTrue(Sk.builtin.isinstance(a,
410
Sk.builtin.tuple)))return"Eq"===b?!1:"NotEq"===b?!0:Sk.__future__.python3?Sk.builtin.NotImplemented.NotImplemented$:!1;var d=this.v;a=a.v;var e=d.length;var h=a.length;for(c=0;c<e&&c<h;++c){var g=Sk.misceval.richCompareBool(d[c],a[c],"Eq");if(!g)break}if(c>=e||c>=h)switch(b){case "Lt":return e<h;case "LtE":return e<=h;case "Eq":return e===h;case "NotEq":return e!==h;case "Gt":return e>h;case "GtE":return e>=h;default:Sk.asserts.fail()}return"Eq"===b?!1:"NotEq"===b?!0:Sk.misceval.richCompareBool(d[c],
411
a[c],b)};Sk.builtin.tuple.prototype.sq$concat=function(a){if(a.__class__!=Sk.builtin.tuple)throw a='can only concatenate tuple (not "'+(Sk.abstr.typeName(a)+'") to tuple'),new Sk.builtin.TypeError(a);return new Sk.builtin.tuple(this.v.concat(a.v))};Sk.builtin.tuple.prototype.sq$contains=function(a){var b,c=this.v;for(b=0;b<c.length;b++)if(Sk.misceval.richCompareBool(c[b],a,"Eq"))return!0;return!1};Sk.builtin.tuple.prototype.nb$add=Sk.builtin.tuple.prototype.sq$concat;Sk.builtin.tuple.prototype.nb$inplace_add=
412
Sk.builtin.tuple.prototype.sq$concat;Sk.builtin.tuple.prototype.sq$length=function(){return this.v.length};Sk.builtin.tuple.prototype.index=new Sk.builtin.func(function(a,b){var c=a.v.length,d=a.v;for(a=0;a<c;++a)if(Sk.misceval.richCompareBool(d[a],b,"Eq"))return new Sk.builtin.int_(a);throw new Sk.builtin.ValueError("tuple.index(x): x not in tuple");});Sk.builtin.tuple.prototype.count=new Sk.builtin.func(function(a,b){var c=a.v.length,d=a.v,e=0;for(a=0;a<c;++a)Sk.misceval.richCompareBool(d[a],b,
413
"Eq")&&(e+=1);return new Sk.builtin.int_(e)});Sk.exportSymbol("Sk.builtin.tuple",Sk.builtin.tuple);Sk.builtin.tuple_iter_=function(a){if(!(this instanceof Sk.builtin.tuple_iter_))return new Sk.builtin.tuple_iter_(a);this.$index=0;this.$obj=a.v.slice();this.sq$length=this.$obj.length;this.tp$iter=()=>this;this.tp$iternext=function(){if(!(this.$index>=this.sq$length))return this.$obj[this.$index++]};this.$r=function(){return new Sk.builtin.str("tupleiterator")};return this};Sk.abstr.setUpInheritance("tupleiterator",
414
Sk.builtin.tuple_iter_,Sk.builtin.object);Sk.builtin.tuple_iter_.prototype.__class__=Sk.builtin.tuple_iter_;Sk.builtin.tuple_iter_.prototype.__iter__=new Sk.builtin.func(function(a){return a});Sk.builtin.tuple_iter_.prototype.next$=function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a}},function(m,p){function a(a){let c=a.$savedKeyHash_;return void 0!==c?c:a.ob$type===Sk.builtin.str?(c=a.$jsstr().replace(b,"!$&"),a.$savedKeyHash_=c):"string"===typeof a?a.replace(b,
415
"!$&"):Sk.builtin.hash(a).v}Sk.builtin.dict=function(a){var c,b;if(!(this instanceof Sk.builtin.dict))return new Sk.builtin.dict(a);void 0===a&&(a=[]);this.size=0;this.entries=Object.create(null);this.buckets={};if(Array.isArray(a))for(c=0;c<a.length;c+=2)this.mp$ass_subscript(a[c],a[c+1]);else if(a instanceof Sk.builtin.dict){var h=Sk.abstr.iter(a);for(b=h.tp$iternext();void 0!==b;b=h.tp$iternext())c=a.mp$subscript(b),void 0===c&&(c=null),this.mp$ass_subscript(b,c)}else if(Sk.builtin.checkIterable(a))for(h=
416
Sk.abstr.iter(a),c=h.tp$iternext();void 0!==c;c=h.tp$iternext())if(c.mp$subscript)this.mp$ass_subscript(c.mp$subscript(0),c.mp$subscript(1));else throw new Sk.builtin.TypeError("element "+this.size+" is not a sequence");else throw new Sk.builtin.TypeError("object is not iterable");this.__class__=Sk.builtin.dict;this.tp$call=void 0;return this};Sk.builtin.dict.tp$call=function(a,b){var c;Sk.builtin.pyCheckArgsLen("dict",a,0,1);a=new Sk.builtin.dict(a[0]);if(b)for(c=0;c<b.length;c+=2)a.mp$ass_subscript(new Sk.builtin.str(b[c]),
417
b[c+1]);return a};Sk.abstr.setUpInheritance("dict",Sk.builtin.dict,Sk.builtin.object);Sk.abstr.markUnhashable(Sk.builtin.dict);var b=/^[0-9!#_]/;Sk.builtin.dict.prototype.sk$asarray=function(){return Object.values(this.entries).map(a=>a.lhs)};Sk.builtin.dict.prototype.get$bucket_item=function(a,b){b=this.buckets[b];let c,d;if(void 0!==b)for(let e=0;e<b.length;e++)if(d=b[e],void 0!==d&&(c=d.lhs,c===a||Sk.misceval.richCompareBool(a,c,"Eq")))return d};Sk.builtin.dict.prototype.mp$lookup=function(c){const b=
418
a(c);c="string"===typeof b?this.entries[b]:this.get$bucket_item(c,b);if(void 0!==c)return c.rhs};Sk.builtin.dict.prototype.mp$subscript=function(a){Sk.builtin.pyCheckArgsLen("[]",arguments.length,1,2,!1,!1);var c=this.mp$lookup(a);if(void 0!==c)return c;throw new Sk.builtin.KeyError(a);};Sk.builtin.dict.prototype.sq$contains=function(a){return void 0!==this.mp$lookup(a)};Sk.builtin.dict.prototype.mp$ass_subscript=function(c,b){const d=a(c);let h;"string"===typeof d?(h=this.entries[d],void 0===h?(this.entries[d]=
419
{lhs:c,rhs:b},this.size++):h.rhs=b):(h=this.get$bucket_item(c,d),void 0===h?(this.set$bucket_item(c,b,d),this.size++):h.rhs=b)};Sk.builtin.dict.prototype.set$bucket_item=function(a,b,e){let c=this.buckets[e];a={lhs:a,rhs:b};void 0===c?(this.buckets[e]=[a],e="#"+e+"_0"):(b=c.indexOf(void 0),-1!==b?(e="#"+e+"_"+b,c[b]=a):(e="#"+e+"_"+c.length,c.push(a)));this.entries[e]=a};Sk.builtin.dict.prototype.pop$bucket_item=function(a,b){const c=this.buckets[b];let d,g;if(void 0!==c)for(let f=0;f<c.length;f++)if(g=
420
c[f],void 0!==g&&(d=g.lhs,d===a||Sk.misceval.richCompareBool(a,d,"Eq")))return delete this.entries["#"+b+"_"+f],c[f]=void 0,c.every(a=>void 0===a)&&delete this.buckets[b],g};Sk.builtin.dict.prototype.mp$del_subscript=function(c){Sk.builtin.pyCheckArgsLen("del",arguments.length,1,1,!1,!1);const b=a(c);let e;"string"===typeof b?(e=this.entries[b],delete this.entries[b]):e=this.pop$bucket_item(c,b);if(void 0!==e)this.size--;else throw new Sk.builtin.KeyError(c);};Sk.builtin.dict.prototype.$r=function(){var a,
421
b=[];var e=Sk.abstr.iter(this);for(a=e.tp$iternext();void 0!==a;a=e.tp$iternext()){var h=this.mp$subscript(a);void 0===h&&(h=null);h===this?b.push(Sk.misceval.objectRepr(a).v+": {...}"):b.push(Sk.misceval.objectRepr(a).v+": "+Sk.misceval.objectRepr(h).v)}return new Sk.builtin.str("{"+b.join(", ")+"}")};Sk.builtin.dict.prototype.mp$length=function(){return this.size};Sk.builtin.dict.prototype.get=new Sk.builtin.func(function(a,b,e){Sk.builtin.pyCheckArgsLen("get()",arguments.length,1,2,!1,!0);void 0===
422
e&&(e=Sk.builtin.none.none$);var c=a.mp$lookup(b);void 0===c&&(c=e);return c});Sk.builtin.dict.prototype.pop=new Sk.builtin.func(function(c,b,e){Sk.builtin.pyCheckArgsLen("pop()",arguments.length,1,2,!1,!0);const d=a(b);let g,f;"string"===typeof d?(g=c.entries[d],void 0!==g&&(f=g.rhs,delete c.entries[d])):(g=c.pop$bucket_item(b,d),void 0!==g&&(f=g.rhs));if(void 0!==f)return c.size--,f;if(void 0!==e)return e;throw new Sk.builtin.KeyError(b);});Sk.builtin.dict.prototype.haskey$=function(a,b){Sk.builtin.pyCheckArgsLen("has_key()",
423
arguments.length,1,1,!1,!0);return new Sk.builtin.bool(a.sq$contains(b))};Sk.builtin.dictview=function(a,b){this.dict=b;this.type=a;return this};Sk.abstr.setUpInheritance("dictview",Sk.builtin.dictview,Sk.builtin.object);Sk.builtin.dictview.prototype.__class__=Sk.builtin.dictview;Sk.builtin.dictview.prototype.$r=function(){var a="dict_"+this.type+"([",b,e=!0;var h=Sk.abstr.iter(this.dict);for(b=h.tp$iternext();void 0!==b;b=h.tp$iternext())if(e=!1,"keys"===this.type)a+=Sk.misceval.objectRepr(b).v+
424
", ";else{var g=this.dict.mp$subscript(b);void 0===g&&(g=null);"values"===this.type?a+=Sk.misceval.objectRepr(g).v+", ":"items"===this.type&&(a+="("+Sk.misceval.objectRepr(b).v+", "+Sk.misceval.objectRepr(g).v+"), ")}e||(a=a.slice(0,-2));return new Sk.builtin.str(a+"])")};Sk.builtin.dictview.prototype.sq$length=function(){return this.dict.mp$length()};Sk.builtin.dictview.prototype.sq$contains=function(a){var c;if("keys"===this.type)return this.dict.sq$contains(a);if("values"===this.type){var b=Sk.abstr.iter(this.dict);
425
for(c=b.tp$iternext();void 0!==c;c=b.tp$iternext()){var h=this.dict.mp$subscript(c);void 0===h&&(h=null);if(Sk.misceval.isTrue(Sk.misceval.richCompareBool(h,a,"Eq")))return!0}return!1}if("items"===this.type)return a.mp$subscript&&a.sq$length&&2===a.sq$length()&&(c=a.mp$subscript(new Sk.builtin.int_(0)),h=this.dict.mp$lookup(c),void 0!==h&&(b=new Sk.builtin.tuple([c,h]),Sk.misceval.isTrue(Sk.misceval.richCompareBool(b,a,"Eq"))))?!0:!1};Sk.builtin.dictview.prototype.tp$iter=function(){var a;"keys"===
426
this.type?a=Sk.builtin.dict.prototype.py2$keys(this.dict).tp$iter():"values"===this.type?a=this.dict.py2$values(this.dict).tp$iter():"items"===this.type&&(a=this.dict.py2$items(this.dict).tp$iter());a.$r=function(){return new Sk.builtin.str("<dict_"+this.type+"iterator>")};return a};Sk.builtin.dictview.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!1,!0);return a.tp$iter()});Sk.builtin.dict.prototype.py2$items=function(a){Sk.builtin.pyCheckArgsLen("items",
427
arguments.length,0,0,!1,!0);var c,b=[];var h=Sk.abstr.iter(a);for(c=h.tp$iternext();void 0!==c;c=h.tp$iternext()){var g=a.mp$subscript(c);void 0===g&&(g=null);b.push(new Sk.builtin.tuple([c,g]))}return new Sk.builtin.list(b)};Sk.builtin.dict.prototype.py3$items=function(a){Sk.builtin.pyCheckArgsLen("items",arguments.length,0,0,!1,!0);return new Sk.builtin.dictview("items",a)};Sk.builtin.dict.prototype.items=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$items);Sk.builtin.dict.prototype.py2$keys=
428
function(a){Sk.builtin.pyCheckArgsLen("keys",arguments.length,0,0,!1,!0);var c,b=[];var h=Sk.abstr.iter(a);for(c=h.tp$iternext();void 0!==c;c=h.tp$iternext())b.push(c);return new Sk.builtin.list(b)};Sk.builtin.dict.prototype.py3$keys=function(a){Sk.builtin.pyCheckArgsLen("keys",arguments.length,0,0,!1,!0);return new Sk.builtin.dictview("keys",a)};Sk.builtin.dict.prototype.keys=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$keys);Sk.builtin.dict.prototype.py2$values=function(a){Sk.builtin.pyCheckArgsLen("values",
429
arguments.length,0,0,!1,!0);var c,b=[];var h=Sk.abstr.iter(a);for(c=h.tp$iternext();void 0!==c;c=h.tp$iternext())c=a.mp$subscript(c),void 0===c&&(c=null),b.push(c);return new Sk.builtin.list(b)};Sk.builtin.dict.prototype.py3$values=function(a){Sk.builtin.pyCheckArgsLen("values",arguments.length,0,0,!1,!0);return new Sk.builtin.dictview("values",a)};Sk.builtin.dict.prototype.values=new Sk.builtin.func(Sk.builtin.dict.prototype.py2$values);Sk.builtin.dict.prototype.clear=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("clear()",
430
arguments.length,0,0,!1,!0);a.entries=Object.create(null);a.buckets={};a.size=0});Sk.builtin.dict.prototype.setdefault=new Sk.builtin.func(function(a,b,e){try{return a.mp$subscript(b)}catch(h){return void 0===e&&(e=Sk.builtin.none.none$),a.mp$ass_subscript(b,e),e}});Sk.builtin.dict.prototype.dict_merge=function(a){var c;if(a instanceof Sk.builtin.dict){var b=a.tp$iter();for(c=b.tp$iternext();void 0!==c;c=b.tp$iternext()){var h=a.mp$subscript(c);if(void 0===h)throw new Sk.builtin.AttributeError("cannot get item for key: "+
431
c.v);this.mp$ass_subscript(c,h)}}else for(b=Sk.misceval.callsimArray(a.keys,[a]),b=Sk.abstr.iter(b),c=b.tp$iternext();void 0!==c;c=b.tp$iternext()){h=a.tp$getitem(c);if(void 0===h)throw new Sk.builtin.AttributeError("cannot get item for key: "+c.v);this.mp$ass_subscript(c,h)}};m=function(a,b,e){if(void 0!==e&&("dict"===e.tp$name||e.keys))b.dict_merge(e);else if(void 0!==e&&Sk.builtin.checkIterable(e)){var c,d=0;e=Sk.abstr.iter(e);for(c=e.tp$iternext();void 0!==c;c=e.tp$iternext(),d++){if(!Sk.builtin.checkIterable(c))throw new Sk.builtin.TypeError("cannot convert dictionary update sequence element #"+
432
d+" to a sequence");if(2===c.sq$length()){var f=Sk.abstr.iter(c);c=f.tp$iternext();f=f.tp$iternext();b.mp$ass_subscript(c,f)}else throw new Sk.builtin.ValueError("dictionary update sequence element #"+d+" has length "+c.sq$length()+"; 2 is required");}}else if(void 0!==e)throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object is not iterable");a=new Sk.builtin.dict(a);b.dict_merge(a);return Sk.builtin.none.none$};m.co_kwargs=!0;Sk.builtin.dict.prototype.update=new Sk.builtin.func(m);Sk.builtin.dict.prototype.__contains__=
433
new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,2,2);return new Sk.builtin.bool(a.sq$contains(b))});Sk.builtin.dict.prototype.__cmp__=new Sk.builtin.func(function(a,b,e){return Sk.builtin.NotImplemented.NotImplemented$});Sk.builtin.dict.prototype.__delitem__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__delitem__",arguments.length,1,1,!1,!0);return Sk.builtin.dict.prototype.mp$del_subscript.call(a,b)});Sk.builtin.dict.prototype.__getitem__=
434
new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__getitem__",arguments.length,1,1,!1,!0);return Sk.builtin.dict.prototype.mp$subscript.call(a,b)});Sk.builtin.dict.prototype.__setitem__=new Sk.builtin.func(function(a,b,e){Sk.builtin.pyCheckArgsLen("__setitem__",arguments.length,2,2,!1,!0);return Sk.builtin.dict.prototype.mp$ass_subscript.call(a,b,e)});Sk.builtin.dict.prototype.__hash__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__hash__",arguments.length,0,0,!1,!0);return Sk.builtin.dict.prototype.tp$hash.call(a)});
435
Sk.builtin.dict.prototype.__len__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__len__",arguments.length,0,0,!1,!0);return Sk.builtin.dict.prototype.mp$length.call(a)});Sk.builtin.dict.prototype.__getattribute__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__getattribute__",arguments.length,1,1,!1,!0);if(!Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("__getattribute__ requires a string");return Sk.builtin.dict.prototype.tp$getattr.call(a,b)});Sk.builtin.dict.prototype.__iter__=
436
new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!1,!0);return new Sk.builtin.dict_iter_(a)});Sk.builtin.dict.prototype.tp$iter=function(){return new Sk.builtin.dict_iter_(this)};Sk.builtin.dict.prototype.__repr__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__repr__",arguments.length,0,0,!1,!0);return Sk.builtin.dict.prototype.$r.call(a)});Sk.builtin.dict.prototype.ob$eq=function(a){var c;if(this===a)return Sk.builtin.bool.true$;if(!(a instanceof
437
Sk.builtin.dict))return Sk.builtin.NotImplemented.NotImplemented$;if(this.size!==a.size)return Sk.builtin.bool.false$;var b=this.tp$iter();for(c=b.tp$iternext();void 0!==c;c=b.tp$iternext()){var h=this.mp$lookup(c);c=a.mp$lookup(c);if(void 0===c||!Sk.misceval.richCompareBool(h,c,"Eq"))return Sk.builtin.bool.false$}return Sk.builtin.bool.true$};Sk.builtin.dict.prototype.ob$ne=function(a){a=this.ob$eq(a);return a===Sk.builtin.NotImplemented.NotImplemented$?a:a.v?Sk.builtin.bool.false$:Sk.builtin.bool.true$};
438
Sk.builtin.dict.prototype.copy=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("copy",arguments.length,0,0,!1,!0);var c,b=new Sk.builtin.dict([]);var h=Sk.abstr.iter(a);for(c=h.tp$iternext();void 0!==c;c=h.tp$iternext()){var g=a.mp$subscript(c);void 0===g&&(g=null);b.mp$ass_subscript(c,g)}return b});Sk.builtin.dict.$fromkeys=function(a,b,e){if(a instanceof Sk.builtin.dict){Sk.builtin.pyCheckArgsLen("fromkeys",arguments.length,1,2,!1,!0);var c=a;var d=b;var f=void 0===e?Sk.builtin.none.none$:
439
e}else Sk.builtin.pyCheckArgsLen("fromkeys",arguments.length,1,2,!1,!1),c=new Sk.builtin.dict([]),d=a,f=void 0===b?Sk.builtin.none.none$:b;if(!Sk.builtin.checkIterable(d))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(d)+"' object is not iterable");var k=Sk.abstr.iter(d);for(d=k.tp$iternext();void 0!==d;d=k.tp$iternext())c.mp$ass_subscript(d,f);return c};Sk.builtin.dict.prototype.iteritems=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.iteritems is not yet implemented in Skulpt");
440
});Sk.builtin.dict.prototype.iterkeys=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.iterkeys is not yet implemented in Skulpt");});Sk.builtin.dict.prototype.itervalues=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.itervalues is not yet implemented in Skulpt");});Sk.builtin.dict.prototype.popitem=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.popitem is not yet implemented in Skulpt");});Sk.builtin.dict.prototype.viewitems=
441
new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.viewitems is not yet implemented in Skulpt");});Sk.builtin.dict.prototype.viewkeys=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.viewkeys is not yet implemented in Skulpt");});Sk.builtin.dict.prototype.viewvalues=new Sk.builtin.func(function(a){throw new Sk.builtin.NotImplementedError("dict.viewvalues is not yet implemented in Skulpt");});Sk.exportSymbol("Sk.builtin.dict",Sk.builtin.dict);
442
Sk.builtin.create_dict_iter_=function(a){const c={$index:0};c.$obj=a;c.$keys=a.sk$asarray();c.tp$iter=function(){return c};c.tp$iternext=function(){if(!(this.$index>=this.$keys.length))return this.$keys[this.$index++]};return c};Sk.builtin.dict_iter_=function(a){if(!(this instanceof Sk.builtin.dict_iter_))return new Sk.builtin.dict_iter_(a);a=Sk.builtin.create_dict_iter_(a);a.$r=function(){return new Sk.builtin.str("<dictionary-keyiterator>")};return a};Sk.abstr.setUpInheritance("dictionary-keyiterator",
443
Sk.builtin.dict_iter_,Sk.builtin.object);Sk.builtin.dict_iter_.prototype.__class__=Sk.builtin.dict_iter_;Sk.builtin.dict_iter_.prototype.__iter__=new Sk.builtin.func(function(a){return a});Sk.builtin.dict_iter_.prototype.next$=function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a}},function(m,p){Sk.builtin.numtype=function(){throw new Sk.builtin.ExternalError("Cannot instantiate abstract Sk.builtin.numtype class");};Sk.abstr.setUpInheritance("NumericType",Sk.builtin.numtype,
444
Sk.builtin.object);Sk.builtin.numtype.sk$abstract=!0;Sk.builtin.numtype.prototype.__abs__=new Sk.builtin.func(function(a){if(void 0===a.nb$abs)throw new Sk.builtin.NotImplementedError("__abs__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__abs__",arguments.length,0,0,!1,!0);return a.nb$abs()});Sk.builtin.numtype.prototype.__neg__=new Sk.builtin.func(function(a){if(void 0===a.nb$negative)throw new Sk.builtin.NotImplementedError("__neg__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__neg__",
445
arguments.length,0,0,!1,!0);return a.nb$negative()});Sk.builtin.numtype.prototype.__pos__=new Sk.builtin.func(function(a){if(void 0===a.nb$positive)throw new Sk.builtin.NotImplementedError("__pos__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__pos__",arguments.length,0,0,!1,!0);return a.nb$positive()});Sk.builtin.numtype.prototype.__int__=new Sk.builtin.func(function(a){if(void 0===a.nb$int_)throw new Sk.builtin.NotImplementedError("__int__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__int__",
446
arguments.length,0,0,!1,!0);return a.nb$int_()});Sk.builtin.numtype.prototype.__long__=new Sk.builtin.func(function(a){if(void 0===a.nb$lng)throw new Sk.builtin.NotImplementedError("__long__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__long__",arguments.length,0,0,!1,!0);return a.nb$lng()});Sk.builtin.numtype.prototype.__float__=new Sk.builtin.func(function(a){if(void 0===a.nb$float_)throw new Sk.builtin.NotImplementedError("__float__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__float__",
447
arguments.length,0,0,!1,!0);return a.nb$float_()});Sk.builtin.numtype.prototype.__add__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$add)throw new Sk.builtin.NotImplementedError("__add__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__add__",arguments.length,1,1,!1,!0);return a.nb$add(b)});Sk.builtin.numtype.prototype.__radd__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_add)throw new Sk.builtin.NotImplementedError("__radd__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__radd__",
448
arguments.length,1,1,!1,!0);return a.nb$reflected_add(b)});Sk.builtin.numtype.prototype.__sub__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$subtract)throw new Sk.builtin.NotImplementedError("__sub__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__sub__",arguments.length,1,1,!1,!0);return a.nb$subtract(b)});Sk.builtin.numtype.prototype.__rsub__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_subtract)throw new Sk.builtin.NotImplementedError("__rsub__ is not yet implemented");
449
Sk.builtin.pyCheckArgsLen("__rsub__",arguments.length,1,1,!1,!0);return a.nb$reflected_subtract(b)});Sk.builtin.numtype.prototype.__mul__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$multiply)throw new Sk.builtin.NotImplementedError("__mul__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__mul__",arguments.length,1,1,!1,!0);return a.nb$multiply(b)});Sk.builtin.numtype.prototype.__rmul__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_multiply)throw new Sk.builtin.NotImplementedError("__rmul__ is not yet implemented");
450
Sk.builtin.pyCheckArgsLen("__rmul__",arguments.length,1,1,!1,!0);return a.nb$reflected_multiply(b)});Sk.builtin.numtype.prototype.__div__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$divide)throw new Sk.builtin.NotImplementedError("__div__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__div__",arguments.length,1,1,!1,!0);return a.nb$divide(b)});Sk.builtin.numtype.prototype.__rdiv__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_divide)throw new Sk.builtin.NotImplementedError("__rdiv__ is not yet implemented");
451
Sk.builtin.pyCheckArgsLen("__rdiv__",arguments.length,1,1,!1,!0);return a.nb$reflected_divide(b)});Sk.builtin.numtype.prototype.__floordiv__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$floor_divide)throw new Sk.builtin.NotImplementedError("__floordiv__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__floordiv__",arguments.length,1,1,!1,!0);return a.nb$floor_divide(b)});Sk.builtin.numtype.prototype.__rfloordiv__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_floor_divide)throw new Sk.builtin.NotImplementedError("__rfloordiv__ is not yet implemented");
452
Sk.builtin.pyCheckArgsLen("__rfloordiv__",arguments.length,1,1,!1,!0);return a.nb$reflected_floor_divide(b)});Sk.builtin.numtype.prototype.__mod__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$remainder)throw new Sk.builtin.NotImplementedError("__mod__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__mod__",arguments.length,1,1,!1,!0);return a.nb$remainder(b)});Sk.builtin.numtype.prototype.__rmod__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_remainder)throw new Sk.builtin.NotImplementedError("__rmod__ is not yet implemented");
453
Sk.builtin.pyCheckArgsLen("__rmod__",arguments.length,1,1,!1,!0);return a.nb$reflected_remainder(b)});Sk.builtin.numtype.prototype.__divmod__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$divmod)throw new Sk.builtin.NotImplementedError("__divmod__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__divmod__",arguments.length,1,1,!1,!0);return a.nb$divmod(b)});Sk.builtin.numtype.prototype.__rdivmod__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_divmod)throw new Sk.builtin.NotImplementedError("__rdivmod__ is not yet implemented");
454
Sk.builtin.pyCheckArgsLen("__rdivmod__",arguments.length,1,1,!1,!0);return a.nb$reflected_divmod(b)});Sk.builtin.numtype.prototype.__pow__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$power)throw new Sk.builtin.NotImplementedError("__pow__ is not yet implemented");Sk.builtin.pyCheckArgsLen("__pow__",arguments.length,1,1,!1,!0);return a.nb$power(b)});Sk.builtin.numtype.prototype.__rpow__=new Sk.builtin.func(function(a,b){if(void 0===a.nb$reflected_power)throw new Sk.builtin.NotImplementedError("__rpow__ is not yet implemented");
455
Sk.builtin.pyCheckArgsLen("__rpow__",arguments.length,1,1,!1,!0);return a.nb$reflected_power(b)});Sk.builtin.numtype.prototype.__coerce__=new Sk.builtin.func(function(a,b){throw new Sk.builtin.NotImplementedError("__coerce__ is not yet implemented");});Sk.builtin.numtype.prototype.nb$add=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_add=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$inplace_add=
456
function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$subtract=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_subtract=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$inplace_subtract=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$multiply=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_multiply=
457
function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$inplace_multiply=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$divide=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_divide=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$inplace_divide=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$floor_divide=
458
function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_floor_divide=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$inplace_floor_divide=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$remainder=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_remainder=function(a){return Sk.builtin.NotImplemented.NotImplemented$};
459
Sk.builtin.numtype.prototype.nb$inplace_remainder=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$divmod=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_divmod=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$power=function(a,b){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$reflected_power=function(a,b){return Sk.builtin.NotImplemented.NotImplemented$};
460
Sk.builtin.numtype.prototype.nb$inplace_power=function(a){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$abs=function(){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$negative=function(){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$positive=function(){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$nonzero=function(){return Sk.builtin.NotImplemented.NotImplemented$};
461
Sk.builtin.numtype.prototype.nb$isnegative=function(){return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.numtype.prototype.nb$ispositive=function(){return Sk.builtin.NotImplemented.NotImplemented$}},function(m,p){Sk.builtin.biginteger=function(a,b,c){null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))};Sk.builtin.biginteger.canary=0xdeadbeefcafe;Sk.builtin.biginteger.j_lm=15715070==(Sk.builtin.biginteger.canary&16777215);
462
Sk.builtin.biginteger.nbi=function(){return new Sk.builtin.biginteger(null)};Sk.builtin.biginteger.prototype.am1=function(a,b,c,d,e,h){for(var g;0<=--h;)g=b*this[a++]+c[d]+e,e=Math.floor(g/67108864),c[d++]=g&67108863;return e};Sk.builtin.biginteger.prototype.am2=function(a,b,c,d,e,h){for(var g,f,k=b&32767,n=b>>15;0<=--h;)f=this[a]&32767,g=this[a++]>>15,b=n*f+g*k,f=k*f+((b&32767)<<15)+c[d]+(e&1073741823),e=(f>>>30)+(b>>>15)+n*g+(e>>>30),c[d++]=f&1073741823;return e};Sk.builtin.biginteger.prototype.am3=
463
function(a,b,c,d,e,h){for(var g,f,k=b&16383,n=b>>14;0<=--h;)f=this[a]&16383,g=this[a++]>>14,b=n*f+g*k,f=k*f+((b&16383)<<14)+c[d]+e,e=(f>>28)+(b>>14)+n*g,c[d++]=f&268435455;return e};Sk.builtin.biginteger.prototype.am=Sk.builtin.biginteger.prototype.am3;Sk.builtin.biginteger.dbits=28;Sk.builtin.biginteger.prototype.DB=Sk.builtin.biginteger.dbits;Sk.builtin.biginteger.prototype.DM=(1<<Sk.builtin.biginteger.dbits)-1;Sk.builtin.biginteger.prototype.DV=1<<Sk.builtin.biginteger.dbits;Sk.builtin.biginteger.BI_FP=
464
52;Sk.builtin.biginteger.prototype.FV=Math.pow(2,Sk.builtin.biginteger.BI_FP);Sk.builtin.biginteger.prototype.F1=Sk.builtin.biginteger.BI_FP-Sk.builtin.biginteger.dbits;Sk.builtin.biginteger.prototype.F2=2*Sk.builtin.biginteger.dbits-Sk.builtin.biginteger.BI_FP;Sk.builtin.biginteger.BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";Sk.builtin.biginteger.BI_RC=[];m=48;for(p=0;9>=p;++p)Sk.builtin.biginteger.BI_RC[m++]=p;m=97;for(p=10;36>p;++p)Sk.builtin.biginteger.BI_RC[m++]=p;m=65;for(p=10;36>p;++p)Sk.builtin.biginteger.BI_RC[m++]=
465
p;Sk.builtin.biginteger.int2char=function(a){return Sk.builtin.biginteger.BI_RM.charAt(a)};Sk.builtin.biginteger.intAt=function(a,b){a=Sk.builtin.biginteger.BI_RC[a.charCodeAt(b)];return null==a?-1:a};Sk.builtin.biginteger.prototype.bnpCopyTo=function(a){var b;for(b=this.t-1;0<=b;--b)a[b]=this[b];a.t=this.t;a.s=this.s};Sk.builtin.biginteger.prototype.bnpFromInt=function(a){this.t=1;this.s=0>a?-1:0;0<a?this[0]=a:-1>a?this[0]=a+this.DV:this.t=0};Sk.builtin.biginteger.nbv=function(a){var b=new Sk.builtin.biginteger(null);
466
b.bnpFromInt(a);return b};Sk.builtin.biginteger.prototype.bnpFromString=function(a,b){var c;if(16==b)var d=4;else if(8==b)d=3;else if(256==b)d=8;else if(2==b)d=1;else if(32==b)d=5;else if(4==b)d=2;else{this.fromRadix(a,b);return}this.s=this.t=0;var e=a.length;var h=!1;for(c=0;0<=--e;)b=8==d?a[e]&255:Sk.builtin.biginteger.intAt(a,e),0>b?"-"==a.charAt(e)&&(h=!0):(h=!1,0===c?this[this.t++]=b:c+d>this.DB?(this[this.t-1]|=(b&(1<<this.DB-c)-1)<<c,this[this.t++]=b>>this.DB-c):this[this.t-1]|=b<<c,c+=d,c>=
467
this.DB&&(c-=this.DB));8==d&&0!==(a[0]&128)&&(this.s=-1,0<c&&(this[this.t-1]|=(1<<this.DB-c)-1<<c));this.clamp();h&&Sk.builtin.biginteger.ZERO.subTo(this,this)};Sk.builtin.biginteger.prototype.bnpClamp=function(){for(var a=this.s&this.DM;0<this.t&&this[this.t-1]==a;)--this.t};Sk.builtin.biginteger.prototype.bnToString=function(a){var b;if(0>this.s)return"-"+this.negate().toString(a);if(16==a)var c=4;else if(8==a)c=3;else if(2==a)c=1;else if(32==a)c=5;else if(4==a)c=2;else return this.toRadix(a);var d=
468
(1<<c)-1;var e=!1;var h="";var g=this.t;a=this.DB-g*this.DB%c;if(0<g--)for(a<this.DB&&0<(b=this[g]>>a)&&(e=!0,h=Sk.builtin.biginteger.int2char(b));0<=g;)a<c?(b=(this[g]&(1<<a)-1)<<c-a,b|=this[--g]>>(a+=this.DB-c)):(b=this[g]>>(a-=c)&d,0>=a&&(a+=this.DB,--g)),0<b&&(e=!0),e&&(h+=Sk.builtin.biginteger.int2char(b));return e?h:"0"};Sk.builtin.biginteger.prototype.bnNegate=function(){var a=Sk.builtin.biginteger.nbi();Sk.builtin.biginteger.ZERO.subTo(this,a);return a};Sk.builtin.biginteger.prototype.bnAbs=
469
function(){return 0>this.s?this.negate():this};Sk.builtin.biginteger.prototype.bnCompareTo=function(a){var b=this.s-a.s;if(0!==b)return b;var c=this.t;b=c-a.t;if(0!==b)return 0>this.s?-b:b;for(;0<=--c;)if(0!==(b=this[c]-a[c]))return b;return 0};Sk.builtin.biginteger.nbits=function(a){var b=1,c;0!==(c=a>>>16)&&(a=c,b+=16);0!==(c=a>>8)&&(a=c,b+=8);0!==(c=a>>4)&&(a=c,b+=4);0!==(c=a>>2)&&(a=c,b+=2);0!==a>>1&&(b+=1);return b};Sk.builtin.biginteger.prototype.bnBitLength=function(){return 0>=this.t?0:this.DB*
470
(this.t-1)+Sk.builtin.biginteger.nbits(this[this.t-1]^this.s&this.DM)};Sk.builtin.biginteger.prototype.bnpDLShiftTo=function(a,b){var c;for(c=this.t-1;0<=c;--c)b[c+a]=this[c];for(c=a-1;0<=c;--c)b[c]=0;b.t=this.t+a;b.s=this.s};Sk.builtin.biginteger.prototype.bnpDRShiftTo=function(a,b){var c;for(c=a;c<this.t;++c)b[c-a]=this[c];b.t=Math.max(this.t-a,0);b.s=this.s};Sk.builtin.biginteger.prototype.bnpLShiftTo=function(a,b){var c=a%this.DB,d=this.DB-c,e=(1<<d)-1;a=Math.floor(a/this.DB);var h=this.s<<c&
471
this.DM,g;for(g=this.t-1;0<=g;--g)b[g+a+1]=this[g]>>d|h,h=(this[g]&e)<<c;for(g=a-1;0<=g;--g)b[g]=0;b[a]=h;b.t=this.t+a+1;b.s=this.s;b.clamp()};Sk.builtin.biginteger.prototype.bnpRShiftTo=function(a,b){b.s=this.s;var c=Math.floor(a/this.DB);if(c>=this.t)b.t=0;else{var d=a%this.DB;var e=this.DB-d;var h=(1<<d)-1;b[0]=this[c]>>d;for(a=c+1;a<this.t;++a)b[a-c-1]|=(this[a]&h)<<e,b[a-c]=this[a]>>d;0<d&&(b[this.t-c-1]|=(this.s&h)<<e);b.t=this.t-c;b.clamp()}};Sk.builtin.biginteger.prototype.bnpSubTo=function(a,
472
b){for(var c=0,d=0,e=Math.min(a.t,this.t);c<e;)d+=this[c]-a[c],b[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d-=a.s;c<this.t;)d+=this[c],b[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d-=a[c],b[c++]=d&this.DM,d>>=this.DB;d-=a.s}b.s=0>d?-1:0;-1>d?b[c++]=this.DV+d:0<d&&(b[c++]=d);b.t=c;b.clamp()};Sk.builtin.biginteger.prototype.bnpMultiplyTo=function(a,b){var c=this.abs(),d=a.abs(),e=c.t;for(b.t=e+d.t;0<=--e;)b[e]=0;for(e=0;e<d.t;++e)b[e+c.t]=c.am(0,d[e],b,e,0,c.t);b.s=0;b.clamp();
473
this.s!=a.s&&Sk.builtin.biginteger.ZERO.subTo(b,b)};Sk.builtin.biginteger.prototype.bnpSquareTo=function(a){for(var b,c=this.abs(),d=a.t=2*c.t;0<=--d;)a[d]=0;for(d=0;d<c.t-1;++d)b=c.am(d,c[d],a,2*d,0,1),(a[d+c.t]+=c.am(d+1,2*c[d],a,2*d+1,b,c.t-d-1))>=c.DV&&(a[d+c.t]-=c.DV,a[d+c.t+1]=1);0<a.t&&(a[a.t-1]+=c.am(d,c[d],a,2*d,0,1));a.s=0;a.clamp()};Sk.builtin.biginteger.prototype.bnpDivRemTo=function(a,b,c){var d=a.abs();if(!(0>=d.t)){var e=this.abs();if(e.t<d.t)null!=b&&b.fromInt(0),null!=c&&this.copyTo(c);
474
else{null==c&&(c=Sk.builtin.biginteger.nbi());var h=Sk.builtin.biginteger.nbi();var g=this.s;var f=a.s;a=this.DB-Sk.builtin.biginteger.nbits(d[d.t-1]);0<a?(d.lShiftTo(a,h),e.lShiftTo(a,c)):(d.copyTo(h),e.copyTo(c));var k=h.t;d=h[k-1];if(0!==d){var n=d*(1<<this.F1)+(1<k?h[k-2]>>this.F2:0);e=this.FV/n;var l=(1<<this.F1)/n;var q=1<<this.F2;var m=c.t;var p=m-k;var y=null==b?Sk.builtin.biginteger.nbi():b;h.dlShiftTo(p,y);0<=c.compareTo(y)&&(c[c.t++]=1,c.subTo(y,c));Sk.builtin.biginteger.ONE.dlShiftTo(k,
475
y);for(y.subTo(h,h);h.t<k;)h[h.t++]=0;for(;0<=--p;)if(n=c[--m]==d?this.DM:Math.floor(c[m]*e+(c[m-1]+q)*l),(c[m]+=h.am(0,n,c,p,0,k))<n)for(h.dlShiftTo(p,y),c.subTo(y,c);c[m]<--n;)c.subTo(y,c);null!=b&&(c.drShiftTo(k,b),g!=f&&Sk.builtin.biginteger.ZERO.subTo(b,b));c.t=k;c.clamp();0<a&&c.rShiftTo(a,c);0>g&&Sk.builtin.biginteger.ZERO.subTo(c,c)}}}};Sk.builtin.biginteger.prototype.bnMod=function(a){var b=Sk.builtin.biginteger.nbi();this.abs().divRemTo(a,null,b);0>this.s&&0<b.compareTo(Sk.builtin.biginteger.ZERO)&&
476
a.subTo(b,b);return b};Sk.builtin.biginteger.Classic=function(a){this.m=a};Sk.builtin.biginteger.prototype.cConvert=function(a){return 0>a.s||0<=a.compareTo(this.m)?a.mod(this.m):a};Sk.builtin.biginteger.prototype.cRevert=function(a){return a};Sk.builtin.biginteger.prototype.cReduce=function(a){a.divRemTo(this.m,null,a)};Sk.builtin.biginteger.prototype.cMulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};Sk.builtin.biginteger.prototype.cSqrTo=function(a,b){a.squareTo(b);this.reduce(b)};Sk.builtin.biginteger.Classic.prototype.convert=
477
Sk.builtin.biginteger.prototype.cConvert;Sk.builtin.biginteger.Classic.prototype.revert=Sk.builtin.biginteger.prototype.cRevert;Sk.builtin.biginteger.Classic.prototype.reduce=Sk.builtin.biginteger.prototype.cReduce;Sk.builtin.biginteger.Classic.prototype.mulTo=Sk.builtin.biginteger.prototype.cMulTo;Sk.builtin.biginteger.Classic.prototype.sqrTo=Sk.builtin.biginteger.prototype.cSqrTo;Sk.builtin.biginteger.prototype.bnpInvDigit=function(){if(1>this.t)return 0;var a=this[0];if(0===(a&1))return 0;var b=
478
a&3;b=b*(2-(a&15)*b)&15;b=b*(2-(a&255)*b)&255;b=b*(2-((a&65535)*b&65535))&65535;b=b*(2-a*b%this.DV)%this.DV;return 0<b?this.DV-b:-b};Sk.builtin.biginteger.Montgomery=function(a){this.m=a;this.mp=a.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<a.DB-15)-1;this.mt2=2*a.t};Sk.builtin.biginteger.prototype.montConvert=function(a){var b=Sk.builtin.biginteger.nbi();a.abs().dlShiftTo(this.m.t,b);b.divRemTo(this.m,null,b);0>a.s&&0<b.compareTo(Sk.builtin.biginteger.ZERO)&&this.m.subTo(b,
479
b);return b};Sk.builtin.biginteger.prototype.montRevert=function(a){var b=Sk.builtin.biginteger.nbi();a.copyTo(b);this.reduce(b);return b};Sk.builtin.biginteger.prototype.montReduce=function(a){for(var b,c,d;a.t<=this.mt2;)a[a.t++]=0;for(d=0;d<this.m.t;++d)for(c=a[d]&32767,b=c*this.mpl+((c*this.mph+(a[d]>>15)*this.mpl&this.um)<<15)&a.DM,c=d+this.m.t,a[c]+=this.m.am(0,b,a,d,0,this.m.t);a[c]>=a.DV;)a[c]-=a.DV,a[++c]++;a.clamp();a.drShiftTo(this.m.t,a);0<=a.compareTo(this.m)&&a.subTo(this.m,a)};Sk.builtin.biginteger.prototype.montSqrTo=
480
function(a,b){a.squareTo(b);this.reduce(b)};Sk.builtin.biginteger.prototype.montMulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};Sk.builtin.biginteger.Montgomery.prototype.convert=Sk.builtin.biginteger.prototype.montConvert;Sk.builtin.biginteger.Montgomery.prototype.revert=Sk.builtin.biginteger.prototype.montRevert;Sk.builtin.biginteger.Montgomery.prototype.reduce=Sk.builtin.biginteger.prototype.montReduce;Sk.builtin.biginteger.Montgomery.prototype.mulTo=Sk.builtin.biginteger.prototype.montMulTo;
481
Sk.builtin.biginteger.Montgomery.prototype.sqrTo=Sk.builtin.biginteger.prototype.montSqrTo;Sk.builtin.biginteger.prototype.bnpIsEven=function(){return 0===(0<this.t?this[0]&1:this.s)};Sk.builtin.biginteger.prototype.bnpExp=function(a,b){if(4294967295<a||1>a)return Sk.builtin.biginteger.ONE;var c=Sk.builtin.biginteger.nbi();var d=Sk.builtin.biginteger.nbi();var e=b.convert(this);var h=Sk.builtin.biginteger.nbits(a)-1;for(e.copyTo(c);0<=--h;)if(b.sqrTo(c,d),0<(a&1<<h))b.mulTo(d,e,c);else{var g=c;c=
482
d;d=g}return b.revert(c)};Sk.builtin.biginteger.prototype.bnModPowInt=function(a,b){b=256>a||b.isEven()?new Sk.builtin.biginteger.Classic(b):new Sk.builtin.biginteger.Montgomery(b);return this.exp(a,b)};Sk.builtin.biginteger.prototype.copyTo=Sk.builtin.biginteger.prototype.bnpCopyTo;Sk.builtin.biginteger.prototype.fromInt=Sk.builtin.biginteger.prototype.bnpFromInt;Sk.builtin.biginteger.prototype.fromString=Sk.builtin.biginteger.prototype.bnpFromString;Sk.builtin.biginteger.prototype.clamp=Sk.builtin.biginteger.prototype.bnpClamp;
483
Sk.builtin.biginteger.prototype.dlShiftTo=Sk.builtin.biginteger.prototype.bnpDLShiftTo;Sk.builtin.biginteger.prototype.drShiftTo=Sk.builtin.biginteger.prototype.bnpDRShiftTo;Sk.builtin.biginteger.prototype.lShiftTo=Sk.builtin.biginteger.prototype.bnpLShiftTo;Sk.builtin.biginteger.prototype.rShiftTo=Sk.builtin.biginteger.prototype.bnpRShiftTo;Sk.builtin.biginteger.prototype.subTo=Sk.builtin.biginteger.prototype.bnpSubTo;Sk.builtin.biginteger.prototype.multiplyTo=Sk.builtin.biginteger.prototype.bnpMultiplyTo;
484
Sk.builtin.biginteger.prototype.squareTo=Sk.builtin.biginteger.prototype.bnpSquareTo;Sk.builtin.biginteger.prototype.divRemTo=Sk.builtin.biginteger.prototype.bnpDivRemTo;Sk.builtin.biginteger.prototype.invDigit=Sk.builtin.biginteger.prototype.bnpInvDigit;Sk.builtin.biginteger.prototype.isEven=Sk.builtin.biginteger.prototype.bnpIsEven;Sk.builtin.biginteger.prototype.exp=Sk.builtin.biginteger.prototype.bnpExp;Sk.builtin.biginteger.prototype.toString=Sk.builtin.biginteger.prototype.bnToString;Sk.builtin.biginteger.prototype.negate=
485
Sk.builtin.biginteger.prototype.bnNegate;Sk.builtin.biginteger.prototype.abs=Sk.builtin.biginteger.prototype.bnAbs;Sk.builtin.biginteger.prototype.compareTo=Sk.builtin.biginteger.prototype.bnCompareTo;Sk.builtin.biginteger.prototype.bitLength=Sk.builtin.biginteger.prototype.bnBitLength;Sk.builtin.biginteger.prototype.mod=Sk.builtin.biginteger.prototype.bnMod;Sk.builtin.biginteger.prototype.modPowInt=Sk.builtin.biginteger.prototype.bnModPowInt;Sk.builtin.biginteger.ZERO=Sk.builtin.biginteger.nbv(0);
486
Sk.builtin.biginteger.ONE=Sk.builtin.biginteger.nbv(1);Sk.builtin.biginteger.prototype.bnClone=function(){var a=Sk.builtin.biginteger.nbi();this.copyTo(a);return a};Sk.builtin.biginteger.prototype.bnIntValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0===this.t)return-1}else{if(1==this.t)return this[0];if(0===this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};Sk.builtin.biginteger.prototype.bnByteValue=function(){return 0===this.t?this.s:this[0]<<24>>24};Sk.builtin.biginteger.prototype.bnShortValue=
487
function(){return 0===this.t?this.s:this[0]<<16>>16};Sk.builtin.biginteger.prototype.bnpChunkSize=function(a){return Math.floor(Math.LN2*this.DB/Math.log(a))};Sk.builtin.biginteger.prototype.bnSigNum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};Sk.builtin.biginteger.prototype.bnpToRadix=function(a){null==a&&(a=10);if(0===this.signum()||2>a||36<a)return"0";var b=this.chunkSize(a);var c=Math.pow(a,b);b=Sk.builtin.biginteger.nbv(c);var d=Sk.builtin.biginteger.nbi();var e=Sk.builtin.biginteger.nbi();
488
var h="";for(this.divRemTo(b,d,e);0<d.signum();)h=(c+e.intValue()).toString(a).substr(1)+h,d.divRemTo(b,d,e);return e.intValue().toString(a)+h};Sk.builtin.biginteger.prototype.bnpFromRadix=function(a,b){var c,d,e;this.fromInt(0);null==b&&(b=10);var h=this.chunkSize(b);var g=Math.pow(b,h);var f=!1;for(c=e=d=0;c<a.length;++c){var k=Sk.builtin.biginteger.intAt(a,c);if(0>k){if("-"==a.charAt(c)&&0===this.signum()&&(f=!0),"."==a.charAt(c))break}else e=b*e+k,++d>=h&&(this.dMultiply(g),this.dAddOffset(e,
489
0),e=d=0)}0<d&&(this.dMultiply(Math.pow(b,d)),this.dAddOffset(e,0));f&&Sk.builtin.biginteger.ZERO.subTo(this,this)};Sk.builtin.biginteger.prototype.bnpFromNumber=function(a,b,c){if("number"==typeof b)if(2>a)this.fromInt(1);else for(this.fromNumber(a,c),this.testBit(a-1)||this.bitwiseTo(Sk.builtin.biginteger.ONE.shiftLeft(a-1),Sk.builtin.biginteger.op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(Sk.builtin.biginteger.ONE.shiftLeft(a-
490
1),this);this.fromString(a+"")};Sk.builtin.biginteger.prototype.bnToByteArray=function(){var a,b=this.t,c=[];c[0]=this.s;var d=this.DB-b*this.DB%8;var e=0;if(0<b--)for(d<this.DB&&(a=this[b]>>d)!=(this.s&this.DM)>>d&&(c[e++]=a|this.s<<this.DB-d);0<=b;)if(8>d?(a=(this[b]&(1<<d)-1)<<8-d,a|=this[--b]>>(d+=this.DB-8)):(a=this[b]>>(d-=8)&255,0>=d&&(d+=this.DB,--b)),0!==(a&128)&&(a|=-256),0===e&&(this.s&128)!=(a&128)&&++e,0<e||a!=this.s)c[e++]=a;return c};Sk.builtin.biginteger.prototype.bnEquals=function(a){return 0===
491
this.compareTo(a)};Sk.builtin.biginteger.prototype.bnMin=function(a){return 0>this.compareTo(a)?this:a};Sk.builtin.biginteger.prototype.bnMax=function(a){return 0<this.compareTo(a)?this:a};Sk.builtin.biginteger.prototype.bnpBitwiseTo=function(a,b,c){var d,e=Math.min(a.t,this.t);for(d=0;d<e;++d)c[d]=b(this[d],a[d]);if(a.t<this.t){var h=a.s&this.DM;for(d=e;d<this.t;++d)c[d]=b(this[d],h);c.t=this.t}else{h=this.s&this.DM;for(d=e;d<a.t;++d)c[d]=b(h,a[d]);c.t=a.t}c.s=b(this.s,a.s);c.clamp()};Sk.builtin.biginteger.op_and=
492
function(a,b){return a&b};Sk.builtin.biginteger.prototype.bnAnd=function(a){var b=Sk.builtin.biginteger.nbi();this.bitwiseTo(a,Sk.builtin.biginteger.op_and,b);return b};Sk.builtin.biginteger.op_or=function(a,b){return a|b};Sk.builtin.biginteger.prototype.bnOr=function(a){var b=Sk.builtin.biginteger.nbi();this.bitwiseTo(a,Sk.builtin.biginteger.op_or,b);return b};Sk.builtin.biginteger.op_xor=function(a,b){return a^b};Sk.builtin.biginteger.prototype.bnXor=function(a){var b=Sk.builtin.biginteger.nbi();
493
this.bitwiseTo(a,Sk.builtin.biginteger.op_xor,b);return b};Sk.builtin.biginteger.op_andnot=function(a,b){return a&~b};Sk.builtin.biginteger.prototype.bnAndNot=function(a){var b=Sk.builtin.biginteger.nbi();this.bitwiseTo(a,Sk.builtin.biginteger.op_andnot,b);return b};Sk.builtin.biginteger.prototype.bnNot=function(){var a,b=Sk.builtin.biginteger.nbi();for(a=0;a<this.t;++a)b[a]=this.DM&~this[a];b.t=this.t;b.s=~this.s;return b};Sk.builtin.biginteger.prototype.bnShiftLeft=function(a){var b=Sk.builtin.biginteger.nbi();
494
0>a?this.rShiftTo(-a,b):this.lShiftTo(a,b);return b};Sk.builtin.biginteger.prototype.bnShiftRight=function(a){var b=Sk.builtin.biginteger.nbi();0>a?this.lShiftTo(-a,b):this.rShiftTo(a,b);return b};Sk.builtin.biginteger.lbit=function(a){if(0===a)return-1;var b=0;0===(a&65535)&&(a>>=16,b+=16);0===(a&255)&&(a>>=8,b+=8);0===(a&15)&&(a>>=4,b+=4);0===(a&3)&&(a>>=2,b+=2);0===(a&1)&&++b;return b};Sk.builtin.biginteger.prototype.bnGetLowestSetBit=function(){var a;for(a=0;a<this.t;++a)if(0!==this[a])return a*
495
this.DB+Sk.builtin.biginteger.lbit(this[a]);return 0>this.s?this.t*this.DB:-1};Sk.builtin.biginteger.cbit=function(a){for(var b=0;0!==a;)a&=a-1,++b;return b};Sk.builtin.biginteger.prototype.bnBitCount=function(){var a,b=0,c=this.s&this.DM;for(a=0;a<this.t;++a)b+=Sk.builtin.biginteger.cbit(this[a]^c);return b};Sk.builtin.biginteger.prototype.bnTestBit=function(a){var b=Math.floor(a/this.DB);return b>=this.t?0!==this.s:0!==(this[b]&1<<a%this.DB)};Sk.builtin.biginteger.prototype.bnpChangeBit=function(a,
496
b){a=Sk.builtin.biginteger.ONE.shiftLeft(a);this.bitwiseTo(a,b,a);return a};Sk.builtin.biginteger.prototype.bnSetBit=function(a){return this.changeBit(a,Sk.builtin.biginteger.op_or)};Sk.builtin.biginteger.prototype.bnClearBit=function(a){return this.changeBit(a,Sk.builtin.biginteger.op_andnot)};Sk.builtin.biginteger.prototype.bnFlipBit=function(a){return this.changeBit(a,Sk.builtin.biginteger.op_xor)};Sk.builtin.biginteger.prototype.bnpAddTo=function(a,b){for(var c=0,d=0,e=Math.min(a.t,this.t);c<
497
e;)d+=this[c]+a[c],b[c++]=d&this.DM,d>>=this.DB;if(a.t<this.t){for(d+=a.s;c<this.t;)d+=this[c],b[c++]=d&this.DM,d>>=this.DB;d+=this.s}else{for(d+=this.s;c<a.t;)d+=a[c],b[c++]=d&this.DM,d>>=this.DB;d+=a.s}b.s=0>d?-1:0;0<d?b[c++]=d:-1>d&&(b[c++]=this.DV+d);b.t=c;b.clamp()};Sk.builtin.biginteger.prototype.bnAdd=function(a){var b=Sk.builtin.biginteger.nbi();this.addTo(a,b);return b};Sk.builtin.biginteger.prototype.bnSubtract=function(a){var b=Sk.builtin.biginteger.nbi();this.subTo(a,b);return b};Sk.builtin.biginteger.prototype.bnMultiply=
498
function(a){var b=Sk.builtin.biginteger.nbi();this.multiplyTo(a,b);return b};Sk.builtin.biginteger.prototype.bnDivide=function(a){var b=Sk.builtin.biginteger.nbi();this.divRemTo(a,b,null);return b};Sk.builtin.biginteger.prototype.bnRemainder=function(a){var b=Sk.builtin.biginteger.nbi();this.divRemTo(a,null,b);return b};Sk.builtin.biginteger.prototype.bnDivideAndRemainder=function(a){var b=Sk.builtin.biginteger.nbi(),c=Sk.builtin.biginteger.nbi();this.divRemTo(a,b,c);return[b,c]};Sk.builtin.biginteger.prototype.bnpDMultiply=
499
function(a){this[this.t]=this.am(0,a-1,this,0,0,this.t);++this.t;this.clamp()};Sk.builtin.biginteger.prototype.bnpDAddOffset=function(a,b){if(0!==a){for(;this.t<=b;)this[this.t++]=0;for(this[b]+=a;this[b]>=this.DV;)this[b]-=this.DV,++b>=this.t&&(this[this.t++]=0),++this[b]}};Sk.builtin.biginteger.NullExp=function(){};Sk.builtin.biginteger.prototype.nNop=function(a){return a};Sk.builtin.biginteger.prototype.nMulTo=function(a,b,c){a.multiplyTo(b,c)};Sk.builtin.biginteger.prototype.nSqrTo=function(a,
500
b){a.squareTo(b)};Sk.builtin.biginteger.NullExp.prototype.convert=Sk.builtin.biginteger.prototype.nNop;Sk.builtin.biginteger.NullExp.prototype.revert=Sk.builtin.biginteger.prototype.nNop;Sk.builtin.biginteger.NullExp.prototype.mulTo=Sk.builtin.biginteger.prototype.nMulTo;Sk.builtin.biginteger.NullExp.prototype.sqrTo=Sk.builtin.biginteger.prototype.nSqrTo;Sk.builtin.biginteger.prototype.bnPow=function(a){return this.exp(a,new Sk.builtin.biginteger.NullExp)};Sk.builtin.biginteger.prototype.bnpMultiplyLowerTo=
501
function(a,b,c){var d,e=Math.min(this.t+a.t,b);c.s=0;for(c.t=e;0<e;)c[--e]=0;for(d=c.t-this.t;e<d;++e)c[e+this.t]=this.am(0,a[e],c,e,0,this.t);for(d=Math.min(a.t,b);e<d;++e)this.am(0,a[e],c,e,0,b-e);c.clamp()};Sk.builtin.biginteger.prototype.bnpMultiplyUpperTo=function(a,b,c){--b;var d=c.t=this.t+a.t-b;for(c.s=0;0<=--d;)c[d]=0;for(d=Math.max(b-this.t,0);d<a.t;++d)c[this.t+d-b]=this.am(b-d,a[d],c,0,0,this.t+d-b);c.clamp();c.drShiftTo(1,c)};Sk.builtin.biginteger.Barrett=function(a){this.r2=Sk.builtin.biginteger.nbi();
502
this.q3=Sk.builtin.biginteger.nbi();Sk.builtin.biginteger.ONE.dlShiftTo(2*a.t,this.r2);this.mu=this.r2.divide(a);this.m=a};Sk.builtin.biginteger.prototype.barrettConvert=function(a){if(0>a.s||a.t>2*this.m.t)return a.mod(this.m);if(0>a.compareTo(this.m))return a;var b=Sk.builtin.biginteger.nbi();a.copyTo(b);this.reduce(b);return b};Sk.builtin.biginteger.prototype.barrettRevert=function(a){return a};Sk.builtin.biginteger.prototype.barrettReduce=function(a){a.drShiftTo(this.m.t-1,this.r2);a.t>this.m.t+
503
1&&(a.t=this.m.t+1,a.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>a.compareTo(this.r2);)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);0<=a.compareTo(this.m);)a.subTo(this.m,a)};Sk.builtin.biginteger.prototype.barrettSqrTo=function(a,b){a.squareTo(b);this.reduce(b)};Sk.builtin.biginteger.prototype.barrettMulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};Sk.builtin.biginteger.Barrett.prototype.convert=Sk.builtin.biginteger.prototype.barrettConvert;
504
Sk.builtin.biginteger.Barrett.prototype.revert=Sk.builtin.biginteger.prototype.barrettRevert;Sk.builtin.biginteger.Barrett.prototype.reduce=Sk.builtin.biginteger.prototype.barrettReduce;Sk.builtin.biginteger.Barrett.prototype.mulTo=Sk.builtin.biginteger.prototype.barrettMulTo;Sk.builtin.biginteger.Barrett.prototype.sqrTo=Sk.builtin.biginteger.prototype.barrettSqrTo;Sk.builtin.biginteger.prototype.bnModPow=function(a,b){var c=a.bitLength();var d=Sk.builtin.biginteger.nbv(1);if(0>=c)return d;var e=
505
18>c?1:48>c?3:144>c?4:768>c?5:6;var h=8>c?new Sk.builtin.biginteger.Classic(b):b.isEven()?new Sk.builtin.biginteger.Barrett(b):new Sk.builtin.biginteger.Montgomery(b);b=[];var g=3;var f=e-1;var k=(1<<e)-1;b[1]=h.convert(this);if(1<e)for(c=Sk.builtin.biginteger.nbi(),h.sqrTo(b[1],c);g<=k;)b[g]=Sk.builtin.biginteger.nbi(),h.mulTo(c,b[g-2],b[g]),g+=2;var n=a.t-1;var l=!0;var q=Sk.builtin.biginteger.nbi();for(c=Sk.builtin.biginteger.nbits(a[n])-1;0<=n;){if(c>=f)var m=a[n]>>c-f&k;else m=(a[n]&(1<<c+1)-
506
1)<<f-c,0<n&&(m|=a[n-1]>>this.DB+c-f);for(g=e;0===(m&1);)m>>=1,--g;0>(c-=g)&&(c+=this.DB,--n);if(l)b[m].copyTo(d),l=!1;else{for(;1<g;)h.sqrTo(d,q),h.sqrTo(q,d),g-=2;0<g?h.sqrTo(d,q):(g=d,d=q,q=g);h.mulTo(q,b[m],d)}for(;0<=n&&0===(a[n]&1<<c);)h.sqrTo(d,q),g=d,d=q,q=g,0>--c&&(c=this.DB-1,--n)}return h.revert(d)};Sk.builtin.biginteger.prototype.bnGCD=function(a){var b=0>this.s?this.negate():this.clone();a=0>a.s?a.negate():a.clone();if(0>b.compareTo(a)){var c=b;b=a;a=c}c=b.getLowestSetBit();var d=a.getLowestSetBit();
507
if(0>d)return b;c<d&&(d=c);0<d&&(b.rShiftTo(d,b),a.rShiftTo(d,a));for(;0<b.signum();)0<(c=b.getLowestSetBit())&&b.rShiftTo(c,b),0<(c=a.getLowestSetBit())&&a.rShiftTo(c,a),0<=b.compareTo(a)?(b.subTo(a,b),b.rShiftTo(1,b)):(a.subTo(b,a),a.rShiftTo(1,a));0<d&&a.lShiftTo(d,a);return a};Sk.builtin.biginteger.prototype.bnpModInt=function(a){var b;if(0>=a)return 0;var c=this.DV%a;var d=0>this.s?a-1:0;if(0<this.t)if(0===c)d=this[0]%a;else for(b=this.t-1;0<=b;--b)d=(c*d+this[b])%a;return d};Sk.builtin.biginteger.prototype.bnModInverse=
508
function(a){var b,c=a.isEven();if(this.isEven()&&c||0===a.signum())return Sk.builtin.biginteger.ZERO;var d=a.clone();var e=this.clone();var h=Sk.builtin.biginteger.nbv(1);var g=Sk.builtin.biginteger.nbv(0);var f=Sk.builtin.biginteger.nbv(0);for(b=Sk.builtin.biginteger.nbv(1);0!==d.signum();){for(;d.isEven();)d.rShiftTo(1,d),c?(h.isEven()&&g.isEven()||(h.addTo(this,h),g.subTo(a,g)),h.rShiftTo(1,h)):g.isEven()||g.subTo(a,g),g.rShiftTo(1,g);for(;e.isEven();)e.rShiftTo(1,e),c?(f.isEven()&&b.isEven()||
509
(f.addTo(this,f),b.subTo(a,b)),f.rShiftTo(1,f)):b.isEven()||b.subTo(a,b),b.rShiftTo(1,b);0<=d.compareTo(e)?(d.subTo(e,d),c&&h.subTo(f,h),g.subTo(b,g)):(e.subTo(d,e),c&&f.subTo(h,f),b.subTo(g,b))}if(0!==e.compareTo(Sk.builtin.biginteger.ONE))return Sk.builtin.biginteger.ZERO;if(0<=b.compareTo(a))return b.subtract(a);if(0>b.signum())b.addTo(a,b);else return b;return 0>b.signum()?b.add(a):b};Sk.builtin.biginteger.lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,
510
107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];Sk.builtin.biginteger.lplim=67108864/Sk.builtin.biginteger.lowprimes[Sk.builtin.biginteger.lowprimes.length-1];Sk.builtin.biginteger.prototype.bnIsProbablePrime=function(a){var b,c,d=this.abs();if(1==d.t&&d[0]<=Sk.builtin.biginteger.lowprimes[Sk.builtin.biginteger.lowprimes.length-
511
1]){for(c=0;c<Sk.builtin.biginteger.lowprimes.length;++c)if(d[0]==Sk.builtin.biginteger.lowprimes[c])return!0;return!1}if(d.isEven())return!1;for(c=1;c<Sk.builtin.biginteger.lowprimes.length;){var e=Sk.builtin.biginteger.lowprimes[c];for(b=c+1;b<Sk.builtin.biginteger.lowprimes.length&&e<Sk.builtin.biginteger.lplim;)e*=Sk.builtin.biginteger.lowprimes[b++];for(e=d.modInt(e);c<b;)if(0===e%Sk.builtin.biginteger.lowprimes[c++])return!1}return d.millerRabin(a)};Sk.builtin.biginteger.prototype.bnpMillerRabin=
512
function(a){var b,c,d=this.subtract(Sk.builtin.biginteger.ONE),e=d.getLowestSetBit();if(0>=e)return!1;var h=d.shiftRight(e);a=a+1>>1;a>Sk.builtin.biginteger.lowprimes.length&&(a=Sk.builtin.biginteger.lowprimes.length);var g=Sk.builtin.biginteger.nbi();for(c=0;c<a;++c){g.fromInt(Sk.builtin.biginteger.lowprimes[c]);var f=g.modPow(h,this);if(0!==f.compareTo(Sk.builtin.biginteger.ONE)&&0!==f.compareTo(d)){for(b=1;b++<e&&0!==f.compareTo(d);)if(f=f.modPowInt(2,this),0===f.compareTo(Sk.builtin.biginteger.ONE))return!1;
513
if(0!==f.compareTo(d))return!1}}return!0};Sk.builtin.biginteger.prototype.isnegative=function(){return 0>this.s};Sk.builtin.biginteger.prototype.ispositive=function(){return 0<=this.s};Sk.builtin.biginteger.prototype.trueCompare=function(a){return 0<=this.s&&0>a.s?1:0>this.s&&0<=a.s?-1:this.compare(a)};Sk.builtin.biginteger.prototype.chunkSize=Sk.builtin.biginteger.prototype.bnpChunkSize;Sk.builtin.biginteger.prototype.toRadix=Sk.builtin.biginteger.prototype.bnpToRadix;Sk.builtin.biginteger.prototype.fromRadix=
514
Sk.builtin.biginteger.prototype.bnpFromRadix;Sk.builtin.biginteger.prototype.fromNumber=Sk.builtin.biginteger.prototype.bnpFromNumber;Sk.builtin.biginteger.prototype.bitwiseTo=Sk.builtin.biginteger.prototype.bnpBitwiseTo;Sk.builtin.biginteger.prototype.changeBit=Sk.builtin.biginteger.prototype.bnpChangeBit;Sk.builtin.biginteger.prototype.addTo=Sk.builtin.biginteger.prototype.bnpAddTo;Sk.builtin.biginteger.prototype.dMultiply=Sk.builtin.biginteger.prototype.bnpDMultiply;Sk.builtin.biginteger.prototype.dAddOffset=
515
Sk.builtin.biginteger.prototype.bnpDAddOffset;Sk.builtin.biginteger.prototype.multiplyLowerTo=Sk.builtin.biginteger.prototype.bnpMultiplyLowerTo;Sk.builtin.biginteger.prototype.multiplyUpperTo=Sk.builtin.biginteger.prototype.bnpMultiplyUpperTo;Sk.builtin.biginteger.prototype.modInt=Sk.builtin.biginteger.prototype.bnpModInt;Sk.builtin.biginteger.prototype.millerRabin=Sk.builtin.biginteger.prototype.bnpMillerRabin;Sk.builtin.biginteger.prototype.clone=Sk.builtin.biginteger.prototype.bnClone;Sk.builtin.biginteger.prototype.intValue=
516
Sk.builtin.biginteger.prototype.bnIntValue;Sk.builtin.biginteger.prototype.byteValue=Sk.builtin.biginteger.prototype.bnByteValue;Sk.builtin.biginteger.prototype.shortValue=Sk.builtin.biginteger.prototype.bnShortValue;Sk.builtin.biginteger.prototype.signum=Sk.builtin.biginteger.prototype.bnSigNum;Sk.builtin.biginteger.prototype.toByteArray=Sk.builtin.biginteger.prototype.bnToByteArray;Sk.builtin.biginteger.prototype.equals=Sk.builtin.biginteger.prototype.bnEquals;Sk.builtin.biginteger.prototype.compare=
517
Sk.builtin.biginteger.prototype.compareTo;Sk.builtin.biginteger.prototype.min=Sk.builtin.biginteger.prototype.bnMin;Sk.builtin.biginteger.prototype.max=Sk.builtin.biginteger.prototype.bnMax;Sk.builtin.biginteger.prototype.and=Sk.builtin.biginteger.prototype.bnAnd;Sk.builtin.biginteger.prototype.or=Sk.builtin.biginteger.prototype.bnOr;Sk.builtin.biginteger.prototype.xor=Sk.builtin.biginteger.prototype.bnXor;Sk.builtin.biginteger.prototype.andNot=Sk.builtin.biginteger.prototype.bnAndNot;Sk.builtin.biginteger.prototype.not=
518
Sk.builtin.biginteger.prototype.bnNot;Sk.builtin.biginteger.prototype.shiftLeft=Sk.builtin.biginteger.prototype.bnShiftLeft;Sk.builtin.biginteger.prototype.shiftRight=Sk.builtin.biginteger.prototype.bnShiftRight;Sk.builtin.biginteger.prototype.getLowestSetBit=Sk.builtin.biginteger.prototype.bnGetLowestSetBit;Sk.builtin.biginteger.prototype.bitCount=Sk.builtin.biginteger.prototype.bnBitCount;Sk.builtin.biginteger.prototype.testBit=Sk.builtin.biginteger.prototype.bnTestBit;Sk.builtin.biginteger.prototype.setBit=
519
Sk.builtin.biginteger.prototype.bnSetBit;Sk.builtin.biginteger.prototype.clearBit=Sk.builtin.biginteger.prototype.bnClearBit;Sk.builtin.biginteger.prototype.flipBit=Sk.builtin.biginteger.prototype.bnFlipBit;Sk.builtin.biginteger.prototype.add=Sk.builtin.biginteger.prototype.bnAdd;Sk.builtin.biginteger.prototype.subtract=Sk.builtin.biginteger.prototype.bnSubtract;Sk.builtin.biginteger.prototype.multiply=Sk.builtin.biginteger.prototype.bnMultiply;Sk.builtin.biginteger.prototype.divide=Sk.builtin.biginteger.prototype.bnDivide;
520
Sk.builtin.biginteger.prototype.remainder=Sk.builtin.biginteger.prototype.bnRemainder;Sk.builtin.biginteger.prototype.divideAndRemainder=Sk.builtin.biginteger.prototype.bnDivideAndRemainder;Sk.builtin.biginteger.prototype.modPow=Sk.builtin.biginteger.prototype.bnModPow;Sk.builtin.biginteger.prototype.modInverse=Sk.builtin.biginteger.prototype.bnModInverse;Sk.builtin.biginteger.prototype.pow=Sk.builtin.biginteger.prototype.bnPow;Sk.builtin.biginteger.prototype.gcd=Sk.builtin.biginteger.prototype.bnGCD;
521
Sk.builtin.biginteger.prototype.isProbablePrime=Sk.builtin.biginteger.prototype.bnIsProbablePrime},function(m,p){Sk.builtin.int_=function(a,c){if(!(this instanceof Sk.builtin.int_))return new Sk.builtin.int_(a,c);if(this instanceof Sk.builtin.bool)return this;if(a instanceof Sk.builtin.int_&&void 0===c)return this.v=a.v,this;if(c!==Sk.builtin.none.none$&&void 0!==c&&!Sk.builtin.checkInt(c)){if(Sk.builtin.checkFloat(c))throw new Sk.builtin.TypeError("integer argument expected, got "+Sk.abstr.typeName(c));
522
if(c.__index__)c=Sk.misceval.callsimArray(c.__index__,[c]);else if(c.__int__)c=Sk.misceval.callsimArray(c.__int__,[c]);else throw new Sk.builtin.AttributeError(Sk.abstr.typeName(c)+" instance has no attribute '__index__' or '__int__'");}if(a instanceof Sk.builtin.str){c=Sk.builtin.asnum$(c);c===Sk.builtin.none.none$&&(c=10);var b=Sk.str2number(a.v,c,parseInt,function(a){return-a},"int");if(b>Sk.builtin.int_.threshold$||b<-Sk.builtin.int_.threshold$)return new Sk.builtin.lng(a,c);this.v=b;return this}if(void 0!==
523
c&&c!==Sk.builtin.none.none$)throw new Sk.builtin.TypeError("int() can't convert non-string with explicit base");if(void 0===a||a===Sk.builtin.none)a=0;if(void 0!==a&&a.tp$getattr&&(b=a.tp$getattr(Sk.builtin.str.$int_))){var e=Sk.misceval.callsimArray(b);var h="__int__"}else void 0!==a&&a.__int__?(e=Sk.misceval.callsimArray(a.__int__,[a]),h="__int__"):void 0!==a&&a.tp$getattr&&(b=a.tp$getattr(Sk.builtin.str.$trunc))?(e=Sk.misceval.callsimArray(b),h="__trunc__"):void 0!==a&&a.__trunc__&&(e=Sk.misceval.callsimArray(a.__trunc__,
524
[a]),h="__trunc__");if(void 0===e||Sk.builtin.checkInt(e))void 0!==e&&(a=e);else throw new Sk.builtin.TypeError(h+" returned non-Integral (type "+Sk.abstr.typeName(e)+")");if(!Sk.builtin.checkNumber(a))throw new Sk.builtin.TypeError("int() argument must be a string or a number, not '"+Sk.abstr.typeName(a)+"'");a=Sk.builtin.asnum$(a);if(a>Sk.builtin.int_.threshold$||a<-Sk.builtin.int_.threshold$)return new Sk.builtin.lng(a);-1<a&&1>a&&(a=0);this.v=parseInt(a,c);return this};Sk.builtin.int_.$shiftconsts=
525
[.5,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,0x800000000000,281474976710656,562949953421312,0x4000000000000,0x8000000000000,4503599627370496,9007199254740992];
526
Sk.abstr.setUpInheritance("int",Sk.builtin.int_,Sk.builtin.numtype);Sk.builtin.int_.prototype.nb$int_=function(){return this};Sk.builtin.int_.prototype.nb$float_=function(){return new Sk.builtin.float_(this.v)};Sk.builtin.int_.prototype.nb$lng=function(){return new Sk.builtin.lng(this.v)};Sk.builtin.int_.prototype.__trunc__=new Sk.builtin.func(function(a){return a});Sk.builtin.int_.prototype.__index__=new Sk.builtin.func(function(a){return a});Sk.builtin.int_.prototype.__complex__=new Sk.builtin.func(function(a){return Sk.builtin.NotImplemented.NotImplemented$});
527
Sk.builtin.int_.prototype.__format__=Sk.formatting.mkNumber__format__(!1);Sk.builtin.int_.prototype.tp$index=function(){return this.v};Sk.builtin.int_.prototype.tp$hash=function(){return new Sk.builtin.int_(this.v)};Sk.builtin.int_.threshold$=Math.pow(2,53)-1;Sk.builtin.int_.prototype.clone=function(){return new Sk.builtin.int_(this.v)};Sk.builtin.int_.prototype.nb$add=function(a){if(a instanceof Sk.builtin.int_){var c=this.v+a.v;return c>Sk.builtin.int_.threshold$||c<-Sk.builtin.int_.threshold$?
528
(c=new Sk.builtin.lng(this.v),c.nb$add(a)):new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$add(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$add(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_add=function(a){return Sk.builtin.int_.prototype.nb$add.call(this,a)};Sk.builtin.int_.prototype.nb$subtract=function(a){if(a instanceof Sk.builtin.int_){var c=this.v-a.v;return c>Sk.builtin.int_.threshold$||
529
c<-Sk.builtin.int_.threshold$?(c=new Sk.builtin.lng(this.v),c.nb$subtract(a)):new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$subtract(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$subtract(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_subtract=function(a){var c=this.nb$negative();return Sk.builtin.int_.prototype.nb$add.call(c,a)};Sk.builtin.int_.prototype.nb$multiply=function(a){if(a instanceof
530
Sk.builtin.int_){var c=this.v*a.v;return c>Sk.builtin.int_.threshold$||c<-Sk.builtin.int_.threshold$?(c=new Sk.builtin.lng(this.v),c.nb$multiply(a)):new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$multiply(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$multiply(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_multiply=function(a){return Sk.builtin.int_.prototype.nb$multiply.call(this,a)};Sk.builtin.int_.prototype.nb$divide=
531
function(a){if(Sk.__future__.division){var c=new Sk.builtin.float_(this.v);return c.nb$divide(a)}return a instanceof Sk.builtin.int_?this.nb$floor_divide(a):a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$divide(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$divide(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_divide=function(a){return this.nb$reflected_floor_divide(a)};Sk.builtin.int_.prototype.nb$floor_divide=function(a){if(a instanceof
532
Sk.builtin.int_){if(0===a.v)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return new Sk.builtin.int_(Math.floor(this.v/a.v))}if(a instanceof Sk.builtin.lng){var c=new Sk.builtin.lng(this.v);return c.nb$floor_divide(a)}return a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$floor_divide(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_floor_divide=function(a){return a instanceof Sk.builtin.int_?a.nb$divide(this):
533
Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$remainder=function(a){if(a instanceof Sk.builtin.int_){var c=Sk.abstr.numberBinOp(this,a,"FloorDiv");c=Sk.abstr.numberBinOp(c,a,"Mult");c=Sk.abstr.numberBinOp(this,c,"Sub");c=c.v;0>a.v&&0===c?c=-0:0===c&&-Infinity===Infinity/c&&(c=0);return new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$remainder(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$remainder(a)):
534
Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_remainder=function(a){return a instanceof Sk.builtin.int_?a.nb$remainder(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$divmod=function(a){if(a instanceof Sk.builtin.int_)return new Sk.builtin.tuple([this.nb$floor_divide(a),this.nb$remainder(a)]);if(a instanceof Sk.builtin.lng){var c=new Sk.builtin.lng(this.v);return c.nb$divmod(a)}return a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),
535
c.nb$divmod(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_divmod=function(a){return a instanceof Sk.builtin.int_?new Sk.builtin.tuple([a.nb$floor_divide(this),a.nb$remainder(this)]):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$power=function(a,c){if(a instanceof Sk.builtin.int_&&(void 0===c||c instanceof Sk.builtin.int_)){var b=Math.pow(this.v,a.v);b>Sk.builtin.int_.threshold$||b<-Sk.builtin.int_.threshold$?(b=new Sk.builtin.lng(this.v),
536
b=b.nb$power(a,c)):b=0>a.v?new Sk.builtin.float_(b):new Sk.builtin.int_(b);if(void 0!==c){if(0>a.v)throw new Sk.builtin.TypeError("pow() 2nd argument cannot be negative when 3rd argument specified");return b.nb$remainder(c)}return b}return a instanceof Sk.builtin.lng?(b=new Sk.builtin.lng(this.v),b.nb$power(a)):a instanceof Sk.builtin.float_?(c=new Sk.builtin.float_(this.v),c.nb$power(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_power=function(a,c){return a instanceof
537
Sk.builtin.int_?a.nb$power(this,c):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$abs=function(){return new Sk.builtin.int_(Math.abs(this.v))};Sk.builtin.int_.prototype.nb$and=function(a){if(a instanceof Sk.builtin.int_){a=Sk.builtin.asnum$(a);var c=this.v&a;void 0!==c&&0>c&&(c+=4294967296);if(void 0!==c)return new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$and(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_and=
538
Sk.builtin.int_.prototype.nb$and;Sk.builtin.int_.prototype.nb$or=function(a){if(a instanceof Sk.builtin.int_){a=Sk.builtin.asnum$(a);var c=this.v|a;void 0!==c&&0>c&&(c+=4294967296);if(void 0!==c)return new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$and(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_or=Sk.builtin.int_.prototype.nb$or;Sk.builtin.int_.prototype.nb$xor=function(a){if(a instanceof Sk.builtin.int_){a=Sk.builtin.asnum$(a);
539
var c=this.v^a;void 0!==c&&0>c&&(c+=4294967296);if(void 0!==c)return new Sk.builtin.int_(c)}return a instanceof Sk.builtin.lng?(c=new Sk.builtin.lng(this.v),c.nb$xor(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_xor=Sk.builtin.int_.prototype.nb$xor;Sk.builtin.int_.prototype.nb$lshift=function(a){if(0===this.v)return this;if(a instanceof Sk.builtin.int_){var c=Sk.builtin.asnum$(a);if(void 0!==c){if(0>c)throw new Sk.builtin.ValueError("negative shift count");
540
if(53<c)return(new Sk.builtin.lng(this.v)).nb$lshift(new Sk.builtin.int_(c));var b=2*this.v*Sk.builtin.int_.$shiftconsts[c];if(b>Sk.builtin.int_.threshold$||b<-Sk.builtin.int_.threshold$)return new Sk.builtin.lng(b)}if(void 0!==b)return new Sk.builtin.int_(b)}return a instanceof Sk.builtin.lng?(b=new Sk.builtin.lng(this.v),b.nb$lshift(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_lshift=function(a){return a instanceof Sk.builtin.int_?a.nb$lshift(this):Sk.builtin.NotImplemented.NotImplemented$};
541
Sk.builtin.int_.prototype.nb$rshift=function(a){if(a instanceof Sk.builtin.int_){var c=Sk.builtin.asnum$(a);if(void 0!==c){if(0>c)throw new Sk.builtin.ValueError("negative shift count");var b=this.v>>c;0<this.v&&0>b&&(b&=Math.pow(2,32-c)-1)}if(void 0!==b)return new Sk.builtin.int_(b)}return a instanceof Sk.builtin.lng?(b=new Sk.builtin.lng(this.v),b.nb$rshift(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$reflected_rshift=function(a){return a instanceof Sk.builtin.int_?
542
a.nb$rshift(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.nb$invert=function(){return new Sk.builtin.int_(~this.v)};Sk.builtin.int_.prototype.nb$inplace_add=Sk.builtin.int_.prototype.nb$add;Sk.builtin.int_.prototype.nb$inplace_subtract=Sk.builtin.int_.prototype.nb$subtract;Sk.builtin.int_.prototype.nb$inplace_multiply=Sk.builtin.int_.prototype.nb$multiply;Sk.builtin.int_.prototype.nb$inplace_divide=Sk.builtin.int_.prototype.nb$divide;Sk.builtin.int_.prototype.nb$inplace_remainder=
543
Sk.builtin.int_.prototype.nb$remainder;Sk.builtin.int_.prototype.nb$inplace_floor_divide=Sk.builtin.int_.prototype.nb$floor_divide;Sk.builtin.int_.prototype.nb$inplace_power=Sk.builtin.int_.prototype.nb$power;Sk.builtin.int_.prototype.nb$inplace_and=Sk.builtin.int_.prototype.nb$and;Sk.builtin.int_.prototype.nb$inplace_or=Sk.builtin.int_.prototype.nb$or;Sk.builtin.int_.prototype.nb$inplace_xor=Sk.builtin.int_.prototype.nb$xor;Sk.builtin.int_.prototype.nb$inplace_lshift=Sk.builtin.int_.prototype.nb$lshift;
544
Sk.builtin.int_.prototype.nb$inplace_rshift=Sk.builtin.int_.prototype.nb$rshift;Sk.builtin.int_.prototype.nb$negative=function(){return new Sk.builtin.int_(-this.v)};Sk.builtin.int_.prototype.nb$positive=function(){return this.clone()};Sk.builtin.int_.prototype.nb$nonzero=function(){return 0!==this.v};Sk.builtin.int_.prototype.nb$isnegative=function(){return 0>this.v};Sk.builtin.int_.prototype.nb$ispositive=function(){return 0<=this.v};Sk.builtin.int_.prototype.numberCompare=function(a){return a instanceof
545
Sk.builtin.int_?this.v-a.v:a instanceof Sk.builtin.lng?-a.longCompare(this):a instanceof Sk.builtin.float_?-a.numberCompare(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$eq=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0==this.numberCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.false$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$ne=function(a){return a instanceof
546
Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0!=this.numberCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.true$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$lt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$le=function(a){return a instanceof
547
Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>=this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$gt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.ob$ge=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||
548
a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<=this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.int_.prototype.round$=function(a,c){Sk.builtin.pyCheckArgsLen("__round__",arguments.length,1,2);if(void 0!==c&&!Sk.misceval.isIndex(c))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(c)+"' object cannot be interpreted as an index");var b=Sk.builtin.asnum$(a);var e=void 0===c?0:Sk.misceval.asIndex(c);if(Sk.__future__.bankers_rounding){b*=Math.pow(10,e);var h=Math.round(b);
549
e=(.5===(0<b?b:-b)%1?0===h%2?h:h-1:h)/Math.pow(10,e)}else e=Math.pow(10,e),e=Math.round(b*e)/e;return new Sk.builtin.int_(e)};Sk.builtin.int_.prototype.conjugate=new Sk.builtin.func(function(a){return new Sk.builtin.int_(a.v)});Sk.builtin.int_.prototype.$r=function(){return new Sk.builtin.str(this.str$(10,!0))};Sk.builtin.int_.prototype.tp$str=function(){return new Sk.builtin.str(this.str$(10,!0))};Sk.builtin.int_.prototype.str$=function(a,c){void 0===c&&(c=!0);c=c?this.v:Math.abs(this.v);return void 0===
550
a||10===a?c.toString():c.toString(a)};const a=/_(?=[^_])/g;Sk.str2number=function(b,c,d,e,h){var g=b,f=!1,k;b=b.replace(/^\s+|\s+$/g,"");"-"===b.charAt(0)&&(f=!0,b=b.substring(1));"+"===b.charAt(0)&&(b=b.substring(1));if(null===c||void 0===c)c=10;if((2>c||36<c)&&0!==c)throw new Sk.builtin.ValueError(h+"() base must be >= 2 and <= 36");if("0x"===b.substring(0,2).toLowerCase())if(16===c||0===c)b=b.substring(2),c=16;else{if(34>c)throw new Sk.builtin.ValueError("invalid literal for "+h+"() with base "+
551
c+": '"+g+"'");}else if("0b"===b.substring(0,2).toLowerCase())if(2===c||0===c)b=b.substring(2),c=2;else{if(12>c)throw new Sk.builtin.ValueError("invalid literal for "+h+"() with base "+c+": '"+g+"'");}else if("0o"===b.substring(0,2).toLowerCase())if(8===c||0===c)b=b.substring(2),c=8;else{if(25>c)throw new Sk.builtin.ValueError("invalid literal for "+h+"() with base "+c+": '"+g+"'");}else if("0"===b.charAt(0)){if("0"===b)return 0;if(8===c||0===c)c=8}0===c&&(c=10);if(-1!==b.indexOf("_")){if(-1!==b.indexOf("__"))throw new Sk.builtin.ValueError("invalid literal for "+
552
h+"() with base "+c+": '"+g+"'");b=10!==c?b.replace(a,""):b.charAt(0)+b.substring(1).replace(a,"")}if(0===b.length)throw new Sk.builtin.ValueError("invalid literal for "+h+"() with base "+c+": '"+g+"'");for(k=0;k<b.length;k+=1){var n=b.charCodeAt(k);var l=c;48<=n&&57>=n?l=n-48:65<=n&&90>=n?l=n-65+10:97<=n&&122>=n&&(l=n-97+10);if(l>=c)throw new Sk.builtin.ValueError("invalid literal for "+h+"() with base "+c+": '"+g+"'");}l=d(b,c);f&&(l=e(l));return l};Sk.exportSymbol("Sk.builtin.int_",Sk.builtin.int_)},
553
function(m,p){Sk.builtin.bool=function(a){Sk.builtin.pyCheckArgsLen("bool",arguments.length,1);return Sk.misceval.isTrue(a)?Sk.builtin.bool.true$:Sk.builtin.bool.false$};Sk.abstr.setUpInheritance("bool",Sk.builtin.bool,Sk.builtin.int_);Sk.builtin.bool.prototype.$r=function(){return this.v?new Sk.builtin.str("True"):new Sk.builtin.str("False")};Sk.builtin.bool.prototype.tp$hash=function(){return new Sk.builtin.int_(this.v)};Sk.builtin.bool.prototype.__int__=new Sk.builtin.func(function(a){a=Sk.builtin.asnum$(a);
554
return new Sk.builtin.int_(a)});Sk.builtin.bool.prototype.__float__=new Sk.builtin.func(function(a){return new Sk.builtin.float_(Sk.ffi.remapToJs(a))});Sk.builtin.bool.prototype.__format__=new Sk.builtin.func(function(a){return a.$r()});Sk.builtin.bool.prototype.nb$and=function(a){return a.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v&a.v):Sk.builtin.int_.prototype.nb$and.call(this,a)};Sk.builtin.bool.prototype.nb$or=function(a){return a.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v|
555
a.v):Sk.builtin.int_.prototype.nb$or.call(this,a)};Sk.builtin.bool.prototype.nb$xor=function(a){return a.ob$type===Sk.builtin.bool?new Sk.builtin.bool(this.v^a.v):Sk.builtin.int_.prototype.nb$xor.call(this,a)};Sk.builtin.bool.prototype.ob$eq=function(a){return Sk.builtin.int_.prototype.ob$eq.call(this,a)};Sk.builtin.bool.prototype.ob$ne=function(a){return Sk.builtin.int_.prototype.ob$ne.call(this,a)};Sk.builtin.bool.prototype.ob$lt=function(a){return Sk.builtin.int_.prototype.ob$lt.call(this,a)};
556
Sk.builtin.bool.prototype.ob$le=function(a){return Sk.builtin.int_.prototype.ob$le.call(this,a)};Sk.builtin.bool.prototype.ob$gt=function(a){return Sk.builtin.int_.prototype.ob$gt.call(this,a)};Sk.builtin.bool.prototype.ob$ge=function(a){return Sk.builtin.int_.prototype.ob$ge.call(this,a)};Sk.exportSymbol("Sk.builtin.bool",Sk.builtin.bool);Sk.builtin.bool.true$=Object.create(Sk.builtin.bool.prototype,{v:{value:1,enumerable:!0}});Sk.builtin.bool.false$=Object.create(Sk.builtin.bool.prototype,{v:{value:0,
557
enumerable:!0}})},function(m,p){Sk.builtin.float_=function(c){if(!(this instanceof Sk.builtin.float_))return new Sk.builtin.float_(c);if(void 0===c)this.v=0;else if("number"===typeof c)this.v=c;else if(c.nb$float_){c=c.nb$float_();if(c.constructor!==Sk.builtin.float_)throw new Sk.builtin.TypeError("__float__ returned non-float (type "+Sk.abstr.typeName(c)+")");this.v=c.v}else if(Sk.builtin.checkString(c)){{let d=c=c.$jsstr();if(-1!==c.indexOf("_")){if(a.test(c))throw new Sk.builtin.ValueError("could not convert string to float: '"+
558
c+"'");d=c.charAt(0)+c.substring(1).replace(b,"")}if(c.match(/^-inf$/i))c=-Infinity;else if(c.match(/^[+]?inf$/i))c=Infinity;else if(c.match(/^[-+]?nan$/i))c=NaN;else{if(isNaN(d))throw new Sk.builtin.ValueError("float: Argument: "+c+" is not number");c=parseFloat(d)}c=new Sk.builtin.float_(c)}this.v=c.v}else if("boolean"===typeof c)this.v=c?1:0;else if("string"===typeof c)this.v=parseFloat(c);else throw new Sk.builtin.TypeError("float() argument must be a string or a number");};Sk.abstr.setUpInheritance("float",
559
Sk.builtin.float_,Sk.builtin.numtype);const a=/_[eE]|[eE]_|\._|_\.|[+-]_|__/,b=/_(?=[^_])/g;Sk.builtin.float_.prototype.nb$int_=function(){var a=this.v;a=0>a?Math.ceil(a):Math.floor(a);return new Sk.builtin.int_(a)};Sk.builtin.float_.prototype.nb$float_=function(){return this};Sk.builtin.float_.prototype.nb$lng=function(){return new Sk.builtin.lng(this.v)};Sk.builtin.float_.PyFloat_Check=function(a){return void 0===a?!1:Sk.builtin.checkNumber(a)||Sk.builtin.checkFloat(a)||Sk.builtin.issubclass(a.ob$type,
560
Sk.builtin.float_)?!0:!1};Sk.builtin.float_.PyFloat_Check_Exact=function(a){return Sk.builtin.checkFloat(a)};Sk.builtin.float_.PyFloat_AsDouble=function(a){if(a&&Sk.builtin.float_.PyFloat_Check(a))return Sk.ffi.remapToJs(a);if(null==a)throw Error("bad argument for internal PyFloat_AsDouble function");var c=Sk.builtin.type.typeLookup(a.ob$type,Sk.builtin.str.$float_);if(null==c)throw new Sk.builtin.TypeError("a float is required");a=Sk.misceval.callsimArray(c,[a]);if(!Sk.builtin.float_.PyFloat_Check(a))throw new Sk.builtin.TypeError("nb_float should return float object");
561
return Sk.ffi.remapToJs(a)};Sk.builtin.float_.prototype.tp$index=function(){return this.v};Sk.builtin.float_.prototype.tp$hash=function(){return this.nb$int_()};Sk.builtin.float_.prototype.clone=function(){return new Sk.builtin.float_(this.v)};Sk.builtin.float_.prototype.toFixed=function(a){a=Sk.builtin.asnum$(a);return this.v.toFixed(a)};Sk.builtin.float_.prototype.nb$add=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_?new Sk.builtin.float_(this.v+a.v):a instanceof
562
Sk.builtin.lng?new Sk.builtin.float_(this.v+parseFloat(a.str$(10,!0))):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_add=function(a){return Sk.builtin.float_.prototype.nb$add.call(this,a)};Sk.builtin.float_.prototype.nb$subtract=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_?new Sk.builtin.float_(this.v-a.v):a instanceof Sk.builtin.lng?new Sk.builtin.float_(this.v-parseFloat(a.str$(10,!0))):Sk.builtin.NotImplemented.NotImplemented$};
563
Sk.builtin.float_.prototype.nb$reflected_subtract=function(a){var c=this.nb$negative();return Sk.builtin.float_.prototype.nb$add.call(c,a)};Sk.builtin.float_.prototype.nb$multiply=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_?new Sk.builtin.float_(this.v*a.v):a instanceof Sk.builtin.lng?new Sk.builtin.float_(this.v*parseFloat(a.str$(10,!0))):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_multiply=function(a){return Sk.builtin.float_.prototype.nb$multiply.call(this,
564
a)};Sk.builtin.float_.prototype.nb$divide=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_){if(0===a.v)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return Infinity===this.v?Infinity===a.v||-Infinity===a.v?new Sk.builtin.float_(NaN):a.nb$isnegative()?new Sk.builtin.float_(-Infinity):new Sk.builtin.float_(Infinity):-Infinity===this.v?Infinity===a.v||-Infinity===a.v?new Sk.builtin.float_(NaN):a.nb$isnegative()?new Sk.builtin.float_(Infinity):
565
new Sk.builtin.float_(-Infinity):new Sk.builtin.float_(this.v/a.v)}if(a instanceof Sk.builtin.lng){if(0===a.longCompare(Sk.builtin.biginteger.ZERO))throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return Infinity===this.v?a.nb$isnegative()?new Sk.builtin.float_(-Infinity):new Sk.builtin.float_(Infinity):-Infinity===this.v?a.nb$isnegative()?new Sk.builtin.float_(Infinity):new Sk.builtin.float_(-Infinity):new Sk.builtin.float_(this.v/parseFloat(a.str$(10,!0)))}return Sk.builtin.NotImplemented.NotImplemented$};
566
Sk.builtin.float_.prototype.nb$reflected_divide=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?a.nb$divide(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$floor_divide=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_){if(Infinity===this.v||-Infinity===this.v)return new Sk.builtin.float_(NaN);if(0===a.v)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");
567
return Infinity===a.v?this.nb$isnegative()?new Sk.builtin.float_(-1):new Sk.builtin.float_(0):-Infinity===a.v?this.nb$isnegative()||!this.nb$nonzero()?new Sk.builtin.float_(0):new Sk.builtin.float_(-1):new Sk.builtin.float_(Math.floor(this.v/a.v))}if(a instanceof Sk.builtin.lng){if(0===a.longCompare(Sk.builtin.biginteger.ZERO))throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");return Infinity===this.v||-Infinity===this.v?new Sk.builtin.float_(NaN):new Sk.builtin.float_(Math.floor(this.v/
568
parseFloat(a.str$(10,!0))))}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_floor_divide=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?a.nb$floor_divide(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$remainder=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_){if(0===a.v)throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");
569
if(0===this.v)return new Sk.builtin.float_(0);if(Infinity===a.v)return Infinity===this.v||-Infinity===this.v?new Sk.builtin.float_(NaN):this.nb$ispositive()?new Sk.builtin.float_(this.v):new Sk.builtin.float_(Infinity);var c=this.v%a.v;0>this.v?0<a.v&&0>c&&(c+=a.v):0>a.v&&0!==c&&(c+=a.v);0>a.v&&0===c?c=-0:0===c&&-Infinity===Infinity/c&&(c=0);return new Sk.builtin.float_(c)}if(a instanceof Sk.builtin.lng){if(0===a.longCompare(Sk.builtin.biginteger.ZERO))throw new Sk.builtin.ZeroDivisionError("integer division or modulo by zero");
570
if(0===this.v)return new Sk.builtin.float_(0);var b=parseFloat(a.str$(10,!0));c=this.v%b;0>c?0<b&&0!==c&&(c+=b):0>b&&0!==c&&(c+=b);a.nb$isnegative()&&0===c?c=-0:0===c&&-Infinity===Infinity/c&&(c=0);return new Sk.builtin.float_(c)}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_remainder=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?a.nb$remainder(this):Sk.builtin.NotImplemented.NotImplemented$};
571
Sk.builtin.float_.prototype.nb$divmod=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?new Sk.builtin.tuple([this.nb$floor_divide(a),this.nb$remainder(a)]):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_divmod=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?new Sk.builtin.tuple([a.nb$floor_divide(this),
572
a.nb$remainder(this)]):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$power=function(a,b){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_){if(0>this.v&&0!==a.v%1)throw new Sk.builtin.NegativePowerError("cannot raise a negative number to a fractional power");if(0===this.v&&0>a.v)throw new Sk.builtin.NegativePowerError("cannot raise zero to a negative power");b=new Sk.builtin.float_(Math.pow(this.v,a.v));if(Infinity===Math.abs(b.v)&&Infinity!==Math.abs(this.v)&&
573
Infinity!==Math.abs(a.v))throw new Sk.builtin.OverflowError("Numerical result out of range");return b}if(a instanceof Sk.builtin.lng){if(0===this.v&&0>a.longCompare(Sk.builtin.biginteger.ZERO))throw new Sk.builtin.NegativePowerError("cannot raise zero to a negative power");return new Sk.builtin.float_(Math.pow(this.v,parseFloat(a.str$(10,!0))))}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$reflected_power=function(a,b){if(a instanceof Sk.builtin.int_||a instanceof
574
Sk.builtin.lng)a=new Sk.builtin.float_(a);return a instanceof Sk.builtin.float_?a.nb$power(this,b):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.nb$abs=function(){return new Sk.builtin.float_(Math.abs(this.v))};Sk.builtin.float_.prototype.nb$inplace_add=Sk.builtin.float_.prototype.nb$add;Sk.builtin.float_.prototype.nb$inplace_subtract=Sk.builtin.float_.prototype.nb$subtract;Sk.builtin.float_.prototype.nb$inplace_multiply=Sk.builtin.float_.prototype.nb$multiply;Sk.builtin.float_.prototype.nb$inplace_divide=
575
Sk.builtin.float_.prototype.nb$divide;Sk.builtin.float_.prototype.nb$inplace_remainder=Sk.builtin.float_.prototype.nb$remainder;Sk.builtin.float_.prototype.nb$inplace_floor_divide=Sk.builtin.float_.prototype.nb$floor_divide;Sk.builtin.float_.prototype.nb$inplace_power=Sk.builtin.float_.prototype.nb$power;Sk.builtin.float_.prototype.nb$negative=function(){return new Sk.builtin.float_(-this.v)};Sk.builtin.float_.prototype.nb$positive=function(){return this.clone()};Sk.builtin.float_.prototype.nb$nonzero=
576
function(){return 0!==this.v};Sk.builtin.float_.prototype.nb$isnegative=function(){return 0>this.v};Sk.builtin.float_.prototype.nb$ispositive=function(){return 0<=this.v};Sk.builtin.float_.prototype.numberCompare=function(a){if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_)return Infinity==this.v&&Infinity==a.v||-Infinity==this.v&&-Infinity==a.v?0:this.v-a.v;if(a instanceof Sk.builtin.lng){if(0===this.v%1){var c=new Sk.builtin.lng(this.v);return a=c.longCompare(a)}a=this.nb$subtract(a);
577
if(a instanceof Sk.builtin.float_)return a.v;if(a instanceof Sk.builtin.lng)return a.longCompare(Sk.builtin.biginteger.ZERO)}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$eq=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0==this.numberCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.false$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$ne=function(a){return a instanceof
578
Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0!=this.numberCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.true$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$lt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$le=function(a){return a instanceof
579
Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>=this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$gt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.ob$ge=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||
580
a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<=this.numberCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.float_.prototype.round$=function(a,b){Sk.builtin.pyCheckArgsLen("__round__",arguments.length,1,2);if(void 0!==b&&!Sk.misceval.isIndex(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object cannot be interpreted as an index");var c=Sk.builtin.asnum$(a);var d=void 0===b?0:Sk.misceval.asIndex(b);if(Sk.__future__.bankers_rounding){c*=Math.pow(10,d);var g=Math.round(c);
581
d=(.5===(0<c?c:-c)%1?0===g%2?g:g-1:g)/Math.pow(10,d);return void 0===b?new Sk.builtin.int_(d):new Sk.builtin.float_(d)}d=Math.pow(10,d);d=Math.round(c*d)/d;return new Sk.builtin.float_(d)};Sk.builtin.float_.prototype.__format__=Sk.formatting.mkNumber__format__(!0);Sk.builtin.float_.prototype.conjugate=new Sk.builtin.func(function(a){return new Sk.builtin.float_(a.v)});Sk.builtin.float_.prototype.$r=function(){return new Sk.builtin.str(this.str$(10,!0))};Sk.builtin.float_.prototype.tp$str=function(){return new Sk.builtin.str(this.str$(10,
582
!0))};Sk.builtin.float_.prototype.str$=function(a,b){if(isNaN(this.v))return"nan";void 0===b&&(b=!0);if(Infinity==this.v)return"inf";if(-Infinity==this.v&&b)return"-inf";if(-Infinity==this.v&&!b)return"inf";b=b?this.v:Math.abs(this.v);if(void 0===a||10===a){var c=Sk.__future__.python3?b.toPrecision(16):b.toPrecision(12);var d=c.indexOf(".");a=b.toString().slice(0,d);d=b.toString().slice(d);a.match(/^-?0$/)&&d.slice(1).match(/^0{4,}/)&&(c=12>c.length?b.toExponential():b.toExponential(11));if(0>c.indexOf("e")&&
583
0<=c.indexOf(".")){for(;"0"==c.charAt(c.length-1);)c=c.substring(0,c.length-1);"."==c.charAt(c.length-1)&&(c+="0")}c=c.replace(/\.0+e/,"e","i");c=c.replace(/(e[-+])([1-9])$/,"$10$2");c=c.replace(/0+(e.*)/,"$1")}else c=b.toString(a);0===this.v&&-Infinity===1/this.v&&(c="-"+c);0>c.indexOf(".")&&0>c.indexOf("E")&&0>c.indexOf("e")&&(c+=".0");return c}},function(m,p){var a=new Sk.builtin.ExternalError("Sk.builtin.nmber is deprecated.");Sk.builtin.nmber=function(a,c){throw new Sk.builtin.ExternalError("Sk.builtin.nmber is deprecated. Please replace with Sk.builtin.int_, Sk.builtin.float_, or Sk.builtin.assk$.");
584
};Sk.builtin.nmber.prototype.tp$index=function(){return this.v};Sk.builtin.nmber.prototype.tp$hash=function(){throw a;};Sk.builtin.nmber.fromInt$=function(b){throw a;};Sk.builtin.nmber.prototype.clone=function(){throw a;};Sk.builtin.nmber.prototype.toFixed=function(b){throw a;};Sk.builtin.nmber.prototype.nb$add=function(b){throw a;};Sk.builtin.nmber.prototype.nb$subtract=function(b){throw a;};Sk.builtin.nmber.prototype.nb$multiply=function(b){throw a;};Sk.builtin.nmber.prototype.nb$divide=function(b){throw a;
585
};Sk.builtin.nmber.prototype.nb$floor_divide=function(b){throw a;};Sk.builtin.nmber.prototype.nb$remainder=function(b){throw a;};Sk.builtin.nmber.prototype.nb$divmod=function(b){throw a;};Sk.builtin.nmber.prototype.nb$power=function(b){throw a;};Sk.builtin.nmber.prototype.nb$and=function(b){throw a;};Sk.builtin.nmber.prototype.nb$or=function(b){throw a;};Sk.builtin.nmber.prototype.nb$xor=function(b){throw a;};Sk.builtin.nmber.prototype.nb$lshift=function(b){throw a;};Sk.builtin.nmber.prototype.nb$rshift=
586
function(b){throw a;};Sk.builtin.nmber.prototype.nb$inplace_add=Sk.builtin.nmber.prototype.nb$add;Sk.builtin.nmber.prototype.nb$inplace_subtract=Sk.builtin.nmber.prototype.nb$subtract;Sk.builtin.nmber.prototype.nb$inplace_multiply=Sk.builtin.nmber.prototype.nb$multiply;Sk.builtin.nmber.prototype.nb$inplace_divide=Sk.builtin.nmber.prototype.nb$divide;Sk.builtin.nmber.prototype.nb$inplace_remainder=Sk.builtin.nmber.prototype.nb$remainder;Sk.builtin.nmber.prototype.nb$inplace_floor_divide=Sk.builtin.nmber.prototype.nb$floor_divide;
587
Sk.builtin.nmber.prototype.nb$inplace_power=Sk.builtin.nmber.prototype.nb$power;Sk.builtin.nmber.prototype.nb$inplace_and=Sk.builtin.nmber.prototype.nb$and;Sk.builtin.nmber.prototype.nb$inplace_or=Sk.builtin.nmber.prototype.nb$or;Sk.builtin.nmber.prototype.nb$inplace_xor=Sk.builtin.nmber.prototype.nb$xor;Sk.builtin.nmber.prototype.nb$inplace_lshift=Sk.builtin.nmber.prototype.nb$lshift;Sk.builtin.nmber.prototype.nb$inplace_rshift=Sk.builtin.nmber.prototype.nb$rshift;Sk.builtin.nmber.prototype.nb$negative=
588
function(){throw a;};Sk.builtin.nmber.prototype.nb$positive=function(){throw a;};Sk.builtin.nmber.prototype.nb$nonzero=function(){throw a;};Sk.builtin.nmber.prototype.nb$isnegative=function(){throw a;};Sk.builtin.nmber.prototype.nb$ispositive=function(){throw a;};Sk.builtin.nmber.prototype.numberCompare=function(b){throw a;};Sk.builtin.nmber.prototype.__eq__=function(b,c){throw a;};Sk.builtin.nmber.prototype.__ne__=function(b,c){throw a;};Sk.builtin.nmber.prototype.__lt__=function(b,c){throw a;};
589
Sk.builtin.nmber.prototype.__le__=function(b,c){throw a;};Sk.builtin.nmber.prototype.__gt__=function(b,c){throw a;};Sk.builtin.nmber.prototype.__ge__=function(b,c){throw a;};Sk.builtin.nmber.prototype.round$=function(b,c){throw a;};Sk.builtin.nmber.prototype.$r=function(){throw a;};Sk.builtin.nmber.prototype.tp$str=function(){throw a;};Sk.builtin.nmber.prototype.str$=function(b,c){throw a;};Sk.exportSymbol("Sk.builtin.nmber",Sk.builtin.nmber)},function(m,p){Sk.builtin.lng=function(a,b){b=Sk.builtin.asnum$(b);
590
if(!(this instanceof Sk.builtin.lng))return new Sk.builtin.lng(a,b);if(void 0===a)return this.biginteger=new Sk.builtin.biginteger(0),this;if(a instanceof Sk.builtin.lng)return this.biginteger=a.biginteger.clone(),this;if(a instanceof Sk.builtin.biginteger)return this.biginteger=a,this;if(a instanceof String||"string"===typeof a)return Sk.longFromStr(a,b);if(a instanceof Sk.builtin.str)return Sk.longFromStr(a.v,b);if(void 0!==a&&!Sk.builtin.checkString(a)&&!Sk.builtin.checkNumber(a))if(!0===a)a=1;
591
else if(!1===a)a=0;else throw new Sk.builtin.TypeError("long() argument must be a string or a number, not '"+Sk.abstr.typeName(a)+"'");a=Sk.builtin.asnum$nofloat(a);this.biginteger=new Sk.builtin.biginteger(a);return this};Sk.abstr.setUpInheritance("long",Sk.builtin.lng,Sk.builtin.numtype);Sk.builtin.lng.prototype.tp$index=function(){return parseInt(this.str$(10,!0),10)};Sk.builtin.lng.prototype.tp$hash=function(){return new Sk.builtin.int_(this.tp$index())};Sk.builtin.lng.prototype.nb$int_=function(){return this.cantBeInt()?
592
new Sk.builtin.lng(this):new Sk.builtin.int_(this.toInt$())};Sk.builtin.lng.prototype.round$=function(a,b){Sk.builtin.pyCheckArgsLen("__round__",arguments.length,1,2);if(void 0!==b&&!Sk.misceval.isIndex(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object cannot be interpreted as an index");var c=Sk.builtin.asnum$(a);var d=void 0===b?0:Sk.misceval.asIndex(b);if(Sk.__future__.bankers_rounding){c*=Math.pow(10,d);var e=Math.round(c);d=(.5===(0<c?c:-c)%1?0===e%2?e:e-1:e)/Math.pow(10,d)}else d=
593
Math.pow(10,d),d=Math.round(c*d)/d;return new Sk.builtin.lng(d)};Sk.builtin.lng.prototype.__index__=new Sk.builtin.func(function(a){return a.nb$int_(a)});Sk.builtin.lng.prototype.__format__=Sk.formatting.mkNumber__format__(!1);Sk.builtin.lng.prototype.nb$lng_=function(){return this};Sk.builtin.lng.prototype.nb$float_=function(){let a=Sk.builtin.asnum$(this);a=parseFloat(a);if(!isFinite(a))throw new Sk.builtin.OverflowError("int too large to convert to float");return new Sk.builtin.float_(a)};Sk.builtin.lng.MAX_INT$=
594
new Sk.builtin.lng(Sk.builtin.int_.threshold$);Sk.builtin.lng.MIN_INT$=new Sk.builtin.lng(-Sk.builtin.int_.threshold$);Sk.builtin.lng.prototype.cantBeInt=function(){return 0<this.longCompare(Sk.builtin.lng.MAX_INT$)||0>this.longCompare(Sk.builtin.lng.MIN_INT$)};Sk.builtin.lng.fromInt$=function(a){return new Sk.builtin.lng(a)};Sk.longFromStr=function(a,b){a=Sk.str2number(a,b,function(a,b){return 10===b?new Sk.builtin.biginteger(a):new Sk.builtin.biginteger(a,b)},function(a){return a.negate()},"long");
595
return new Sk.builtin.lng(a)};Sk.exportSymbol("Sk.longFromStr",Sk.longFromStr);Sk.builtin.lng.prototype.toInt$=function(){return parseInt(this.biginteger.toString(),10)};Sk.builtin.lng.prototype.clone=function(){return new Sk.builtin.lng(this)};Sk.builtin.lng.prototype.conjugate=new Sk.builtin.func(function(a){return a.clone()});Sk.builtin.lng.prototype.nb$add=function(a){if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$add(a)}a instanceof Sk.builtin.int_&&
596
(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.add(a.biginteger)):a instanceof Sk.builtin.biginteger?new Sk.builtin.lng(this.biginteger.add(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_add=function(a){return Sk.builtin.lng.prototype.nb$add.call(this,a)};Sk.builtin.lng.prototype.nb$inplace_add=Sk.builtin.lng.prototype.nb$add;Sk.builtin.lng.prototype.nb$subtract=function(a){if(a instanceof Sk.builtin.float_){var b=
597
new Sk.builtin.float_(this.str$(10,!0));return b.nb$subtract(a)}a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.subtract(a.biginteger)):a instanceof Sk.builtin.biginteger?new Sk.builtin.lng(this.biginteger.subtract(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_subtract=function(a){var b=this.nb$negative();return Sk.builtin.lng.prototype.nb$add.call(b,a)};Sk.builtin.lng.prototype.nb$inplace_subtract=
598
Sk.builtin.lng.prototype.nb$subtract;Sk.builtin.lng.prototype.nb$multiply=function(a){if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$multiply(a)}a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.multiply(a.biginteger)):a instanceof Sk.builtin.biginteger?new Sk.builtin.lng(this.biginteger.multiply(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_multiply=
599
function(a){return Sk.builtin.lng.prototype.nb$multiply.call(this,a)};Sk.builtin.lng.prototype.nb$inplace_multiply=Sk.builtin.lng.prototype.nb$multiply;Sk.builtin.lng.prototype.nb$divide=function(a){if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$divide(a)}a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));if(a instanceof Sk.builtin.lng){b=this.nb$isnegative();var c=a.nb$isnegative();if(b&&!c||c&&!b){a=this.biginteger.divideAndRemainder(a.biginteger);
600
if(0===a[1].trueCompare(Sk.builtin.biginteger.ZERO))return new Sk.builtin.lng(a[0]);a=a[0].subtract(Sk.builtin.biginteger.ONE);return new Sk.builtin.lng(a)}return new Sk.builtin.lng(this.biginteger.divide(a.biginteger))}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_divide=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$divide(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$floor_divide=
601
function(a){if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$floor_divide(a)}a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$divide(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$divmod=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.tuple([this.nb$floor_divide(a),this.nb$remainder(a)]):Sk.builtin.NotImplemented.NotImplemented$};
602
Sk.builtin.lng.prototype.nb$reflected_divmod=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.tuple([a.nb$floor_divide(this),a.nb$remainder(this)]):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$inplace_divide=Sk.builtin.lng.prototype.nb$divide;Sk.builtin.lng.prototype.nb$floor_divide=Sk.builtin.lng.prototype.nb$divide;Sk.builtin.lng.prototype.nb$reflected_floor_divide=Sk.builtin.lng.prototype.nb$reflected_divide;
603
Sk.builtin.lng.prototype.nb$inplace_floor_divide=Sk.builtin.lng.prototype.nb$floor_divide;Sk.builtin.lng.prototype.nb$remainder=function(a){if(0===this.biginteger.trueCompare(Sk.builtin.biginteger.ZERO))return a instanceof Sk.builtin.float_?new Sk.builtin.float_(0):new Sk.builtin.lng(0);if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$remainder(a)}a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?(b=new Sk.builtin.lng(this.biginteger.remainder(a.biginteger)),
604
this.nb$isnegative()?a.nb$ispositive()&&b.nb$nonzero()&&(b=b.nb$add(a).nb$remainder(a)):a.nb$isnegative()&&b.nb$nonzero()&&(b=b.nb$add(a)),b):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_remainder=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$remainder(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$inplace_remainder=Sk.builtin.lng.prototype.nb$remainder;Sk.builtin.lng.prototype.nb$divmod=
605
function(a){a===Sk.builtin.bool.true$&&(a=new Sk.builtin.lng(1));a===Sk.builtin.bool.false$&&(a=new Sk.builtin.lng(0));a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));if(a instanceof Sk.builtin.lng)return new Sk.builtin.tuple([this.nb$floor_divide(a),this.nb$remainder(a)]);if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this.str$(10,!0));return b.nb$divmod(a)}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$power=function(a,b){if(void 0!==b)return a=
606
new Sk.builtin.biginteger(Sk.builtin.asnum$(a)),b=new Sk.builtin.biginteger(Sk.builtin.asnum$(b)),new Sk.builtin.lng(this.biginteger.modPowInt(a,b));if(a instanceof Sk.builtin.float_||a instanceof Sk.builtin.int_&&0>a.v)return b=new Sk.builtin.float_(this.str$(10,!0)),b.nb$power(a);a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?void 0!==b?(a=new Sk.builtin.biginteger(Sk.builtin.asnum$(a)),b=new Sk.builtin.biginteger(Sk.builtin.asnum$(b)),new Sk.builtin.lng(this.biginteger.modPowInt(a,
607
b))):a.nb$isnegative()?(b=new Sk.builtin.float_(this.str$(10,!0)),b.nb$power(a)):new Sk.builtin.lng(this.biginteger.pow(a.biginteger)):a instanceof Sk.builtin.biginteger?void 0!==b?(b=new Sk.builtin.biginteger(Sk.builtin.asnum$(b)),new Sk.builtin.lng(this.biginteger.modPowInt(a,b))):a.isnegative()?(b=new Sk.builtin.float_(this.str$(10,!0)),b.nb$power(a)):new Sk.builtin.lng(this.biginteger.pow(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_power=function(a,b){a instanceof
608
Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$power(this,b):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$inplace_power=Sk.builtin.lng.prototype.nb$power;Sk.builtin.lng.prototype.nb$abs=function(){return new Sk.builtin.lng(this.biginteger.bnAbs())};Sk.builtin.lng.prototype.nb$lshift=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));if(a instanceof Sk.builtin.lng){if(0>a.biginteger.signum())throw new Sk.builtin.ValueError("negative shift count");
609
return new Sk.builtin.lng(this.biginteger.shiftLeft(a.biginteger))}if(a instanceof Sk.builtin.biginteger){if(0>a.signum())throw new Sk.builtin.ValueError("negative shift count");return new Sk.builtin.lng(this.biginteger.shiftLeft(a))}return Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_lshift=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$lshift(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$inplace_lshift=
610
Sk.builtin.lng.prototype.nb$lshift;Sk.builtin.lng.prototype.nb$rshift=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));if(a instanceof Sk.builtin.lng){if(0>a.biginteger.signum())throw new Sk.builtin.ValueError("negative shift count");return new Sk.builtin.lng(this.biginteger.shiftRight(a.biginteger))}if(a instanceof Sk.builtin.biginteger){if(0>a.signum())throw new Sk.builtin.ValueError("negative shift count");return new Sk.builtin.lng(this.biginteger.shiftRight(a))}return Sk.builtin.NotImplemented.NotImplemented$};
611
Sk.builtin.lng.prototype.nb$reflected_rshift=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?a.nb$rshift(this):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$inplace_rshift=Sk.builtin.lng.prototype.nb$rshift;Sk.builtin.lng.prototype.nb$and=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.and(a.biginteger)):a instanceof Sk.builtin.biginteger?
612
new Sk.builtin.lng(this.biginteger.and(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_and=Sk.builtin.lng.prototype.nb$and;Sk.builtin.lng.prototype.nb$inplace_and=Sk.builtin.lng.prototype.nb$and;Sk.builtin.lng.prototype.nb$or=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.or(a.biginteger)):a instanceof Sk.builtin.biginteger?new Sk.builtin.lng(this.biginteger.or(a)):Sk.builtin.NotImplemented.NotImplemented$};
613
Sk.builtin.lng.prototype.nb$reflected_or=Sk.builtin.lng.prototype.nb$or;Sk.builtin.lng.prototype.nb$inplace_or=Sk.builtin.lng.prototype.nb$or;Sk.builtin.lng.prototype.nb$xor=function(a){a instanceof Sk.builtin.int_&&(a=new Sk.builtin.lng(a.v));return a instanceof Sk.builtin.lng?new Sk.builtin.lng(this.biginteger.xor(a.biginteger)):a instanceof Sk.builtin.biginteger?new Sk.builtin.lng(this.biginteger.xor(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.nb$reflected_xor=Sk.builtin.lng.prototype.nb$xor;
614
Sk.builtin.lng.prototype.nb$inplace_xor=Sk.builtin.lng.prototype.nb$xor;Sk.builtin.lng.prototype.nb$negative=function(){return new Sk.builtin.lng(this.biginteger.negate())};Sk.builtin.lng.prototype.nb$invert=function(){return new Sk.builtin.lng(this.biginteger.not())};Sk.builtin.lng.prototype.nb$positive=function(){return this.clone()};Sk.builtin.lng.prototype.nb$nonzero=function(){return 0!==this.biginteger.trueCompare(Sk.builtin.biginteger.ZERO)};Sk.builtin.lng.prototype.nb$isnegative=function(){return this.biginteger.isnegative()};
615
Sk.builtin.lng.prototype.nb$ispositive=function(){return!this.biginteger.isnegative()};Sk.builtin.lng.prototype.longCompare=function(a){"number"===typeof a&&(a=new Sk.builtin.lng(a));if(a instanceof Sk.builtin.int_||a instanceof Sk.builtin.float_&&0===a.v%1)return a=new Sk.builtin.lng(a.v),this.longCompare(a);if(a instanceof Sk.builtin.float_){var b=new Sk.builtin.float_(this);return b.numberCompare(a)}return a instanceof Sk.builtin.lng?this.biginteger.subtract(a.biginteger):a instanceof Sk.builtin.biginteger?
616
this.biginteger.subtract(a):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$eq=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0==this.longCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.false$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$ne=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0!=
617
this.longCompare(a)):a===Sk.builtin.none.none$?Sk.builtin.bool.true$:Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$lt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>this.longCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$le=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0>=
618
this.longCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$gt=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<this.longCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};Sk.builtin.lng.prototype.ob$ge=function(a){return a instanceof Sk.builtin.int_||a instanceof Sk.builtin.lng||a instanceof Sk.builtin.float_?new Sk.builtin.bool(0<=this.longCompare(a)):Sk.builtin.NotImplemented.NotImplemented$};
619
Sk.builtin.lng.prototype.$r=function(){var a=Sk.__future__.python3?"":"L";return new Sk.builtin.str(this.str$(10,!0)+a)};Sk.builtin.lng.prototype.tp$str=function(){return new Sk.builtin.str(this.str$(10,!0))};Sk.builtin.lng.prototype.str$=function(a,b){void 0===b&&(b=!0);b=b?this.biginteger:this.biginteger.abs();return void 0===a||10===a?b.toString():b.toString(a)}},function(m,p){Math.hypot=Math.hypot||function(){for(var a=0,b=arguments.length,e=0;e<b;e++){if(Infinity===arguments[e]||-Infinity===
620
arguments[e])return Infinity;a+=arguments[e]*arguments[e]}return Math.sqrt(a)};Sk.builtin.complex=function(a,b){Sk.builtin.pyCheckArgsLen("complex",arguments.length,0,2);var c,d=!1,g=!1;if(!(this instanceof Sk.builtin.complex))return new Sk.builtin.complex(a,b);if("number"===typeof a&&"number"===typeof b)return this.real=a,this.imag=b,this;var f=null==a?Sk.builtin.bool.false$:a;if(f instanceof Sk.builtin.complex&&null==b)return a;if(null!=f&&Sk.builtin.checkString(f)){if(null!=b)throw new Sk.builtin.TypeError("complex() can't take second arg if first is a string");
621
return Sk.builtin.complex.complex_subtype_from_string(f)}if(null!=b&&Sk.builtin.checkString(b))throw new Sk.builtin.TypeError("complex() second arg can't be a string");var k=Sk.builtin.complex.try_complex_special_method(f);if(null!=k&&k!==Sk.builtin.NotImplemented.NotImplemented$){if(!Sk.builtin.checkComplex(k))throw new Sk.builtin.TypeError("__complex__ should return a complex object");f=k}k=Sk.builtin.asnum$(f);null!=b&&(c=Sk.builtin.asnum$(b));var n=function(a){if(Sk.builtin.checkNumber(a)||void 0!==
622
Sk.builtin.type.typeLookup(a.ob$type,Sk.builtin.str.$float_))return!0};if(null==k||!n(f)&&!Sk.builtin.checkComplex(f)||null!=b&&(null==c||!n(b)&&!Sk.builtin.checkComplex(b)))throw new Sk.builtin.TypeError("complex() argument must be a string or number");if(Sk.builtin.complex._complex_check(f))c=f.real,f=f.imag,d=!0;else{k=Sk.builtin.float_.PyFloat_AsDouble(f);if(null==k)return null;c=k;f=0}if(null==b)k=0;else if(Sk.builtin.complex._complex_check(b)){k=b.real;var l=b.imag;g=!0}else{k=Sk.builtin.float_.PyFloat_AsDouble(b);
623
if(null==k)return null;l=0}!0===g&&(c-=l);!0===d&&(k+=f);this.real=c;this.imag=k;return this};Sk.abstr.setUpInheritance("complex",Sk.builtin.complex,Sk.builtin.numtype);Sk.builtin.complex.prototype.__class__=Sk.builtin.complex;Sk.builtin.complex.prototype.nb$int_=function(){throw new Sk.builtin.TypeError("can't convert complex to int");};Sk.builtin.complex.prototype.nb$float_=function(){throw new Sk.builtin.TypeError("can't convert complex to float");};Sk.builtin.complex.prototype.nb$lng=function(){throw new Sk.builtin.TypeError("can't convert complex to long");
624
};Sk.builtin.complex.prototype.__doc__=new Sk.builtin.str("complex(real[, imag]) -> complex number\n\nCreate a complex number from a real part and an optional imaginary part.\nThis is equivalent to (real + imag*1j) where imag defaults to 0.");Sk.builtin.complex._isNegativeZero=function(a){return 0!==a?!1:-Infinity===1/a};Sk.builtin.complex.try_complex_special_method=function(a){if(null==a)return null;var c=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$complex);return null!=c?a=Sk.misceval.callsimArray(c,
625
[a]):null};Sk.builtin.complex.check_number_or_complex=function(a){if(!Sk.builtin.checkNumber(a)&&"complex"!==a.tp$name)throw new Sk.builtin.TypeError("unsupported operand type(s) for +: 'complex' and '"+Sk.abstr.typeName(a)+"'");Sk.builtin.checkNumber(a)&&(a=new Sk.builtin.complex(a));return a};const a=/_[eE]|[eE]_|\._|_\.|[+-]_|_j|j_/,b=/_(?=[^_])/g;Sk.builtin.complex.complex_subtype_from_string=function(c){var d=0,e=0,h=!1;if(Sk.builtin.checkString(c))c=Sk.ffi.remapToJs(c);else if("string"!==typeof c)throw new TypeError("provided unsupported string-alike argument");
626
if(-1!==c.indexOf("\x00")||0===c.length||""===c)throw new Sk.builtin.ValueError("complex() arg is a malformed string");var g=0;c=c.replace(/inf|infinity/gi,"Infinity");for(c=c.replace(/nan/gi,"NaN");" "===c[g];)g++;if("("===c[g])for(h=!0,g++;" "===c[g];)g++;if(-1!==c.indexOf("_")){if(a.test(c))throw new Sk.builtin.ValueError("could not convert string to complex: '"+c+"'");c=c.charAt(0)+c.substring(1).replace(b,"")}var f=/^(?:[+-]?(?:(?:(?:\d*\.\d+)|(?:\d+\.?))(?:[eE][+-]?\d+)?|NaN|Infinity))/;var k=
627
c.substr(g);var n=k.match(f);if(null!==n)if(g+=n[0].length,"j"===c[g]||"J"===c[g])e=parseFloat(n[0]),g++;else if("+"===c[g]||"-"===c[g]){d=parseFloat(n[0]);n=c.substr(g).match(f);null!==n?(e=parseFloat(n[0]),g+=n[0].length):(e="+"===c[g]?1:-1,g++);if("j"!==c[g]&&"J"!==c[g])throw new Sk.builtin.ValueError("complex() arg is malformed string");g++}else d=parseFloat(n[0]);else n=n=k.match(/^([+-]?[jJ])/),null!==n&&(e=1===n[0].length?1:"+"===n[0][0]?1:-1,g+=n[0].length);for(;" "===c[g];)g++;if(h){if(")"!==
628
c[g])throw new Sk.builtin.ValueError("complex() arg is malformed string");for(g++;" "===c[g];)g++}if(c.length!==g)throw new Sk.builtin.ValueError("complex() arg is malformed string");return new Sk.builtin.complex(d,e)};Sk.builtin.complex.prototype.tp$hash=function(){return new Sk.builtin.int_(1000003*this.imag+this.real)};Sk.builtin.complex.prototype.nb$add=function(a){a=Sk.builtin.complex.check_number_or_complex(a);return new Sk.builtin.complex(this.real+a.real,this.imag+a.imag)};Sk.builtin.complex.prototype.nb$reflected_add=
629
Sk.builtin.complex.prototype.nb$add;Sk.builtin.complex._c_diff=function(a,b){return new Sk.builtin.complex(a.real-b.real,a.imag-b.imag)};Sk.builtin.complex.prototype.nb$subtract=function(a){var c=Sk.builtin.complex.check_number_or_complex(this);a=Sk.builtin.complex.check_number_or_complex(a);return Sk.builtin.complex._c_diff(c,a)};Sk.builtin.complex.prototype.nb$reflected_subtract=function(a){return this.nb$negative().nb$add(a)};Sk.builtin.complex.prototype.nb$multiply=function(a){a=Sk.builtin.complex.check_number_or_complex(a);
630
return new Sk.builtin.complex(this.real*a.real-this.imag*a.imag,this.real*a.imag+this.imag*a.real)};Sk.builtin.complex.prototype.nb$reflected_multiply=Sk.builtin.complex.prototype.nb$multiply;Sk.builtin.complex.prototype.nb$divide=function(a){a=Sk.builtin.complex.check_number_or_complex(a);var c=a.real;var b=a.imag;a=this.real;var h=this.imag;var g=Math.abs(c);var f=Math.abs(b);if(g>=f){if(0===g)throw new Sk.builtin.ZeroDivisionError("complex division by zero");g=b/c;f=c+b*g;c=(a+h*g)/f;a=(h-a*g)/
631
f}else f>=g?(g=c/b,f=c*g+b,Sk.asserts.assert(0!==b),c=(a*g+h)/f,a=(h*g-a)/f):a=c=NaN;return new Sk.builtin.complex(c,a)};Sk.builtin.complex.prototype.nb$reflected_divide=function(a){a=Sk.builtin.complex.check_number_or_complex(a);return a.nb$divide(this)};Sk.builtin.complex.prototype.nb$floor_divide=function(a){throw new Sk.builtin.TypeError("can't take floor of complex number.");};Sk.builtin.complex.prototype.nb$remainder=function(a){throw new Sk.builtin.TypeError("can't mod complex numbers.");};
632
Sk.builtin.complex.prototype.nb$power=function(a,b){if(null!=b&&!Sk.builtin.checkNone(b))throw new Sk.builtin.ValueError("complex modulo");b=Sk.builtin.complex.check_number_or_complex(a);a=b.real|0;return 0===b.imag&&b.real===a?Sk.builtin.complex.c_powi(this,a):Sk.builtin.complex.c_pow(this,b)};Sk.builtin.complex.c_pow=function(a,b){var c=b.real;b=b.imag;var d=a.real;var g=a.imag;if(0===c&&0===b)b=1,a=0;else if(0===d&&0===g){if(0!==b||0>c)throw new Sk.builtin.ZeroDivisionError("complex division by zero");
633
a=b=0}else{var f=Math.hypot(d,g);a=Math.pow(f,c);d=Math.atan2(g,d);c*=d;0!==b&&(a/=Math.exp(d*b),c+=b*Math.log(f));b=a*Math.cos(c);a*=Math.sin(c)}return new Sk.builtin.complex(b,a)};Sk.builtin.complex.c_powi=function(a,b){return 100<b||-100>b?(b=new Sk.builtin.complex(b,0),Sk.builtin.complex.c_pow(a,b)):0<b?Sk.builtin.complex.c_powu(a,b):(new Sk.builtin.complex(1,0)).nb$divide(Sk.builtin.complex.c_powu(a,-b))};Sk.builtin.complex.c_powu=function(a,b){var c,d=1;for(c=new Sk.builtin.complex(1,0);0<d&&
634
b>=d;)b&d&&(c=c.nb$multiply(a)),d<<=1,a=a.nb$multiply(a);return c};Sk.builtin.complex.prototype.nb$inplace_add=Sk.builtin.complex.prototype.nb$add;Sk.builtin.complex.prototype.nb$inplace_subtract=Sk.builtin.complex.prototype.nb$subtract;Sk.builtin.complex.prototype.nb$inplace_multiply=Sk.builtin.complex.prototype.nb$multiply;Sk.builtin.complex.prototype.nb$inplace_divide=Sk.builtin.complex.prototype.nb$divide;Sk.builtin.complex.prototype.nb$inplace_remainder=Sk.builtin.complex.prototype.nb$remainder;
635
Sk.builtin.complex.prototype.nb$inplace_floor_divide=Sk.builtin.complex.prototype.nb$floor_divide;Sk.builtin.complex.prototype.nb$inplace_power=Sk.builtin.complex.prototype.nb$power;Sk.builtin.complex.prototype.nb$negative=function(){return new Sk.builtin.complex(-this.real,-this.imag)};Sk.builtin.complex.prototype.nb$positive=function(){return Sk.builtin.complex.check_number_or_complex(this)};Sk.builtin.complex._complex_check=function(a){return void 0===a?!1:a instanceof Sk.builtin.complex?!0:!1};
636
Sk.builtin.complex.prototype.tp$richcompare=function(a,b){if("Eq"!==b&&"NotEq"!==b){if(Sk.builtin.checkNumber(a)||Sk.builtin.complex._complex_check(a))throw new Sk.builtin.TypeError("no ordering relation is defined for complex numbers");return Sk.builtin.NotImplemented.NotImplemented$}var c=Sk.builtin.complex.check_number_or_complex(this);var d=c.real;c=c.imag;if(Sk.builtin.checkInt(a)){if(0===c)return a=Sk.misceval.richCompareBool(new Sk.builtin.float_(d),a,b),b=new Sk.builtin.bool(a);a=!1}else if(Sk.builtin.checkFloat(a))a=
637
d===Sk.builtin.float_.PyFloat_AsDouble(a)&&0===c;else if(Sk.builtin.complex._complex_check(a)){var g=a.imag;a=d===a.real&&c===g}else return Sk.builtin.NotImplemented.NotImplemented$;"NotEq"===b&&(a=!a);return b=new Sk.builtin.bool(a)};Sk.builtin.complex.prototype.__eq__=function(a,b){return Sk.builtin.complex.prototype.tp$richcompare.call(a,b,"Eq")};Sk.builtin.complex.prototype.__ne__=function(a,b){return Sk.builtin.complex.prototype.tp$richcompare.call(a,b,"NotEq")};Sk.builtin.complex.prototype.__lt__=
638
function(a,b){throw new Sk.builtin.TypeError("unorderable types: "+Sk.abstr.typeName(a)+" < "+Sk.abstr.typeName(b));};Sk.builtin.complex.prototype.__le__=function(a,b){throw new Sk.builtin.TypeError("unorderable types: "+Sk.abstr.typeName(a)+" <= "+Sk.abstr.typeName(b));};Sk.builtin.complex.prototype.__gt__=function(a,b){throw new Sk.builtin.TypeError("unorderable types: "+Sk.abstr.typeName(a)+" > "+Sk.abstr.typeName(b));};Sk.builtin.complex.prototype.__ge__=function(a,b){throw new Sk.builtin.TypeError("unorderable types: "+
639
Sk.abstr.typeName(a)+" >= "+Sk.abstr.typeName(b));};Sk.builtin.complex.prototype.__float__=function(a){throw new Sk.builtin.TypeError("can't convert complex to float");};Sk.builtin.complex.prototype.__int__=function(a){throw new Sk.builtin.TypeError("can't convert complex to int");};Sk.builtin.complex.prototype.$internalGenericGetAttr=Sk.builtin.object.prototype.GenericGetAttr;Sk.builtin.complex.prototype.tp$getattr=function(a){return a===Sk.builtin.str.$real||a===Sk.builtin.str.$imag?new Sk.builtin.float_(this[a.$jsstr()]):
640
this.$internalGenericGetAttr(a)};Sk.builtin.complex.prototype.tp$setattr=function(a,b){if(a===Sk.builtin.str.$real||a===Sk.builtin.str.$imag)throw new Sk.builtin.AttributeError("readonly attribute");return Sk.builtin.object.prototype.tp$setattr.call(this,a,b)};Sk.builtin.complex.complex_format=function(a,b,e){if(null==a||!Sk.builtin.complex._complex_check(a))throw Error("Invalid internal method call: Sk.complex.complex_format() called with invalid value type.");var c,d,f=c="";if(d=0===a.real)d=a.real,
641
d=1==(d?0>d?-1:1:0>1/d?-1:1);d?(d="",b=Sk.builtin.complex.PyOS_double_to_string(a.imag,e,b,0,null)):(d=c=Sk.builtin.complex.PyOS_double_to_string(a.real,e,b,0,null),b=Sk.builtin.complex.PyOS_double_to_string(a.imag,e,b,Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_SIGN,null),0===a.imag&&-Infinity===1/a.imag&&b&&"-"!==b[0]&&(b="-"+b),c="(",f=")");return new Sk.builtin.str(""+c+d+b+"j"+f)};Sk.builtin.complex.prototype.$r=function(){return Sk.builtin.complex.complex_format(this,null,"g")};Sk.builtin.complex.prototype.tp$str=
642
function(){return Sk.builtin.complex.complex_format(this,null,"g")};Sk.builtin.complex.prototype.int$format=function(a,b){if(null==b)return null;if(Sk.builtin.checkString(b))return a=Sk.builtin.complex._PyComplex_FormatAdvanced(a,b);throw new Sk.builtin.TypeError("__format__ requires str or unicode");};Sk.builtin.complex.prototype.int$format.co_name=new Sk.builtin.str("__format__");Sk.builtin.complex.prototype.__format__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$format);Sk.builtin.complex._PyComplex_FormatAdvanced=
643
function(a,b){throw new Sk.builtin.NotImplementedError("__format__ is not implemented for complex type.");};Sk.builtin.complex._is_finite=function(a){return!isNaN(a)&&Infinity!==a&&-Infinity!==a};Sk.builtin.complex._is_infinity=function(a){return Infinity===a||-Infinity===a};Sk.builtin.complex.prototype.nb$abs=function(){var a=this.real;var b=this.imag;if(!Sk.builtin.complex._is_finite(a)||!Sk.builtin.complex._is_finite(b))return Sk.builtin.complex._is_infinity(a)?(a=Math.abs(a),new Sk.builtin.float_(a)):
644
Sk.builtin.complex._is_infinity(b)?(a=Math.abs(b),new Sk.builtin.float_(a)):new Sk.builtin.float_(NaN);a=Math.hypot(a,b);if(!Sk.builtin.complex._is_finite(a))throw new Sk.builtin.OverflowError("absolute value too large");return new Sk.builtin.float_(a)};Sk.builtin.complex.prototype.__abs__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__abs__",arguments.length,0,0,!1,!0);return a.nb$abs()});Sk.builtin.complex.prototype.int$bool=function(a){return new Sk.builtin.bool(a.real||a.imag)};
645
Sk.builtin.complex.prototype.int$bool.co_name=new Sk.builtin.str("__bool__");Sk.builtin.complex.prototype.__bool__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$bool);Sk.builtin.complex.prototype.int$truediv=function(a,b){Sk.builtin.pyCheckArgsLen("__truediv__",arguments.length,1,1,!0);return a.nb$divide.call(a,b)};Sk.builtin.complex.prototype.int$truediv.co_name=new Sk.builtin.str("__truediv__");Sk.builtin.complex.prototype.__truediv__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$truediv);
646
Sk.builtin.complex.prototype.int$hash=function(a){Sk.builtin.pyCheckArgsLen("__hash__",arguments.length,0,0,!0);return a.tp$hash.call(a)};Sk.builtin.complex.prototype.int$hash.co_name=new Sk.builtin.str("__hash__");Sk.builtin.complex.prototype.__hash__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$hash);Sk.builtin.complex.prototype.int$add=function(a,b){Sk.builtin.pyCheckArgsLen("__add__",arguments.length,1,1,!0);return a.nb$add.call(a,b)};Sk.builtin.complex.prototype.int$add.co_name=new Sk.builtin.str("__add__");
647
Sk.builtin.complex.prototype.__add__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$add);Sk.builtin.complex.prototype.int$repr=function(a){Sk.builtin.pyCheckArgsLen("__repr__",arguments.length,0,0,!0);return a.r$.call(a)};Sk.builtin.complex.prototype.int$repr.co_name=new Sk.builtin.str("__repr__");Sk.builtin.complex.prototype.__repr__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$repr);Sk.builtin.complex.prototype.int$str=function(a){Sk.builtin.pyCheckArgsLen("__str__",arguments.length,
648
0,0,!0);return a.tp$str.call(a)};Sk.builtin.complex.prototype.int$str.co_name=new Sk.builtin.str("__str__");Sk.builtin.complex.prototype.__str__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$str);Sk.builtin.complex.prototype.int$sub=function(a,b){Sk.builtin.pyCheckArgsLen("__sub__",arguments.length,1,1,!0);return a.nb$subtract.call(a,b)};Sk.builtin.complex.prototype.int$sub.co_name=new Sk.builtin.str("__sub__");Sk.builtin.complex.prototype.__sub__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$sub);
649
Sk.builtin.complex.prototype.int$mul=function(a,b){Sk.builtin.pyCheckArgsLen("__mul__",arguments.length,1,1,!0);return a.nb$multiply.call(a,b)};Sk.builtin.complex.prototype.int$mul.co_name=new Sk.builtin.str("__mul__");Sk.builtin.complex.prototype.__mul__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$mul);Sk.builtin.complex.prototype.int$div=function(a,b){Sk.builtin.pyCheckArgsLen("__div__",arguments.length,1,1,!0);return a.nb$divide.call(a,b)};Sk.builtin.complex.prototype.int$div.co_name=
650
new Sk.builtin.str("__div__");Sk.builtin.complex.prototype.__div__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$div);Sk.builtin.complex.prototype.int$floordiv=function(a,b){Sk.builtin.pyCheckArgsLen("__floordiv__",arguments.length,1,1,!0);return a.nb$floor_divide.call(a,b)};Sk.builtin.complex.prototype.int$floordiv.co_name=new Sk.builtin.str("__floordiv__");Sk.builtin.complex.prototype.__floordiv__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$floordiv);Sk.builtin.complex.prototype.int$mod=
651
function(a,b){Sk.builtin.pyCheckArgsLen("__mod__",arguments.length,1,1,!0);return a.nb$remainder.call(a,b)};Sk.builtin.complex.prototype.int$mod.co_name=new Sk.builtin.str("__mod__");Sk.builtin.complex.prototype.__mod__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$mod);Sk.builtin.complex.prototype.int$pow=function(a,b,e){Sk.builtin.pyCheckArgsLen("__pow__",arguments.length,1,2,!0);return a.nb$power.call(a,b,e)};Sk.builtin.complex.prototype.int$pow.co_name=new Sk.builtin.str("__pow__");Sk.builtin.complex.prototype.__pow__=
652
new Sk.builtin.func(Sk.builtin.complex.prototype.int$pow);Sk.builtin.complex.prototype.int$neg=function(a){Sk.builtin.pyCheckArgsLen("__neg__",arguments.length,0,0,!0);return a.nb$negative.call(a)};Sk.builtin.complex.prototype.__neg__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$neg);Sk.builtin.complex.prototype.int$pos=function(a){Sk.builtin.pyCheckArgsLen("__pos__",arguments.length,0,0,!0);return a.nb$positive.call(a)};Sk.builtin.complex.prototype.int$pos.co_name=new Sk.builtin.str("__pos__");
653
Sk.builtin.complex.prototype.__pos__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$pos);Sk.builtin.complex.prototype.int$conjugate=function(a){Sk.builtin.pyCheckArgsLen("conjugate",arguments.length,0,0,!0);return new Sk.builtin.complex(a.real,-a.imag)};Sk.builtin.complex.prototype.int$conjugate.co_name=new Sk.builtin.str("conjugate");Sk.builtin.complex.prototype.conjugate=new Sk.builtin.func(Sk.builtin.complex.prototype.int$conjugate);Sk.builtin.complex.prototype.int$divmod=function(a,b){Sk.builtin.pyCheckArgsLen("__divmod__",
654
arguments.length,1,1,!0);var c=Sk.builtin.complex.check_number_or_complex(a);var d=Sk.builtin.complex.check_number_or_complex(b);var g=c.nb$divide.call(c,d);g.real=Math.floor(g.real);g.imag=0;c=c.nb$subtract.call(c,d.nb$multiply.call(d,g));return new Sk.builtin.tuple([g,c])};Sk.builtin.complex.prototype.int$divmod.co_name=new Sk.builtin.str("__divmod__");Sk.builtin.complex.prototype.__divmod__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$divmod);Sk.builtin.complex.prototype.int$getnewargs=
655
function(a){Sk.builtin.pyCheckArgsLen("__getnewargs__",arguments.length,0,0,!0);return new Sk.builtin.tuple([new Sk.builtin.float_(a.real),new Sk.builtin.float_(a.imag)])};Sk.builtin.complex.prototype.int$getnewargs.co_name=new Sk.builtin.str("__getnewargs__");Sk.builtin.complex.prototype.__getnewargs__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$getnewargs);Sk.builtin.complex.prototype.int$nonzero=function(a){Sk.builtin.pyCheckArgsLen("__nonzero__",arguments.length,0,0,!0);return 0!==a.real||
656
0!==a.imag?Sk.builtin.bool.true$:Sk.builtin.bool.false$};Sk.builtin.complex.prototype.int$nonzero.co_name=new Sk.builtin.str("__nonzero__");Sk.builtin.complex.prototype.__nonzero__=new Sk.builtin.func(Sk.builtin.complex.prototype.int$nonzero);Sk.builtin.complex.prototype.nb$bool=function(){return new Sk.builtin.bool(this.real||this.imag)};Sk.builtin.complex.prototype.nb$nonzero=function(){return new Sk.builtin.bool(this.real||this.imag)};Sk.exportSymbol("Sk.builtin.complex",Sk.builtin.complex);Sk.builtin.complex.PyOS_double_to_string=
657
function(a,b,e,h,g){g=!1;switch(b){case "e":case "f":case "g":break;case "E":g=!0;b="e";break;case "F":g=!0;b="f";break;case "r":if(0!==e)throw Error("Bad internall call");e=17;b="g";break;default:throw Error("Bad internall call");}if(isNaN(a))a="nan";else if(Infinity===a)a="inf";else if(-Infinity===a)a="-inf";else{h&Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_ADD_DOT_0&&(b="g");var c="%"+(h&Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_ALT?"#":"");null!=e&&(c=c+"."+e);c=new Sk.builtin.str(c+
658
b);a=c.nb$remainder(new Sk.builtin.float_(a));a=a.v}h&Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_SIGN&&"-"!==a[0]&&(a="+"+a);g&&(a=a.toUpperCase());return a};Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_SIGN=1;Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_ADD_DOT_0=2;Sk.builtin.complex.PyOS_double_to_string.Py_DTSF_ALT=4;Sk.builtin.complex.PyOS_double_to_string.Py_DTST_FINITE=0;Sk.builtin.complex.PyOS_double_to_string.Py_DTST_INFINITE=1;Sk.builtin.complex.PyOS_double_to_string.Py_DTST_NAN=
659
2},function(m,p){Sk.builtin.slice=function(a,b,c){Sk.builtin.pyCheckArgsLen("slice",arguments.length,1,3,!1,!1);if(void 0!==c&&Sk.misceval.isIndex(c)&&0===Sk.misceval.asIndex(c))throw new Sk.builtin.ValueError("slice step cannot be zero");if(!(this instanceof Sk.builtin.slice))return new Sk.builtin.slice(a,b,c);void 0===b&&void 0===c&&(b=a,a=Sk.builtin.none.none$);void 0===b&&(b=Sk.builtin.none.none$);void 0===c&&(c=Sk.builtin.none.none$);this.start=a;this.stop=b;this.step=c;this.__class__=Sk.builtin.slice;
14550 bpr 660
this.$d=new Sk.builtin.dict([Sk.builtin.slice$start,this.start,Sk.builtin.slice$stop,this.stop,Sk.builtin.slice$step,this.step]);return this};Sk.abstr.setUpInheritance("slice",Sk.builtin.slice,Sk.builtin.object);Sk.builtin.slice.prototype.$r=function(){var a=Sk.builtin.repr(this.start).v,b=Sk.builtin.repr(this.stop).v,c=Sk.builtin.repr(this.step).v;return new Sk.builtin.str("slice("+a+", "+b+", "+c+")")};Sk.builtin.slice.prototype.tp$richcompare=function(a,b){if(!a.__class__||a.__class__!=Sk.builtin.slice)return"Eq"===
16494 obado 661
b?!1:"NotEq"===b?!0:Sk.__future__.python3?Sk.builtin.NotImplemented.NotImplemented$:!1;var c=new Sk.builtin.tuple([this.start,this.stop,this.step]);a=new Sk.builtin.tuple([a.start,a.stop,a.step]);return c.tp$richcompare(a,b)};Sk.builtin.slice.prototype.slice_indices_=function(a){if(Sk.builtin.checkNone(this.start))var b=null;else if(Sk.misceval.isIndex(this.start))b=Sk.misceval.asIndex(this.start);else throw new Sk.builtin.TypeError("slice indices must be integers or None");if(Sk.builtin.checkNone(this.stop))var c=
662
null;else if(Sk.misceval.isIndex(this.stop))c=Sk.misceval.asIndex(this.stop);else throw new Sk.builtin.TypeError("slice indices must be integers or None");if(Sk.builtin.checkNone(this.step))var d=null;else if(Sk.misceval.isIndex(this.step))d=Sk.misceval.asIndex(this.step);else throw new Sk.builtin.TypeError("slice indices must be integers or None");null===d&&(d=1);0<d?(null===b&&(b=0),null===c&&(c=a),c>a&&(c=a),0>b&&(b=a+b,0>b&&(b=0)),0>c&&(c=a+c)):(null===b&&(b=a-1),b>=a&&(b=a-1),null===c?c=-1:0>
663
c&&(c=a+c,0>c&&(c=-1)),0>b&&(b=a+b));return[b,c,d]};Sk.builtin.slice.prototype.indices=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("indices",arguments.length,2,2,!1,!1);b=Sk.builtin.asnum$(b);var c=a.slice_indices_(b);return new Sk.builtin.tuple([new Sk.builtin.int_(c[0]),new Sk.builtin.int_(c[1]),new Sk.builtin.int_(c[2])])});Sk.builtin.slice.prototype.sssiter$=function(a,b){var c=this.slice_indices_(a),d=c[0];a=c[1];c=c[2];if(0<c)for(;d<a;d+=c)b(d);else for(;d>a;d+=c)b(d)};Sk.builtin.slice$start=
664
new Sk.builtin.str("start");Sk.builtin.slice$stop=new Sk.builtin.str("stop");Sk.builtin.slice$step=new Sk.builtin.str("step")},function(m,p){Sk.builtin.set=function(a){var b;if(!(this instanceof Sk.builtin.set))return Sk.builtin.pyCheckArgsLen("set",arguments.length,0,1),new Sk.builtin.set(a);this.set_reset_();if(void 0!==a){var c=a;c.sk$asarray&&(c=c.sk$asarray());if("[object Array]"===Object.prototype.toString.apply(c)){var d=c.length;for(b=0;b<d;b++)Sk.builtin.set.prototype.add.func_code(this,
665
c[b])}else if(Sk.builtin.checkIterable(c))for(c=Sk.abstr.iter(c),b=c.tp$iternext();void 0!==b;b=c.tp$iternext())Sk.builtin.set.prototype.add.func_code(this,b);else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not iterable");}return this};Sk.abstr.setUpInheritance("set",Sk.builtin.set,Sk.builtin.object);Sk.abstr.markUnhashable(Sk.builtin.set);Sk.builtin.set.prototype.__class__=Sk.builtin.set;Sk.builtin.set.prototype.set_reset_=function(){this.v=new Sk.builtin.dict([])};Sk.builtin.set.prototype.$r=
666
function(){var a,b=[];var c=Sk.abstr.iter(this);for(a=c.tp$iternext();void 0!==a;a=c.tp$iternext())b.push(Sk.misceval.objectRepr(a).v);return Sk.__future__.python3?0===b.length?new Sk.builtin.str("set()"):new Sk.builtin.str("{"+b.join(", ")+"}"):new Sk.builtin.str("set(["+b.join(", ")+"])")};Sk.builtin.set.prototype.sk$asarray=function(){return this.v.sk$asarray()};Sk.builtin.set.prototype.ob$eq=function(a){return this===a?Sk.builtin.bool.true$:a instanceof Sk.builtin.set&&Sk.builtin.set.prototype.sq$length.call(this)===
667
Sk.builtin.set.prototype.sq$length.call(a)?this.issubset.func_code(this,a):Sk.builtin.bool.false$};Sk.builtin.set.prototype.ob$ne=function(a){return this===a?Sk.builtin.bool.false$:a instanceof Sk.builtin.set&&Sk.builtin.set.prototype.sq$length.call(this)===Sk.builtin.set.prototype.sq$length.call(a)?this.issubset.func_code(this,a).v?Sk.builtin.bool.false$:Sk.builtin.bool.true$:Sk.builtin.bool.true$};Sk.builtin.set.prototype.ob$lt=function(a){return this===a||Sk.builtin.set.prototype.sq$length.call(this)>=
668
Sk.builtin.set.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issubset.func_code(this,a)};Sk.builtin.set.prototype.ob$le=function(a){return this===a?Sk.builtin.bool.true$:Sk.builtin.set.prototype.sq$length.call(this)>Sk.builtin.set.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issubset.func_code(this,a)};Sk.builtin.set.prototype.ob$gt=function(a){return this===a||Sk.builtin.set.prototype.sq$length.call(this)<=Sk.builtin.set.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issuperset.func_code(this,
669
a)};Sk.builtin.set.prototype.ob$ge=function(a){return this===a?Sk.builtin.bool.true$:Sk.builtin.set.prototype.sq$length.call(this)<Sk.builtin.set.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issuperset.func_code(this,a)};Sk.builtin.set.prototype.nb$and=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.set))throw new Sk.builtin.TypeError("unsupported operand type(s) for &: 'set' and '"+Sk.abstr.typeName(a)+"'");return this.intersection.func_code(this,a)};Sk.builtin.set.prototype.nb$or=
670
function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.set))throw new Sk.builtin.TypeError("unsupported operand type(s) for |: 'set' and '"+Sk.abstr.typeName(a)+"'");return this.union.func_code(this,a)};Sk.builtin.set.prototype.nb$xor=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.set))throw new Sk.builtin.TypeError("unsupported operand type(s) for ^: 'set' and '"+Sk.abstr.typeName(a)+"'");return this.symmetric_difference.func_code(this,a)};Sk.builtin.set.prototype.nb$subtract=
671
function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.set))throw new Sk.builtin.TypeError("unsupported operand type(s) for -: 'set' and '"+Sk.abstr.typeName(a)+"'");return this.difference.func_code(this,a)};Sk.builtin.set.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!1,!0);return new Sk.builtin.set_iter_(a)});Sk.builtin.set.prototype.tp$iter=function(){return new Sk.builtin.set_iter_(this)};Sk.builtin.set.prototype.sq$length=
672
function(){return this.v.mp$length()};Sk.builtin.set.prototype.sq$contains=function(a){return this.v.sq$contains(a)};Sk.builtin.set.prototype.isdisjoint=new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("isdisjoint",arguments.length,2,2);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var d=Sk.abstr.iter(a);for(c=d.tp$iternext();void 0!==c;c=d.tp$iternext())if(c=Sk.abstr.sequenceContains(b,c))return Sk.builtin.bool.false$;
673
return Sk.builtin.bool.true$});Sk.builtin.set.prototype.issubset=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("issubset",arguments.length,2,2);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var c=a.sq$length();var d=b.sq$length();if(c>d)return Sk.builtin.bool.false$;c=Sk.abstr.iter(a);for(d=c.tp$iternext();void 0!==d;d=c.tp$iternext())if(d=Sk.abstr.sequenceContains(b,d),!d)return Sk.builtin.bool.false$;return Sk.builtin.bool.true$});
674
Sk.builtin.set.prototype.issuperset=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("issuperset",arguments.length,2,2);return Sk.builtin.set.prototype.issubset.func_code(b,a)});Sk.builtin.set.prototype.union=new Sk.builtin.func(function(a){var b;Sk.builtin.pyCheckArgsLen("union",arguments.length,1);var c=Sk.builtin.set.prototype.copy.func_code(a);var d=[c];for(b=1;b<arguments.length;b++)d.push(arguments[b]);Sk.builtin.set.prototype.update.func_code.apply(null,d);return c});Sk.builtin.set.prototype.intersection=
675
new Sk.builtin.func(function(a){var b;Sk.builtin.pyCheckArgsLen("intersection",arguments.length,1);var c=Sk.builtin.set.prototype.copy.func_code(a);var d=[c];for(b=1;b<arguments.length;b++)d.push(arguments[b]);Sk.builtin.set.prototype.intersection_update.func_code.apply(null,d);return c});Sk.builtin.set.prototype.difference=new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("difference",arguments.length,2);var d=Sk.builtin.set.prototype.copy.func_code(a);var e=[d];for(c=1;c<arguments.length;c++)e.push(arguments[c]);
676
Sk.builtin.set.prototype.difference_update.func_code.apply(null,e);return d});Sk.builtin.set.prototype.symmetric_difference=new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("symmetric_difference",arguments.length,2,2);var d=Sk.builtin.set.prototype.union.func_code(a,b);var e=Sk.abstr.iter(d);for(c=e.tp$iternext();void 0!==c;c=e.tp$iternext())Sk.abstr.sequenceContains(a,c)&&Sk.abstr.sequenceContains(b,c)&&Sk.builtin.set.prototype.discard.func_code(d,c);return d});Sk.builtin.set.prototype.copy=
677
new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("copy",arguments.length,1,1);return new Sk.builtin.set(a)});Sk.builtin.set.prototype.update=new Sk.builtin.func(function(a,b){var c,d;Sk.builtin.pyCheckArgsLen("update",arguments.length,2);for(c=1;c<arguments.length;c++){var e=arguments[c];if(!Sk.builtin.checkIterable(e))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(e)+"' object is not iterable");e=Sk.abstr.iter(e);for(d=e.tp$iternext();void 0!==d;d=e.tp$iternext())Sk.builtin.set.prototype.add.func_code(a,
678
d)}return Sk.builtin.none.none$});Sk.builtin.set.prototype.intersection_update=new Sk.builtin.func(function(a,b){var c,d;Sk.builtin.pyCheckArgsLen("intersection_update",arguments.length,2);for(c=1;c<arguments.length;c++)if(!Sk.builtin.checkIterable(arguments[c]))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(arguments[c])+"' object is not iterable");var e=Sk.abstr.iter(a);for(d=e.tp$iternext();void 0!==d;d=e.tp$iternext())for(c=1;c<arguments.length;c++)if(!Sk.abstr.sequenceContains(arguments[c],
679
d)){Sk.builtin.set.prototype.discard.func_code(a,d);break}return Sk.builtin.none.none$});Sk.builtin.set.prototype.difference_update=new Sk.builtin.func(function(a,b){var c,d;Sk.builtin.pyCheckArgsLen("difference_update",arguments.length,2);for(c=1;c<arguments.length;c++)if(!Sk.builtin.checkIterable(arguments[c]))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(arguments[c])+"' object is not iterable");var e=Sk.abstr.iter(a);for(d=e.tp$iternext();void 0!==d;d=e.tp$iternext())for(c=1;c<arguments.length;c++)if(Sk.abstr.sequenceContains(arguments[c],
680
d)){Sk.builtin.set.prototype.discard.func_code(a,d);break}return Sk.builtin.none.none$});Sk.builtin.set.prototype.symmetric_difference_update=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("symmetric_difference_update",arguments.length,2,2);var c=Sk.builtin.set.prototype.symmetric_difference.func_code(a,b);a.set_reset_();Sk.builtin.set.prototype.update.func_code(a,c);return Sk.builtin.none.none$});Sk.builtin.set.prototype.add=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("add",
681
arguments.length,2,2);a.v.mp$ass_subscript(b,!0);return Sk.builtin.none.none$});Sk.builtin.set.prototype.discard=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("discard",arguments.length,2,2);Sk.builtin.dict.prototype.pop.func_code(a.v,b,Sk.builtin.none.none$);return Sk.builtin.none.none$});Sk.builtin.set.prototype.pop=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("pop",arguments.length,1,1);if(0===a.sq$length())throw new Sk.builtin.KeyError("pop from an empty set");var b=
682
Sk.abstr.iter(a).tp$iternext();Sk.builtin.set.prototype.discard.func_code(a,b);return b});Sk.builtin.set.prototype.remove=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("remove",arguments.length,2,2);a.v.mp$del_subscript(b);return Sk.builtin.none.none$});Sk.builtin.set.prototype.__contains__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,2,2);return new Sk.builtin.bool(a.sq$contains(b))});Sk.exportSymbol("Sk.builtin.set",Sk.builtin.set);Sk.builtin.set_iter_=
683
function(a){if(!(this instanceof Sk.builtin.set_iter_))return new Sk.builtin.set_iter_(a);var b=Sk.builtin.create_dict_iter_(a.v);b.$obj=a;b.$r=function(){return new Sk.builtin.str("<setiterator>")};return b};Sk.abstr.setUpInheritance("setiterator",Sk.builtin.set_iter_,Sk.builtin.object);Sk.builtin.set_iter_.prototype.__class__=Sk.builtin.set_iter_;Sk.builtin.set_iter_.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!0,!1);return a});Sk.builtin.set_iter_.prototype.next$=
684
function(a){a=a.tp$iternext();if(void 0===a)throw new Sk.builtin.StopIteration;return a}},function(m,p){Sk.builtin.frozenset=function(a){var b;if(!(this instanceof Sk.builtin.frozenset))return Sk.builtin.pyCheckArgsLen("frozenset",arguments.length,0,1),new Sk.builtin.frozenset(a);this.frozenset_reset_();if(void 0!==a){var c=a;c.sk$asarray&&(c=c.sk$asarray());if("[object Array]"===Object.prototype.toString.apply(c)){var d=c.length;for(b=0;b<d;b++)this.v.mp$ass_subscript(c[b],!0)}else if(Sk.builtin.checkIterable(c))for(c=
685
Sk.abstr.iter(c),b=c.tp$iternext();void 0!==b;b=c.tp$iternext())this.v.mp$ass_subscript(b,!0);else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(a)+"' object is not iterable");}return this};Sk.abstr.setUpInheritance("frozenset",Sk.builtin.frozenset,Sk.builtin.object);Sk.builtin.frozenset.prototype.__class__=Sk.builtin.frozenset;Sk.builtin.frozenset.prototype.frozenset_reset_=function(){this.v=new Sk.builtin.dict([])};Sk.builtin.frozenset.prototype.$r=function(){var a,b=[];var c=Sk.abstr.iter(this);
686
for(a=c.tp$iternext();void 0!==a;a=c.tp$iternext())b.push(Sk.misceval.objectRepr(a).v);return Sk.__future__.python3?0===b.length?new Sk.builtin.str("frozenset()"):new Sk.builtin.str("frozenset({"+b.join(", ")+"})"):new Sk.builtin.str("frozenset(["+b.join(", ")+"])")};Sk.builtin.frozenset.prototype.sk$asarray=function(){return this.v.sk$asarray()};Sk.builtin.frozenset.prototype.tp$hash=function(){let a=1927868237;const b=this.sk$asarray();a*=b.length+1;for(let c=0;c<b.length;c++){const d=Sk.builtin.hash(b[c]).v;
687
a^=3644798167*(d^d<<16^89869747)}return this.$savedHash_=a=new Sk.builtin.int_(69069*a+907133923)};Sk.builtin.frozenset.prototype.ob$eq=function(a){return this===a?Sk.builtin.bool.true$:a instanceof Sk.builtin.frozenset&&Sk.builtin.frozenset.prototype.sq$length.call(this)===Sk.builtin.frozenset.prototype.sq$length.call(a)?this.issubset.func_code(this,a):Sk.builtin.bool.false$};Sk.builtin.frozenset.prototype.ob$ne=function(a){return this===a?Sk.builtin.bool.false$:a instanceof Sk.builtin.frozenset&&
688
Sk.builtin.frozenset.prototype.sq$length.call(this)===Sk.builtin.frozenset.prototype.sq$length.call(a)?this.issubset.func_code(this,a).v?Sk.builtin.bool.false$:Sk.builtin.bool.true$:Sk.builtin.bool.true$};Sk.builtin.frozenset.prototype.ob$lt=function(a){return this===a||Sk.builtin.frozenset.prototype.sq$length.call(this)>=Sk.builtin.frozenset.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issubset.func_code(this,a)};Sk.builtin.frozenset.prototype.ob$le=function(a){return this===a?Sk.builtin.bool.true$:
689
Sk.builtin.frozenset.prototype.sq$length.call(this)>Sk.builtin.frozenset.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issubset.func_code(this,a)};Sk.builtin.frozenset.prototype.ob$gt=function(a){return this===a||Sk.builtin.frozenset.prototype.sq$length.call(this)<=Sk.builtin.frozenset.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issuperset.func_code(this,a)};Sk.builtin.frozenset.prototype.ob$ge=function(a){return this===a?Sk.builtin.bool.true$:Sk.builtin.frozenset.prototype.sq$length.call(this)<
690
Sk.builtin.frozenset.prototype.sq$length.call(a)?Sk.builtin.bool.false$:this.issuperset.func_code(this,a)};Sk.builtin.frozenset.prototype.nb$and=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.frozenset))throw new Sk.builtin.TypeError("unsupported operand type(s) for &: 'frozenset' and '"+Sk.abstr.typeName(a)+"'");return this.intersection.func_code(this,a)};Sk.builtin.frozenset.prototype.nb$or=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.frozenset))throw new Sk.builtin.TypeError("unsupported operand type(s) for |: 'frozenset' and '"+
691
Sk.abstr.typeName(a)+"'");return this.union.func_code(this,a)};Sk.builtin.frozenset.prototype.nb$xor=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.frozenset))throw new Sk.builtin.TypeError("unsupported operand type(s) for ^: 'frozenset' and '"+Sk.abstr.typeName(a)+"'");return this.symmetric_difference.func_code(this,a)};Sk.builtin.frozenset.prototype.nb$subtract=function(a){if(Sk.__future__.python3&&!(a instanceof Sk.builtin.frozenset))throw new Sk.builtin.TypeError("unsupported operand type(s) for -: 'frozenset' and '"+
692
Sk.abstr.typeName(a)+"'");return this.difference.func_code(this,a)};Sk.builtin.frozenset.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,0,0,!1,!0);return new Sk.builtin.set_iter_(a)});Sk.builtin.frozenset.prototype.tp$iter=function(){return new Sk.builtin.set_iter_(this)};Sk.builtin.frozenset.prototype.sq$length=function(){return this.v.mp$length()};Sk.builtin.frozenset.prototype.sq$contains=function(a){return this.v.sq$contains(a)};Sk.builtin.frozenset.prototype.isdisjoint=
693
new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("isdisjoint",arguments.length,2,2);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var d=Sk.abstr.iter(a);for(c=d.tp$iternext();void 0!==c;c=d.tp$iternext())if(c=Sk.abstr.sequenceContains(b,c))return Sk.builtin.bool.false$;return Sk.builtin.bool.true$});Sk.builtin.frozenset.prototype.issubset=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("issubset",arguments.length,
694
2,2);if(!Sk.builtin.checkIterable(b))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object is not iterable");var c=a.sq$length();var d=b.sq$length();if(c>d)return Sk.builtin.bool.false$;c=Sk.abstr.iter(a);for(d=c.tp$iternext();void 0!==d;d=c.tp$iternext())if(d=Sk.abstr.sequenceContains(b,d),!d)return Sk.builtin.bool.false$;return Sk.builtin.bool.true$});Sk.builtin.frozenset.prototype.issuperset=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("issuperset",arguments.length,2,
695
2);return Sk.builtin.frozenset.prototype.issubset.func_code(b,a)});Sk.builtin.frozenset.prototype.union=new Sk.builtin.func(function(a){var b;Sk.builtin.pyCheckArgsLen("union",arguments.length,1);var c=Sk.builtin.frozenset.prototype.copy.func_code(a);var d=[c];for(b=1;b<arguments.length;b++)d.push(arguments[b]);var e;for(b=0;b<d.length;b++){var h=d[b];if(!Sk.builtin.checkIterable(h))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(h)+"' object is not iterable");h=Sk.abstr.iter(h);for(e=h.tp$iternext();void 0!==
696
e;e=h.tp$iternext())c.v.mp$ass_subscript(e,!0)}return c});Sk.builtin.frozenset.prototype.intersection=new Sk.builtin.func(function(a){var b;Sk.builtin.pyCheckArgsLen("intersection",arguments.length,1);var c=Sk.builtin.frozenset.prototype.copy.func_code(a);var d=[c];for(b=1;b<arguments.length;b++)d.push(arguments[b]);var e;for(b=1;b<arguments.length;b++)if(!Sk.builtin.checkIterable(arguments[b]))throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(arguments[b])+"' object is not iterable");d=Sk.abstr.iter(a);
697
for(e=d.tp$iternext();void 0!==e;e=d.tp$iternext())for(b=1;b<arguments.length;b++)if(!Sk.abstr.sequenceContains(arguments[b],e)){Sk.builtin.dict.prototype.pop.func_code(c.v,e,Sk.builtin.none.none$);break}return c});Sk.builtin.frozenset.prototype.difference=new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("difference",arguments.length,2);var d=Sk.builtin.frozenset.prototype.copy.func_code(a);var e=[d];for(c=1;c<arguments.length;c++)e.push(arguments[c]);var h;for(c=1;c<arguments.length;c++)if(!Sk.builtin.checkIterable(arguments[c]))throw new Sk.builtin.TypeError("'"+
698
Sk.abstr.typeName(arguments[c])+"' object is not iterable");e=Sk.abstr.iter(a);for(h=e.tp$iternext();void 0!==h;h=e.tp$iternext())for(c=1;c<arguments.length;c++)if(Sk.abstr.sequenceContains(arguments[c],h)){Sk.builtin.dict.prototype.pop.func_code(d.v,h,Sk.builtin.none.none$);break}return d});Sk.builtin.frozenset.prototype.symmetric_difference=new Sk.builtin.func(function(a,b){var c;Sk.builtin.pyCheckArgsLen("symmetric_difference",arguments.length,2,2);var d=Sk.builtin.frozenset.prototype.union.func_code(a,
699
b);var e=Sk.abstr.iter(d);for(c=e.tp$iternext();void 0!==c;c=e.tp$iternext())Sk.abstr.sequenceContains(a,c)&&Sk.abstr.sequenceContains(b,c)&&Sk.builtin.dict.prototype.pop.func_code(d.v,c,Sk.builtin.none.none$);return d});Sk.builtin.frozenset.prototype.copy=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("copy",arguments.length,1,1);return new Sk.builtin.frozenset(a)});Sk.exportSymbol("Sk.builtin.frozenset",Sk.builtin.frozenset);Sk.builtin.frozenset.prototype.__contains__=new Sk.builtin.func(function(a,
700
b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,2,2);return new Sk.builtin.bool(a.sq$contains(b))})},function(m,p){m=function(a){Sk.builtin.pyCheckArgsLen("print",arguments.length,0,Infinity,!0,!1);var b=Array.prototype.slice.call(arguments,1),c=new Sk.builtin.dict(a);Sk.ffi.remapToJs(c);var d={sep:" ",end:"\n",file:null};var e=c.mp$lookup(new Sk.builtin.str("sep"));if(void 0!==e){var h=Sk.builtin.checkNone(e);if(Sk.builtin.checkString(e)||h)d.sep=h?d.sep:Sk.ffi.remapToJs(e);else throw new Sk.builtin.TypeError("sep must be None or a string, not "+
701
Sk.abstr.typeName(e));}e=c.mp$lookup(new Sk.builtin.str("end"));if(void 0!==e)if(h=Sk.builtin.checkNone(e),Sk.builtin.checkString(e)||h)d.end=h?d.end:Sk.ffi.remapToJs(e);else throw new Sk.builtin.TypeError("end must be None or a string, not "+Sk.abstr.typeName(e));e=c.mp$lookup(new Sk.builtin.str("file"));if(void 0!==e)if((h=Sk.builtin.checkNone(e))||void 0!==e.tp$getattr("write"))d.file=h?d.file:e;else throw new Sk.builtin.AttributeError("'"+Sk.abstr.typeName(e)+"' object has no attribute 'write'");
702
var g="";for(c=0;c<b.length;c++)g+=(new Sk.builtin.str(b[c])).v,g+=d.sep;0<b.length&&0<d.sep.length&&(g=g.substring(0,g.length-d.sep.length));g+=d.end;if(null!==d.file)Sk.misceval.callsimArray(d.file.write,[d.file,new Sk.builtin.str(g)]);else return Sk.misceval.chain(Sk.importModule("sys",!1,!0),function(a){return Sk.misceval.callsimOrSuspendArray(a.$d.stdout.write,[a.$d.stdout,new Sk.builtin.str(g)])})};m.co_kwargs=!0;Sk.builtin.print=new Sk.builtin.func(m);Sk.builtin.print.__doc__=new Sk.builtin.str("print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n\nPrints the values to a stream, or to sys.stdout by default.\nOptional keyword arguments:\nfile:  a file-like object (stream); defaults to the current sys.stdout.\nsep:   string inserted between values, default a space.\nend:   string appended after the last value, default a newline.\nflush: whether to forcibly flush the stream.")},
703
function(m,p){Sk.builtin.module=function(){};Sk.exportSymbol("Sk.builtin.module",Sk.builtin.module);Sk.builtin.module.prototype.ob$type=Sk.builtin.type.makeIntoTypeObj("module",Sk.builtin.module);Sk.builtin.module.prototype.tp$getattr=Sk.builtin.object.prototype.GenericGetAttr;Sk.builtin.module.prototype.tp$setattr=Sk.builtin.object.prototype.GenericSetAttr;Sk.builtin.module.prototype.tp$name="module";Sk.builtin.module.prototype.$r=function(){let a=a=>{a=this.tp$getattr(new Sk.builtin.str(a));return Sk.builtin.repr(a||
704
Sk.builtin.str.$emptystr).$jsstr()};return new Sk.builtin.str("<module "+a("__name__")+" from "+a("__file__")+">")}},function(m,p){Sk.builtin.structseq_types={};Sk.builtin.make_structseq=function(a,b,c,d){var e=a+"."+b,h=[];a=[];for(var g in c)h.push(g),a.push(c[g]);c=function(a){Sk.builtin.pyCheckArgsLen(e,arguments.length,1,1);var b;if(!(this instanceof Sk.builtin.structseq_types[e])){var c=Object.create(Sk.builtin.structseq_types[e].prototype);c.constructor.apply(c,arguments);return c}if(Array.isArray(a))var d=
705
a;else{d=[];c=Sk.abstr.iter(a);for(b=c.tp$iternext();void 0!==b;b=c.tp$iternext())d.push(b);if(d.length!=h.length)throw new Sk.builtin.TypeError(e+"() takes a "+h.length+"-sequence ("+d.length+"-sequence given)");}Sk.builtin.tuple.call(this,d);this.__class__=Sk.builtin.structseq_types[e]};Sk.builtin.structseq_types[e]=c;Sk.abstr.inherits(c,Sk.builtin.tuple);d&&(c.prototype.__doc__=d);c.prototype.tp$name=e;c.prototype.ob$type=Sk.builtin.type.makeIntoTypeObj(e,Sk.builtin.structseq_types[e]);c.prototype.ob$type.$d=
706
new Sk.builtin.dict([]);c.prototype.ob$type.$d.mp$ass_subscript(Sk.builtin.type.basesStr_,new Sk.builtin.tuple([Sk.builtin.tuple]));c.prototype.__getitem__=new Sk.builtin.func(function(a,b){return Sk.builtin.tuple.prototype.mp$subscript.call(a,b)});c.prototype.__reduce__=new Sk.builtin.func(function(a){throw new Sk.builtin.Exception("__reduce__ is not implemented");});c.prototype.$r=function(){var a;if(0===this.v.length)return new Sk.builtin.str(e+"()");var b=[];for(a=0;a<this.v.length;++a)b[a]=h[a]+
707
"="+Sk.misceval.objectRepr(this.v[a]).v;a=b.join(", ");1===this.v.length&&(a+=",");return new Sk.builtin.str(e+"("+a+")")};c.prototype.tp$setattr=function(a,b){throw new Sk.builtin.AttributeError("readonly property");};c.prototype.tp$getattr=function(a){var b=a.$jsstr();b=h.indexOf(b);return 0<=b?this.v[b]:Sk.builtin.object.prototype.GenericGetAttr(a)};return c};Sk.exportSymbol("Sk.builtin.make_structseq",Sk.builtin.make_structseq)},function(m,p){Sk.builtin.generator=function(a,b,c,d,e){var h;if(a){if(!(this instanceof
708
Sk.builtin.generator))return new Sk.builtin.generator(a,b,c,d,e);this.func_code=a;this.func_globals=b||null;this.gi$running=!1;this.gi$resumeat=0;this.gi$sentvalue=void 0;this.gi$locals={};this.gi$cells={};if(0<c.length)for(b=0;b<a.co_varnames.length;++b)this.gi$locals[a.co_varnames[b]]=c[b];if(void 0!==e)for(h in e)d[h]=e[h];this.func_closure=d;return this}};Sk.exportSymbol("Sk.builtin.generator",Sk.builtin.generator);Sk.abstr.setUpInheritance("generator",Sk.builtin.generator,Sk.builtin.object);
709
Sk.builtin.generator.prototype.tp$iter=function(){return this};Sk.builtin.generator.prototype.tp$iternext=function(a,b){var c=this;this.gi$running=!0;void 0===b&&(b=Sk.builtin.none.none$);this.gi$sentvalue=b;b=[this];this.func_closure&&b.push(this.func_closure);return function h(b){if(b instanceof Sk.misceval.Suspension){if(a)return new Sk.misceval.Suspension(h,b);b=Sk.misceval.retryOptionalSuspensionOrThrow(b)}c.gi$running=!1;Sk.asserts.assert(void 0!==b);if(b!==Sk.builtin.none.none$)return c.gi$resumeat=
710
b[0],b=b[1]}(this.func_code.apply(this.func_globals,b))};Sk.builtin.generator.prototype.next$=function(a){return a.tp$iternext(!0)};Sk.builtin.generator.prototype.$r=function(){return new Sk.builtin.str("<generator object "+this.func_code.co_name.v+">")};Sk.builtin.generator.prototype.send=new Sk.builtin.func(function(a,b){return a.tp$iternext(!0,b)});Sk.builtin.makeGenerator=function(a,b){var c,d=new Sk.builtin.generator(null,null,null);d.tp$iternext=a;for(c in b)b.hasOwnProperty(c)&&(d[c]=b[c]);
711
return d};Sk.exportSymbol("Sk.builtin.makeGenerator",Sk.builtin.makeGenerator)},function(m,p){Sk.builtin.file=function(a,b,c){var d;if(!(this instanceof Sk.builtin.file))return new Sk.builtin.file(a,b,c);this.mode=b;this.name=Sk.ffi.remapToJs(a);this.closed=!1;if("/dev/stdout"===this.name)this.data$=Sk.builtin.none.none$,this.fileno=1;else if("/dev/stdin"===this.name)this.fileno=0;else if("/dev/stderr"===this.name)this.fileno=2;else{if(Sk.inBrowser)if(this.fileno=10,c=document.getElementById(a.v),
712
null==c)if("w"==b.v||"a"==b.v)this.data$="";else throw new Sk.builtin.IOError("[Errno 2] No such file or directory: '"+a.v+"'");else"textarea"==c.nodeName.toLowerCase()?this.data$=c.value:this.data$=c.textContent;else this.fileno=11,this.data$=Sk.read(a.v);this.lineList=this.data$.split("\n");this.lineList=this.lineList.slice(0,-1);for(d in this.lineList)this.lineList[d]+="\n";this.currentLine=0}this.pos$=0;this.__class__=Sk.builtin.file;Sk.fileopen&&10<=this.fileno&&Sk.fileopen(this);return this};
713
Sk.abstr.setUpInheritance("file",Sk.builtin.file,Sk.builtin.object);Sk.builtin.file.prototype.$r=function(){return new Sk.builtin.str("<"+(this.closed?"closed":"open")+"file '"+this.name+"', mode '"+Sk.ffi.remapToJs(this.mode)+"'>")};Sk.builtin.file.prototype.__enter__=new Sk.builtin.func(function(a){return a});Sk.builtin.file.prototype.__exit__=new Sk.builtin.func(function(a){return Sk.misceval.callsimArray(Sk.builtin.file.prototype.close,[a])});Sk.builtin.file.prototype.tp$iter=function(){var a=
714
{tp$iter:function(){return a},$obj:this,$index:this.currentLine,$lines:this.lineList,tp$iternext:function(){if(!(a.$index>=a.$lines.length))return new Sk.builtin.str(a.$lines[a.$index++])}};return a};Sk.builtin.file.prototype.close=new Sk.builtin.func(function(a){a.closed=!0;return Sk.builtin.none.none$});Sk.builtin.file.prototype.flush=new Sk.builtin.func(function(a){});Sk.builtin.file.prototype.fileno=new Sk.builtin.func(function(a){return this.fileno});Sk.builtin.file.prototype.isatty=new Sk.builtin.func(function(a){return!1});
715
Sk.builtin.file.prototype.read=new Sk.builtin.func(function(a,b){var c=a.data$.length;if(a.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");var d=void 0===b?c:Sk.ffi.remapToJs(b);d=new Sk.builtin.str(a.data$.substr(a.pos$,d));a.pos$=void 0===b?c:a.pos$+Sk.ffi.remapToJs(b);a.pos$>=c&&(a.pos$=c);return d});Sk.builtin.file.$readline=function(a,b,c){if(0===a.fileno){a=Sk.ffi.remapToJs(c);a=Sk.inputfun(a?a:"");if(a instanceof Promise||a&&"function"===typeof a.then){var d=new Sk.misceval.Suspension;
716
d.resume=function(){if(d.data.error)throw d.data.error;return new Sk.builtin.str(d.data.result)};d.data={type:"Sk.promise",promise:a};return d}return new Sk.builtin.str(a)}b="";a.currentLine<a.lineList.length&&(b=a.lineList[a.currentLine],a.currentLine++);return new Sk.builtin.str(b)};Sk.builtin.file.prototype.readline=new Sk.builtin.func(function(a,b){return Sk.builtin.file.$readline(a,b,void 0)});Sk.builtin.file.prototype.readlines=new Sk.builtin.func(function(a,b){if(0===a.fileno)return new Sk.builtin.NotImplementedError("readlines ins't implemented because the web doesn't support Ctrl+D");
717
var c=[];for(b=a.currentLine;b<a.lineList.length;b++)c.push(new Sk.builtin.str(a.lineList[b]));return new Sk.builtin.list(c)});Sk.builtin.file.prototype.seek=new Sk.builtin.func(function(a,b,c){b=Sk.ffi.remapToJs(b);void 0===c&&(c=0);0===c?a.pos$=b:1==c?a.pos$=a.data$.length+b:2==c&&(a.pos$=a.data$.length+b);return Sk.builtin.none.none$});Sk.builtin.file.prototype.tell=new Sk.builtin.func(function(a){return Sk.ffi.remapToPy(a.pos$)});Sk.builtin.file.prototype.truncate=new Sk.builtin.func(function(a,
718
b){Sk.asserts.fail()});Sk.builtin.file.prototype.write=new Sk.builtin.func(function(a,b){var c=Sk.ffi.remapToJs(a.mode);if("w"===c||"wb"===c||"a"===c||"ab"===c)if(Sk.filewrite){if(a.closed)throw new Sk.builtin.ValueError("I/O operation on closed file");1===a.fileno?Sk.output(Sk.ffi.remapToJs(b)):Sk.filewrite(a,b)}else 1===a.fileno?Sk.output(Sk.ffi.remapToJs(b)):Sk.asserts.fail();else throw new Sk.builtin.IOError("File not open for writing");return Sk.builtin.none.none$});Sk.exportSymbol("Sk.builtin.file",
719
Sk.builtin.file)},function(m,p){Sk.ffi=Sk.ffi||{};Sk.ffi.remapToPy=function(a){var b;if(null===a||"undefined"===typeof a)return Sk.builtin.none.none$;if(a.ob$type)return a;if(a instanceof Sk.misceval.Suspension)return a;if("[object Array]"===Object.prototype.toString.call(a)){var c=[];for(b=0;b<a.length;++b)c.push(Sk.ffi.remapToPy(a[b]));return new Sk.builtin.list(c)}if("object"===typeof a){c=[];for(b in a)c.push(Sk.ffi.remapToPy(b)),c.push(Sk.ffi.remapToPy(a[b]));return new Sk.builtin.dict(c)}if("string"===
720
typeof a)return new Sk.builtin.str(a);if("number"===typeof a)return Sk.builtin.assk$(a);if("boolean"===typeof a)return new Sk.builtin.bool(a);if("undefined"===typeof a)return Sk.builtin.none.none$;if("function"===typeof a)return new Sk.builtin.func(a);Sk.asserts.fail("unhandled remap type "+typeof a)};Sk.exportSymbol("Sk.ffi.remapToPy",Sk.ffi.remapToPy);Sk.ffi.remapToJs=function(a){var b;if(a instanceof Sk.builtin.dict){var c={};var d=a.tp$iter();for(b=d.tp$iternext();void 0!==b;b=d.tp$iternext()){var e=
721
a.mp$subscript(b);void 0===e&&(e=null);b=Sk.ffi.remapToJs(b);c[b]=Sk.ffi.remapToJs(e)}return c}if(a instanceof Sk.builtin.list||a instanceof Sk.builtin.tuple){c=[];for(e=0;e<a.v.length;++e)c.push(Sk.ffi.remapToJs(a.v[e]));return c}if(a instanceof Sk.builtin.bool)return a.v?!0:!1;if(a instanceof Sk.builtin.int_)return Sk.builtin.asnum$(a);if(a instanceof Sk.builtin.float_)return Sk.builtin.asnum$(a);if(a instanceof Sk.builtin.lng)return Sk.builtin.asnum$(a);if("number"===typeof a||"boolean"===typeof a||
722
"string"===typeof a)return a;if(void 0!==a)return a.v};Sk.exportSymbol("Sk.ffi.remapToJs",Sk.ffi.remapToJs);Sk.ffi.callback=function(a){return void 0===a?a:function(){return Sk.misceval.apply(a,void 0,void 0,void 0,Array.prototype.slice.call(arguments,0))}};Sk.exportSymbol("Sk.ffi.callback",Sk.ffi.callback);Sk.ffi.stdwrap=function(a,b){a=new a;a.v=b;return a};Sk.exportSymbol("Sk.ffi.stdwrap",Sk.ffi.stdwrap);Sk.ffi.basicwrap=function(a){if(a instanceof Sk.builtin.int_)return Sk.builtin.asnum$(a);if(a instanceof
723
Sk.builtin.float_)return Sk.builtin.asnum$(a);if(a instanceof Sk.builtin.lng)return Sk.builtin.asnum$(a);if("number"===typeof a||"boolean"===typeof a)return a;if("string"===typeof a)return new Sk.builtin.str(a);Sk.asserts.fail("unexpected type for basicwrap")};Sk.exportSymbol("Sk.ffi.basicwrap",Sk.ffi.basicwrap);Sk.ffi.unwrapo=function(a){if(void 0!==a)return a.v};Sk.exportSymbol("Sk.ffi.unwrapo",Sk.ffi.unwrapo);Sk.ffi.unwrapn=function(a){return null===a?null:a.v};Sk.exportSymbol("Sk.ffi.unwrapn",
724
Sk.ffi.unwrapn)},function(m,p){Sk.builtin.iterator=function(a,b){var c;if(a instanceof Sk.builtin.generator)return a;if(c=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$iter))return Sk.misceval.callsimArray(c,[a]);this.sentinel=b;this.flag=!1;this.idx=0;this.obj=a;void 0===b?(this.getitem=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$getitem),this.$r=function(){return new Sk.builtin.str("<iterator object>")}):(this.call=Sk.abstr.lookupSpecial(a,Sk.builtin.str.$call),this.$r=function(){return new Sk.builtin.str("<callable-iterator object>")});
725
return this};Sk.abstr.setUpInheritance("iterator",Sk.builtin.iterator,Sk.builtin.object);Sk.builtin.iterator.prototype.__class__=Sk.builtin.iterator;Sk.builtin.iterator.prototype.__iter__=new Sk.builtin.func(function(a){return a.tp$iter()});Sk.builtin.iterator.prototype.tp$iter=function(){return this};Sk.builtin.iterator.prototype.tp$iternext=function(a){var b=this;if(!0!==this.flag){if(this.getitem){var c=Sk.misceval.tryCatch(function(){return Sk.misceval.callsimOrSuspendArray(b.getitem,[b.obj,Sk.ffi.remapToPy(b.idx++)])},
726
function(a){if(!(a instanceof Sk.builtin.StopIteration||a instanceof Sk.builtin.IndexError))throw a;});return a?c:Sk.misceval.retryOptionalSuspensionOrThrow(c)}c=function(a){if(Sk.misceval.richCompareBool(a,b.sentinel,"Eq"))b.flag=!0;else return a};c=this.call?Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(this.call,[this.obj]),c):Sk.misceval.chain(Sk.misceval.callsimOrSuspendArray(this.obj),c);return a?c:Sk.misceval.retryOptionalSuspensionOrThrow(c)}};Sk.builtin.iterator.prototype.next$=function(a){a=
727
a.tp$iternext();if(!a)throw new Sk.builtin.StopIteration;return a};Sk.exportSymbol("Sk.builtin.iterator",Sk.builtin.iterator)},function(m,p){Sk.builtin.range_=function(a,b,c,d){if(!(this instanceof Sk.builtin.range_))return new Sk.builtin.range_(a,b,c,d);this.v=d;this.$start=a;this.$stop=b;this.$step=c;this.$r=function(){var a="range("+this.$start+", "+this.$stop;1!=this.$step&&(a+=", "+this.$step);return new Sk.builtin.str(a+")")};return this};Sk.abstr.setUpInheritance("range",Sk.builtin.range_,
728
Sk.builtin.object);Sk.builtin.range_.prototype.__class__=Sk.builtin.range_;Sk.builtin.range_.prototype.mp$subscript=function(a){var b=this.v.mp$subscript(a);if(b instanceof Sk.builtin.list){if(Sk.builtin.checkNone(a.start))var c=this.v.mp$subscript(new Sk.builtin.int_(0)).v;else try{c=this.v.mp$subscript(a.start).v}catch(e){c=this.$start}try{var d=this.v.mp$subscript(a.stop).v}catch(e){d=this.$stop}a=Sk.builtin.checkNone(a.step)?1:Sk.misceval.asIndex(a.step);a*=this.$step;return new Sk.builtin.range_(c,
729
d,a,b)}return b};Sk.builtin.range_.prototype.__getitem__=new Sk.builtin.func(function(a,b){return Sk.builtin.range_.prototype.mp$subscript.call(a,b)});Sk.builtin.range_.prototype.sq$contains=function(a){return this.v.sq$contains(a)};Sk.builtin.range_.prototype.sq$length=function(){return this.v.sq$length()};Sk.builtin.range_.prototype.tp$richcompare=function(a,b){a.__class__==Sk.builtin.range_&&(a=a.v);return this.v.tp$richcompare(a,b)};Sk.builtin.range_.prototype.tp$iter=function(){var a=this.v.tp$iter();
730
a.$r=function(){return new Sk.builtin.str("<rangeiterator>")};return a};Sk.builtin.range_.prototype.__iter__=new Sk.builtin.func(function(a){Sk.builtin.pyCheckArgsLen("__iter__",arguments.length,1,1);return a.tp$iter()});Sk.builtin.range_.prototype.__contains__=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("__contains__",arguments.length,2,2);return new Sk.builtin.bool(a.sq$contains(b))});Sk.builtin.range_.prototype.index=new Sk.builtin.func(function(a,b,c,d){Sk.builtin.pyCheckArgsLen("index",
731
arguments.length,2,4);return Sk.misceval.callsimArray(a.v.index,[a.v,b,c,d])});Sk.builtin.range_.prototype.count=new Sk.builtin.func(function(a,b){Sk.builtin.pyCheckArgsLen("count",arguments.length,2,2);return Sk.misceval.callsimArray(a.v.count,[a.v,b])})},function(m,p){Sk.builtin.enumerate=function(a,b){if(!(this instanceof Sk.builtin.enumerate))return new Sk.builtin.enumerate(a,b);Sk.builtin.pyCheckArgsLen("enumerate",arguments.length,1,2);if(!Sk.builtin.checkIterable(a))throw new Sk.builtin.TypeError("'"+
732
Sk.abstr.typeName(a)+"' object is not iterable");if(void 0!==b)if(Sk.misceval.isIndex(b))b=Sk.misceval.asIndex(b);else throw new Sk.builtin.TypeError("'"+Sk.abstr.typeName(b)+"' object cannot be interpreted as an index");else b=0;var c=a.tp$iter();this.tp$iter=function(){return this};this.$index=b;this.tp$iternext=function(){var a=c.tp$iternext();if(void 0!==a){var b=new Sk.builtin.int_(this.$index++);return new Sk.builtin.tuple([b,a])}};this.__class__=Sk.builtin.enumerate;return this};Sk.abstr.setUpInheritance("enumerate",
733
Sk.builtin.enumerate,Sk.builtin.object);Sk.builtin.enumerate.prototype.__iter__=new Sk.builtin.func(function(a){return a.tp$iter()});Sk.builtin.enumerate.prototype.next$=function(a){return a.tp$iternext()};Sk.builtin.enumerate.co_varnames=["iterable","start"];Sk.builtin.enumerate.co_argcount=2;Sk.builtin.enumerate.$defaults=[Sk.builtin.none.none$,0];Sk.builtin.enumerate.co_name=new Sk.builtin.str("enumerate");Sk.builtin.enumerate.prototype.$r=function(){return new Sk.builtin.str("<enumerate object>")}},
734
function(m,p){Sk.builtin.filter_=function(a,b){var c,d;Sk.builtin.pyCheckArgsLen("filter_",arguments.length,2,2);if(!(this instanceof Sk.builtin.filter_))return new Sk.builtin.filter_(a,b);var e=Sk.abstr.iter(b);var h=function(b){c=a===Sk.builtin.none.none$?b:Sk.misceval.callsimArray(a,[b]);if(Sk.misceval.isTrue(c))return c};this.tp$iter=function(){return this};this.tp$iternext=function(){d=e.tp$iternext();if(void 0!==d){for(c=h(d);void 0===c;){d=e.tp$iternext();if(void 0===d)return;c=h(d)}return d}};
735
this.__class__=Sk.builtin.filter_;return this};Sk.abstr.setUpInheritance("filter",Sk.builtin.filter_,Sk.builtin.object);Sk.builtin.filter_.prototype.__iter__=new Sk.builtin.func(function(a){return a.tp$iter()});Sk.builtin.filter_.prototype.next$=function(a){return a.tp$iternext()};Sk.builtin.filter_.prototype.$r=function(){return new Sk.builtin.str("<filter object>")};Sk.exportSymbol("Sk.builtin.filter_",Sk.builtin.filter_)},function(m,p){Sk.builtin.zip_=function(){var a,b;if(!(this instanceof Sk.builtin.zip_))return new Sk.builtin.zip_(...arguments);
736
if(0===arguments.length)return new Sk.builtin.zip_(new Sk.builtin.list([]));var c=[];for(a=0;a<arguments.length;a++)try{c.push(Sk.abstr.iter(arguments[a]))}catch(d){if(d instanceof Sk.builtin.TypeError)throw new Sk.builtin.TypeError("zip argument #"+(a+1)+" must support iteration");throw d;}this.tp$iter=function(){return this};this.tp$iternext=function(){var d=[];for(a=0;a<c.length;a++){b=c[a].tp$iternext();if(void 0===b)return;d.push(b)}return new Sk.builtin.tuple(d)};this.__class__=Sk.builtin.zip_;
737
return this};Sk.abstr.setUpInheritance("zip",Sk.builtin.zip_,Sk.builtin.object);Sk.builtin.zip_.prototype.__iter__=new Sk.builtin.func(function(a){return a.tp$iter()});Sk.builtin.zip_.prototype.next$=function(a){return a.tp$iternext()};Sk.builtin.zip_.prototype.$r=function(){return new Sk.builtin.str("<zip object>")};Sk.exportSymbol("Sk.builtin.zip_",Sk.builtin.zip_)},function(m,p){Sk.builtin.map_=function(a,b){var c,d,e,h;Sk.builtin.pyCheckArgsLen("map_",arguments.length,2);if(!(this instanceof Sk.builtin.map_)){var g=
738
Array.prototype.slice.apply(arguments).slice(1);return new Sk.builtin.map_(a,...g)}if(2<arguments.length){var f=Array.prototype.slice.apply(arguments).slice(1);for(d=0;d<f.length;d++)f[d]=Sk.abstr.iter(f[d]);var k=function(){h=[];for(d=0;d<f.length;d++){c=f[d].tp$iternext();if(void 0===c)return;h.push(c)}return h}}else b=Sk.abstr.iter(b),k=function(){return b.tp$iternext()};this.tp$iternext=function(){e=k();if(void 0!==e){if(a===Sk.builtin.none.none$)return e instanceof Array&&(e=new Sk.builtin.tuple(e)),
739
e;e instanceof Array||(e=[e]);return Sk.misceval.applyOrSuspend(a,void 0,void 0,void 0,e)}};this.tp$iter=function(){return this};this.__class__=Sk.builtin.map_;return this};Sk.abstr.setUpInheritance("map",Sk.builtin.map_,Sk.builtin.object);Sk.builtin.map_.prototype.__iter__=new Sk.builtin.func(function(a){return a.tp$iter()});Sk.builtin.map_.prototype.next$=function(a){return a.tp$iternext()};Sk.builtin.map_.prototype.$r=function(){return new Sk.builtin.str("<map object>")};Sk.exportSymbol("Sk.builtin.map_",
740
Sk.builtin.map_)},function(m,p){var a={T_ENDMARKER:0,T_NAME:1,T_NUMBER:2,T_STRING:3,T_NEWLINE:4,T_INDENT:5,T_DEDENT:6,T_LPAR:7,T_RPAR:8,T_LSQB:9,T_RSQB:10,T_COLON:11,T_COMMA:12,T_SEMI:13,T_PLUS:14,T_MINUS:15,T_STAR:16,T_SLASH:17,T_VBAR:18,T_AMPER:19,T_LESS:20,T_GREATER:21,T_EQUAL:22,T_DOT:23,T_PERCENT:24,T_LBRACE:25,T_RBRACE:26,T_EQEQUAL:27,T_NOTEQUAL:28,T_LESSEQUAL:29,T_GREATEREQUAL:30,T_TILDE:31,T_CIRCUMFLEX:32,T_LEFTSHIFT:33,T_RIGHTSHIFT:34,T_DOUBLESTAR:35,T_PLUSEQUAL:36,T_MINEQUAL:37,T_STAREQUAL:38,
741
T_SLASHEQUAL:39,T_PERCENTEQUAL:40,T_AMPEREQUAL:41,T_VBAREQUAL:42,T_CIRCUMFLEXEQUAL:43,T_LEFTSHIFTEQUAL:44,T_RIGHTSHIFTEQUAL:45,T_DOUBLESTAREQUAL:46,T_DOUBLESLASH:47,T_DOUBLESLASHEQUAL:48,T_AT:49,T_ATEQUAL:50,T_RARROW:51,T_ELLIPSIS:52,T_OP:53,T_AWAIT:54,T_ASYNC:55,T_ERRORTOKEN:56,T_NT_OFFSET:256,T_N_TOKENS:60,T_COMMENT:57,T_NL:58,T_ENCODING:59};m={"!=":a.NOTEQUAL,"%":a.PERCENT,"%=":a.PERCENTEQUAL,"&":a.AMPER,"&=":a.AMPEREQUAL,"(":a.LPAR,")":a.RPAR,"*":a.STAR,"**":a.DOUBLESTAR,"**=":a.DOUBLESTAREQUAL,
742
"*=":a.STAREQUAL,"+":a.PLUS,"+=":a.PLUSEQUAL,",":a.COMMA,"-":a.MINUS,"-=":a.MINEQUAL,"->":a.RARROW,".":a.DOT,"...":a.ELLIPSIS,"/":a.SLASH,"//":a.DOUBLESLASH,"//=":a.DOUBLESLASHEQUAL,"/=":a.SLASHEQUAL,":":a.COLON,":=":a.COLONEQUAL,";":a.SEMI,"<":a.LESS,"<<":a.LEFTSHIFT,"<<=":a.LEFTSHIFTEQUAL,"<=":a.LESSEQUAL,"=":a.EQUAL,"==":a.EQEQUAL,">":a.GREATER,">=":a.GREATEREQUAL,">>":a.RIGHTSHIFT,">>=":a.RIGHTSHIFTEQUAL,"@":a.AT,"@=":a.ATEQUAL,"[":a.LSQB,"]":a.RSQB,"^":a.CIRCUMFLEX,"^=":a.CIRCUMFLEXEQUAL,"{":a.LBRACE,
743
"|":a.VBAR,"|=":a.VBAREQUAL,"}":a.RBRACE,"~":a.TILDE};var b={};(function(){for(var c in a)b[a[c]]=c})();["tok_name","ISTERMINAL","ISNONTERMINAL","ISEOF"].concat(Object.keys(b).map(function(a){return b[a]}));Sk.token={};Sk.token.tokens=a;Sk.token.tok_name=b;Sk.token.EXACT_TOKEN_TYPES=m;Sk.token.ISTERMINAL=function(b){return b<a.T_NT_OFFSET};Sk.token.ISNONTERMINAL=function(b){return b>=a.T_NT_OFFSET};Sk.token.ISEOF=function(b){return b==a.T_ENDMARKER};Sk.exportSymbol("Sk.token",Sk.token);Sk.exportSymbol("Sk.token.tokens",
744
Sk.token.tokens);Sk.exportSymbol("Sk.token.tok_name",Sk.token.tok_name);Sk.exportSymbol("Sk.token.EXACT_TOKEN_TYPES");Sk.exportSymbol("Sk.token.ISTERMINAL",Sk.token.ISTERMINAL);Sk.exportSymbol("Sk.token.ISNONTERMINAL",Sk.token.ISNONTERMINAL);Sk.exportSymbol("Sk.token.ISEOF",Sk.token.ISEOF)},function(m,p){function a(a,b,c,d,f){this.type=a;this.string=b;this.start=c;this.end=d;this.line=f}function b(a){return"("+Array.prototype.slice.call(arguments).join("|")+")"}function c(a){return b.apply(null,arguments)+
745
"?"}function d(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1}function e(){return" FR RF Br BR Fr r B R b bR f rb rB F Rf U rF u RB br fR fr rf Rb".split(" ")}var h=Sk.token.tokens;const g=Sk.builtin.SyntaxError,f=Sk.builtin.SyntaxError;a.prototype.exact_type=function(){return this.type==h.T_OP&&this.string in Sk.token.EXACT_TOKEN_TYPES?Sk.token.EXACT_TOKEN_TYPES[this.string]:this.type};var k=/[\\^$.*+?()[\]{}|]/g,n=RegExp(k.source);const l=function(){var a=b("[A-Z]","[a-z]","[\\u{10B99}-\\u{10B9C}\\u{112A9}\\u{115DC}-\\u{115DD}\\u034F\\u115F-\\u1160\\u17B4-\\u17B5\\u2065\\u3164\\uFFA0\\uFFF0-\\uFFF8\\u{E0000}\\u{E0002}-\\u{E001F}\\u{E0080}-\\u{E00FF}\\u{E01F0}-\\u{E0FFF}\\u{112A9}\\u00D7]",
746
"[\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u06E5-\\u06E6\\u07F4-\\u07F5\\u0971\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1DFD-\\u1DFF\\u2E2F\\u30FC\\uA67F\\uA69C-\\uA69D\\uA717-\\uA71F\\uA788\\uA7F8-\\uA7F9\\uAB5C-\\uAB5F\\uFF70\\uFF9E-\\uFF9F\\u{16F93}-\\u{16F9F}\\u02D0-\\u02D1\\u0640\\u07FA\\u0E46\\u0EC6\\u1843\\u1AA7\\u1C7B\\u3005\\u3031-\\u3035\\u309D-\\u309E\\u30FC-\\u30FE\\uA015\\uA60C\\uA9CF\\uA9E6\\uAA70\\uAADD\\uAAF3-\\uAAF4\\uFF70\\u{16B42}-\\u{16B43}\\u{16FE0}-\\u{16FE1}\\u02B0-\\u02B8\\u02C0-\\u02C1\\u02E0-\\u02E4\\u037A\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C-\\u2C7D\\uA69C-\\uA69D\\uA770\\uA7F8-\\uA7F9\\uAB5C-\\uAB5F\\uFF9E-\\uFF9F\\u02B2\\u1D62\\u1DA4\\u1DA8\\u2071\\u2C7C\\u2E18-\\u2E19\\u2E2F]",
747
"[\\u2135-\\u2138\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u3006\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uF900-\\uFA6D\\uFA70-\\uFAD9\\u{17000}-\\u{187F1}\\u{18800}-\\u{18AF2}\\u{1B170}-\\u{1B2FB}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{2F800}-\\u{2FA1D}\\uAAC0\\uAAC2\\uFE20-\\uFE2F\\u{10D22}-\\u{10D23}\\u{1135D}\\u00AA\\u00BA\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uFA0E-\\uFA0F\\uFA11\\uFA13-\\uFA14\\uFA1F\\uFA21\\uFA23-\\uFA24\\uFA27-\\uFA29\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u115F-\\u1160\\u3164\\uFFA0\\u0673\\u17A3-\\u17A4\\u0E40-\\u0E44\\u0EC0-\\u0EC4\\u19B5-\\u19B7\\u19BA\\uAAB5-\\uAAB6\\uAAB9\\uAABB-\\uAABC]",
748
"[\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u2170-\\u217F\\u2160-\\u216F]","_","[\\u1885-\\u1886\\u2118\\u212E\\u309B-\\u309C]"),c=b(a,"[\\u104A-\\u104B\\u102B-\\u102C\\u102D-\\u1030\\u1031\\u1032-\\u1036\\u1038\\u103B-\\u103C\\u103D-\\u103E\\u1056-\\u1057\\u1058-\\u1059\\u105E-\\u1060\\u1062\\u1067-\\u1068\\u1071-\\u1074\\u1082\\u1083-\\u1084\\u1085-\\u1086\\u109C\\u109D\\u1037\\u1039-\\u103A\\u1087-\\u108C\\u108D\\u108F\\u109A-\\u109B\\uA9E5\\uAA7B\\uAA7C\\uAA7D\\uA9E6\\uAA70\\u104A-\\u104B]","[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E-\\u094F\\u0982-\\u0983\\u09BE-\\u09C0\\u09C7-\\u09C8\\u09CB-\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB-\\u0ACC\\u0B02-\\u0B03\\u0B3E\\u0B40\\u0B47-\\u0B48\\u0B4B-\\u0B4C\\u0B57\\u0BBE-\\u0BBF\\u0BC1-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82-\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7-\\u0CC8\\u0CCA-\\u0CCB\\u0CD5-\\u0CD6\\u0D02-\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82-\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2-\\u0DF3\\u0F7F\\u102B-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u1056-\\u1057\\u1062\\u1067-\\u1068\\u1083-\\u1084\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930-\\u1931\\u1933-\\u1938\\u1A19-\\u1A1A\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B82\\u1BA1\\u1BA6-\\u1BA7\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1C24-\\u1C2B\\u1C34-\\u1C35\\u1CF2-\\u1CF3\\uA823-\\uA824\\uA827\\uA880-\\uA881\\uA8B4-\\uA8C3\\uA952\\uA983\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uA9BF\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA4D\\uAAEB\\uAAEE-\\uAAEF\\uAAF5\\uABE3-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEA\\u{11000}\\u{11002}\\u{11082}\\u{110B0}-\\u{110B2}\\u{110B7}-\\u{110B8}\\u{1112C}\\u{11145}-\\u{11146}\\u{11182}\\u{111B3}-\\u{111B5}\\u{111BF}\\u{1122C}-\\u{1122E}\\u{11232}-\\u{11233}\\u{112E0}-\\u{112E2}\\u{11302}-\\u{11303}\\u{1133E}-\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}-\\u{11348}\\u{1134B}-\\u{1134C}\\u{11357}\\u{11362}-\\u{11363}\\u{11435}-\\u{11437}\\u{11440}-\\u{11441}\\u{11445}\\u{114B0}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BE}\\u{114C1}\\u{115AF}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{11630}-\\u{11632}\\u{1163B}-\\u{1163C}\\u{1163E}\\u{116AC}\\u{116AE}-\\u{116AF}\\u{11720}-\\u{11721}\\u{11726}\\u{1182C}-\\u{1182E}\\u{11838}\\u{11A39}\\u{11A57}-\\u{11A58}\\u{11A97}\\u{11C2F}\\u{11C3E}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D8A}-\\u{11D8E}\\u{11D93}-\\u{11D94}\\u{11D96}\\u{11EF5}-\\u{11EF6}\\u{16F51}-\\u{16F7E}\\u0F3E-\\u0F3F\\u1087-\\u108C\\u108F\\u109A-\\u109B\\u1B44\\u1BAA\\u1CE1\\u1CF7\\u302E-\\u302F\\uA953\\uA9C0\\uAA7B\\uAA7D\\uABEC\\u{111C0}\\u{11235}\\u{1134D}\\u{116B6}\\u{1D16D}-\\u{1D172}\\u09BE\\u09D7\\u0B3E\\u0B57\\u0BBE\\u0BD7\\u0CC2\\u0CD5-\\u0CD6\\u0D3E\\u0D57\\u0DCF\\u0DDF\\u302E-\\u302F\\u{1133E}\\u{11357}\\u{114B0}\\u{114BD}\\u{115AF}\\u{1D165}\\u{1D16E}-\\u{1D172}]",
749
"[\\u{1D7CE}-\\u{1D7FF}\\uFF10-\\uFF19]","\\u2040","[\\u00B7\\u0387\\u1369-\\u1371\\u19DA]");if(!1===RegExp().unicode)return new RegExp("^"+a+"+"+c+"*$","u");a=b("[A-Z]","[a-z]","_");c=b(a,"[0-9]");return new RegExp("^"+a+"+"+c+"*$")}();(function(a){return b.apply(null,arguments)+"*"})("\\\\\\r?\\n[ \\f\\t]*");c("#[^\\r\\n]*");m=b("[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?","\\.[0-9](?:_?[0-9])*")+c("[eE][-+]?[0-9](?:_?[0-9])*");var q=b(m,"[0-9](?:_?[0-9])*[eE][-+]?[0-9](?:_?[0-9])*"),u=b("[0-9](?:_?[0-9])*[jJ]",
750
q+"[jJ]");m=b.apply(null,e());p=b(m+"'''",m+'"""');b(m+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*'",m+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*"');var z=Object.keys(Sk.token.EXACT_TOKEN_TYPES).sort();z=b.apply(this,z.reverse().map(function(a){return a&&n.test(a)?a.replace(k,"\\$&"):a}));var y=b("\\r?\\n",z),t=b(m+"'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*"+b("'","\\\\\\r?\\n"),m+'"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*'+b('"',"\\\\\\r?\\n")),H=b("\\\\\\r?\\n|$","#[^\\r\\n]*",p),K={};m=e();for(let a of m)K[a+"'"]="^[^'\\\\]*(?:\\\\.[^'\\\\]*)*'",
751
K[a+'"']='^[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',K[a+"'''"]="^[^'\\\\]*(?:(?:\\\\.|'(?!''))[^'\\\\]*)*'''",K[a+'"""']='^[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*"""';let C=[],F=[];for(let a of m)C.push(a+'"'),C.push(a+"'"),F.push(a+'"""'),F.push(a+"'''");Sk._tokenize=function(c,e,k,n){var m=Sk.__future__.python3?"":"(?:L?)";m=b("0[xX](?:_?[0-9a-fA-F])+"+m,"0[bB](?:_?[01])+"+m,Sk.__future__.silent_octal_literal?"0([oO]?)(?:_?[0-7])+"+m:"0([oO])(?:_?[0-7])+"+m,"(?:0(?:_?0)*|[1-9](?:_?[0-9])*)"+m);m=b(u,q,m);
752
m="[ \\f\\t]*"+b(H,m,y,t,"\\w+");m=new RegExp(m);var p=0,z=0,L=0,E="",W=0,N=null,M=[0],I,Z=void 0,Y=void 0,J,U;void 0!==k&&("utf-8-sig"==k&&(k="utf-8"),n(new a(h.T_ENCODING,k,[0,0],[0,0],"")));for(var A=k="";;){try{k=A,A=e()}catch(w){A=""}p+=1;var G=0,T=A.length;if(E){if(!A)throw new g("EOF in multi-line string",c,Y[0],Y[1]);Z.lastIndex=0;var x=Z.exec(A);if(x)G=J=x[0].length,n(new a(h.T_STRING,E+A.substring(0,J),Y,[p,J],N+A)),E="",W=0,N=null;else{W&&"\\\n"!==A.substring(A.length-2)&&"\\\r\n"!==A.substring(A.length-
753
3)?(n(new a(h.T_ERRORTOKEN,E+A,Y,[p,A.length],N)),E="",N=null):(E+=A,N+=A);continue}}else if(0!=z||L){if(!A)throw new g("EOF in multi-line statement",c,p,0);L=0}else{if(!A)break;for(I=0;G<T;){if(" "==A[G])I+=1;else if("\t"==A[G])I=8*Math.floor(I/8+1);else if("\f"==A[G])I=0;else break;G+=1}if(G==T)break;if(d("#\r\n",A[G])){if("#"==A[G]){I=A.substring(G);for(T=I.length;0<T&&-1!=="\r\n".indexOf(I.charAt(T-1));--T);T=I.substring(0,T);n(new a(h.T_COMMENT,T,[p,G],[p,G+T.length],A));G+=T.length}n(new a(h.T_NL,
754
A.substring(G),[p,G],[p,A.length],A));continue}I>M[M.length-1]&&(M.push(I),n(new a(h.T_INDENT,A.substring(G),[p,0],[p,G],A)));for(;I<M[M.length-1];){if(!d(M,I))throw new f("unindent does not match any outer indentation level",c,p,G);M=M.slice(0,-1);n(new a(h.T_DEDENT,"",[p,G],[p,G],A))}}for(;G<T;){for(I=A.charAt(G);" "===I||"\f"===I||"\t"===I;)G+=1,I=A.charAt(G);if(U=m.exec(A.substring(G))){if(I=G,J=I+U[1].length,U=[p,I],x=[p,J],G=J,I!=J){J=A.substring(I,J);var O=A[I];if(d("0123456789",O)||"."==O&&
755
"."!=J&&"..."!=J)n(new a(h.T_NUMBER,J,U,x,A));else if(d("\r\n",O))0<z?n(new a(h.T_NL,J,U,x,A)):n(new a(h.T_NEWLINE,J,U,x,A));else if("#"==O)n(new a(h.T_COMMENT,J,U,x,A));else if(d(F,J))if(Z=RegExp(K[J]),x=Z.exec(A.substring(G)))G=x[0].length+G,J=A.substring(I,G),n(new a(h.T_STRING,J,U,[p,G],A));else{Y=[p,I];E=A.substring(I);N=A;break}else if(d(C,O)||d(C,J.substring(0,2))||d(C,J.substring(0,3)))if("\n"==J[J.length-1]){Y=[p,I];Z=RegExp(K[O]||K[J[1]]||K[J[2]]);E=A.substring(I);W=1;N=A;break}else n(new a(h.T_STRING,
756
J,U,x,A));else I=O.normalize("NFKC"),l.test(I)?n(new a(h.T_NAME,J,U,x,A)):"\\"==O?L=1:(d("([{",O)?z+=1:d(")]}",O)&&--z,n(new a(h.T_OP,J,U,x,A)))}}else n(new a(h.T_ERRORTOKEN,A[G],[p,G],[p,G+1],A)),G+=1}}k&&!d("\r\n",k[k.length-1])&&n(new a(h.T_NEWLINE,"",[p-1,k.length],[p-1,k.length+1],""));for(var r in M.slice(1))n(new a(h.T_DEDENT,"",[p,0],[p,0],""));n(new a(h.T_ENDMARKER,"",[p,0],[p,0],""))};Sk.exportSymbol("Sk._tokenize",Sk._tokenize)},function(m,p){Sk.OpMap={"(":Sk.token.tokens.T_LPAR,")":Sk.token.tokens.T_RPAR,
757
"[":Sk.token.tokens.T_LSQB,"]":Sk.token.tokens.T_RSQB,":":Sk.token.tokens.T_COLON,",":Sk.token.tokens.T_COMMA,";":Sk.token.tokens.T_SEMI,"+":Sk.token.tokens.T_PLUS,"-":Sk.token.tokens.T_MINUS,"*":Sk.token.tokens.T_STAR,"/":Sk.token.tokens.T_SLASH,"|":Sk.token.tokens.T_VBAR,"&":Sk.token.tokens.T_AMPER,"<":Sk.token.tokens.T_LESS,">":Sk.token.tokens.T_GREATER,"=":Sk.token.tokens.T_EQUAL,".":Sk.token.tokens.T_DOT,"%":Sk.token.tokens.T_PERCENT,"`":Sk.token.tokens.T_BACKQUOTE,"{":Sk.token.tokens.T_LBRACE,
758
"}":Sk.token.tokens.T_RBRACE,"@":Sk.token.tokens.T_AT,"@=":Sk.token.tokens.T_ATEQUAL,"==":Sk.token.tokens.T_EQEQUAL,"!=":Sk.token.tokens.T_NOTEQUAL,"<>":Sk.token.tokens.T_NOTEQUAL,"<=":Sk.token.tokens.T_LESSEQUAL,">=":Sk.token.tokens.T_GREATEREQUAL,"~":Sk.token.tokens.T_TILDE,"^":Sk.token.tokens.T_CIRCUMFLEX,"<<":Sk.token.tokens.T_LEFTSHIFT,">>":Sk.token.tokens.T_RIGHTSHIFT,"**":Sk.token.tokens.T_DOUBLESTAR,"+=":Sk.token.tokens.T_PLUSEQUAL,"-=":Sk.token.tokens.T_MINEQUAL,"*=":Sk.token.tokens.T_STAREQUAL,
759
"/=":Sk.token.tokens.T_SLASHEQUAL,"%=":Sk.token.tokens.T_PERCENTEQUAL,"&=":Sk.token.tokens.T_AMPEREQUAL,"|=":Sk.token.tokens.T_VBAREQUAL,"^=":Sk.token.tokens.T_CIRCUMFLEXEQUAL,"<<=":Sk.token.tokens.T_LEFTSHIFTEQUAL,">>=":Sk.token.tokens.T_RIGHTSHIFTEQUAL,"**=":Sk.token.tokens.T_DOUBLESTAREQUAL,"//":Sk.token.tokens.T_DOUBLESLASH,"//=":Sk.token.tokens.T_DOUBLESLASHEQUAL,"->":Sk.token.tokens.T_RARROW,"...":Sk.token.tokens.T_ELLIPSIS};Sk.ParseTables={sym:{and_expr:257,and_test:258,annassign:259,arglist:260,
760
argument:261,arith_expr:262,assert_stmt:263,async_funcdef:264,async_stmt:265,atom:266,atom_expr:267,augassign:268,break_stmt:269,classdef:270,comp_for:271,comp_if:272,comp_iter:273,comp_op:274,comparison:275,compound_stmt:276,continue_stmt:277,debugger_stmt:278,decorated:279,decorator:280,decorators:281,del_stmt:282,dictorsetmaker:283,dotted_as_name:284,dotted_as_names:285,dotted_name:286,encoding_decl:287,eval_input:288,except_clause:289,expr:290,expr_stmt:291,exprlist:292,factor:293,file_input:294,
761
flow_stmt:295,for_stmt:296,funcdef:297,global_stmt:298,if_stmt:299,import_as_name:300,import_as_names:301,import_from:302,import_name:303,import_stmt:304,lambdef:305,lambdef_nocond:306,nonlocal_stmt:307,not_test:308,or_test:309,parameters:310,pass_stmt:311,power:312,print_stmt:313,raise_stmt:314,return_stmt:315,shift_expr:316,simple_stmt:317,single_input:256,sliceop:318,small_stmt:319,star_expr:320,stmt:321,subscript:322,subscriptlist:323,suite:324,term:325,test:326,test_nocond:327,testlist:328,testlist_comp:329,
762
testlist_star_expr:330,tfpdef:331,trailer:332,try_stmt:333,typedargslist:334,varargslist:335,vfpdef:336,while_stmt:337,with_item:338,with_stmt:339,xor_expr:340,yield_arg:341,yield_expr:342,yield_stmt:343},number2symbol:{256:"single_input",257:"and_expr",258:"and_test",259:"annassign",260:"arglist",261:"argument",262:"arith_expr",263:"assert_stmt",264:"async_funcdef",265:"async_stmt",266:"atom",267:"atom_expr",268:"augassign",269:"break_stmt",270:"classdef",271:"comp_for",272:"comp_if",273:"comp_iter",
763
274:"comp_op",275:"comparison",276:"compound_stmt",277:"continue_stmt",278:"debugger_stmt",279:"decorated",280:"decorator",281:"decorators",282:"del_stmt",283:"dictorsetmaker",284:"dotted_as_name",285:"dotted_as_names",286:"dotted_name",287:"encoding_decl",288:"eval_input",289:"except_clause",290:"expr",291:"expr_stmt",292:"exprlist",293:"factor",294:"file_input",295:"flow_stmt",296:"for_stmt",297:"funcdef",298:"global_stmt",299:"if_stmt",300:"import_as_name",301:"import_as_names",302:"import_from",
764
303:"import_name",304:"import_stmt",305:"lambdef",306:"lambdef_nocond",307:"nonlocal_stmt",308:"not_test",309:"or_test",310:"parameters",311:"pass_stmt",312:"power",313:"print_stmt",314:"raise_stmt",315:"return_stmt",316:"shift_expr",317:"simple_stmt",318:"sliceop",319:"small_stmt",320:"star_expr",321:"stmt",322:"subscript",323:"subscriptlist",324:"suite",325:"term",326:"test",327:"test_nocond",328:"testlist",329:"testlist_comp",330:"testlist_star_expr",331:"tfpdef",332:"trailer",333:"try_stmt",334:"typedargslist",
765
335:"varargslist",336:"vfpdef",337:"while_stmt",338:"with_item",339:"with_stmt",340:"xor_expr",341:"yield_arg",342:"yield_expr",343:"yield_stmt""EMPTY"],[317,null],[4,null],[276,null],[1,"def"],[1,"raise"],[1,"True"],[3,null],[1,"not"],[1,"null"],[55,null],[2,null],[25,null],[1,"class"],[1,"lambda"],[16,null],[1,"print"],[1,"debugger"],[1,"nonlocal"],[52,null],[1,"try"],[1,"while"],[31,null],[1,"return"],[1,"assert"],[1,null],[1,"global"],[1,"del"],[1,"pass"],[54,null],[15,null],[1,
766
"yield"],[1,"import"],[1,"False"],[1,"for"],[7,null],[1,"from"],[1,"if"],[9,null],[1,"break"],[1,"continue"],[49,null],[1,"with"],[14,null],[316,null],[19,null],[308,null],[1,"and"],[11,null],[326,null],[22,null],[261,null],[12,null],[35,null],[271,null],[325,null],[297,null],[339,null],[296,null],[26,null],[283,null],[8,null],[342,null],[329,null],[10,null],[266,null],[332,null],[45,null],[38,null],[40,null],[50,null],[46,null],[41,null],[42,null],[36,null],[43,null],[48,null],[44,null],[37,null],
767
[39,null],[324,null],[260,null],[292,null],[1,"in"],[309,null],[273,null],[327,null],[272,null],[28,null],[21,null],[27,null],[29,null],[1,"is"],[30,null],[20,null],[290,null],[274,null],[333,null],[299,null],[270,null],[337,null],[279,null],[265,null],[281,null],[264,null],[286,null],[280,null],[320,null],[1,"as"],[284,null],[23,null],[328,null],[0,null],[1,"except"],[340,null],[18,null],[330,null],[268,null],[259,null],[312,null],[293,null],[321,null],[269,null],[277,null],[314,null],[315,null],
768
[343,null],[1,"else"],[310,null],[51,null],[1,"elif"],[300,null],[301,null],[285,null],[303,null],[302,null],[335,null],[275,null],[258,null],[1,"or"],[334,null],[267,null],[34,null],[262,null],[33,null],[319,null],[13,null],[295,null],[263,null],[291,null],[311,null],[307,null],[313,null],[282,null],[298,null],[304,null],[278,null],[318,null],[322,null],[5,null],[6,null],[47,null],[17,null],[24,null],[305,null],[306,null],[323,null],[289,null],[1,"finally"],[331,null],[336,null],[338,null],[257,
769
null],[32,null],[341,null]],keywords:{False:33,"null":9,True:6,and:47,as:108,assert:24,"break":39,"class":13,"continue":40,"debugger":17,def:4,del:27,elif:130,"else":127,except:113,"finally":168,"for":34,from:36,global:26,"if":37,"import":32,"in":83,is:92,lambda:14,nonlocal:18,not:8,or:139,pass:28,print:16,raise:5,"return":23,"try":20,"while":21,"with":42,yield:31},tokens:{0:112,1:25,2:11,3:7,4:2,5:159,6:160,7:35,8:61,9:38,10:64,11:48,12:52,13:146,14:43,15:30,16:15,17:162,18:115,19:45,20:94,21:89,
770
22:50,23:110,24:163,25:12,26:59,27:90,28:88,29:91,30:93,31:22,32:173,33:144,34:142,35:53,36:74,37:78,38:68,39:79,40:69,41:72,42:73,43:75,44:77,45:67,46:71,47:161,48:76,49:41,50:70,51:129,52:19,54:29,55:10},start:256}},function(m,p){function a(a,b){this.filename=a;this.grammar=b;this.p_flags=0;return this}function b(b,d){void 0===d&&(d="file_input");b=new a(b,Sk.ParseTables);"file_input"===d?b.setup(Sk.ParseTables.sym.file_input):Sk.asserts.fail("todo;");return b}a.FUTURE_PRINT_FUNCTION="print_function";
771
a.FUTURE_UNICODE_LITERALS="unicode_literals";a.FUTURE_DIVISION="division";a.FUTURE_ABSOLUTE_IMPORT="absolute_import";a.FUTURE_WITH_STATEMENT="with_statement";a.FUTURE_NESTED_SCOPES="nested_scopes";a.FUTURE_GENERATORS="generators";a.CO_FUTURE_PRINT_FUNCTION=65536;a.CO_FUTURE_UNICODE_LITERALS=131072;a.CO_FUTURE_DIVISON=8192;a.CO_FUTURE_ABSOLUTE_IMPORT=16384;a.CO_FUTURE_WITH_STATEMENT=32768;a.prototype.setup=function(a){a=a||this.grammar.start;this.stack=[{dfa:this.grammar.dfas[a],state:0,node:{type:a,
772
value:null,context:null,children:[]}}];this.used_names={}};a.prototype.addtoken=function(a,b,e){var c,d=this.classify(a,b,e);a:for(;;){var f=this.stack[this.stack.length-1];var k=f.dfa[0];var n=k[f.state];for(c=0;c<n.length;++c){var l=n[c][0];var q=n[c][1];var m=this.grammar.labels[l][0];if(d===l){Sk.asserts.assert(256>m);this.shift(a,b,q,e);for(e=q;1===k[e].length&&0===k[e][0][0]&&k[e][0][1]===e;){this.pop();if(0===this.stack.length)return!0;f=this.stack[this.stack.length-1];e=f.state;k=f.dfa[0]}return!1}if(256<=
773
m&&(l=this.grammar.dfas[m],l=l[1],l.hasOwnProperty(d))){this.push(m,this.grammar.dfas[m],q,e);continue a}}b:{k=[0,f.state];for(f=n.length;f--;)if(n[f][0]===k[0]&&n[f][1]===k[1]){n=!0;break b}n=!1}if(n){if(this.pop(),0===this.stack.length)throw new Sk.builtin.SyntaxError("too much input",this.filename);}else throw a=e[0][0],new Sk.builtin.SyntaxError("bad input",this.filename,a,e);}};a.prototype.classify=function(b,d,e){if(b===Sk.token.tokens.T_NAME){this.used_names[d]=!0;var c=this.grammar.keywords.hasOwnProperty(d)&&
774
this.grammar.keywords[d];"print"===d&&(this.p_flags&a.CO_FUTURE_PRINT_FUNCTION||!0===Sk.__future__.print_function)&&(c=!1);if(c)return c}c=this.grammar.tokens.hasOwnProperty(b)&&this.grammar.tokens[b];if(!c){d="#"+b;for(let a in Sk.token.tokens)if(Sk.token.tokens[a]==b){d=a;break}throw new Sk.builtin.SyntaxError("bad token "+d,this.filename,e[0][0],e);}return c};a.prototype.shift=function(a,b,e,h){var c=this.stack[this.stack.length-1].dfa,d=this.stack[this.stack.length-1].node;d.children.push({type:a,
775
value:b,lineno:h[0][0],col_offset:h[0][1],children:null});this.stack[this.stack.length-1]={dfa:c,state:e,node:d}};a.prototype.push=function(a,b,e,h){a={type:a,value:null,lineno:h[0][0],col_offset:h[0][1],children:[]};this.stack[this.stack.length-1]={dfa:this.stack[this.stack.length-1].dfa,state:e,node:this.stack[this.stack.length-1].node};this.stack.push({dfa:b,state:0,node:a})};a.prototype.pop=function(){var a=this.stack.pop().node;if(a)if(0!==this.stack.length){var b=this.stack[this.stack.length-
776
1].node;b.children.push(a)}else this.rootnode=a,this.rootnode.used_names=this.used_names};Sk.parse=function(a,d){var c=Sk.token.tokens.T_COMMENT,h=Sk.token.tokens.T_NL,g=Sk.token.tokens.T_OP,f=Sk.token.tokens.T_ENDMARKER,k=Sk.token.tokens.T_ENCODING,n=!1,l=b(a);Sk._tokenize(a,function(a){var b=a.split("\n").reverse().map(function(a){return a+"\n"});return function(){if(0===b.length)throw new Sk.builtin.Exception("EOF");return b.pop()}}(d),"utf-8",function(a){var b=null;a.type!==c&&a.type!==h&&a.type!==
777
k&&(a.type===g&&(b=Sk.OpMap[a.string]),l.addtoken(b||a.type,a.string,[a.start,a.end,a.line]),a.type===f&&(n=!0))});if(!n)throw new Sk.builtin.SyntaxError("incomplete input",this.filename);return{cst:l.rootnode,flags:l.p_flags}};Sk.parseTreeDump=function(a,b){var c;b=b||"";var d=""+b;if(256<=a.type)for(d+=Sk.ParseTables.number2symbol[a.type]+"\n",c=0;c<a.children.length;++c)d+=Sk.parseTreeDump(a.children[c],b+"  ");else d+=Sk.token.tok_name[a.type]+": "+(new Sk.builtin.str(a.value)).$r().v+"\n";return d};
778
Sk.exportSymbol("Sk.Parser",a);Sk.exportSymbol("Sk.parse",Sk.parse);Sk.exportSymbol("Sk.parseTreeDump",Sk.parseTreeDump)},function(m,p){Sk.astnodes={};Sk.astnodes.Load=function(){};Sk.astnodes.Store=function(){};Sk.astnodes.Del=function(){};Sk.astnodes.AugLoad=function(){};Sk.astnodes.AugStore=function(){};Sk.astnodes.Param=function(){};Sk.astnodes.And=function(){};Sk.astnodes.Or=function(){};Sk.astnodes.Add=function(){};Sk.astnodes.Sub=function(){};Sk.astnodes.Mult=function(){};Sk.astnodes.MatMult=
779
function(){};Sk.astnodes.Div=function(){};Sk.astnodes.Mod=function(){};Sk.astnodes.Pow=function(){};Sk.astnodes.LShift=function(){};Sk.astnodes.RShift=function(){};Sk.astnodes.BitOr=function(){};Sk.astnodes.BitXor=function(){};Sk.astnodes.BitAnd=function(){};Sk.astnodes.FloorDiv=function(){};Sk.astnodes.Invert=function(){};Sk.astnodes.Not=function(){};Sk.astnodes.UAdd=function(){};Sk.astnodes.USub=function(){};Sk.astnodes.Eq=function(){};Sk.astnodes.NotEq=function(){};Sk.astnodes.Lt=function(){};
780
Sk.astnodes.LtE=function(){};Sk.astnodes.Gt=function(){};Sk.astnodes.GtE=function(){};Sk.astnodes.Is=function(){};Sk.astnodes.IsNot=function(){};Sk.astnodes.In=function(){};Sk.astnodes.NotIn=function(){};Sk.astnodes.Module=function(a,b){this.body=a;this.docstring=b;return this};Sk.astnodes.Interactive=function(a){this.body=a;return this};Sk.astnodes.Expression=function(a){this.body=a;return this};Sk.astnodes.Suite=function(a){this.body=a;return this};Sk.astnodes.FunctionDef=function(a,b,c,d,e,h,g,
781
f){Sk.asserts.assert(null!==g&&void 0!==g);Sk.asserts.assert(null!==f&&void 0!==f);this.name=a;this.args=b;this.body=c;this.decorator_list=d;this.returns=e;this.docstring=h;this.lineno=g;this.col_offset=f;return this};Sk.astnodes.AsyncFunctionDef=function(a,b,c,d,e,h,g,f){Sk.asserts.assert(null!==g&&void 0!==g);Sk.asserts.assert(null!==f&&void 0!==f);this.name=a;this.args=b;this.body=c;this.decorator_list=d;this.returns=e;this.docstring=h;this.lineno=g;this.col_offset=f;return this};Sk.astnodes.ClassDef=
782
function(a,b,c,d,e,h,g,f){Sk.asserts.assert(null!==g&&void 0!==g);Sk.asserts.assert(null!==f&&void 0!==f);this.name=a;this.bases=b;this.keywords=c;this.body=d;this.decorator_list=e;this.docstring=h;this.lineno=g;this.col_offset=f;return this};Sk.astnodes.Return=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Delete=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==
783
c&&void 0!==c);this.targets=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Assign=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.targets=a;this.value=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.AugAssign=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.target=a;this.op=b;this.value=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.AnnAssign=function(a,
784
b,c,d,e,h){Sk.asserts.assert(null!==e&&void 0!==e);Sk.asserts.assert(null!==h&&void 0!==h);this.target=a;this.annotation=b;this.value=c;this.simple=d;this.lineno=e;this.col_offset=h;return this};Sk.astnodes.For=function(a,b,c,d,e,h){Sk.asserts.assert(null!==e&&void 0!==e);Sk.asserts.assert(null!==h&&void 0!==h);this.target=a;this.iter=b;this.body=c;this.orelse=d;this.lineno=e;this.col_offset=h;return this};Sk.astnodes.AsyncFor=function(a,b,c,d,e,h){Sk.asserts.assert(null!==e&&void 0!==e);Sk.asserts.assert(null!==
785
h&&void 0!==h);this.target=a;this.iter=b;this.body=c;this.orelse=d;this.lineno=e;this.col_offset=h;return this};Sk.astnodes.While=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.test=a;this.body=b;this.orelse=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.If=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.test=a;this.body=b;this.orelse=c;this.lineno=d;this.col_offset=e;return this};
786
Sk.astnodes.With=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.items=a;this.body=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.AsyncWith=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.items=a;this.body=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Raise=function(a,b,c,d,e,h){Sk.asserts.assert(null!==e&&void 0!==e);Sk.asserts.assert(null!==h&&void 0!==h);this.exc=
787
a;this.cause=b;this.inst=c;this.tback=d;this.lineno=e;this.col_offset=h;return this};Sk.astnodes.Try=function(a,b,c,d,e,h){Sk.asserts.assert(null!==e&&void 0!==e);Sk.asserts.assert(null!==h&&void 0!==h);this.body=a;this.handlers=b;this.orelse=c;this.finalbody=d;this.lineno=e;this.col_offset=h;return this};Sk.astnodes.Assert=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.test=a;this.msg=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Import=
788
function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.names=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.ImportFrom=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.module=a;this.names=b;this.level=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Global=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.names=a;this.lineno=
789
b;this.col_offset=c;return this};Sk.astnodes.Nonlocal=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.names=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Expr=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Pass=function(a,b){Sk.asserts.assert(null!==a&&void 0!==a);Sk.asserts.assert(null!==b&&void 0!==b);this.lineno=
790
a;this.col_offset=b;return this};Sk.astnodes.Break=function(a,b){Sk.asserts.assert(null!==a&&void 0!==a);Sk.asserts.assert(null!==b&&void 0!==b);this.lineno=a;this.col_offset=b;return this};Sk.astnodes.Continue=function(a,b){Sk.asserts.assert(null!==a&&void 0!==a);Sk.asserts.assert(null!==b&&void 0!==b);this.lineno=a;this.col_offset=b;return this};Sk.astnodes.Print=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.dest=a;this.values=b;this.nl=
791
c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Debugger=function(a,b){Sk.asserts.assert(null!==a&&void 0!==a);Sk.asserts.assert(null!==b&&void 0!==b);this.lineno=a;this.col_offset=b;return this};Sk.astnodes.BoolOp=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.op=a;this.values=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.BinOp=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==
792
e);this.left=a;this.op=b;this.right=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.UnaryOp=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.op=a;this.operand=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Lambda=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.args=a;this.body=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.IfExp=function(a,b,c,d,e){Sk.asserts.assert(null!==
793
d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.test=a;this.body=b;this.orelse=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Dict=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.keys=a;this.values=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Set=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.elts=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.ListComp=
794
function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.elt=a;this.generators=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.SetComp=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.elt=a;this.generators=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.DictComp=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.key=a;this.value=
795
b;this.generators=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.GeneratorExp=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.elt=a;this.generators=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Await=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Yield=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==
796
b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.YieldFrom=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Compare=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.left=a;this.ops=b;this.comparators=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Call=
797
function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.func=a;this.args=b;this.keywords=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Num=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.n=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Str=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.s=a;this.lineno=b;this.col_offset=
798
c;return this};Sk.astnodes.FormattedValue=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.value=a;this.conversion=b;this.format_spec=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.JoinedStr=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.values=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Bytes=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==
799
c&&void 0!==c);this.s=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.NameConstant=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Ellipsis=function(a,b){Sk.asserts.assert(null!==a&&void 0!==a);Sk.asserts.assert(null!==b&&void 0!==b);this.lineno=a;this.col_offset=b;return this};Sk.astnodes.Constant=function(a,b,c){Sk.asserts.assert(null!==b&&void 0!==b);Sk.asserts.assert(null!==
800
c&&void 0!==c);this.value=a;this.lineno=b;this.col_offset=c;return this};Sk.astnodes.Attribute=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.value=a;this.attr=b;this.ctx=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Subscript=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.value=a;this.slice=b;this.ctx=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.Starred=function(a,
801
b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.value=a;this.ctx=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Name=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.id=a;this.ctx=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.List=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.elts=a;this.ctx=b;this.lineno=c;this.col_offset=
802
d;return this};Sk.astnodes.Tuple=function(a,b,c,d){Sk.asserts.assert(null!==c&&void 0!==c);Sk.asserts.assert(null!==d&&void 0!==d);this.elts=a;this.ctx=b;this.lineno=c;this.col_offset=d;return this};Sk.astnodes.Slice=function(a,b,c){this.lower=a;this.upper=b;this.step=c;return this};Sk.astnodes.ExtSlice=function(a){this.dims=a;return this};Sk.astnodes.Index=function(a){this.value=a;return this};Sk.astnodes.comprehension=function(a,b,c,d){this.target=a;this.iter=b;this.ifs=c;this.is_async=d;return this};
803
Sk.astnodes.ExceptHandler=function(a,b,c,d,e){Sk.asserts.assert(null!==d&&void 0!==d);Sk.asserts.assert(null!==e&&void 0!==e);this.type=a;this.name=b;this.body=c;this.lineno=d;this.col_offset=e;return this};Sk.astnodes.arguments_=function(a,b,c,d,e,h){this.args=a;this.vararg=b;this.kwonlyargs=c;this.kw_defaults=d;this.kwarg=e;this.defaults=h;return this};Sk.astnodes.arg=function a(a,b){this.arg=a;this.annotation=b;return this};Sk.astnodes.keyword=function(a,b){this.arg=a;this.value=b;return this};
804
Sk.astnodes.alias=function(a,b){this.name=a;this.asname=b;return this};Sk.astnodes.withitem=function(a,b){this.context_expr=a;this.optional_vars=b;return this};Sk.astnodes.Module.prototype._astname="Module";Sk.astnodes.Module.prototype._fields=["body",function(a){return a.body},"docstring",function(a){return a.docstring}];Sk.astnodes.Interactive.prototype._astname="Interactive";Sk.astnodes.Interactive.prototype._fields=["body",function(a){return a.body}];Sk.astnodes.Expression.prototype._astname=
805
"Expression";Sk.astnodes.Expression.prototype._fields=["body",function(a){return a.body}];Sk.astnodes.Suite.prototype._astname="Suite";Sk.astnodes.Suite.prototype._fields=["body",function(a){return a.body}];Sk.astnodes.FunctionDef.prototype._astname="FunctionDef";Sk.astnodes.FunctionDef.prototype._fields=["name",function(a){return a.name},"args",function(a){return a.args},"body",function(a){return a.body},"decorator_list",function(a){return a.decorator_list},"returns",function(a){return a.returns},
806
"docstring",function(a){return a.docstring}];Sk.astnodes.AsyncFunctionDef.prototype._astname="AsyncFunctionDef";Sk.astnodes.AsyncFunctionDef.prototype._fields=["name",function(a){return a.name},"args",function(a){return a.args},"body",function(a){return a.body},"decorator_list",function(a){return a.decorator_list},"returns",function(a){return a.returns},"docstring",function(a){return a.docstring}];Sk.astnodes.ClassDef.prototype._astname="ClassDef";Sk.astnodes.ClassDef.prototype._fields=["name",function(a){return a.name},
807
"bases",function(a){return a.bases},"keywords",function(a){return a.keywords},"body",function(a){return a.body},"decorator_list",function(a){return a.decorator_list},"docstring",function(a){return a.docstring}];Sk.astnodes.Return.prototype._astname="Return";Sk.astnodes.Return.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.Delete.prototype._astname="Delete";Sk.astnodes.Delete.prototype._fields=["targets",function(a){return a.targets}];Sk.astnodes.Assign.prototype._astname="Assign";
808
Sk.astnodes.Assign.prototype._fields=["targets",function(a){return a.targets},"value",function(a){return a.value}];Sk.astnodes.AugAssign.prototype._astname="AugAssign";Sk.astnodes.AugAssign.prototype._fields=["target",function(a){return a.target},"op",function(a){return a.op},"value",function(a){return a.value}];Sk.astnodes.AnnAssign.prototype._astname="AnnAssign";Sk.astnodes.AnnAssign.prototype._fields=["target",function(a){return a.target},"annotation",function(a){return a.annotation},"value",function(a){return a.value},
809
"simple",function(a){return a.simple}];Sk.astnodes.For.prototype._astname="For";Sk.astnodes.For.prototype._fields=["target",function(a){return a.target},"iter",function(a){return a.iter},"body",function(a){return a.body},"orelse",function(a){return a.orelse}];Sk.astnodes.AsyncFor.prototype._astname="AsyncFor";Sk.astnodes.AsyncFor.prototype._fields=["target",function(a){return a.target},"iter",function(a){return a.iter},"body",function(a){return a.body},"orelse",function(a){return a.orelse}];Sk.astnodes.While.prototype._astname=
810
"While";Sk.astnodes.While.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}];Sk.astnodes.If.prototype._astname="If";Sk.astnodes.If.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}];Sk.astnodes.With.prototype._astname="With";Sk.astnodes.With.prototype._fields=["items",function(a){return a.items},"body",function(a){return a.body}];Sk.astnodes.AsyncWith.prototype._astname=
811
"AsyncWith";Sk.astnodes.AsyncWith.prototype._fields=["items",function(a){return a.items},"body",function(a){return a.body}];Sk.astnodes.Raise.prototype._astname="Raise";Sk.astnodes.Raise.prototype._fields=["exc",function(a){return a.exc},"cause",function(a){return a.cause},"inst",function(a){return a.inst},"tback",function(a){return a.tback}];Sk.astnodes.Try.prototype._astname="Try";Sk.astnodes.Try.prototype._fields=["body",function(a){return a.body},"handlers",function(a){return a.handlers},"orelse",
812
function(a){return a.orelse},"finalbody",function(a){return a.finalbody}];Sk.astnodes.Assert.prototype._astname="Assert";Sk.astnodes.Assert.prototype._fields=["test",function(a){return a.test},"msg",function(a){return a.msg}];Sk.astnodes.Import.prototype._astname="Import";Sk.astnodes.Import.prototype._fields=["names",function(a){return a.names}];Sk.astnodes.ImportFrom.prototype._astname="ImportFrom";Sk.astnodes.ImportFrom.prototype._fields=["module",function(a){return a.module},"names",function(a){return a.names},
813
"level",function(a){return a.level}];Sk.astnodes.Global.prototype._astname="Global";Sk.astnodes.Global.prototype._fields=["names",function(a){return a.names}];Sk.astnodes.Nonlocal.prototype._astname="Nonlocal";Sk.astnodes.Nonlocal.prototype._fields=["names",function(a){return a.names}];Sk.astnodes.Expr.prototype._astname="Expr";Sk.astnodes.Expr.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.Pass.prototype._astname="Pass";Sk.astnodes.Pass.prototype._fields=[];Sk.astnodes.Break.prototype._astname=
814
"Break";Sk.astnodes.Break.prototype._fields=[];Sk.astnodes.Continue.prototype._astname="Continue";Sk.astnodes.Continue.prototype._fields=[];Sk.astnodes.Print.prototype._astname="Print";Sk.astnodes.Print.prototype._fields=["dest",function(a){return a.dest},"values",function(a){return a.values},"nl",function(a){return a.nl}];Sk.astnodes.Debugger.prototype._astname="Debugger";Sk.astnodes.Debugger.prototype._fields=[];Sk.astnodes.BoolOp.prototype._astname="BoolOp";Sk.astnodes.BoolOp.prototype._fields=
815
["op",function(a){return a.op},"values",function(a){return a.values}];Sk.astnodes.BinOp.prototype._astname="BinOp";Sk.astnodes.BinOp.prototype._fields=["left",function(a){return a.left},"op",function(a){return a.op},"right",function(a){return a.right}];Sk.astnodes.UnaryOp.prototype._astname="UnaryOp";Sk.astnodes.UnaryOp.prototype._fields=["op",function(a){return a.op},"operand",function(a){return a.operand}];Sk.astnodes.Lambda.prototype._astname="Lambda";Sk.astnodes.Lambda.prototype._fields=["args",
816
function(a){return a.args},"body",function(a){return a.body}];Sk.astnodes.IfExp.prototype._astname="IfExp";Sk.astnodes.IfExp.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}];Sk.astnodes.Dict.prototype._astname="Dict";Sk.astnodes.Dict.prototype._fields=["keys",function(a){return a.keys},"values",function(a){return a.values}];Sk.astnodes.Set.prototype._astname="Set";Sk.astnodes.Set.prototype._fields=["elts",function(a){return a.elts}];
817
Sk.astnodes.ListComp.prototype._astname="ListComp";Sk.astnodes.ListComp.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}];Sk.astnodes.SetComp.prototype._astname="SetComp";Sk.astnodes.SetComp.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}];Sk.astnodes.DictComp.prototype._astname="DictComp";Sk.astnodes.DictComp.prototype._fields=["key",function(a){return a.key},"value",function(a){return a.value},"generators",
818
function(a){return a.generators}];Sk.astnodes.GeneratorExp.prototype._astname="GeneratorExp";Sk.astnodes.GeneratorExp.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}];Sk.astnodes.Await.prototype._astname="Await";Sk.astnodes.Await.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.Yield.prototype._astname="Yield";Sk.astnodes.Yield.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.YieldFrom.prototype._astname="YieldFrom";
819
Sk.astnodes.YieldFrom.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.Compare.prototype._astname="Compare";Sk.astnodes.Compare.prototype._fields=["left",function(a){return a.left},"ops",function(a){return a.ops},"comparators",function(a){return a.comparators}];Sk.astnodes.Call.prototype._astname="Call";Sk.astnodes.Call.prototype._fields=["func",function(a){return a.func},"args",function(a){return a.args},"keywords",function(a){return a.keywords}];Sk.astnodes.Num.prototype._astname=
820
"Num";Sk.astnodes.Num.prototype._fields=["n",function(a){return a.n}];Sk.astnodes.Str.prototype._astname="Str";Sk.astnodes.Str.prototype._fields=["s",function(a){return a.s}];Sk.astnodes.FormattedValue.prototype._astname="FormattedValue";Sk.astnodes.FormattedValue.prototype._fields=["value",function(a){return a.value},"conversion",function(a){return a.conversion},"format_spec",function(a){return a.format_spec}];Sk.astnodes.JoinedStr.prototype._astname="JoinedStr";Sk.astnodes.JoinedStr.prototype._fields=
821
["values",function(a){return a.values}];Sk.astnodes.Bytes.prototype._astname="Bytes";Sk.astnodes.Bytes.prototype._fields=["s",function(a){return a.s}];Sk.astnodes.NameConstant.prototype._astname="NameConstant";Sk.astnodes.NameConstant.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.Ellipsis.prototype._astname="Ellipsis";Sk.astnodes.Ellipsis.prototype._fields=[];Sk.astnodes.Constant.prototype._astname="Constant";Sk.astnodes.Constant.prototype._fields=["value",function(a){return a.value}];
822
Sk.astnodes.Attribute.prototype._astname="Attribute";Sk.astnodes.Attribute.prototype._fields=["value",function(a){return a.value},"attr",function(a){return a.attr},"ctx",function(a){return a.ctx}];Sk.astnodes.Subscript.prototype._astname="Subscript";Sk.astnodes.Subscript.prototype._fields=["value",function(a){return a.value},"slice",function(a){return a.slice},"ctx",function(a){return a.ctx}];Sk.astnodes.Starred.prototype._astname="Starred";Sk.astnodes.Starred.prototype._fields=["value",function(a){return a.value},
823
"ctx",function(a){return a.ctx}];Sk.astnodes.Name.prototype._astname="Name";Sk.astnodes.Name.prototype._fields=["id",function(a){return a.id},"ctx",function(a){return a.ctx}];Sk.astnodes.List.prototype._astname="List";Sk.astnodes.List.prototype._fields=["elts",function(a){return a.elts},"ctx",function(a){return a.ctx}];Sk.astnodes.Tuple.prototype._astname="Tuple";Sk.astnodes.Tuple.prototype._fields=["elts",function(a){return a.elts},"ctx",function(a){return a.ctx}];Sk.astnodes.Load.prototype._astname=
824
"Load";Sk.astnodes.Load.prototype._isenum=!0;Sk.astnodes.Store.prototype._astname="Store";Sk.astnodes.Store.prototype._isenum=!0;Sk.astnodes.Del.prototype._astname="Del";Sk.astnodes.Del.prototype._isenum=!0;Sk.astnodes.AugLoad.prototype._astname="AugLoad";Sk.astnodes.AugLoad.prototype._isenum=!0;Sk.astnodes.AugStore.prototype._astname="AugStore";Sk.astnodes.AugStore.prototype._isenum=!0;Sk.astnodes.Param.prototype._astname="Param";Sk.astnodes.Param.prototype._isenum=!0;Sk.astnodes.Slice.prototype._astname=
825
"Slice";Sk.astnodes.Slice.prototype._fields=["lower",function(a){return a.lower},"upper",function(a){return a.upper},"step",function(a){return a.step}];Sk.astnodes.ExtSlice.prototype._astname="ExtSlice";Sk.astnodes.ExtSlice.prototype._fields=["dims",function(a){return a.dims}];Sk.astnodes.Index.prototype._astname="Index";Sk.astnodes.Index.prototype._fields=["value",function(a){return a.value}];Sk.astnodes.And.prototype._astname="And";Sk.astnodes.And.prototype._isenum=!0;Sk.astnodes.Or.prototype._astname=
826
"Or";Sk.astnodes.Or.prototype._isenum=!0;Sk.astnodes.Add.prototype._astname="Add";Sk.astnodes.Add.prototype._isenum=!0;Sk.astnodes.Sub.prototype._astname="Sub";Sk.astnodes.Sub.prototype._isenum=!0;Sk.astnodes.Mult.prototype._astname="Mult";Sk.astnodes.Mult.prototype._isenum=!0;Sk.astnodes.MatMult.prototype._astname="MatMult";Sk.astnodes.MatMult.prototype._isenum=!0;Sk.astnodes.Div.prototype._astname="Div";Sk.astnodes.Div.prototype._isenum=!0;Sk.astnodes.Mod.prototype._astname="Mod";Sk.astnodes.Mod.prototype._isenum=
827
!0;Sk.astnodes.Pow.prototype._astname="Pow";Sk.astnodes.Pow.prototype._isenum=!0;Sk.astnodes.LShift.prototype._astname="LShift";Sk.astnodes.LShift.prototype._isenum=!0;Sk.astnodes.RShift.prototype._astname="RShift";Sk.astnodes.RShift.prototype._isenum=!0;Sk.astnodes.BitOr.prototype._astname="BitOr";Sk.astnodes.BitOr.prototype._isenum=!0;Sk.astnodes.BitXor.prototype._astname="BitXor";Sk.astnodes.BitXor.prototype._isenum=!0;Sk.astnodes.BitAnd.prototype._astname="BitAnd";Sk.astnodes.BitAnd.prototype._isenum=
828
!0;Sk.astnodes.FloorDiv.prototype._astname="FloorDiv";Sk.astnodes.FloorDiv.prototype._isenum=!0;Sk.astnodes.Invert.prototype._astname="Invert";Sk.astnodes.Invert.prototype._isenum=!0;Sk.astnodes.Not.prototype._astname="Not";Sk.astnodes.Not.prototype._isenum=!0;Sk.astnodes.UAdd.prototype._astname="UAdd";Sk.astnodes.UAdd.prototype._isenum=!0;Sk.astnodes.USub.prototype._astname="USub";Sk.astnodes.USub.prototype._isenum=!0;Sk.astnodes.Eq.prototype._astname="Eq";Sk.astnodes.Eq.prototype._isenum=!0;Sk.astnodes.NotEq.prototype._astname=
829
"NotEq";Sk.astnodes.NotEq.prototype._isenum=!0;Sk.astnodes.Lt.prototype._astname="Lt";Sk.astnodes.Lt.prototype._isenum=!0;Sk.astnodes.LtE.prototype._astname="LtE";Sk.astnodes.LtE.prototype._isenum=!0;Sk.astnodes.Gt.prototype._astname="Gt";Sk.astnodes.Gt.prototype._isenum=!0;Sk.astnodes.GtE.prototype._astname="GtE";Sk.astnodes.GtE.prototype._isenum=!0;Sk.astnodes.Is.prototype._astname="Is";Sk.astnodes.Is.prototype._isenum=!0;Sk.astnodes.IsNot.prototype._astname="IsNot";Sk.astnodes.IsNot.prototype._isenum=
830
!0;Sk.astnodes.In.prototype._astname="In";Sk.astnodes.In.prototype._isenum=!0;Sk.astnodes.NotIn.prototype._astname="NotIn";Sk.astnodes.NotIn.prototype._isenum=!0;Sk.astnodes.comprehension.prototype._astname="comprehension";Sk.astnodes.comprehension.prototype._fields=["target",function(a){return a.target},"iter",function(a){return a.iter},"ifs",function(a){return a.ifs},"is_async",function(a){return a.is_async}];Sk.astnodes.ExceptHandler.prototype._astname="ExceptHandler";Sk.astnodes.ExceptHandler.prototype._fields=
831
["type",function(a){return a.type},"name",function(a){return a.name},"body",function(a){return a.body}];Sk.astnodes.arguments_.prototype._astname="arguments";Sk.astnodes.arguments_.prototype._fields=["args",function(a){return a.args},"vararg",function(a){return a.vararg},"kwonlyargs",function(a){return a.kwonlyargs},"kw_defaults",function(a){return a.kw_defaults},"kwarg",function(a){return a.kwarg},"defaults",function(a){return a.defaults}];Sk.astnodes.arg.prototype._astname="arg";Sk.astnodes.arg.prototype._fields=
832
["arg",function(a){return a.arg},"annotation",function(a){return a.annotation}];Sk.astnodes.keyword.prototype._astname="keyword";Sk.astnodes.keyword.prototype._fields=["arg",function(a){return a.arg},"value",function(a){return a.value}];Sk.astnodes.alias.prototype._astname="alias";Sk.astnodes.alias.prototype._fields=["name",function(a){return a.name},"asname",function(a){return a.asname}];Sk.astnodes.withitem.prototype._astname="withitem";Sk.astnodes.withitem.prototype._fields=["context_expr",function(a){return a.context_expr},
833
"optional_vars",function(a){return a.optional_vars}];Sk.exportSymbol("Sk.astnodes",Sk.astnodes)},function(m,p){function a(a,b,c){this.c_encoding=a;this.c_filename=b;this.c_flags=c||0}function b(a){Sk.asserts.assert(void 0!==a,"node must be defined");return null===a.children?0:a.children.length}function c(a,b){Sk.asserts.assert(void 0!==a,"node must be defined");Sk.asserts.assert(void 0!==b,"index of child must be specified");return a.children[b]}function d(a,b){Sk.asserts.assert(a.type===b,"node wasn't expected type")}
834
function e(a,b,c){throw new Sk.builtin.SyntaxError(c,a.c_filename,b.lineno);}function h(a){Sk.asserts.assert("string"===typeof a,"expecting string, got "+typeof a);return new Sk.builtin.str(a)}function g(a){var d,f;switch(a.type){case r.single_input:if(c(a,0).type===w.T_NEWLINE)break;else return g(c(a,0));case r.file_input:for(d=f=0;d<b(a);++d){var e=c(a,d);e.type===r.stmt&&(f+=g(e))}return f;case r.stmt:return g(c(a,0));case r.compound_stmt:return 1;case r.simple_stmt:return Math.floor(b(a)/2);case r.suite:if(1===
835
b(a))return g(c(a,0));f=0;for(d=2;d<b(a)-1;++d)f+=g(c(a,d));return f;default:Sk.asserts.fail("Non-statement found")}return 0}function f(a,b,c,d){c instanceof Sk.builtin.str&&(c=c.v);if("None"===c)throw new Sk.builtin.SyntaxError("assignment to None",a.c_filename,d);if("True"===c||"False"===c)throw new Sk.builtin.SyntaxError("assignment to True or False is forbidden",a.c_filename,d);}function k(a,b,c,d){var e;Sk.asserts.assert(c!==Sk.astnodes.AugStore&&c!==Sk.astnodes.AugLoad,"context not AugStore or AugLoad");
836
var g=e=null;switch(b.constructor){case Sk.astnodes.Attribute:case Sk.astnodes.Name:c===Sk.astnodes.Store&&f(a,d,b.attr,d.lineno);b.ctx=c;break;case Sk.astnodes.Starred:b.ctx=c;k(a,b.value,c,d);break;case Sk.astnodes.Subscript:b.ctx=c;break;case Sk.astnodes.List:b.ctx=c;e=b.elts;break;case Sk.astnodes.Tuple:if(0===b.elts.length)throw new Sk.builtin.SyntaxError("can't assign to ()",a.c_filename,d.lineno);b.ctx=c;e=b.elts;break;case Sk.astnodes.Lambda:g="lambda";break;case Sk.astnodes.Call:g="function call";
837
break;case Sk.astnodes.BoolOp:case Sk.astnodes.BinOp:case Sk.astnodes.UnaryOp:g="operator";break;case Sk.astnodes.GeneratorExp:g="generator expression";break;case Sk.astnodes.Yield:g="yield expression";break;case Sk.astnodes.ListComp:g="list comprehension";break;case Sk.astnodes.SetComp:g="set comprehension";break;case Sk.astnodes.DictComp:g="dict comprehension";break;case Sk.astnodes.Dict:case Sk.astnodes.Set:case Sk.astnodes.Num:case Sk.astnodes.Str:g="literal";break;case Sk.astnodes.NameConstant:g=
838
"True, False or None";break;case Sk.astnodes.Compare:g="comparison";break;case Sk.astnodes.Repr:g="repr";break;case Sk.astnodes.IfExp:g="conditional expression";break;default:Sk.asserts.fail("unhandled expression in assignment")}if(g)throw new Sk.builtin.SyntaxError("can't "+(c===Sk.astnodes.Store?"assign to":"delete")+" "+g,a.c_filename,d.lineno);if(e)for(b=0;b<e.length;++b)k(a,e[b],c,d)}function n(a){if(void 0===Q[a.type])throw new Sk.builtin.SyntaxError("invalid syntax",a.type,a.lineno);return Q[a.type]}
839
function l(a,b){return a.value?new Sk.builtin.str(a.value):new Sk.builtin.str(a)}function q(a,f){d(f,r.comp_op);if(1===b(f))switch(f=c(f,0),f.type){case w.T_LESS:return Sk.astnodes.Lt;case w.T_GREATER:return Sk.astnodes.Gt;case w.T_EQEQUAL:return Sk.astnodes.Eq;case w.T_LESSEQUAL:return Sk.astnodes.LtE;case w.T_GREATEREQUAL:return Sk.astnodes.GtE;case w.T_NOTEQUAL:return Sk.astnodes.NotEq;case w.T_NAME:if("in"===f.value)return Sk.astnodes.In;if("is"===f.value)return Sk.astnodes.Is}else if(2===b(f)&&
840
c(f,0).type===w.T_NAME){if("in"===c(f,1).value)return Sk.astnodes.NotIn;if("is"===c(f,0).value)return Sk.astnodes.IsNot}Sk.asserts.fail("invalid comp_op")}function u(a,b){a&&(a.lineno=b.lineno,a.col_offset=b.col_offset,a.end_lineno=b.end_lineno,a.end_col_offset=b.end_col_offset);return a}function z(a,d){var f,e=[];Sk.asserts.assert(d.type===r.testlist||d.type===r.testlist_star_expr||d.type===r.listmaker||d.type===r.testlist_comp||d.type===r.testlist_safe||d.type===r.testlist1,"node type must be listlike");
841
for(f=0;f<b(d);f+=2)Sk.asserts.assert(c(d,f).type===r.test||c(d,f).type===r.old_test||c(d,f).type===r.star_expr),e[f/2]=x(a,c(d,f));return e}function y(a,f){var e;d(f,r.suite);var k=[];var h=0;if(c(f,0).type===r.simple_stmt){f=c(f,0);var v=b(f)-1;c(f,v-1).type===w.T_SEMI&&--v;for(e=0;e<v;e+=2)k[h++]=O(a,c(f,e))}else for(e=2;e<b(f)-1;++e){v=c(f,e);d(v,r.stmt);var l=g(v);if(1===l)k[h++]=O(a,v);else for(v=c(v,0),d(v,r.simple_stmt),l=0;l<b(v);l+=2){if(0===b(c(v,l))){Sk.asserts.assert(l+1===b(v));break}k[h++]=
842
O(a,c(v,l))}}Sk.asserts.assert(h===g(f));return k}function t(a,f,e){var g;d(f,r.exprlist);var h=[];for(g=0;g<b(f);g+=2){var v=x(a,c(f,g));h[g/2]=v;e&&k(a,v,e,c(f,g))}return h}function H(a,d){a:for(;;)switch(d.type){case r.import_as_name:a=null;var f=h(c(d,0).value);3===b(d)&&(a=c(d,2).value);return new Sk.astnodes.alias(f,null==a?null:h(a));case r.dotted_as_name:if(1===b(d)){d=c(d,0);continue a}else return a=H(a,c(d,0)),Sk.asserts.assert(!a.asname),a.asname=h(c(d,2).value),a;case r.dotted_name:if(1===
843
b(d))return new Sk.astnodes.alias(h(c(d,0).value),null);a="";for(f=0;f<b(d);f+=2)a+=c(d,f).value+".";return new Sk.astnodes.alias(h(a.substr(0,a.length-1)),null);case w.T_STAR:return new Sk.astnodes.alias(h("*"),null);default:throw new Sk.builtin.SyntaxError("unexpected import name",a.c_filename,d.lineno);}}function K(a,b){Sk.asserts.assert(b.type==r.testlist_comp||b.type==r.argument);return ca(a,b,0)}function C(a,d){if(c(d,0).type===w.T_MINUS&&2===b(d)){var f=c(d,1);if(f.type===r.factor&&1===b(f)&&
844
(f=c(f,0),f.type===r.power&&1===b(f))){var e=c(f,0);if(e.type===r.atom&&(f=c(e,0),f.type===w.T_NUMBER))return f.value="-"+f.value,G(a,e)}}a=x(a,c(d,1));switch(c(d,0).type){case w.T_PLUS:return new Sk.astnodes.UnaryOp(Sk.astnodes.UAdd,a,d.lineno,d.col_offset);case w.T_MINUS:return new Sk.astnodes.UnaryOp(Sk.astnodes.USub,a,d.lineno,d.col_offset);case w.T_TILDE:return new Sk.astnodes.UnaryOp(Sk.astnodes.Invert,a,d.lineno,d.col_offset)}Sk.asserts.fail("unhandled factor")}function F(a,g,k,h){var v,l,
845
n;d(g,r.arglist);for(v=n=l=0;v<b(g);v++){var D=c(g,v);D.type==r.argument&&(1==b(D)?l++:c(D,1).type==r.comp_for?(l++,h||e(a,D,"invalid syntax"),1<b(g)&&e(a,D,"Generator expression must be parenthesized")):c(D,0).type==w.T_STAR?l++:n++)}var B=[];var q=[];for(v=h=n=l=0;v<b(g);v++)if(D=c(g,v),D.type==r.argument){var P=c(D,0);if(1==b(D)){n&&(h?e(a,P,"positional argument follows keyword argument unpacking"):e(a,P,"positional argument follows keyword argument"));var m=x(a,P);if(!m)return null;B[l++]=m}else if(P.type==
846
w.T_STAR){if(h)return e(a,P,"iterable argument unpacking follows keyword argument unpacking"),null;m=x(a,c(D,1));if(!m)return null;D=new Sk.astnodes.Starred(m,Sk.astnodes.Load,P.lineno,P.col_offset);B[l++]=D}else if(P.type==w.T_DOUBLESTAR){v++;m=x(a,c(D,1));if(!m)return null;D=new Sk.astnodes.keyword(null,m);q[n++]=D;h++}else if(c(D,1).type==r.comp_for){m=K(a,D);if(!m)return null;B[l++]=m}else{var p;m=x(a,P);if(!m)return null;if(m.constructor===Sk.astnodes.Lambda)return e(a,P,"lambda cannot contain assignment"),
847
null;if(m.constructor!==Sk.astnodes.Name)return e(a,P,"keyword can't be an expression"),null;if(f(a,m.id,D,1))return null;var u=m.id;for(p=0;p<n;p++)if((m=q[p].arg)&&m===u)return e(a,P,"keyword argument repeated"),null;m=x(a,c(D,2));if(!m)return null;D=new Sk.astnodes.keyword(u,m);q[n++]=D}}return new Sk.astnodes.Call(k,B,q,k.lineno,k.col_offset)}function L(a,f,e){d(f,r.trailer);if(c(f,0).type==w.T_LPAR)return 2==b(f)?new Sk.astnodes.Call(e,null,null,f.lineno,f.col_offset):F(a,c(f,1),e,!0);if(c(f,
848
0).type==w.T_DOT){var g=l(c(f,1));return g?new Sk.astnodes.Attribute(e,g,Sk.astnodes.Load,f.lineno,f.col_offset):null}d(c(f,0),w.T_LSQB);d(c(f,2),w.T_RSQB);f=c(f,1);if(1==b(f))return(g=A(a,c(f,0)))?new Sk.astnodes.Subscript(e,g,Sk.astnodes.Load,f.lineno,f.col_offset):null;var k,h=1,v=[];for(k=0;k<b(f);k+=2){g=A(a,c(f,k));if(!g)return null;g.kind!=da.Index_kind&&(h=0);v[k/2]=g}if(!h)return new Sk.astnodes.Subscript(e,new Sk.astnodes.ExtSlice(v),Sk.astnodes.Load,f.lineno,f.col_offset);a=[];for(k=0;k<
849
v.length;++k)g=v[k],Sk.asserts.assert(g.kind==da.Index_kind&&g.v.Index.value),a[k]=g.v.Index.value;g=new Sk.astnodes.Tuple(a,Sk.astnodes.Load,f.lineno,f.col_offset);return new Sk.astnodes.Subscript(e,new Sk.astnodes.Index(g),Sk.astnodes.Load,f.lineno,f.col_offset)}function W(a,f){d(f,r.flow_stmt);var g=c(f,0);switch(g.type){case r.break_stmt:return new Sk.astnodes.Break(f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);case r.continue_stmt:return new Sk.astnodes.Continue(f.lineno,f.col_offset,
850
f.end_lineno,f.end_col_offset);case r.yield_stmt:return(a=x(a,c(g,0)))?new Sk.astnodes.Expr(a,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset):null;case r.return_stmt:if(1==b(g))return new Sk.astnodes.Return(null,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);var k=M(a,c(g,1));return k?new Sk.astnodes.Return(k,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset):null;case r.raise_stmt:if(1==b(g))return new Sk.astnodes.Raise(null,null,null,null,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);
851
if(2<=b(g)){var h=null;k=x(a,c(g,1));var l=null,v=null;4==b(g)&&"from"==c(g,2).value?(Sk.__future__.python3||e(a,c(g,2),"raise ... from ... is not available in Python 2"),h=x(a,c(g,3))):4<=b(g)&&","==c(g,2).value&&(Sk.__future__.python3&&e(a,f,"Old raise syntax is not available in Python 3"),l=x(a,c(g,3)),6==b(g)&&(v=x(a,c(g,5))));return new Sk.astnodes.Raise(k,h,l,v,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset)}default:return Sk.asserts.fail("unexpected flow_stmt: ",g.type),null}}function N(a,
852
d){var e=null;Sk.asserts.assert(d.type===r.tfpdef||d.type===r.vfpdef);var g=c(d,0);f(a,g,g.value,g.lineno);g=h(g.value);3==b(d)&&c(d,1).type===w.T_COLON&&(e=x(a,c(d,2)));return new Sk.astnodes.arg(g,e,d.lineno,d.col_offset)}function E(a,d,g,k,l){var n=g,v=0;k||e(a,c(d,g),"named arguments must follow bare *");for(Sk.asserts.assert(l);n<b(d);){var D=c(d,n);switch(D.type){case r.vfpdef:case r.tfpdef:n+1<b(d)&&c(d,n+1).type==w.T_EQUAL?(l[v]=x(a,c(d,n+2)),n+=2):l[v]=null;var B=3==b(D)?x(a,c(D,2)):null;
853
D=c(D,0);f(a,D,D.value,D.lineno);g=h(D.value);k[v++]=new Sk.astnodes.arg(g,B,D.lineno,D.col_offset);n+=2;break;case w.T_DOUBLESTAR:return n;default:e(a,D,"unexpected node")}}return n}function X(a,d){var f,e,g,k=[],h=[],l=[],n=[],v=null,q=null;if(d.type===r.parameters){if(2===b(d))return new Sk.astnodes.arguments_([],null,[],[],null,[]);d=c(d,1)}Sk.asserts.assert(d.type===r.varargslist||d.type===r.typedargslist);for(f=e=g=0;g<b(d);){var B=c(d,g);switch(B.type){case r.tfpdef:case r.vfpdef:if(g+1<b(d)&&
854
c(d,g+1).type==w.T_EQUAL){h[e++]=x(a,c(d,g+2));g+=2;var m=1}else if(m)throw new Sk.builtin.SyntaxError("non-default argument follows default argument",a.c_filename,d.lineno);k[f++]=N(a,B);g+=2;break;case w.T_STAR:if(g+1>=b(d)||g+2==b(d)&&c(d,g+1).type==w.T_COMMA)throw new Sk.builtin.SyntaxError("named arguments must follow bare *",a.c_filename,d.lineno);B=c(d,g+1);B.type==w.T_COMMA?(g+=2,g=E(a,d,g,l,n)):(v=N(a,B),g+=3,g<b(d)&&(c(d,g).type==r.tfpdef||c(d,g).type==r.vfpdef)&&(g=E(a,d,g,l,n)));break;
855
case w.T_DOUBLESTAR:B=c(d,g+1);Sk.asserts.assert(B.type==r.tfpdef||B.type==r.vfpdef);q=N(a,B);g+=3;break;default:Sk.asserts.fail("unexpected node in varargslist");return}}return new Sk.astnodes.arguments_(k,v,l,n,q,h)}function aa(a,g,k,h){var n=h?c(g,1):g,v=null,D=1,q=null;if(h&&5>a.c_feature_version)return e(a,n,"Async functions are only supported in Python 3.5 and greater"),null;d(n,r.funcdef);var B=l(c(n,D));if(f(a,B,c(n,D),0))return null;var m=X(a,c(n,D+1));if(!m)return null;if(c(n,D+2).type==
856
w.T_RARROW){v=x(a,c(n,D+3));if(!v)return null;D+=2}if(c(n,D+3).type==w.T_TYPE_COMMENT){q=w.T_NEW_TYPE_COMMENT(c(n,D+3));if(!q)return null;D+=1}var P=y(a,c(n,D+3));if(!P)return null;if(1<b(c(n,D+3))&&(D=c(c(n,D+3),1),D.type==w.T_TYPE_COMMENT)){if(null!=q)return e(a,n,"Cannot have two type comments on def"),null;q=w.T_NEW_TYPE_COMMENT(D);if(!q)return null}return h?new Sk.astnodes.AsyncFunctionDef(B,m,P,k,v,q,g.lineno,g.col_offset,void 0,void 0):new Sk.astnodes.FunctionDef(B,m,P,k,v,q,n.lineno,n.col_offset,
857
void 0,void 0)}function S(a,e,g){d(e,r.classdef);if(4==b(e)){var k=y(a,c(e,3));var h=l(c(e,1).value);f(a,c(e,3),h,e.lineno);return new Sk.astnodes.ClassDef(h,[],[],k,g,null,e.lineno,e.col_offset)}if(c(e,3).type===w.T_RPAR)return k=y(a,c(e,5)),h=l(c(e,1).value),f(a,c(e,3),h,c(e,3).lineno),new Sk.astnodes.ClassDef(h,[],[],k,g,null,e.lineno,e.col_offset);h=l(c(e,1));h=new Sk.astnodes.Name(h,Sk.astnodes.Load,e.lineno,e.col_offset);var n=F(a,c(e,3),h,!1);k=y(a,c(e,6));h=l(c(e,1).value);f(a,c(e,1),h,c(e,
858
1).lineno);return new Sk.astnodes.ClassDef(h,n.args,n.keywords,k,g,null,e.lineno,e.col_offset)}function R(a,f){function e(a,f){for(a=0;;){d(f,r.comp_iter);if(c(f,0).type===r.comp_for)return a;f=c(f,0);d(f,r.comp_if);a++;if(2===b(f))return a;f=c(f,2)}}var g;var k=function(a,f){a=0;a:for(;;){a++;d(f,r.comp_for);if(5===b(f))f=c(f,4);else return a;b:for(;;){d(f,r.comp_iter);f=c(f,0);if(f.type===r.comp_for)continue a;else if(f.type===r.comp_if)if(3===b(f)){f=c(f,2);continue b}else return a;break}break}Sk.asserts.fail("logic error in countCompFors")}(a,
859
f);var h=[];for(g=0;g<k;++g){d(f,r.comp_for);var l=c(f,1);var n=t(a,l,Sk.astnodes.Store);var v=x(a,c(f,3));var q=1===b(l)?new Sk.astnodes.comprehension(n[0],v,[]):new Sk.astnodes.comprehension(new Sk.astnodes.Tuple(n,Sk.astnodes.Store,f.lineno,f.col_offset),v,[]);if(5===b(f)){f=c(f,4);var m=e(a,f);l=[];for(n=0;n<m;++n)d(f,r.comp_iter),f=c(f,0),d(f,r.comp_if),v=x(a,c(f,1)),l[n]=v,3===b(f)&&(f=c(f,2));f.type===r.comp_iter&&(f=c(f,0));q.ifs=l}h[g]=q}return h}function V(a,f){var e=[];a:{var g=f;var k=
860
0;b:for(;;){var h=0;k++;d(g,r.comp_for);c(g,0).type==w.T_ASYNC&&(h=1);if(b(g)==5+h)g=c(g,4+h);else break a;c:for(;;){d(g,r.comp_iter);g=c(g,0);if(g.type===r.comp_for)continue b;else if(g.type===r.comp_if)if(3===b(g)){g=c(g,2);continue c}else break a;break}break}k=void 0}for(g=0;g<k;g++){var l=0;c(f,0).type==w.T_ASYNC&&(l=1);var n=c(f,1+l);var v=t(a,n,Sk.astnodes.Store);if(!v)return null;h=x(a,c(f,3+l));if(!h)return null;var q=v[0];v=1==b(n)?new Sk.astnodes.comprehension(q,h,null,l):new Sk.astnodes.comprehension(new Sk.astnodes.Tuple(v,
861
Sk.astnodes.Store,q.lineno,q.col_offset,n.end_lineno,n.end_col_offset),h,null,l);if(b(f)==5+l){q=[];f=c(f,4+l);a:for(h=f,l=0;;){d(h,r.comp_iter);if(c(h,0).type==r.comp_for){n=l;break a}h=c(h,0);d(h,r.comp_if);l++;if(2==b(h)){n=l;break a}h=c(h,2)}if(-1==n)return null;for(l=0;l<n;l++){d(f,r.comp_iter);f=c(f,0);d(f,r.comp_if);h=x(a,c(f,1));if(!h)return null;q[l]=h;3==b(f)&&(f=c(f,2))}f.type==r.comp_iter&&(f=c(f,0));v.ifs=q}e[g]=v}return e}function ca(a,d,f){Sk.asserts.assert(1<b(d));var g=c(d,0);var k=
862
x(a,g);if(k.constructor===Sk.astnodes.Starred)return e(a,g,"iterable unpacking cannot be used in comprehension"),null;a=V(a,c(d,1));return 0==f?new Sk.astnodes.GeneratorExp(k,a,d.lineno,d.col_offset,d.end_lineno,d.end_col_offset):1==f?new Sk.astnodes.ListComp(k,a,d.lineno,d.col_offset,d.end_lineno,d.end_col_offset):2==f?new Sk.astnodes.SetComp(k,a,d.lineno,d.col_offset,d.end_lineno,d.end_col_offset):null}function ea(a,b){d(b,r.augassign);b=c(b,0);switch(b.value.charAt(0)){case "+":return Sk.astnodes.Add;
863
case "-":return Sk.astnodes.Sub;case "/":return"/"===b.value.charAt(1)?Sk.astnodes.FloorDiv:Sk.astnodes.Div;case "%":return Sk.astnodes.Mod;case "<":return Sk.astnodes.LShift;case ">":return Sk.astnodes.RShift;case "&":return Sk.astnodes.BitAnd;case "^":return Sk.astnodes.BitXor;case "|":return Sk.astnodes.BitOr;case "*":return"*"===b.value.charAt(1)?Sk.astnodes.Pow:Sk.astnodes.Mult;case "@":if(Sk.__future__.python3)return Sk.astnodes.MatMult;default:Sk.asserts.fail("invalid augassign")}}function M(a,
864
d){Sk.asserts.assert(0<b(d));d.type===r.testlist_comp?1<b(d)&&Sk.asserts.assert(c(d,1).type!==r.comp_for):Sk.asserts.assert(d.type===r.testlist||d.type===r.testlist_star_expr);return 1===b(d)?x(a,c(d,0)):new Sk.astnodes.Tuple(z(a,d),Sk.astnodes.Load,d.lineno,d.col_offset)}function I(a,e){d(e,r.expr_stmt);if(1===b(e))return new Sk.astnodes.Expr(M(a,c(e,0)),e.lineno,e.col_offset);if(c(e,1).type===r.augassign){var g=c(e,0);var h=M(a,g);k(a,h,Sk.astnodes.Store,g);switch(h.constructor){case Sk.astnodes.Name:var l=
865
h.id;f(a,g,l,e.lineno);break;case Sk.astnodes.Attribute:case Sk.astnodes.Subscript:break;case Sk.astnodes.GeneratorExp:throw new Sk.builtin.SyntaxError("augmented assignment to generator expression not possible",a.c_filename,e.lineno);case Sk.astnodes.Yield:throw new Sk.builtin.SyntaxError("augmented assignment to yield expression not possible",a.c_filename,e.lineno);default:throw new Sk.builtin.SyntaxError("illegal expression for augmented assignment",a.c_filename,e.lineno);}g=c(e,2);l=g.type===
866
r.testlist?M(a,g):x(a,g);return new Sk.astnodes.AugAssign(h,ea(a,c(e,1)),l,e.lineno,e.col_offset)}if(c(e,1).type===r.annassign){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("Annotated assignment is not supported in Python 2",a.c_filename,e.lineno);g=c(e,0);var n=c(e,1);var v=1;for(h=g;1==b(h);)h=c(h,0);0<b(h)&&c(h,0).type==w.T_LPAR&&(v=0);h=M(a,g);switch(h.constructor){case Sk.astnodes.Name:l=h.id;f(a,g,l,e.lineno);k(a,h,Sk.astnodes.Store,g);break;case Sk.astnodes.Attribute:l=h.attr;
867
f(a,g,l,e.lineno);k(a,h,Sk.astnodes.Store,g);break;case Sk.astnodes.Subscript:k(a,h,Sk.astnodes.Store,g);break;case Sk.astnodes.List:throw new Sk.builtin.SyntaxError("only single target (not list) can be annotated",a.c_filename,e.lineno);case Sk.astnodes.Tuple:throw new Sk.builtin.SyntaxError("only single target (not tuple) can be annotated",a.c_filename,e.lineno);default:throw new Sk.builtin.SyntaxError("illegal target for annotation",a.c_filename,e.lineno);}h.constructor!=Sk.astnodes.Name&&(v=0);
868
g=c(n,1);l=x(a,g);if(2==b(n))return new Sk.astnodes.AnnAssign(h,l,null,v,e.lineno,e.col_offset);g=c(n,3);a=x(a,g);return new Sk.astnodes.AnnAssign(h,l,a,v,e.lineno,e.col_offset)}d(c(e,1),w.T_EQUAL);v=[];for(h=0;h<b(e)-2;h+=2){g=c(e,h);if(g.type===r.yield_expr)throw new Sk.builtin.SyntaxError("assignment to yield expression not possible",a.c_filename,e.lineno);g=M(a,g);k(a,g,Sk.astnodes.Store,c(e,h));v[h/2]=g}g=c(e,b(e)-1);a=g.type===r.testlist_star_expr?M(a,g):x(a,g);return new Sk.astnodes.Assign(v,
869
a,e.lineno,e.col_offset)}function Z(a,b,c,d,f){Sk.asserts.assert(c>=b);Sk.asserts.assert("{"==a.charAt(b-1));Sk.asserts.assert("}"==a.charAt(c)||"!"==a.charAt(c)||":"==a.charAt(c));a=a.substring(b,c);/^\s*$/.test(a)&&e(d,f,"f-string: empty expression not allowed");try{let b=Sk.parse("<fstring>","("+a+")");var g=Sk.astFromParse(b.cst,"<fstring>",b.flags)}catch(ba){throw ba.traceback&&ba.traceback[0]&&(g=ba.traceback[0],g.lineno=(g.lineno||1)-1+f.lineno,g.filename=d.c_filename),ba;}Sk.asserts.assert(1==
870
g.body.length&&g.body[0].constructor===Sk.astnodes.Expr);return g.body[0].value}function Y(a,b,c,d,f,g,k){Sk.asserts.assert("{"==a.charAt(b));b++;var h=b;let l=null,n=0,D=0,v,q,m=()=>e(g,k,"f-string: expecting '}'");for(Sk.asserts.assert(b<=c);b<c;b++){let d=a.charAt(b);"\\"==d&&e(g,k,"f-string expression part cannot include a backslash");if(l)d==l&&(3==n?b+2<c&&a.charAt(b+1)==d&&a.charAt(b+2)==d&&(b+=2,l=n=0):n=l=0);else if("'"==d||'"'==d)b+2<c&&a.charAt(b+1)==d&&a.charAt(b+2)==d?(n=3,b+=2):n=1,
871
l=d;else if("["==d||"{"==d||"("==d)D++;else if(0!=D&&("]"==d||"}"==d||")"==d))D--;else if("#"==d)e(g,k,"f-string expression part cannot include '#'");else if(!(0!=D||"!"!=d&&":"!=d&&"}"!=d||"!"==d&&b+1<c&&"="==a.charAt(b+1)))break}l&&e(g,k,"f-string: unterminated string");D&&e(g,k,"f-string: mismatched '(', '{', or '['");h=Z(a,h,b,g,k);"!"==a.charAt(b)&&(b++,b>=c&&m(),q=a.charAt(b),b++,"s"!=q&&"r"!=q&&"a"!=q&&e(g,k,"f-string: invalid conversion character: expected 's', 'r', or 'a'"));b>=c&&m();":"==
872
a.charAt(b)&&(b++,b>=c&&m(),[v,b]=J(a,b,c,d,f+1,g,k));(b>=c||"}"!=a.charAt(b))&&m();b++;return[new Sk.astnodes.FormattedValue(h,q,v,k.lineno,k.col_offset),b]}function J(a,b,c,d,f,e,g){let k=[],h=a=>{if(-1!==a.indexOf("}")){if(/(^|[^}])}(}})*($|[^}])/.test(a))throw new SyntaxError("f-string: single '}' is not allowed",g.lineno,g.col_offset);a=a.replace(/}}/g,"}")}k.push(new Sk.astnodes.Str(new Sk.builtin.str(a),g.lineno,g.col_offset,e.end_lineno,g.end_col_offset))};for(;b<c;){let l=a.indexOf("{",b);
873
if(0!==f){let d=a.indexOf("}",b);-1!==d&&(-1===l?c=d:l>d&&(l=-1,c=d))}if(-1===l){h(a.substring(b,c));b=c;break}else if(l+1<c&&"{"===a.charAt(l+1))h(a.substring(b,l+1)),b=l+2;else{h(a.substring(b,l));b=l;let [n,D]=Y(a,l,c,d,f,e,g);k.push(n);b=D}}return[new Sk.astnodes.JoinedStr(k,g.lineno,g.col_offset),b]}function U(a,b,c){var d=b.charAt(b.length-1);if(-1!==b.indexOf("_")){if(fa.test(b))throw new Sk.builtin.SyntaxError("invalid syntax",a.c_filename,c);if(ha.test(b))throw new Sk.builtin.SyntaxError("invalid decimal literal",
874
a.c_filename,c);b=b.replace(ia,"")}if("j"===d||"J"===d)return Sk.builtin.complex.complex_subtype_from_string(b);if("l"===d||"L"===d)return Sk.longFromStr(b.substr(0,b.length-1),0);if(-1!==b.indexOf("."))return new Sk.builtin.float_(parseFloat(b));c=b;a=!1;"-"===b.charAt(0)&&(c=b.substr(1),a=!0);if("0"!==c.charAt(0)||"x"!==c.charAt(1)&&"X"!==c.charAt(1)){if(-1!==b.indexOf("e")||-1!==b.indexOf("E"))return new Sk.builtin.float_(parseFloat(b));if("0"!==c.charAt(0)||"b"!==c.charAt(1)&&"B"!==c.charAt(1))if("0"===
875
c.charAt(0))if("0"===c)c=0;else{c=c.substring(1);if("o"===c.charAt(0)||"O"===c.charAt(0))c=c.substring(1);c=parseInt(c,8)}else c=parseInt(c,10);else c=c.substring(2),c=parseInt(c,2)}else c=c.substring(2),c=parseInt(c,16);return c>Sk.builtin.int_.threshold$&&Math.floor(c)===c&&-1===b.indexOf("e")&&-1===b.indexOf("E")?Sk.longFromStr(b,0):a?new Sk.builtin.int_(-c):new Sk.builtin.int_(c)}function A(a,f){var e,g;d(f,r.subscript);var k=c(f,0);var h=e=g=null;if(k.type===w.T_DOT)return new Sk.astnodes.Ellipsis;
876
if(1===b(f)&&k.type===r.test)return new Sk.astnodes.Index(x(a,k));k.type===r.test&&(g=x(a,k));k.type===w.T_COLON?1<b(f)&&(k=c(f,1),k.type===r.test&&(e=x(a,k))):2<b(f)&&(k=c(f,2),k.type===r.test&&(e=x(a,k)));k=c(f,b(f)-1);k.type===r.sliceop&&(1===b(k)?(k=c(k,0),h=new Sk.astnodes.NameConstant(Sk.builtin.none.none$,Sk.astnodes.Load,k.lineno,k.col_offset)):(k=c(k,1),k.type===r.test&&(h=x(a,k))));return new Sk.astnodes.Slice(g,e,h)}function G(a,f){var g=c(f,0);switch(g.type){case w.T_NAME:var k=g.value;
877
if(4<=k.length&&5>=k.length){if("None"===k)return new Sk.astnodes.NameConstant(Sk.builtin.none.none$,f.lineno,f.col_offset);if("True"===k)return new Sk.astnodes.NameConstant(Sk.builtin.bool.true$,f.lineno,f.col_offset);if("False"===k)return new Sk.astnodes.NameConstant(Sk.builtin.bool.false$,f.lineno,f.col_offset)}a=l(k,a);return new Sk.astnodes.Name(a,Sk.astnodes.Load,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);case w.T_STRING:g=[];for(var n=0;n<b(f);++n){var q=c(f,n).value;var m=a;var v=
878
c(f,n);var p=q;var B=p.charAt(0);for(var t=!1,y=q=!1;;){if("u"!==B&&"U"!==B)if("r"===B||"R"===B)t=!0;else if("b"===B||"B"===B)y=!0;else if("f"===B||"F"===B)q=!0;else break;p=p.substr(1);B=p.charAt(0)}Sk.asserts.assert("'"===B||'"'===B&&p.charAt(p.length-1)===B);p=p.substr(1,p.length-2);4<=p.length&&p.charAt(0)===B&&p.charAt(1)===B&&(Sk.asserts.assert(p.charAt(p.length-1)===B&&p.charAt(p.length-2)===B),p=p.substr(2,p.length-4));if(t||-1===p.indexOf("\\")){if(y)for(B=0;B<p.length;B++)127<p.charCodeAt(B)&&
879
e(m,v,"bytes can only contain ASCII literal characters");m=[h(p),q,y]}else{t=p;var F=t.length,C="";for(p=0;p<F;++p)B=t.charAt(p),"\\"===B?(++p,B=t.charAt(p),"n"===B?C+="\n":"\\"===B?C+="\\":"t"===B?C+="\t":"r"===B?C+="\r":"b"===B?C+="\b":"f"===B?C+="\f":"v"===B?C+="\v":"0"===B?C+="\x00":'"'===B?C+='"':"'"===B?C+="'":"\n"!==B&&("x"===B?(p+2>=F&&e(m,v,"Truncated \\xNN escape"),C+=String.fromCharCode(parseInt(t.substr(p+1,2),16)),p+=2):y||"u"!==B?y||"U"!==B?C+="\\"+B:(p+8>=F&&e(m,v,"Truncated \\UXXXXXXXX escape"),
880
C+=String.fromCodePoint(parseInt(t.substr(p+1,8),16)),p+=8):(p+4>=F&&e(m,v,"Truncated \\uXXXX escape"),C+=String.fromCharCode(parseInt(t.substr(p+1,4),16)),p+=4))):y&&127<B.charCodeAt(0)?e(m,v,"bytes can only contain ASCII literal characters"):C+=B;m=C;m=[h(m),q,y]}q=m;m=q[0];v=q[1];q=q[2];0!=n&&k!==q&&e(a,f,"cannot mix bytes and nonbytes literals");k=q;if(v){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("invalid string (f-strings are not supported in Python 2)",a.c_filename,c(f,n).lineno);
881
var A=m.$jsstr();[A]=J(A,0,A.length,!1,0,a,c(f,n));g.push.apply(g,A.values);A=null}else A?A.s=A.s.sq$concat(m):(A=new (k?Sk.astnodes.Bytes:Sk.astnodes.Str)(m,f.lineno,f.col_offset,a.end_lineno,f.end_col_offset),g.push(A))}f=1===g.length&&g[0].constructor===Sk.astnodes.Str?g[0]:new Sk.astnodes.JoinedStr(g,f.lineno,f.col_offset,a.end_lineno,f.end_col_offset);return f;case w.T_NUMBER:return new Sk.astnodes.Num(U(a,g.value,f.lineno),f.lineno,f.col_offset);case w.T_ELLIPSIS:return new Sk.astnodes.Ellipsis(f.lineno,
882
f.col_offset,f.end_lineno,f.end_col_offset);case w.T_LPAR:return g=c(f,1),g.type==w.T_RPAR?new Sk.astnodes.Tuple([],Sk.astnodes.Load,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset):g.type==r.yield_expr?x(a,g):1==b(g)?M(a,g):c(g,1).type==r.comp_for?u(K(a,g),f):u(M(a,g),f);case w.T_LSQB:g=c(f,1);if(g.type==w.T_RSQB)return new Sk.astnodes.List([],Sk.astnodes.Load,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);d(g,r.testlist_comp);if(1==b(g)||c(g,1).type==w.T_COMMA)return(a=z(a,g))?new Sk.astnodes.List(a,
883
Sk.astnodes.Load,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset):null;k=g;Sk.asserts.assert(k.type==r.testlist_comp);a=ca(a,k,1);return u(a,f);case w.T_LBRACE:g=c(f,1);if(g.type==w.T_RBRACE)return new Sk.astnodes.Dict(null,null,f.lineno,f.col_offset,f.end_lineno,f.end_col_offset);k=c(g,0).type==w.T_DOUBLESTAR;if(1==b(g)||1<b(g)&&c(g,1).type==w.T_COMMA){k=g;n=[];Sk.asserts.assert(k.type===r.dictorsetmaker);for(g=0;g<b(k);g+=2)A=x(a,c(k,g)),n[g/2]=A;a=new Sk.astnodes.Set(n,k.lineno,k.col_offset)}else if(1<
884
b(g)&&c(g,1).type==r.comp_for)k=g,Sk.asserts.assert(k.type===r.dictorsetmaker),Sk.asserts.assert(1<b(k)),g=x(a,c(k,0)),a=R(a,c(k,1)),a=new Sk.astnodes.SetComp(g,a,k.lineno,k.col_offset);else if(b(g)>3-k&&c(g,3-k).type==r.comp_for){if(k)return e(a,f,"dict unpacking cannot be used in dict comprehension"),null;k=g;Sk.asserts.assert(3<b(k));d(c(k,1),w.T_COLON);g=x(a,c(k,0));n=x(a,c(k,2));a=R(a,c(k,3));a=new Sk.astnodes.DictComp(g,n,a,k.lineno,k.col_offset)}else{k=g;n=[];A=[];for(q=g=0;q<b(k);q++)m=a,
885
v=k,y=q,c(v,y).type==w.T_DOUBLESTAR?(Sk.asserts.assert(2<=b(v)-y),q=x(m,c(v,y+1)),m={key:null,value:q,i:y+2}):(Sk.asserts.assert(3<=b(v)-y),(q=x(m,c(v,y)))?(p=q,d(c(v,y+1),w.T_COLON),m=(q=x(m,c(v,y+2)))?{key:p,value:q,i:y+3}:!1):m=0),q=m.i,n[g]=m.key,A[g]=m.value,g++;a=new Sk.astnodes.Dict(n,A,k.lineno,k.col_offset,k.end_lineno,k.end_col_offset)}return u(a,f);default:return Sk.asserts.fail("unhandled atom "+g.type),null}}function T(a,f){var e,g=0;d(f,r.atom_expr);var k=b(f);c(f,0).type===w.T_AWAIT&&
886
(g=1,Sk.asserts.assert(1<k));var h=G(a,c(f,g));if(!h)return null;if(1===k)return h;if(g&&2===k)return new Sk.astnodes.Await(h,f.lineno,f.col_offset);for(e=g+1;e<k;e++){var l=c(f,e);if(l.type!==r.trailer)break;l=L(a,l,h);if(!l)return null;l.lineno=h.lineno;l.col_offset=h.col_offset;h=l}return g?new Sk.astnodes.Await(h,f.line,f.col_offset):h}function x(a,f){a:for(;;){switch(f.type){case r.test:case r.test_nocond:if(c(f,0).type===r.lambdef||c(f,0).type===r.lambdef_nocond){var e=c(f,0);3===b(e)?(f=new Sk.astnodes.arguments_([],
887
null,null,[]),a=x(a,c(e,2))):(f=X(a,c(e,1)),a=x(a,c(e,3)));return new Sk.astnodes.Lambda(f,a,e.lineno,e.col_offset)}if(1<b(f))return Sk.asserts.assert(5===b(f)),new Sk.astnodes.IfExp(x(a,c(f,2)),x(a,c(f,0)),x(a,c(f,4)),f.lineno,f.col_offset);case r.or_test:case r.and_test:if(1===b(f)){f=c(f,0);continue a}var g=[];for(e=0;e<b(f);e+=2)g[e/2]=x(a,c(f,e));if("and"===c(f,1).value)return new Sk.astnodes.BoolOp(Sk.astnodes.And,g,f.lineno,f.col_offset);Sk.asserts.assert("or"===c(f,1).value);return new Sk.astnodes.BoolOp(Sk.astnodes.Or,
888
g,f.lineno,f.col_offset);case r.not_test:if(1===b(f)){f=c(f,0);continue a}else return new Sk.astnodes.UnaryOp(Sk.astnodes.Not,x(a,c(f,1)),f.lineno,f.col_offset);case r.comparison:if(1===b(f)){f=c(f,0);continue a}else{var k=[];g=[];for(e=1;e<b(f);e+=2)k[(e-1)/2]=q(a,c(f,e)),g[(e-1)/2]=x(a,c(f,e+1));return new Sk.astnodes.Compare(x(a,c(f,0)),k,g,f.lineno,f.col_offset)}case r.star_expr:return d(f,r.star_expr),new Sk.astnodes.Starred(x(a,c(f,1)),Sk.astnodes.Load,f.lineno,f.col_offset);case r.expr:case r.xor_expr:case r.and_expr:case r.shift_expr:case r.arith_expr:case r.term:if(1===
889
b(f)){f=c(f,0);continue a}var h=f,l=new Sk.astnodes.BinOp(x(a,c(h,0)),n(c(h,1)),x(a,c(h,2)),h.lineno,h.col_offset),m=(b(h)-1)/2;for(f=1;f<m;++f)e=c(h,2*f+1),g=n(e),k=x(a,c(h,2*f+2)),l=new Sk.astnodes.BinOp(l,g,k,e.lineno,e.col_offset);return l;case r.yield_expr:return g=!1,k=null,1<b(f)&&(e=c(f,1)),e&&(k=c(e,b(e)-1),2==b(e)?(g=!0,k=x(a,k)):k=M(a,k)),g?new Sk.astnodes.YieldFrom(k,f.lineno,f.col_offset):new Sk.astnodes.Yield(k,f.lineno,f.col_offset);case r.factor:if(1===b(f)){f=c(f,0);continue a}return C(a,
890
f);case r.power:return e=f,d(e,r.power),f=T(a,c(e,0)),1!==b(e)&&c(e,b(e)-1).type===r.factor&&(a=x(a,c(e,b(e)-1)),f=new Sk.astnodes.BinOp(f,Sk.astnodes.Pow,a,e.lineno,e.col_offset)),f;default:Sk.asserts.fail("unhandled expr","n.type: %d",f.type)}break}}function O(a,f){f.type===r.stmt&&(Sk.asserts.assert(1===b(f)),f=c(f,0));f.type===r.simple_stmt&&(Sk.asserts.assert(1===g(f)),f=c(f,0));if(f.type===r.small_stmt)switch(f=c(f,0),f.type){case r.expr_stmt:return I(a,f);case r.del_stmt:var l=f;d(l,r.del_stmt);
891
return new Sk.astnodes.Delete(t(a,c(l,1),Sk.astnodes.Del),l.lineno,l.col_offset);case r.pass_stmt:return new Sk.astnodes.Pass(f.lineno,f.col_offset);case r.flow_stmt:return W(a,f);case r.import_stmt:var n=f,q;d(n,r.import_stmt);var m=n.lineno;f=n.col_offset;n=c(n,0);if(n.type===r.import_name){n=c(n,1);d(n,r.dotted_as_names);var p=[];for(q=0;q<b(n);q+=2)p[q/2]=H(a,c(n,q));a=new Sk.astnodes.Import(p,m,f)}else if(n.type===r.import_from){var u=null;l=0;for(p=1;p<b(n);++p)if(c(n,p).type===r.dotted_name){u=
892
H(a,c(n,p));p++;break}else if(c(n,p).type===w.T_DOT)l++;else if(c(n,p).type===w.T_ELLIPSIS)l+=3;else break;++p;switch(c(n,p).type){case w.T_STAR:n=c(n,p);break;case w.T_LPAR:n=c(n,p+1);b(n);break;case r.import_as_names:n=c(n,p);p=b(n);if(0===p%2)throw new Sk.builtin.SyntaxError("trailing comma not allowed without surrounding parentheses",a.c_filename,n.lineno);break;default:throw new Sk.builtin.SyntaxError("Unexpected node-type in from-import",a.c_filename,n.lineno);}p=[];if(n.type===w.T_STAR)p[0]=
893
H(a,n);else for(q=0;q<b(n);q+=2)p[q/2]=H(a,c(n,q));a=u?u.name.v:"";a=new Sk.astnodes.ImportFrom(h(a),p,l,m,f)}else throw new Sk.builtin.SyntaxError("unknown import statement",a.c_filename,n.lineno);return a;case r.global_stmt:a=f;f=[];d(a,r.global_stmt);for(l=1;l<b(a);l+=2)f[(l-1)/2]=h(c(a,l).value);return new Sk.astnodes.Global(f,a.lineno,a.col_offset);case r.nonlocal_stmt:e(a,f,"Not implemented: nonlocal");break;case r.assert_stmt:return l=f,d(l,r.assert_stmt),2===b(l)?a=new Sk.astnodes.Assert(x(a,
894
c(l,1)),null,l.lineno,l.col_offset):4===b(l)?a=new Sk.astnodes.Assert(x(a,c(l,1)),x(a,c(l,3)),l.lineno,l.col_offset):(Sk.asserts.fail("improper number of parts to assert stmt"),a=void 0),a;case r.print_stmt:l=f;Sk.__future__.print_function&&e(a,l,"Missing parentheses in call to 'print'");n=1;m=null;d(l,r.print_stmt);2<=b(l)&&c(l,1).type===w.T_RIGHTSHIFT&&(m=x(a,c(l,2)),n=4);f=[];for(u=0;n<b(l);n+=2,++u)f[u]=x(a,c(l,n));a=c(l,b(l)-1).type===w.T_COMMA?!1:!0;return new Sk.astnodes.Print(m,f,a,l.lineno,
895
l.col_offset);case r.debugger_stmt:return new Sk.astnodes.Debugger(f.lineno,f.col_offset);default:Sk.asserts.fail("unhandled small_stmt")}else switch(l=c(f,0),d(f,r.compound_stmt),l.type){case r.if_stmt:d(l,r.if_stmt);if(4===b(l))a=new Sk.astnodes.If(x(a,c(l,1)),y(a,c(l,3)),[],l.lineno,l.col_offset);else if(f=c(l,4).value.charAt(2),"s"===f)a=new Sk.astnodes.If(x(a,c(l,1)),y(a,c(l,3)),y(a,c(l,6)),l.lineno,l.col_offset);else if("i"===f){m=b(l)-4;n=!1;f=[];c(l,m+1).type===w.T_NAME&&"s"===c(l,m+1).value.charAt(2)&&
896
(n=!0,m-=3);m/=4;n&&(f=[new Sk.astnodes.If(x(a,c(l,b(l)-6)),y(a,c(l,b(l)-4)),y(a,c(l,b(l)-1)),c(l,b(l)-6).lineno,c(l,b(l)-6).col_offset)],m--);for(u=0;u<m;++u)n=5+4*(m-u-1),f=[new Sk.astnodes.If(x(a,c(l,n)),y(a,c(l,n+2)),f,c(l,n).lineno,c(l,n).col_offset)];a=new Sk.astnodes.If(x(a,c(l,1)),y(a,c(l,3)),f,l.lineno,l.col_offset)}else Sk.asserts.fail("unexpected token in 'if' statement"),a=void 0;return a;case r.while_stmt:return d(l,r.while_stmt),4===b(l)?a=new Sk.astnodes.While(x(a,c(l,1)),y(a,c(l,3)),
897
[],l.lineno,l.col_offset):7===b(l)?a=new Sk.astnodes.While(x(a,c(l,1)),y(a,c(l,3)),y(a,c(l,6)),l.lineno,l.col_offset):(Sk.asserts.fail("wrong number of tokens for 'while' stmt"),a=void 0),a;case r.for_stmt:return f=[],d(l,r.for_stmt),9===b(l)&&(f=y(a,c(l,8))),n=c(l,1),m=t(a,n,Sk.astnodes.Store),m=1===b(n)?m[0]:new Sk.astnodes.Tuple(m,Sk.astnodes.Store,l.lineno,l.col_offset),new Sk.astnodes.For(m,M(a,c(l,3)),y(a,c(l,5)),f,l.lineno,l.col_offset);case r.try_stmt:f=[];q=b(l);m=(q-3)/3;u=[];p=null;d(l,
898
r.try_stmt);n=y(a,c(l,2));if(c(l,q-3).type===w.T_NAME)"finally"===c(l,q-3).value?(9<=q&&c(l,q-6).type===w.T_NAME&&(u=y(a,c(l,q-4)),m--),p=y(a,c(l,q-1))):u=y(a,c(l,q-1)),m--;else if(c(l,q-3).type!==r.except_clause)throw new Sk.builtin.SyntaxError("malformed 'try' statement",a.c_filename,l.lineno);if(0<m)for(q=0;q<m;q++){var z=q;var v=a,C=c(l,3+3*q),A=c(l,5+3*q);d(C,r.except_clause);d(A,r.suite);if(1===b(C))var B=new Sk.astnodes.ExceptHandler(null,null,y(v,A),C.lineno,C.col_offset);else 2===b(C)?B=
899
new Sk.astnodes.ExceptHandler(x(v,c(C,1)),null,y(v,A),C.lineno,C.col_offset):4===b(C)?(Sk.__future__.python3&&","==c(C,2).value&&e(v,C,"Old-style 'except' clauses are not supported in Python 3"),x(v,c(C,1)),B=x(v,c(C,3)),k(v,B,Sk.astnodes.Store,c(C,3)),B=new Sk.astnodes.ExceptHandler(x(v,c(C,1)),B,y(v,A),C.lineno,C.col_offset)):(Sk.asserts.fail("wrong number of children for except clause"),B=void 0);f[z]=B}Sk.asserts.assert(!!p||0!=f.length);return new Sk.astnodes.Try(n,f,u,p,l.lineno,l.col_offset);
900
case r.with_stmt:f=[];d(l,r.with_stmt);for(m=1;m<b(l)-2;m+=2)n=void 0,p=a,q=c(l,m),d(q,r.with_item),u=x(p,c(q,0)),3==b(q)&&(n=x(p,c(q,2)),k(p,n,Sk.astnodes.Store,q)),n=new Sk.astnodes.withitem(u,n),f[(m-1)/2]=n;a=y(a,c(l,b(l)-1));a=new Sk.astnodes.With(f,a,l.lineno,l.col_offset);return a;case r.funcdef:return aa(a,l,[],!1);case r.classdef:return S(a,l,[]);case r.decorated:m=null;d(l,r.decorated);n=c(l,0);d(n,r.decorators);f=[];for(u=0;u<b(n);++u){p=f;q=u;z=a;B=c(n,u);d(B,r.decorator);d(c(B,0),w.T_AT);
901
d(c(B,b(B)-1),w.T_NEWLINE);var K,E=c(B,1);d(E,r.dotted_name);v=E.lineno;C=E.col_offset;A=h(c(E,0).value);var L=new Sk.astnodes.Name(A,Sk.astnodes.Load,v,C);for(K=2;K<b(E);K+=2)A=h(c(E,K).value),L=new Sk.astnodes.Attribute(L,A,Sk.astnodes.Load,v,C);v=L;z=3===b(B)?v:5===b(B)?new Sk.astnodes.Call(v,[],[],null,null,B.lineno,B.col_offset):F(z,c(B,3),v);p[q]=z}Sk.asserts.assert(c(l,1).type==r.funcdef||c(l,1).type==r.async_funcdef||c(l,1).type==r.classdef);c(l,1).type==r.funcdef?(m=c(l,1),m=aa(a,m,f,!1)):
902
c(l,1).type==r.classdef?m=S(a,c(l,1),f):c(l,1).type==r.async_funcdef&&(m=c(l,1),d(m,r.async_funcdef),d(c(m,0),w.T_NAME),Sk.asserts.assert(("async"===c(m,0)).value),d(c(m,1),r.funcdef),m=aa(a,m,f,!0));m&&(m.lineno=l.lineno,m.col_offset=l.col_offset);return m;case r.async_stmt:e(a,l,"Not implemented: async");break;default:Sk.asserts.assert("unhandled compound_stmt")}}var r=Sk.ParseTables.sym,w=Sk.token.tokens,da={Slice_kind:1,ExtSlice_kind:2,Index_kind:3},Q={};Q[w.T_VBAR]=Sk.astnodes.BitOr;Q[w.T_CIRCUMFLEX]=
903
Sk.astnodes.BitXor;Q[w.T_AMPER]=Sk.astnodes.BitAnd;Q[w.T_LEFTSHIFT]=Sk.astnodes.LShift;Q[w.T_RIGHTSHIFT]=Sk.astnodes.RShift;Q[w.T_PLUS]=Sk.astnodes.Add;Q[w.T_MINUS]=Sk.astnodes.Sub;Q[w.T_STAR]=Sk.astnodes.Mult;Q[w.T_SLASH]=Sk.astnodes.Div;Q[w.T_DOUBLESLASH]=Sk.astnodes.FloorDiv;Q[w.T_PERCENT]=Sk.astnodes.Mod;Sk.setupOperators=function(a){a?Q[w.T_AT]=Sk.astnodes.MatMult:Q[w.T_AT]&&delete Q[w.T_AT]};Sk.exportSymbol("Sk.setupOperators",Sk.setupOperators);const fa=/_[eE]|[eE]_|\._|j_/,ha=/_\.|[+-]_|^0_\D|_j/,
904
ia=/_(?=[^_])/g;Sk.astFromParse=function(f,e,k){var h,l=new a("utf-8",e,k),n=[],q=0;switch(f.type){case r.file_input:for(h=0;h<b(f)-1;++h){var m=c(f,h);if(f.type!==w.T_NEWLINE)if(d(m,r.stmt),k=g(m),1===k)n[q++]=O(l,m);else for(m=c(m,0),d(m,r.simple_stmt),e=0;e<k;++e)n[q++]=O(l,c(m,2*e))}return new Sk.astnodes.Module(n);case r.eval_input:Sk.asserts.fail("todo;");case r.single_input:Sk.asserts.fail("todo;");default:Sk.asserts.fail("todo;")}};Sk.astDump=function(a){var b=function(a){var b,c="";for(b=
905
0;b<a;++b)c+=" ";return c},c=function(a,f){var d;if(null===a)return f+"None";if(a.prototype&&void 0!==a.prototype._astname&&a.prototype._isenum)return f+a.prototype._astname+"()";if(void 0!==a._astname){var e=b(a._astname.length+1);var g=[];for(d=0;d<a._fields.length;d+=2){var k=a._fields[d];var h=a._fields[d+1](a);var l=b(k.length+1);g.push([k,c(h,f+e+l)])}h=[];for(d=0;d<g.length;++d)l=g[d],h.push(l[0]+"="+l[1].replace(/^\s+/,""));d=h.join(",\n"+f+e);return f+a._astname+"("+d+")"}if(Sk.isArrayLike(a)){e=
906
[];for(d=0;d<a.length;++d)g=a[d],e.push(c(g,f+" "));a=e.join(",\n");return f+"["+a.replace(/^\s+/,"")+"]"}a=!0===a?"True":!1===a?"False":a instanceof Sk.builtin.lng?a.tp$str().v:a instanceof Sk.builtin.str?a.$r().v:""+a;return f+a};return c(a,"")};Sk.exportSymbol("Sk.astFromParse",Sk.astFromParse);Sk.exportSymbol("Sk.astDump",Sk.astDump)},function(m,p){function a(a,b,c){this.__name=a;this.__flags=b;this.__scope=b>>11&7;this.__namespaces=c||[]}function b(a,b,c,d,e){this.symFlags={};this.name=b;this.varnames=
907
[];this.children=[];this.blockType=c;this.returnsValue=this.varkeywords=this.varargs=this.generator=this.childHasFree=this.hasFree=this.isNested=!1;this.lineno=e;this.table=a;a.cur&&(a.cur.nested||"function"===a.cur.blockType)&&(this.isNested=!0);d.scopeId=h++;a.stss[d.scopeId]=this;this.symbols={}}function c(a){this.filename=a;this.top=this.cur=null;this.stack=[];this.curClass=this.global=null;this.tmpname=0;this.stss={}}function d(a,b){var c;for(c=0;c<b.length;c++)a(b[c])}function e(a,b){for(var c in b)a[c]=
908
b[c]}Sk.exportSymbol("Sk.SYMTAB_CONSTS",{DEF_GLOBAL:1,DEF_LOCAL:2,DEF_PARAM:4,USE:8,DEF_STAR:16,DEF_DOUBLESTAR:32,DEF_INTUPLE:64,DEF_FREE:128,DEF_FREE_GLOBAL:256,DEF_FREE_CLASS:512,DEF_IMPORT:1024,DEF_BOUND:1030,SCOPE_OFF:11,SCOPE_MASK:7,LOCAL:1,GLOBAL_EXPLICIT:2,GLOBAL_IMPLICIT:3,FREE:4,CELL:5,OPT_IMPORT_STAR:1,OPT_EXEC:2,OPT_BARE_EXEC:4,OPT_TOPLEVEL:8,GENERATOR:2,GENERATOR_EXPRESSION:2,ModuleBlock:"module",FunctionBlock:"function",ClassBlock:"class"});a.prototype.get_name=function(){return this.__name};
909
a.prototype.is_referenced=function(){return!!(this.__flags&8)};a.prototype.is_parameter=function(){return!!(this.__flags&4)};a.prototype.is_global=function(){return 3===this.__scope||2==this.__scope};a.prototype.is_declared_global=function(){return 2==this.__scope};a.prototype.is_local=function(){return!!(this.__flags&1030)};a.prototype.is_free=function(){return 4==this.__scope};a.prototype.is_imported=function(){return!!(this.__flags&1024)};a.prototype.is_assigned=function(){return!!(this.__flags&
910
2)};a.prototype.is_namespace=function(){return this.__namespaces&&0<this.__namespaces.length};a.prototype.get_namespaces=function(){return this.__namespaces};var h=0;b.prototype.get_type=function(){return this.blockType};b.prototype.get_name=function(){return this.name};b.prototype.get_lineno=function(){return this.lineno};b.prototype.is_nested=function(){return this.isNested};b.prototype.has_children=function(){return 0<this.children.length};b.prototype.get_identifiers=function(){return this._identsMatching(function(){return!0})};
911
b.prototype.lookup=function(b){if(this.symbols.hasOwnProperty(b))b=this.symbols[b];else{var c=this.symFlags[b];var d=this.__check_children(b);b=this.symbols[b]=new a(b,c,d)}return b};b.prototype.__check_children=function(a){var b,c=[];for(b=0;b<this.children.length;++b){var d=this.children[b];d.name===a&&c.push(d)}return c};b.prototype._identsMatching=function(a){var b,c=[];for(b in this.symFlags)this.symFlags.hasOwnProperty(b)&&a(this.symFlags[b])&&c.push(b);c.sort();return c};b.prototype.get_parameters=
912
function(){Sk.asserts.assert("function"==this.get_type(),"get_parameters only valid for function scopes");this._funcParams||(this._funcParams=this._identsMatching(function(a){return a&4}));return this._funcParams};b.prototype.get_locals=function(){Sk.asserts.assert("function"==this.get_type(),"get_locals only valid for function scopes");this._funcLocals||(this._funcLocals=this._identsMatching(function(a){return a&1030}));return this._funcLocals};b.prototype.get_globals=function(){Sk.asserts.assert("function"==
913
this.get_type(),"get_globals only valid for function scopes");this._funcGlobals||(this._funcGlobals=this._identsMatching(function(a){a=a>>11&7;return 3==a||2==a}));return this._funcGlobals};b.prototype.get_frees=function(){Sk.asserts.assert("function"==this.get_type(),"get_frees only valid for function scopes");this._funcFrees||(this._funcFrees=this._identsMatching(function(a){return 4==(a>>11&7)}));return this._funcFrees};b.prototype.get_methods=function(){var a;Sk.asserts.assert("class"==this.get_type(),
914
"get_methods only valid for class scopes");if(!this._classMethods){var b=[];for(a=0;a<this.children.length;++a)b.push(this.children[a].name);b.sort();this._classMethods=b}return this._classMethods};b.prototype.getScope=function(a){a=this.symFlags[a];return void 0===a?0:a>>11&7};c.prototype.getStsForAst=function(a){Sk.asserts.assert(void 0!==a.scopeId,"ast wasn't added to st?");a=this.stss[a.scopeId];Sk.asserts.assert(void 0!==a,"unknown sym tab entry");return a};c.prototype.SEQStmt=function(a){var b,
915
c;if(null!==a){Sk.asserts.assert(Sk.isArrayLike(a),"SEQ: nodes isn't array? got "+a.toString());var d=a.length;for(c=0;c<d;++c)(b=a[c])&&this.visitStmt(b)}};c.prototype.SEQExpr=function(a){var b,c;if(null!==a){Sk.asserts.assert(Sk.isArrayLike(a),"SEQ: nodes isn't array? got "+a.toString());var d=a.length;for(c=0;c<d;++c)(b=a[c])&&this.visitExpr(b)}};c.prototype.enterBlock=function(a,c,d,e){a=Sk.fixReserved(a);var f=null;this.cur&&(f=this.cur,this.stack.push(this.cur));this.cur=new b(this,a,c,d,e);
916
"top"===a&&(this.global=this.cur.symFlags);f&&f.children.push(this.cur)};c.prototype.exitBlock=function(){this.cur=null;0<this.stack.length&&(this.cur=this.stack.pop())};c.prototype.visitParams=function(a,b){var c;for(c=0;c<a.length;++c)if(b=a[c],b.constructor===Sk.astnodes.arg)this.addDef(b.arg,4,b.lineno);else throw new Sk.builtin.SyntaxError("invalid expression in parameter list",this.filename);};c.prototype.visitArguments=function(a,b){a.args&&this.visitParams(a.args,!0);a.kwonlyargs&&this.visitParams(a.kwonlyargs,
917
!0);a.vararg&&(this.addDef(a.vararg.arg,4,b),this.cur.varargs=!0);a.kwarg&&(this.addDef(a.kwarg.arg,4,b),this.cur.varkeywords=!0)};c.prototype.newTmpname=function(a){this.addDef(new Sk.builtin.str("_["+ ++this.tmpname+"]"),2,a)};c.prototype.addDef=function(a,b,c){var d=Sk.mangleName(this.curClass,a).v;d=Sk.fixReserved(d);var f=this.cur.symFlags[d];if(void 0!==f){if(b&4&&f&4)throw new Sk.builtin.SyntaxError("duplicate argument '"+a.v+"' in function definition",this.filename,c);f|=b}else f=b;this.cur.symFlags[d]=
918
f;b&4?this.cur.varnames.push(d):b&1&&(f=b,a=this.global[d],void 0!==a&&(f|=a),this.global[d]=f)};c.prototype.visitSlice=function(a){var b;switch(a.constructor){case Sk.astnodes.Slice:a.lower&&this.visitExpr(a.lower);a.upper&&this.visitExpr(a.upper);a.step&&this.visitExpr(a.step);break;case Sk.astnodes.ExtSlice:for(b=0;b<a.dims.length;++b)this.visitSlice(a.dims[b]);break;case Sk.astnodes.Index:this.visitExpr(a.value)}};c.prototype.visitStmt=function(a){var b;Sk.asserts.assert(void 0!==a,"visitStmt called with undefined");
919
switch(a.constructor){case Sk.astnodes.FunctionDef:this.addDef(a.name,2,a.lineno);a.args.defaults&&this.SEQExpr(a.args.defaults);a.decorator_list&&this.SEQExpr(a.decorator_list);this.enterBlock(a.name.v,"function",a,a.lineno);this.visitArguments(a.args,a.lineno);this.SEQStmt(a.body);this.exitBlock();break;case Sk.astnodes.ClassDef:this.addDef(a.name,2,a.lineno);this.SEQExpr(a.bases);a.decorator_list&&this.SEQExpr(a.decorator_list);this.enterBlock(a.name.v,"class",a,a.lineno);this.curClass=a.name;
920
this.SEQStmt(a.body);this.exitBlock();break;case Sk.astnodes.Return:if(a.value&&(this.visitExpr(a.value),this.cur.returnsValue=!0,this.cur.generator))throw new Sk.builtin.SyntaxError("'return' with argument inside generator",this.filename);break;case Sk.astnodes.Delete:this.SEQExpr(a.targets);break;case Sk.astnodes.Assign:this.SEQExpr(a.targets);this.visitExpr(a.value);break;case Sk.astnodes.AnnAssign:if(a.target.constructor==Sk.astnodes.Name){var c=a.target;var e=Sk.mangleName(this.curClass,c.id).v;
921
e=Sk.fixReserved(e);c=this.cur.symFlags[e];if(c&2049&&this.global!=this.cur.symFlags&&a.simple)throw new Sk.builtin.SyntaxError("annotated name '"+e+"' can't be global",this.filename,a.lineno);a.simple?this.addDef(new Sk.builtin.str(e),4098,a.lineno):a.value&&this.addDef(new Sk.builtin.str(e),2,a.lineno)}else this.visitExpr(a.target);this.visitExpr(a.annotation);a.value&&this.visitExpr(a.value);break;case Sk.astnodes.AugAssign:this.visitExpr(a.target);this.visitExpr(a.value);break;case Sk.astnodes.Print:a.dest&&
922
this.visitExpr(a.dest);this.SEQExpr(a.values);break;case Sk.astnodes.For:this.visitExpr(a.target);this.visitExpr(a.iter);this.SEQStmt(a.body);a.orelse&&this.SEQStmt(a.orelse);break;case Sk.astnodes.While:this.visitExpr(a.test);this.SEQStmt(a.body);a.orelse&&this.SEQStmt(a.orelse);break;case Sk.astnodes.If:this.visitExpr(a.test);this.SEQStmt(a.body);a.orelse&&this.SEQStmt(a.orelse);break;case Sk.astnodes.Raise:a.exc&&(this.visitExpr(a.exc),a.inst&&(this.visitExpr(a.inst),a.tback&&this.visitExpr(a.tback)),
923
a.cause&&this.visitExpr(a.cause));break;case Sk.astnodes.Assert:this.visitExpr(a.test);a.msg&&this.visitExpr(a.msg);break;case Sk.astnodes.Import:case Sk.astnodes.ImportFrom:this.visitAlias(a.names,a.lineno);break;case Sk.astnodes.Global:var g=a.names.length;for(b=0;b<g;++b){e=Sk.mangleName(this.curClass,a.names[b]).v;e=Sk.fixReserved(e);c=this.cur.symFlags[e];if(c&10){if(c&2)throw new Sk.builtin.SyntaxError("name '"+e+"' is assigned to before global declaration",this.filename,a.lineno);throw new Sk.builtin.SyntaxError("name '"+
924
e+"' is used prior to global declaration",this.filename,a.lineno);}this.addDef(new Sk.builtin.str(e),1,a.lineno)}break;case Sk.astnodes.Expr:this.visitExpr(a.value);break;case Sk.astnodes.Pass:case Sk.astnodes.Break:case Sk.astnodes.Continue:case Sk.astnodes.Debugger:break;case Sk.astnodes.With:d(this.visit_withitem.bind(this),a.items);d(this.visitStmt.bind(this),a.body);break;case Sk.astnodes.Try:this.SEQStmt(a.body);this.visitExcepthandlers(a.handlers);this.SEQStmt(a.orelse);this.SEQStmt(a.finalbody);
925
break;default:Sk.asserts.fail("Unhandled type "+a.constructor.name+" in visitStmt")}};c.prototype.visit_withitem=function(a){this.visitExpr(a.context_expr);a.optional_vars&&this.visitExpr(a.optional_vars)};c.prototype.visitExpr=function(a){Sk.asserts.assert(void 0!==a,"visitExpr called with undefined");switch(a.constructor){case Sk.astnodes.BoolOp:this.SEQExpr(a.values);break;case Sk.astnodes.BinOp:this.visitExpr(a.left);this.visitExpr(a.right);break;case Sk.astnodes.UnaryOp:this.visitExpr(a.operand);
926
break;case Sk.astnodes.Lambda:this.addDef(new Sk.builtin.str("lambda"),2,a.lineno);a.args.defaults&&this.SEQExpr(a.args.defaults);this.enterBlock("lambda","function",a,a.lineno);this.visitArguments(a.args,a.lineno);this.visitExpr(a.body);this.exitBlock();break;case Sk.astnodes.IfExp:this.visitExpr(a.test);this.visitExpr(a.body);this.visitExpr(a.orelse);break;case Sk.astnodes.Dict:this.SEQExpr(a.keys);this.SEQExpr(a.values);break;case Sk.astnodes.DictComp:case Sk.astnodes.SetComp:this.visitComprehension(a.generators,
927
0);break;case Sk.astnodes.ListComp:this.newTmpname(a.lineno);this.visitExpr(a.elt);this.visitComprehension(a.generators,0);break;case Sk.astnodes.GeneratorExp:this.visitGenexp(a);break;case Sk.astnodes.Yield:a.value&&this.visitExpr(a.value);this.cur.generator=!0;if(this.cur.returnsValue)throw new Sk.builtin.SyntaxError("'return' with argument inside generator",this.filename);break;case Sk.astnodes.Compare:this.visitExpr(a.left);this.SEQExpr(a.comparators);break;case Sk.astnodes.Call:this.visitExpr(a.func);
928
if(a.args)for(let b of a.args)b.constructor===Sk.astnodes.Starred?this.visitExpr(b.value):this.visitExpr(b);if(a.keywords)for(let b of a.keywords)this.visitExpr(b.value);break;case Sk.astnodes.Num:case Sk.astnodes.Str:case Sk.astnodes.Bytes:break;case Sk.astnodes.JoinedStr:for(let b of a.values)this.visitExpr(b);break;case Sk.astnodes.FormattedValue:this.visitExpr(a.value);a.format_spec&&this.visitExpr(a.format_spec);break;case Sk.astnodes.Attribute:this.visitExpr(a.value);break;case Sk.astnodes.Subscript:this.visitExpr(a.value);
929
this.visitSlice(a.slice);break;case Sk.astnodes.Name:this.addDef(a.id,a.ctx===Sk.astnodes.Load?8:2,a.lineno);break;case Sk.astnodes.NameConstant:break;case Sk.astnodes.List:case Sk.astnodes.Tuple:case Sk.astnodes.Set:this.SEQExpr(a.elts);break;case Sk.astnodes.Starred:this.visitExpr(a.value);break;default:Sk.asserts.fail("Unhandled type "+a.constructor.name+" in visitExpr")}};c.prototype.visitComprehension=function(a,b){var c,d=a.length;for(c=b;c<d;++c)b=a[c],this.visitExpr(b.target),this.visitExpr(b.iter),
930
this.SEQExpr(b.ifs)};c.prototype.visitAlias=function(a,b){var c,d;for(d=0;d<a.length;++d){var f=a[d];var e=c=null===f.asname?f.name.v:f.asname.v;f=c.indexOf(".");-1!==f&&(e=c.substr(0,f));if("*"!==c)this.addDef(new Sk.builtin.str(e),1024,b);else if("module"!==this.cur.blockType)throw new Sk.builtin.SyntaxError("import * only allowed at module level",this.filename);}};c.prototype.visitGenexp=function(a){var b=a.generators[0];this.visitExpr(b.iter);this.enterBlock("genexpr","function",a,a.lineno);this.cur.generator=
931
!0;this.addDef(new Sk.builtin.str(".0"),4,a.lineno);this.visitExpr(b.target);this.SEQExpr(b.ifs);this.visitComprehension(a.generators,1);this.visitExpr(a.elt);this.exitBlock()};c.prototype.visitExcepthandlers=function(a){var b,c;for(b=0;c=a[b];++b)c.type&&this.visitExpr(c.type),c.name&&this.visitExpr(c.name),this.SEQStmt(c.body)};c.prototype.analyzeBlock=function(a,b,c,d){var f={};var g={},k={},h={},n={};"class"==a.blockType&&(e(k,d),b&&e(h,b));for(p in a.symFlags){var m=a.symFlags[p];this.analyzeName(a,
932
g,p,m,b,f,c,d)}"class"!==a.blockType&&("function"===a.blockType&&e(h,f),b&&e(h,b),e(k,d));f={};var p=a.children.length;for(m=0;m<p;++m)if(d=a.children[m],this.analyzeChildBlock(d,h,n,k,f),d.hasFree||d.childHasFree)a.childHasFree=!0;e(n,f);"function"===a.blockType&&this.analyzeCells(g,n);b=this.updateSymbols(a.symFlags,g,b,n,"class"===a.blockType);a.hasFree=a.hasFree||b;e(c,n)};c.prototype.analyzeChildBlock=function(a,b,c,d,h){var f={};e(f,b);b={};e(b,c);c={};e(c,d);this.analyzeBlock(a,f,b,c);e(h,
933
b)};c.prototype.analyzeCells=function(a,b){var c;for(c in a){var d=a[c];1===d&&void 0!==b[c]&&(a[c]=5,delete b[c])}};c.prototype.updateSymbols=function(a,b,c,d,e){var f,g=!1;for(f in a){var k=a[f];var h=b[f];k|=h<<11;a[f]=k}for(f in d)b=a[f],void 0!==b?e&&b&1031&&(b|=512,a[f]=b):void 0!==c[f]&&(a[f]=8192,g=!0);return g};c.prototype.analyzeName=function(a,b,c,d,e,h,m,p){if(d&1){if(d&4)throw new Sk.builtin.SyntaxError("name '"+c+"' is local and global",this.filename,a.lineno);b[c]=2;p[c]=null;e&&void 0!==
934
e[c]&&delete e[c]}else d&1030?(b[c]=1,h[c]=null,delete p[c]):e&&void 0!==e[c]?(b[c]=4,a.hasFree=!0,m[c]=null):(p&&void 0!==p[c]||!a.isNested||(a.hasFree=!0),b[c]=3)};c.prototype.analyze=function(){this.analyzeBlock(this.top,null,{},{})};Sk.symboltable=function(a,b){var d=new c(b);d.enterBlock("top","module",a,0);d.top=d.cur;for(b=0;b<a.body.length;++b)d.visitStmt(a.body[b]);d.exitBlock();d.analyze();return d};Sk.dumpSymtab=function(a){var b=function(a){return a?"True":"False"},c=function(a){var b,
935
c=[];for(b=0;b<a.length;++b)c.push((new Sk.builtin.str(a[b])).$r().v);return"["+c.join(", ")+"]"},d=function(a,f){var e,g;void 0===f&&(f="");var k=f+"Sym_type: "+a.get_type()+"\n";k+=f+"Sym_name: "+a.get_name()+"\n";k+=f+"Sym_lineno: "+a.get_lineno()+"\n";k+=f+"Sym_nested: "+b(a.is_nested())+"\n";k+=f+"Sym_haschildren: "+b(a.has_children())+"\n";"class"===a.get_type()?k+=f+"Class_methods: "+c(a.get_methods())+"\n":"function"===a.get_type()&&(k+=f+"Func_params: "+c(a.get_parameters())+"\n",k+=f+"Func_locals: "+
936
c(a.get_locals())+"\n",k+=f+"Func_globals: "+c(a.get_globals())+"\n",k+=f+"Func_frees: "+c(a.get_frees())+"\n");k+=f+"-- Identifiers --\n";var h=a.get_identifiers();var l=h.length;for(g=0;g<l;++g){var n=a.lookup(h[g]);k+=f+"name: "+n.get_name()+"\n";k+=f+"  is_referenced: "+b(n.is_referenced())+"\n";k+=f+"  is_imported: "+b(n.is_imported())+"\n";k+=f+"  is_parameter: "+b(n.is_parameter())+"\n";k+=f+"  is_global: "+b(n.is_global())+"\n";k+=f+"  is_declared_global: "+b(n.is_declared_global())+"\n";
937
k+=f+"  is_local: "+b(n.is_local())+"\n";k+=f+"  is_free: "+b(n.is_free())+"\n";k+=f+"  is_assigned: "+b(n.is_assigned())+"\n";k+=f+"  is_namespace: "+b(n.is_namespace())+"\n";var m=n.get_namespaces();var q=m.length;k+=f+"  namespaces: [\n";var p=[];for(e=0;e<q;++e)n=m[e],p.push(d(n,f+"    "));k+=p.join("\n");k+=f+"  ]\n"}return k};return d(a.top,"")};Sk.exportSymbol("Sk.symboltable",Sk.symboltable);Sk.exportSymbol("Sk.dumpSymtab",Sk.dumpSymtab)},function(m,p){function a(a,b,c,d,e){this.filename=
938
a;this.st=b;this.flags=c;this.canSuspend=d;this.interactive=!1;this.nestlevel=0;this.u=null;this.stack=[];this.result=[];this.allUnits=[];this.source=e?e.split("\n"):!1}function b(){this.name=this.ste=null;this.doesSuspend=this.canSuspend=!1;this.private_=null;this.lineno=this.firstlineno=0;this.linenoSet=!1;this.localnames=[];this.localtemps=[];this.tempsToSave=[];this.blocknum=0;this.blocks=[];this.curblock=0;this.consts={};this.scopename=null;this.suffixCode=this.switchCode=this.varDeclsCode=this.prefixCode=
939
"";this.breakBlocks=[];this.continueBlocks=[];this.exceptBlocks=[];this.finallyBlocks=[]}function c(a){return void 0===g[a]?a:a+"_$rw$"}function d(a,b){var c=b.v;if(null===a||null===c||"_"!==c.charAt(0)||"_"!==c.charAt(1)||"_"===c.charAt(c.length-1)&&"_"===c.charAt(c.length-2))return b;var d=a.v;d.replace(/_/g,"");if(""===d)return b;d=a.v;d.replace(/^_*/,"");return d=new Sk.builtin.str("_"+d+c)}function e(a){let b='"';for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);b=10==d?b+"\\n":92==d?b+"\\\\":
940
34==d||32>d||127<=d&&256>d?b+("\\x"+("0"+d.toString(16)).substr(-2)):256<=d?b+("\\u"+("000"+d.toString(16)).substr(-4)):b+a.charAt(c)}return b+'"'}var h;Sk.gensymcount=0;b.prototype.activateScope=function(){var a=this;h=function(){var b,c=a.blocks[a.curblock];if(null===c._next)for(b=0;b<arguments.length;++b)c.push(arguments[b])}};a.prototype.getSourceLine=function(a){Sk.asserts.assert(this.source);return this.source[a-1]};a.prototype.annotateSource=function(a){var b;if(this.source){var c=a.lineno;
941
var d=a.col_offset;h("\n//\n// line ",c,":\n// ",this.getSourceLine(c),"\n// ");for(b=0;b<d;++b)h(" ");h("^\n//\n");Sk.asserts.assert(void 0!==a.lineno&&void 0!==a.col_offset);h("$currLineNo = ",c,";\n$currColNo = ",d,";\n\n")}};a.prototype.gensym=function(a){return a="$"+(a||"")+Sk.gensymcount++};a.prototype.niceName=function(a){return this.gensym(a.replace("<","").replace(">","").replace(" ","_"))};var g=Sk.builtin.str.reservedWords_;a.prototype.makeConstant=function(a){var b,c="";for(b=0;b<arguments.length;++b)c+=
942
arguments[b];for(d in this.u.consts)if(this.u.consts.hasOwnProperty(d)&&(b=this.u.consts[d],b==c))return d;var d=this.u.scopename+"."+this.gensym("const");this.u.consts[d]=c;return d};a.prototype._gr=function(a,b){var c,d=this.gensym(a);this.u.localtemps.push(d);h("var ",d,"=");for(c=1;c<arguments.length;++c)h(arguments[c]);h(";");return d};a.prototype.outputInterruptTest=function(){var a="";if(null!==Sk.execLimit||null!==Sk.yieldLimit&&this.u.canSuspend)a+="var $dateNow = Date.now();",null!==Sk.execLimit&&
943
(a+="if ($dateNow - Sk.execStart > Sk.execLimit) {throw new Sk.builtin.TimeLimitError(Sk.timeoutMsg())}"),null!==Sk.yieldLimit&&this.u.canSuspend&&(a=a+"if ($dateNow - Sk.lastYield > Sk.yieldLimit) {"+("var $susp = $saveSuspension({data: {type: 'Sk.yield'}, resume: function() {}}, '"+this.filename+"',$currLineNo,$currColNo);"),a+="$susp.$blk = $blk;$susp.optional = true;return $susp;}",this.u.doesSuspend=!0);return a};a.prototype._jumpfalse=function(a,b){a=this._gr("jfalse","(",a,"===false||!Sk.misceval.isTrue(",
944
a,"))");h("if(",a,"){/*test failed */$blk=",b,";continue;}")};a.prototype._jumpundef=function(a,b){h("if(",a,"===undefined){$blk=",b,";continue;}")};a.prototype._jumpnotundef=function(a,b){h("if(",a,"!==undefined){$blk=",b,";continue;}")};a.prototype._jumptrue=function(a,b){a=this._gr("jtrue","(",a,"===true||Sk.misceval.isTrue(",a,"))");h("if(",a,"){/*test passed */$blk=",b,";continue;}")};a.prototype._jump=function(a){null===this.u.blocks[this.u.curblock]._next&&(h("$blk=",a,";"),this.u.blocks[this.u.curblock]._next=
945
a)};a.prototype._checkSuspension=function(a){if(this.u.canSuspend){var b=this.newBlock("function return or resume suspension");this._jump(b);this.setBlock(b);a=a||{lineno:"$currLineNo",col_offset:"$currColNo"};h("if ($ret && $ret.$isSuspension) { return $saveSuspension($ret,'"+this.filename+"',"+a.lineno+","+a.col_offset+"); }");this.u.doesSuspend=!0;this.u.tempsToSave=this.u.tempsToSave.concat(this.u.localtemps)}else h("if ($ret && $ret.$isSuspension) { $ret = Sk.misceval.retryOptionalSuspensionOrThrow($ret); }")};
946
a.prototype.cunpackstarstoarray=function(a,b){if(!a||0==a.length)return"[]";let c=!1;for(let d of a){if(b&&c)throw new Sk.builtin.SyntaxError("Extended argument unpacking is not permitted in Python 2");d.constructor===Sk.astnodes.Starred&&(c=!0)}if(c){b=this._gr("unpack","[]");for(let c of a)c.constructor!==Sk.astnodes.Starred?h(b,".push(",this.vexpr(c),");"):(h("$ret = Sk.misceval.iterFor(Sk.abstr.iter(",this.vexpr(c.value),"), function(e) { ",b,".push(e); });"),this._checkSuspension());return b}return"["+
947
a.map(a=>this.vexpr(a)).join(",")+"]"};a.prototype.ctuplelistorset=function(a,b,c){var d;Sk.asserts.assert("tuple"===c||"list"===c||"set"===c);var f=!1;for(d=0;d<a.elts.length;d++)if(a.elts[d].constructor===Sk.astnodes.Starred){f=!0;var e=d;break}if(a.ctx===Sk.astnodes.Store){if(f){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("assignment unpacking with stars is not supported in Python 2",this.filename,a.lineno);for(d=e+1;d<a.elts.length;d++)if(a.elts[d].constructor===Sk.astnodes.Starred)throw new Sk.builtin.SyntaxError("multiple starred expressions in assignment",
948
this.filename,a.lineno);}c=f?e:a.elts.length;h("$ret = Sk.abstr.sequenceUnpack("+b+","+c+","+(f?a.elts.length-1:c)+", "+f+");");this._checkSuspension();b=this._gr("items","$ret");for(d=0;d<a.elts.length;++d)d===e?this.vexpr(a.elts[d].value,b+"["+d+"]"):this.vexpr(a.elts[d],b+"["+d+"]")}else if(a.ctx===Sk.astnodes.Load||"set"===c){if(f){if(!Sk.__future__.python3)throw new Sk.builtin.SyntaxError("List packing with stars is not supported in Python 2");return this._gr("load"+c,"new Sk.builtins['",c,"'](",
949
this.cunpackstarstoarray(a.elts),")")}if("tuple"===c){f=!0;b=[];for(d=0;d<a.elts.length;++d)e=this.vexpr(a.elts[d]),f&&-1==e.indexOf("$const")&&(f=!1),b.push(e);if(f)return this.makeConstant("new Sk.builtin.tuple(["+b+"])");for(d=0;d<b.length;++d)b[d]=this._gr("elem",b[d]);return this._gr("load"+c,"new Sk.builtins['",c,"']([",b,"])")}b=[];for(d=0;d<a.elts.length;++d)b.push(this._gr("elem",this.vexpr(a.elts[d])));return this._gr("load"+c,"new Sk.builtins['",c,"']([",b,"])")}};a.prototype.cdict=function(a){var b;
950
var c=[];if(null!==a.keys)for(Sk.asserts.assert(a.values.length===a.keys.length),b=0;b<a.values.length;++b){var d=this.vexpr(a.values[b]);c.push(this.vexpr(a.keys[b]));c.push(d)}return this._gr("loaddict","new Sk.builtins['dict']([",c,"])")};a.prototype.clistcomp=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.ListComp);var b=this._gr("_compr","new Sk.builtins['list']([])");return this.ccompgen("list",b,a.generators,0,a.elt,null,a)};a.prototype.cdictcomp=function(a){Sk.asserts.assert(a instanceof
951
Sk.astnodes.DictComp);var b=this._gr("_dcompr","new Sk.builtins.dict([])");return this.ccompgen("dict",b,a.generators,0,a.value,a.key,a)};a.prototype.csetcomp=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.SetComp);var b=this._gr("_setcompr","new Sk.builtins.set([])");return this.ccompgen("set",b,a.generators,0,a.elt,null,a)};a.prototype.ccompgen=function(a,b,c,d,e,g,m){var f=this.newBlock(a+" comp start"),k=this.newBlock(a+" comp skip"),l=this.newBlock(a+" comp anchor"),n=c[d],q=this.vexpr(n.iter);
952
q=this._gr("iter","Sk.abstr.iter(",q,")");var p;this._jump(f);this.setBlock(f);h("$ret = Sk.abstr.iternext(",q,", true);");this._checkSuspension(m);q=this._gr("next","$ret");this._jumpundef(q,l);this.vexpr(n.target,q);var u=n.ifs?n.ifs.length:0;for(p=0;p<u;++p)q=this.vexpr(n.ifs[p]),this._jumpfalse(q,f);++d<c.length&&this.ccompgen(a,b,c,d,e,g,m);d>=c.length&&(c=this.vexpr(e),"dict"===a?(a=this.vexpr(g),h(b,".mp$ass_subscript(",a,",",c,");")):"list"===a?h(b,".v.push(",c,");"):"set"===a&&h(b,".v.mp$ass_subscript(",
953
c,", true);"),this._jump(k),this.setBlock(k));this._jump(f);this.setBlock(l);return b};a.prototype.cyield=function(a){if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'yield' outside function",this.filename,a.lineno);var b="Sk.builtin.none.none$";a.value&&(b=this.vexpr(a.value));a=this.newBlock("after yield");h("return [/*resume*/",a,",/*ret*/",b,"];");this.setBlock(a);return"$gen.gi$sentvalue"};a.prototype.ccompare=function(a){var b;Sk.asserts.assert(a.ops.length===
954
a.comparators.length);var c=this.vexpr(a.left);var d=a.ops.length;var f=this.newBlock("done");var e=this._gr("compareres","null");for(b=0;b<d;++b){var g=this.vexpr(a.comparators[b]);h("$ret = Sk.builtin.bool(Sk.misceval.richCompareBool(",c,",",g,",'",a.ops[b].prototype._astname,"', true));");this._checkSuspension(a);h(e,"=$ret;");this._jumpfalse("$ret",f);c=g}this._jump(f);this.setBlock(f);return e};a.prototype.ccall=function(a){var b=this.vexpr(a.func);let c=this.cunpackstarstoarray(a.args,!Sk.__future__.python3);
955
var d="undefined";if(a.keywords&&0<a.keywords.length){let c=!1;d=[];for(let b of a.keywords){if(c&&!Sk.__future__.python3)throw new SyntaxError("Advanced unpacking of function arguments is not supported in Python 2");b.arg?(d.push("'"+b.arg.v+"'"),d.push(this.vexpr(b.value))):c=!0}d="["+d.join(",")+"]";if(c){d=this._gr("keywordArgs",d);for(let c of a.keywords)c.arg||(h("$ret = Sk.abstr.mappingUnpackIntoKeywordArray(",d,",",this.vexpr(c.value),",",b,");"),this._checkSuspension())}}Sk.__future__.super_args&&
956
a.func.id&&"super"===a.func.id.v&&"[]"===c&&(h('if (typeof self === "undefined" || self.toString().indexOf("Window") > 0) { throw new Sk.builtin.RuntimeError("super(): no arguments") };'),c="[$gbl.__class__,self]");h("$ret = (",b,".tp$call)?",b,".tp$call(",c,",",d,") : Sk.misceval.applyOrSuspend(",b,",undefined,undefined,",d,",",c,");");this._checkSuspension(a);return this._gr("call","$ret")};a.prototype.cslice=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.Slice);if(Sk.__future__.python3){var b=
957
a.lower?this.vexpr(a.lower):"Sk.builtin.none.none$";var c=a.upper?this.vexpr(a.upper):"Sk.builtin.none.none$"}else b=a.lower?this.vexpr(a.lower):a.step?"Sk.builtin.none.none$":"new Sk.builtin.int_(0)",c=a.upper?this.vexpr(a.upper):a.step?"Sk.builtin.none.none$":"new Sk.builtin.int_(2147483647)";a=a.step?this.vexpr(a.step):"Sk.builtin.none.none$";return this._gr("slice","new Sk.builtins['slice'](",b,",",c,",",a,")")};a.prototype.eslice=function(a){var b;Sk.asserts.assert(a instanceof Array);var c=
958
[];for(b=0;b<a.length;b++)c.push(this.vslicesub(a[b]));return this._gr("extslice","new Sk.builtins['tuple']([",c,"])")};a.prototype.vslicesub=function(a){switch(a.constructor){case Sk.astnodes.Index:var b=this.vexpr(a.value);break;case Sk.astnodes.Slice:b=this.cslice(a);break;case Sk.astnodes.Ellipsis:Sk.asserts.fail("todo compile.js Ellipsis;");break;case Sk.astnodes.ExtSlice:b=this.eslice(a.dims);break;default:Sk.asserts.fail("invalid subscript kind")}return b};a.prototype.vslice=function(a,b,c,
959
d){a=this.vslicesub(a);return this.chandlesubscr(b,c,a,d)};a.prototype.chandlesubscr=function(a,b,c,d){if(a===Sk.astnodes.Load||a===Sk.astnodes.AugLoad)return h("$ret = Sk.abstr.objectGetItem(",b,",",c,", true);"),this._checkSuspension(),this._gr("lsubscr","$ret");a===Sk.astnodes.Store||a===Sk.astnodes.AugStore?(h("$ret = Sk.abstr.objectSetItem(",b,",",c,",",d,", true);"),this._checkSuspension()):a===Sk.astnodes.Del?h("Sk.abstr.objectDelItem(",b,",",c,");"):Sk.asserts.fail("handlesubscr fail")};a.prototype.cboolop=
960
function(a){var b,c;Sk.asserts.assert(a instanceof Sk.astnodes.BoolOp);var d=a.op===Sk.astnodes.And?this._jumpfalse:this._jumptrue;var f=this.newBlock("end of boolop");var e=a.values;var g=e.length;for(b=0;b<g;++b)a=this.vexpr(e[b]),0===b&&(c=this._gr("boolopsucc",a)),h(c,"=",a,";"),d.call(this,a,f);this._jump(f);this.setBlock(f);return c};a.prototype.cjoinedstr=function(a){let b;Sk.asserts.assert(a instanceof Sk.astnodes.JoinedStr);for(let c of a.values)a=this.vexpr(c),b?h(b,"=",b,".sq$concat(",
961
a,");"):b=this._gr("joinedstr",a);b||(b="Sk.builtin.str.$emptystr");return b};a.prototype.cformattedvalue=function(a){let b=this.vexpr(a.value);switch(a.conversion){case "s":b=this._gr("value","new Sk.builtin.str(",b,")");break;case "a":b=this._gr("value","Sk.builtin.ascii(",b,")");break;case "r":b=this._gr("value","Sk.builtin.repr(",b,")")}a=a.format_spec?this.vexpr(a.format_spec):"Sk.builtin.str.$emptystr";return this._gr("formatted","Sk.abstr.objectFormat("+b+","+a+")")};a.prototype.vexpr=function(a,
962
b,c,g){var f;a.lineno>this.u.lineno&&(this.u.lineno=a.lineno,this.u.linenoSet=!1);switch(a.constructor){case Sk.astnodes.BoolOp:return this.cboolop(a);case Sk.astnodes.BinOp:return this._gr("binop","Sk.abstr.numberBinOp(",this.vexpr(a.left),",",this.vexpr(a.right),",'",a.op.prototype._astname,"')");case Sk.astnodes.UnaryOp:return this._gr("unaryop","Sk.abstr.numberUnaryOp(",this.vexpr(a.operand),",'",a.op.prototype._astname,"')");case Sk.astnodes.Lambda:return this.clambda(a);case Sk.astnodes.IfExp:return this.cifexp(a);
963
case Sk.astnodes.Dict:return this.cdict(a);case Sk.astnodes.ListComp:return this.clistcomp(a);case Sk.astnodes.DictComp:return this.cdictcomp(a);case Sk.astnodes.SetComp:return this.csetcomp(a);case Sk.astnodes.GeneratorExp:return this.cgenexp(a);case Sk.astnodes.Yield:return this.cyield(a);case Sk.astnodes.Compare:return this.ccompare(a);case Sk.astnodes.Call:return b=this.ccall(a),this.annotateSource(a),b;case Sk.astnodes.Num:if("number"===typeof a.n)return a.n;if(a.n instanceof Sk.builtin.int_)return this.makeConstant("new Sk.builtin.int_("+
964
a.n.v+")");if(a.n instanceof Sk.builtin.float_)return a=0===a.n.v&&-Infinity===1/a.n.v?"-0":a.n.v,this.makeConstant("new Sk.builtin.float_("+a+")");if(a.n instanceof Sk.builtin.lng)return this.makeConstant("Sk.longFromStr('"+a.n.tp$str().v+"')");if(a.n instanceof Sk.builtin.complex)return this.makeConstant("new Sk.builtin.complex("+(0===a.n.real&&-Infinity===1/a.n.real?"-0":a.n.real)+", "+(0===a.n.imag&&-Infinity===1/a.n.imag?"-0":a.n.imag)+")");Sk.asserts.fail("unhandled Num type");case Sk.astnodes.Bytes:if(Sk.__future__.python3){b=
965
[];a=a.s.$jsstr();for(c=0;c<a.length;c++)b.push(a.charCodeAt(c));return this.makeConstant("new Sk.builtin.bytes([",b.join(", "),"])")}case Sk.astnodes.Str:return this.makeConstant("new Sk.builtin.str(",e(a.s.$jsstr()),")");case Sk.astnodes.Attribute:a.ctx!==Sk.astnodes.AugLoad&&a.ctx!==Sk.astnodes.AugStore&&(f=this.vexpr(a.value));g=a.attr.$r().v;g=g.substring(1,g.length-1);g=d(this.u.private_,new Sk.builtin.str(g)).v;g=this.makeConstant("new Sk.builtin.str('"+g+"')");switch(a.ctx){case Sk.astnodes.AugLoad:return h("$ret = Sk.abstr.gattr(",
966
c,",",g,", true);"),this._checkSuspension(a),this._gr("lattr","$ret");case Sk.astnodes.Load:return h("$ret = Sk.abstr.gattr(",f,",",g,", true);"),this._checkSuspension(a),this._gr("lattr","$ret");case Sk.astnodes.AugStore:h("$ret = undefined;");h("if(",b,"!==undefined){");h("$ret = Sk.abstr.sattr(",c,",",g,",",b,", true);");h("}");this._checkSuspension(a);break;case Sk.astnodes.Store:h("$ret = Sk.abstr.sattr(",f,",",g,",",b,", true);");this._checkSuspension(a);break;case Sk.astnodes.Del:Sk.asserts.fail("todo Del;");
967
break;default:Sk.asserts.fail("invalid attribute expression")}break;case Sk.astnodes.Subscript:switch(a.ctx){case Sk.astnodes.AugLoad:return h("$ret = Sk.abstr.objectGetItem(",c,",",g,", true);"),this._checkSuspension(a),this._gr("gitem","$ret");case Sk.astnodes.Load:case Sk.astnodes.Store:case Sk.astnodes.Del:return this.vslice(a.slice,a.ctx,this.vexpr(a.value),b);case Sk.astnodes.AugStore:h("$ret=undefined;");h("if(",b,"!==undefined){");h("$ret=Sk.abstr.objectSetItem(",c,",",g,",",b,", true)");
968
h("}");this._checkSuspension(a);break;default:Sk.asserts.fail("invalid subscript expression")}break;case Sk.astnodes.Name:return this.nameop(a.id,a.ctx,b);case Sk.astnodes.NameConstant:if(a.ctx===Sk.astnodes.Store||a.ctx===Sk.astnodes.AugStore||a.ctx===Sk.astnodes.Del)throw new Sk.builtin.SyntaxError("can not assign to a constant name");switch(a.value){case Sk.builtin.none.none$:return"Sk.builtin.none.none$";case Sk.builtin.bool.true$:return"Sk.builtin.bool.true$";case Sk.builtin.bool.false$:return"Sk.builtin.bool.false$";
969
default:Sk.asserts.fail("invalid named constant")}break;case Sk.astnodes.List:return this.ctuplelistorset(a,b,"list");case Sk.astnodes.Tuple:return this.ctuplelistorset(a,b,"tuple");case Sk.astnodes.Set:return this.ctuplelistorset(a,b,"set");case Sk.astnodes.Starred:switch(a.ctx){case Sk.astnodes.Store:throw new Sk.builtin.SyntaxError("starred assignment target must be in a list or tuple",this.filename,a.lineno);default:throw new Sk.builtin.SyntaxError("can't use starred expression here",this.filename,
970
a.lineno);}case Sk.astnodes.JoinedStr:return this.cjoinedstr(a);case Sk.astnodes.FormattedValue:return this.cformattedvalue(a);default:Sk.asserts.fail("unhandled case "+a.constructor.name+" vexpr")}};a.prototype.vseqexpr=function(a,b){var c;Sk.asserts.assert(void 0===b||a.length===b.length);var d=[];for(c=0;c<a.length;++c)d.push(this.vexpr(a[c],void 0===b?void 0:b[c]));return d};a.prototype.caugassign=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.AugAssign);var b=a.target;switch(b.constructor){case Sk.astnodes.Attribute:var c=
971
this.vexpr(b.value);b=new Sk.astnodes.Attribute(b.value,b.attr,Sk.astnodes.AugLoad,b.lineno,b.col_offset);var d=this.vexpr(b,void 0,c);var f=this.vexpr(a.value);a=this._gr("inplbinopattr","Sk.abstr.numberInplaceBinOp(",d,",",f,",'",a.op.prototype._astname,"')");b.ctx=Sk.astnodes.AugStore;return this.vexpr(b,a,c);case Sk.astnodes.Subscript:c=this.vexpr(b.value);var e=this.vslicesub(b.slice);b=new Sk.astnodes.Subscript(b.value,e,Sk.astnodes.AugLoad,b.lineno,b.col_offset);d=this.vexpr(b,void 0,c,e);
972
f=this.vexpr(a.value);a=this._gr("inplbinopsubscr","Sk.abstr.numberInplaceBinOp(",d,",",f,",'",a.op.prototype._astname,"')");b.ctx=Sk.astnodes.AugStore;return this.vexpr(b,a,c,e);case Sk.astnodes.Name:return c=this.nameop(b.id,Sk.astnodes.Load),f=this.vexpr(a.value),a=this._gr("inplbinop","Sk.abstr.numberInplaceBinOp(",c,",",f,",'",a.op.prototype._astname,"')"),this.nameop(b.id,Sk.astnodes.Store,a);default:Sk.asserts.fail("unhandled case in augassign")}};a.prototype.exprConstant=function(a){switch(a.constructor){case Sk.astnodes.Num:return Sk.misceval.isTrue(a.n)?
973
1:0;case Sk.astnodes.Str:return Sk.misceval.isTrue(a.s)?1:0;default:return-1}};a.prototype.newBlock=function(a){var b=this.u.blocknum++;this.u.blocks[b]=[];this.u.blocks[b]._name=a||"<unnamed>";this.u.blocks[b]._next=null;return b};a.prototype.setBlock=function(a){Sk.asserts.assert(0<=a&&a<this.u.blocknum);this.u.curblock=a};a.prototype.pushBreakBlock=function(a){Sk.asserts.assert(0<=a&&a<this.u.blocknum);this.u.breakBlocks.push(a)};a.prototype.popBreakBlock=function(){this.u.breakBlocks.pop()};a.prototype.pushContinueBlock=
974
function(a){Sk.asserts.assert(0<=a&&a<this.u.blocknum);this.u.continueBlocks.push(a)};a.prototype.popContinueBlock=function(){this.u.continueBlocks.pop()};a.prototype.pushExceptBlock=function(a){Sk.asserts.assert(0<=a&&a<this.u.blocknum);this.u.exceptBlocks.push(a)};a.prototype.popExceptBlock=function(){this.u.exceptBlocks.pop()};a.prototype.pushFinallyBlock=function(a){Sk.asserts.assert(0<=a&&a<this.u.blocknum);Sk.asserts.assert(this.u.breakBlocks.length===this.u.continueBlocks.length);this.u.finallyBlocks.push({blk:a,
975
breakDepth:this.u.breakBlocks.length})};a.prototype.popFinallyBlock=function(){this.u.finallyBlocks.pop()};a.prototype.peekFinallyBlock=function(){return 0<this.u.finallyBlocks.length?this.u.finallyBlocks[this.u.finallyBlocks.length-1]:void 0};a.prototype.setupExcept=function(a){h("$exc.push(",a,");")};a.prototype.endExcept=function(){h("$exc.pop();")};a.prototype.outputLocals=function(a){var b,c={};for(b=0;a.argnames&&b<a.argnames.length;++b)c[a.argnames[b]]=!0;a.localnames.sort();var d=[];for(b=
976
0;b<a.localnames.length;++b){var f=a.localnames[b];void 0===c[f]&&(d.push(f),c[f]=!0)}return 0<d.length?"var "+d.join(",")+"; /* locals */":""};a.prototype.outputSuspensionHelpers=function(a){var b,c=[],d=a.localnames.concat(a.tempsToSave),f={},e=a.ste.blockType===Sk.SYMTAB_CONSTS.FunctionBlock&&a.ste.childHasFree,g=(0<d.length?"var "+d.join(",")+";":"")+"var $wakeFromSuspension = function() {var susp = "+a.scopename+".$wakingSuspension; "+a.scopename+".$wakingSuspension = undefined;$blk=susp.$blk; $loc=susp.$loc; $gbl=susp.$gbl; $exc=susp.$exc; $err=susp.$err; $postfinally=susp.$postfinally;$currLineNo=susp.$lineno; $currColNo=susp.$colno; Sk.lastYield=Date.now();"+
977
(e?"$cell=susp.$cell;":"");for(b=0;b<d.length;b++){var h=d[b];void 0===f[h]&&(g+=h+"=susp.$tmps."+h+";",f[h]=!0)}g+="try { $ret=susp.child.resume(); } catch(err) { if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if($exc.length>0) { $err=err; $blk=$exc.pop(); } else { throw err; } }};";g+="var $saveSuspension = function($child, $filename, $lineno, $colno) {var susp = new Sk.misceval.Suspension(); susp.child=$child;susp.resume=function(){"+
978
a.scopename+".$wakingSuspension=susp; return "+a.scopename+"("+(a.ste.generator?"$gen":"")+"); };susp.data=susp.child.data;susp.$blk=$blk;susp.$loc=$loc;susp.$gbl=$gbl;susp.$exc=$exc;susp.$err=$err;susp.$postfinally=$postfinally;susp.$filename=$filename;susp.$lineno=$lineno;susp.$colno=$colno;susp.optional=susp.child.optional;"+(e?"susp.$cell=$cell;":"");f={};for(b=0;b<d.length;b++)h=d[b],void 0===f[h]&&(c.push('"'+h+'":'+h),f[h]=!0);return g+="susp.$tmps={"+c.join(",")+"};return susp;};"};a.prototype.outputAllUnits=
979
function(){var a,b,c="";for(b=0;b<this.allUnits.length;++b){var d=this.allUnits[b];c+=d.prefixCode;c+=this.outputLocals(d);d.doesSuspend&&(c+=this.outputSuspensionHelpers(d));c+=d.varDeclsCode;c+=d.switchCode;var e=d.blocks;var g=Object.create(null);for(a=0;a<e.length;++a){var h=a;if(!(h in g))for(;;)if(g[h]=!0,c+="case "+h+": /* --- "+e[h]._name+" --- */",c+=e[h].join(""),null!==e[h]._next)if(e[h]._next in g){c+="/* jump */ continue;";break}else c+="/* allowing case fallthrough */",h=e[h]._next;
980
else{c+="throw new Sk.builtin.SystemError('internal error: unterminated block');";break}}c+=d.suffixCode}return c};a.prototype.cif=function(a){var b;Sk.asserts.assert(a instanceof Sk.astnodes.If);var c=this.exprConstant(a.test);if(0===c)a.orelse&&0<a.orelse.length&&this.vseqstmt(a.orelse);else if(1===c)this.vseqstmt(a.body);else{var d=this.newBlock("end of if");a.orelse&&0<a.orelse.length&&(b=this.newBlock("next branch of if"));c=this.vexpr(a.test);a.orelse&&0<a.orelse.length?(this._jumpfalse(c,b),
981
this.vseqstmt(a.body),this._jump(d),this.setBlock(b),this.vseqstmt(a.orelse)):(this._jumpfalse(c,d),this.vseqstmt(a.body));this._jump(d);this.setBlock(d)}};a.prototype.cwhile=function(a){if(0===this.exprConstant(a.test))a.orelse&&this.vseqstmt(a.orelse);else{var b=this.newBlock("while test");this._jump(b);this.setBlock(b);var c=this.newBlock("after while");var d=0<a.orelse.length?this.newBlock("while orelse"):null;var f=this.newBlock("while body");this.annotateSource(a);this._jumpfalse(this.vexpr(a.test),
982
d?d:c);this._jump(f);this.pushBreakBlock(c);this.pushContinueBlock(b);this.setBlock(f);(Sk.debugging||Sk.killableWhile)&&this.u.canSuspend&&(f=this.newBlock("debug breakpoint for line "+a.lineno),h("if (Sk.breakpoints('"+this.filename+"',"+a.lineno+","+a.col_offset+")) {","var $susp = $saveSuspension({data: {type: 'Sk.delay'}, resume: function() {}}, '"+this.filename+"',"+a.lineno+","+a.col_offset+");","$susp.$blk = "+f+";","$susp.optional = true;","return $susp;","}"),this._jump(f),this.setBlock(f),
983
this.u.doesSuspend=!0);this.vseqstmt(a.body);this._jump(b);this.popContinueBlock();this.popBreakBlock();0<a.orelse.length&&(this.setBlock(d),this.vseqstmt(a.orelse),this._jump(c));this.setBlock(c)}};a.prototype.cfor=function(a){var b=this.newBlock("for start"),c=this.newBlock("for cleanup"),d=this.newBlock("for end");this.pushBreakBlock(d);this.pushContinueBlock(b);var f=this.vexpr(a.iter);if(this.u.ste.generator){var e="$loc."+this.gensym("iter");h(e,"=Sk.abstr.iter(",f,");")}else e=this._gr("iter",
984
"Sk.abstr.iter(",f,")"),this.u.tempsToSave.push(e);this._jump(b);this.setBlock(b);h("$ret = Sk.abstr.iternext(",e,this.u.canSuspend?", true":", false",");");this._checkSuspension(a);e=this._gr("next","$ret");this._jumpundef(e,c);this.vexpr(a.target,e);(Sk.debugging||Sk.killableFor)&&this.u.canSuspend&&(e=this.newBlock("debug breakpoint for line "+a.lineno),h("if (Sk.breakpoints('"+this.filename+"',"+a.lineno+","+a.col_offset+")) {","var $susp = $saveSuspension({data: {type: 'Sk.delay'}, resume: function() {}}, '"+
985
this.filename+"',"+a.lineno+","+a.col_offset+");","$susp.$blk = "+e+";","$susp.optional = true;","return $susp;","}"),this._jump(e),this.setBlock(e),this.u.doesSuspend=!0);this.vseqstmt(a.body);this._jump(b);this.setBlock(c);this.popContinueBlock();this.popBreakBlock();this.vseqstmt(a.orelse);this._jump(d);this.setBlock(d)};a.prototype.craise=function(a){if(a.exc){var b=this._gr("exc",this.vexpr(a.exc)),c=this.newBlock("exception now instantiated"),d=this._gr("isclass",b+".prototype instanceof Sk.builtin.BaseException");
986
this._jumpfalse(d,c);a.inst?(d=this._gr("inst",this.vexpr(a.inst)),h("if(!(",d," instanceof Sk.builtin.tuple)) {",d,"= new Sk.builtin.tuple([",d,"]);","}"),h("$ret = Sk.misceval.callsimOrSuspendArray(",b,",",d,".v);")):h("$ret = Sk.misceval.callsimOrSuspend(",b,");");this._checkSuspension(a);h(b,"=$ret;");this._jump(c);this.setBlock(c);h("if (",b," instanceof Sk.builtin.BaseException) {throw ",b,";} else {throw new Sk.builtin.TypeError('exceptions must derive from BaseException');};")}else h("throw $err;")};
987
a.prototype.outputFinallyCascade=function(a){if(0==this.u.finallyBlocks.length)h("if($postfinally!==undefined) { if ($postfinally.returning) { return $postfinally.returning; } else { $blk=$postfinally.gotoBlock; $postfinally=undefined; continue; } }");else{var b=this.peekFinallyBlock();h("if($postfinally!==undefined) {","if ($postfinally.returning",b.breakDepth==a.breakDepth?"|| $postfinally.isBreak":"",") {","$blk=",b.blk,";continue;","} else {","$blk=$postfinally.gotoBlock;$postfinally=undefined;continue;",
988
"}","}")}};a.prototype.ctry=function(a){var b,c=a.handlers.length;if(a.finalbody){var d=this.newBlock("finalbody");var f=this.newBlock("finalexh");var e=this._gr("finally_reraise","undefined");this.u.tempsToSave.push(e);this.pushFinallyBlock(d);var g=this.peekFinallyBlock();this.setupExcept(f)}var m=[];for(b=0;b<c;++b)m.push(this.newBlock("except_"+b+"_"));var p=this.newBlock("unhandled");var H=this.newBlock("orelse");var K=this.newBlock("end");0!=m.length&&this.setupExcept(m[0]);this.vseqstmt(a.body);
989
0!=m.length&&this.endExcept();this._jump(H);for(b=0;b<c;++b){this.setBlock(m[b]);var C=a.handlers[b];if(!C.type&&b<c-1)throw new Sk.builtin.SyntaxError("default 'except:' must be last",this.filename,C.lineno);if(C.type){var F=this.vexpr(C.type);var L=b==c-1?p:m[b+1];F=this._gr("instance","Sk.misceval.isTrue(Sk.builtin.isinstance($err, ",F,"))");this._jumpfalse(F,L)}C.name&&this.vexpr(C.name,"$err");this.vseqstmt(C.body);this._jump(K)}this.setBlock(p);h("throw $err;");this.setBlock(H);this.vseqstmt(a.orelse);
990
this._jump(K);this.setBlock(K);a.finalbody&&(this.endExcept(),this._jump(d),this.setBlock(f),h(e,"=$err;"),this._jump(d),this.setBlock(d),this.popFinallyBlock(),this.vseqstmt(a.finalbody),h("if(",e,"!==undefined) { throw ",e,";}"),this.outputFinallyCascade(g))};a.prototype.cwith=function(a,b){var c=this.newBlock("withexh"),d=this.newBlock("withtidyup"),f=this.newBlock("withcarryon");var e=this._gr("mgr",this.vexpr(a.items[b].context_expr));h("$ret = Sk.abstr.gattr(",e,",Sk.builtin.str.$exit, true);");
991
this._checkSuspension(a);var g=this._gr("exit","$ret");this.u.tempsToSave.push(g);h("$ret = Sk.abstr.gattr(",e,",Sk.builtin.str.$enter, true);");this._checkSuspension(a);h("$ret = Sk.misceval.callsimOrSuspendArray($ret);");this._checkSuspension(a);e=this._gr("value","$ret");this.pushFinallyBlock(d);var k=this.u.finallyBlocks[this.u.finallyBlocks.length-1];this.setupExcept(c);a.items[b].optional_vars&&this.nameop(a.items[b].optional_vars.id,Sk.astnodes.Store,e);b+1<a.items.length?this.cwith(a,b+1):
992
this.vseqstmt(a.body);this.endExcept();this._jump(d);this.setBlock(c);h("$ret = Sk.misceval.applyOrSuspend(",g,",undefined,Sk.builtin.getExcInfo($err),undefined,[]);");this._checkSuspension(a);this._jumptrue("$ret",f);h("throw $err;");this.setBlock(d);this.popFinallyBlock();h("$ret = Sk.misceval.callsimOrSuspendArray(",g,",[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.none.none$]);");this._checkSuspension(a);this.outputFinallyCascade(k);this._jump(f);this.setBlock(f)};a.prototype.cassert=
993
function(a){var b=this.vexpr(a.test),c=this.newBlock("end");this._jumptrue(b,c);h("throw new Sk.builtin.AssertionError(",a.msg?this.vexpr(a.msg):"",");");this.setBlock(c)};a.prototype.cimportas=function(a,b,c){a=a.v;var d=a.indexOf("."),e=c;if(-1!==d)for(a=a.substr(d+1);-1!==d;)d=a.indexOf("."),c=-1!==d?a.substr(0,d):a,e=this._gr("lattr","Sk.abstr.gattr(",e,", new Sk.builtin.str('",c,"'))"),a=a.substr(d+1);return this.nameop(b,Sk.astnodes.Store,e)};a.prototype.cimport=function(a){var b,c=a.names.length;
994
for(b=0;b<c;++b){var d=a.names[b];h("$ret = Sk.builtin.__import__(",d.name.$r().v,",$gbl,$loc,[],",Sk.__future__.absolute_import?0:-1,");");this._checkSuspension(a);var e=this._gr("module","$ret");if(d.asname)this.cimportas(d.name,d.asname,e);else{var f=d.name;d=f.v.indexOf(".");-1!==d&&(f=new Sk.builtin.str(f.v.substr(0,d)));this.nameop(f,Sk.astnodes.Store,e)}}};a.prototype.cfromimport=function(a){var b,d=a.names.length;var e=[];var f=a.level;0!=f||Sk.__future__.absolute_import||(f=-1);for(b=0;b<
995
d;++b)e[b]="'"+c(a.names[b].name.v)+"'";h("$ret = Sk.builtin.__import__(",a.module.$r().v,",$gbl,$loc,[",e,"],",f,");");this._checkSuspension(a);f=this._gr("module","$ret");for(b=0;b<d;++b){e=a.names[b];var g="'"+e.name.v+"'";if(0===b&&"*"===e.name.v){Sk.asserts.assert(1===d);h("Sk.importStar(",f,",$loc, $gbl);");break}var m=this._gr("item","Sk.abstr.gattr(",f,", new Sk.builtin.str(",g,"))");g=e.name;e.asname&&(g=e.asname);this.nameop(g,Sk.astnodes.Store,m)}};a.prototype.buildcodeobj=function(a,b,
996
e,g,m,p){var f=[],k=[],l=[],n=[],q=null,u=null;e&&(k=this.vseqexpr(e));g&&g.defaults&&(l=this.vseqexpr(g.defaults));g&&g.kw_defaults&&(n=g.kw_defaults.map(a=>a?this.vexpr(a):"undefined"));g&&g.vararg&&(q=g.vararg);g&&g.kwarg&&(u=g.kwarg);if(!Sk.__future__.python3&&g&&g.kwonlyargs&&0!=g.kwonlyargs.length)throw new Sk.builtin.SyntaxError("Keyword-only arguments are not supported in Python 2");var F=this.enterScope(b,a,a.lineno,this.canSuspend);e=this.u.ste.generator;var L=this.u.ste.hasFree;var W=this.u.ste.childHasFree;
997
var N=this.newBlock("codeobj entry");this.u.prefixCode="var "+F+"=(function "+this.niceName(b.v)+"$(";var E=[];if(e){if(u)throw new Sk.builtin.SyntaxError(b.v+"(): keyword arguments in generators not supported",this.filename,a.lineno);if(q)throw new Sk.builtin.SyntaxError(b.v+"(): variable number of arguments in generators not supported",this.filename,a.lineno);E.push("$gen")}else{u&&(E.push("$kwa"),this.u.tempsToSave.push("$kwa"));for(a=0;g&&a<g.args.length;++a)E.push(this.nameop(g.args[a].arg,Sk.astnodes.Param));
998
for(a=0;g&&g.kwonlyargs&&a<g.kwonlyargs.length;++a)E.push(this.nameop(g.kwonlyargs[a].arg,Sk.astnodes.Param));q&&E.push(this.nameop(g.vararg.arg,Sk.astnodes.Param))}let X=!e;L&&(X||E.push("$free"),this.u.tempsToSave.push("$free"));this.u.prefixCode=X?this.u.prefixCode+"$posargs,$kwargs":this.u.prefixCode+E.join(",");this.u.prefixCode+="){";e&&(this.u.prefixCode+="\n// generator\n");L&&(this.u.prefixCode+="\n// has free\n");W&&(this.u.prefixCode+="\n// has cell\n");X&&(this.u.prefixCode+="\n// fast call\n");
999
var aa="{}";e&&(N="$gen.gi$resumeat",aa="$gen.gi$locals");a=",$cell={}";W&&e&&(a=",$cell=$gen.gi$cells");this.u.varDeclsCode+="var $blk="+N+",$exc=[],$loc="+aa+a+",$gbl="+(X?"this.func_globals":"this")+(X&&L?",$free=this.func_closure":"")+",$err=undefined,$ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;";null!==Sk.execLimit&&(this.u.varDeclsCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}");null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.varDeclsCode+=
1000
"if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}");this.u.varDeclsCode+="if ("+F+".$wakingSuspension!==undefined) { $wakeFromSuspension(); } else {";if(X){this.u.varDeclsCode=u||q||g&&g.kwonlyargs&&0!==g.kwonlyargs.length?this.u.varDeclsCode+"\nvar $args = this.$resolveArgs($posargs,$kwargs)\n":this.u.varDeclsCode+("var $args = ((!$kwargs || $kwargs.length===0) && $posargs.length==="+E.length+") ? $posargs : this.$resolveArgs($posargs,$kwargs)");for(a=0;a<E.length;a++)this.u.varDeclsCode+=
1001
","+E[a]+"=$args["+a+"]";this.u.varDeclsCode+=";\n"}if(e&&0<l.length)for(N=g.args.length-l.length,a=0;a<l.length;++a)E=this.nameop(g.args[a+N].arg,Sk.astnodes.Param),this.u.varDeclsCode+="if("+E+"===undefined)"+E+"="+F+".$defaults["+a+"];";for(a=0;g&&a<g.args.length;++a)E=g.args[a].arg,this.isCell(E)&&(E=c(d(this.u.private_,E).v),this.u.varDeclsCode+="$cell."+E+"="+E+";");for(a=0;g&&g.kwonlyargs&&a<g.kwonlyargs.length;++a)E=g.kwonlyargs[a].arg,this.isCell(E)&&(E=c(d(this.u.private_,E).v),this.u.varDeclsCode+=
1002
"$cell."+E+"="+E+";");q&&this.isCell(q.arg)&&(a=c(d(this.u.private_,q.arg).v),this.u.varDeclsCode+="$cell."+a+"="+a+";");u&&(this.u.localnames.push(u.arg.v),this.u.varDeclsCode+=u.arg.v+"=new Sk.builtins['dict']($kwa);",this.isCell(u.arg)&&(a=c(d(this.u.private_,u.arg).v),this.u.varDeclsCode+="$cell."+a+"="+a+";"));this.u.varDeclsCode+="}";Sk.__future__.python3&&p&&(this.u.varDeclsCode+="$gbl.__class__=$gbl."+p.v+";");this.u.switchCode="while(true){try{";this.u.switchCode+=this.outputInterruptTest();
1003
this.u.switchCode+="switch($blk){";this.u.suffixCode="} }catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} }});";m.call(this,F);if(g){for(let a of g.args)f.push(a.arg.v);for(let a of g.kwonlyargs||[])f.push(a.arg.v);this.u.argnames=f}this.exitScope();0<l.length&&h(F,".$defaults=[",
1004
l.join(","),"];");g&&g.kwonlyargs&&0<g.kwonlyargs.length&&(h(F,".co_argcount=",g.args.length,";"),h(F,".co_kwonlyargcount=",g.kwonlyargs.length,";"),h(F,".$kwdefs=[",n.join(","),"];"));0<f.length?h(F,".co_varnames=['",f.join("','"),"'];"):h(F,".co_varnames=[];");u&&h(F,".co_kwargs=1;");q&&h(F,".co_varargs=1;");e||h(F,".co_fastcall=1;");m="";L&&(m=",$cell",(p=this.u.ste.hasFree)&&(m+=",$free"));if(e)return g&&0<g.args.length?this._gr("gener","new Sk.builtins['function']((function(){var $origargs=Array.prototype.slice.call(arguments);Sk.builtin.pyCheckArgsLen(\"",
1005
b.v,'",arguments.length,',g.args.length-l.length,",",g.args.length,");return new Sk.builtins['generator'](",F,",$gbl,$origargs",m,");}))"):this._gr("gener","new Sk.builtins['function']((function(){Sk.builtin.pyCheckArgsLen(\"",b.v,"\",arguments.length,0,0);return new Sk.builtins['generator'](",F,",$gbl,[]",m,");}))");if(0<k.length){h("$ret = new Sk.builtins['function'](",F,",$gbl",m,");");for(let a of k.reverse())h("$ret = Sk.misceval.callsimOrSuspendArray(",a,",[$ret]);"),this._checkSuspension();
1006
return this._gr("funcobj","$ret")}return this._gr("funcobj","new Sk.builtins['function'](",F,",$gbl",m,")")};a.prototype.cfunction=function(a,b){Sk.asserts.assert(a instanceof Sk.astnodes.FunctionDef);b=this.buildcodeobj(a,a.name,a.decorator_list,a.args,function(b){this.vseqstmt(a.body);h("return Sk.builtin.none.none$;")},b);this.nameop(a.name,Sk.astnodes.Store,b)};a.prototype.clambda=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.Lambda);return this.buildcodeobj(a,new Sk.builtin.str("<lambda>"),
1007
null,a.args,function(b){b=this.vexpr(a.body);h("return ",b,";")})};a.prototype.cifexp=function(a){var b=this.newBlock("next of ifexp"),c=this.newBlock("end of ifexp"),d=this._gr("res","null"),e=this.vexpr(a.test);this._jumpfalse(e,b);h(d,"=",this.vexpr(a.body),";");this._jump(c);this.setBlock(b);h(d,"=",this.vexpr(a.orelse),";");this._jump(c);this.setBlock(c);return d};a.prototype.cgenexpgen=function(a,b,c){var d=this.newBlock("start for "+b),e=this.newBlock("skip for "+b);this.newBlock("if cleanup for "+
1008
b);var f=this.newBlock("end for "+b),g=a[b];if(0===b)var k="$loc.$iter0";else{var n=this.vexpr(g.iter);k="$loc."+this.gensym("iter");h(k,"=","Sk.abstr.iter(",n,");")}this._jump(d);this.setBlock(d);this.annotateSource(c);h("$ret = Sk.abstr.iternext(",k,this.u.canSuspend?", true":", false",");");this._checkSuspension(c);n=this._gr("next","$ret");this._jumpundef(n,f);this.vexpr(g.target,n);var m=g.ifs?g.ifs.length:0;for(k=0;k<m;++k)this.annotateSource(g.ifs[k]),n=this.vexpr(g.ifs[k]),this._jumpfalse(n,
1009
d);++b<a.length&&this.cgenexpgen(a,b,c);b>=a.length&&(this.annotateSource(c),a=this.vexpr(c),h("return [",e,"/*resume*/,",a,"/*ret*/];"),this.setBlock(e));this._jump(d);this.setBlock(f);1===b&&h("return Sk.builtin.none.none$;")};a.prototype.cgenexp=function(a){var b=this.buildcodeobj(a,new Sk.builtin.str("<genexpr>"),null,null,function(b){this.cgenexpgen(a.generators,0,a.elt)});b=this._gr("gener","Sk.misceval.callsimArray(",b,");");h(b,".gi$locals.$iter0=Sk.abstr.iter(",this.vexpr(a.generators[0].iter),
1010
");");return b};a.prototype.cclass=function(a){Sk.asserts.assert(a instanceof Sk.astnodes.ClassDef);var b=this.vseqexpr(a.decorator_list);var c=this.vseqexpr(a.bases);var d=this.enterScope(a.name,a,a.lineno);var e=this.newBlock("class entry");this.u.prefixCode="var "+d+"=(function $"+a.name.v+"$class_outer($globals,$locals,$cell){var $gbl=$globals,$loc=$locals;$free=$globals;";this.u.switchCode+="(function $"+a.name.v+"$_closure($cell){";this.u.switchCode+="var $blk="+e+",$exc=[],$ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;";
1011
null!==Sk.execLimit&&(this.u.switchCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}");null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.switchCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}");this.u.switchCode+="while(true){try{";this.u.switchCode+=this.outputInterruptTest();this.u.switchCode+="switch($blk){";this.u.suffixCode="}}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+
1012
this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }}}";this.u.suffixCode+="}).call(null, $cell);});";this.u.private_=a.name;this.cbody(a.body,a.name);h("return;");this.exitScope();h("$ret = Sk.misceval.buildClass($gbl,",d,",",a.name.$r().v,",[",c,"], $cell);");for(let a of b)h("$ret = Sk.misceval.callsimOrSuspendArray(",a,", [$ret]);"),this._checkSuspension();this.nameop(a.name,Sk.astnodes.Store,"$ret")};a.prototype.ccontinue=function(a){var b=this.peekFinallyBlock();
1013
if(0==this.u.continueBlocks.length)throw new Sk.builtin.SyntaxError("'continue' outside loop",this.filename,a.lineno);a=this.u.continueBlocks[this.u.continueBlocks.length-1];Sk.asserts.assert(this.u.breakBlocks.length===this.u.continueBlocks.length);b&&b.breakDepth==this.u.continueBlocks.length?h("$postfinally={isBreak:true,gotoBlock:",a,"};"):this._jump(a)};a.prototype.cbreak=function(a){var b=this.peekFinallyBlock();if(0===this.u.breakBlocks.length)throw new Sk.builtin.SyntaxError("'break' outside loop",
1014
this.filename,a.lineno);a=this.u.breakBlocks[this.u.breakBlocks.length-1];b&&b.breakDepth==this.u.breakBlocks.length?h("$postfinally={isBreak:true,gotoBlock:",a,"};"):this._jump(a)};a.prototype.vstmt=function(a,b){this.u.lineno=a.lineno;this.u.linenoSet=!1;this.u.localtemps=[];if(Sk.debugging&&this.u.canSuspend){var c=this.newBlock("debug breakpoint for line "+a.lineno);h("if (Sk.breakpoints('"+this.filename+"',"+a.lineno+","+a.col_offset+")) {","var $susp = $saveSuspension({data: {type: 'Sk.debug'}, resume: function() {}}, '"+
1015
this.filename+"',"+a.lineno+","+a.col_offset+");","$susp.$blk = "+c+";","$susp.optional = true;","return $susp;","}");this._jump(c);this.setBlock(c);this.u.doesSuspend=!0}this.annotateSource(a);switch(a.constructor){case Sk.astnodes.FunctionDef:this.cfunction(a,b);break;case Sk.astnodes.ClassDef:this.cclass(a);break;case Sk.astnodes.Return:if(this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock)throw new Sk.builtin.SyntaxError("'return' outside function",this.filename,a.lineno);c=a.value?this.vexpr(a.value):
1016
"Sk.builtin.none.none$";0==this.u.finallyBlocks.length?h("return ",c,";"):(h("$postfinally={returning:",c,"};"),this._jump(this.peekFinallyBlock().blk));break;case Sk.astnodes.Delete:this.vseqexpr(a.targets);break;case Sk.astnodes.Assign:var d=a.targets.length;c=this.vexpr(a.value);for(b=0;b<d;++b)this.vexpr(a.targets[b],c);break;case Sk.astnodes.AnnAssign:c=this.vexpr(a.value);this.vexpr(a.target,c);this.vexpr(a.annotation);break;case Sk.astnodes.AugAssign:return this.caugassign(a);case Sk.astnodes.Print:this.cprint(a);
1017
break;case Sk.astnodes.For:return this.cfor(a);case Sk.astnodes.While:return this.cwhile(a);case Sk.astnodes.If:return this.cif(a);case Sk.astnodes.Raise:return this.craise(a);case Sk.astnodes.Try:return this.ctry(a);case Sk.astnodes.With:return this.cwith(a,0);case Sk.astnodes.Assert:return this.cassert(a);case Sk.astnodes.Import:return this.cimport(a);case Sk.astnodes.ImportFrom:return this.cfromimport(a);case Sk.astnodes.Global:break;case Sk.astnodes.Expr:this.vexpr(a.value);break;case Sk.astnodes.Pass:break;
1018
case Sk.astnodes.Break:this.cbreak(a);break;case Sk.astnodes.Continue:this.ccontinue(a);break;case Sk.astnodes.Debugger:h("debugger;");break;default:Sk.asserts.fail("unhandled case in vstmt: "+JSON.stringify(a))}};a.prototype.vseqstmt=function(a){var b;for(b=0;b<a.length;++b)this.vstmt(a[b])};a.prototype.isCell=function(a){a=c(d(this.u.private_,a).v);return this.u.ste.getScope(a)===Sk.SYMTAB_CONSTS.CELL};a.prototype.nameop=function(a,b,e){if((b===Sk.astnodes.Store||b===Sk.astnodes.AugStore||b===Sk.astnodes.Del)&&
1019
"__debug__"===a.v)throw new Sk.builtin.SyntaxError("can not assign to __debug__",this.filename,this.u.lineno);Sk.asserts.assert("None"!==a.v);if("NotImplemented"===a.v)return"Sk.builtin.NotImplemented.NotImplemented$";var f=d(this.u.private_,a).v;f=c(f);var g=3;var k=this.u.ste.getScope(f);var n=null;switch(k){case Sk.SYMTAB_CONSTS.FREE:n="$free";g=2;break;case Sk.SYMTAB_CONSTS.CELL:n="$cell";g=2;break;case Sk.SYMTAB_CONSTS.LOCAL:this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock||this.u.ste.generator||
1020
(g=0);break;case Sk.SYMTAB_CONSTS.GLOBAL_IMPLICIT:this.u.ste.blockType===Sk.SYMTAB_CONSTS.FunctionBlock&&(g=1);break;case Sk.SYMTAB_CONSTS.GLOBAL_EXPLICIT:g=1}Sk.asserts.assert(k||"_"===a.v.charAt(1));a=f;this.u.ste.generator||this.u.ste.blockType!==Sk.SYMTAB_CONSTS.FunctionBlock?f="$loc."+f:(0===g||3===g)&&this.u.localnames.push(f);switch(g){case 0:switch(b){case Sk.astnodes.Load:case Sk.astnodes.Param:return h("if (",f," === undefined) { throw new Sk.builtin.UnboundLocalError('local variable \\'",
1021
f,"\\' referenced before assignment'); }\n"),f;case Sk.astnodes.Store:h(f,"=",e,";");break;case Sk.astnodes.Del:h("delete ",f,";");break;default:Sk.asserts.fail("unhandled")}break;case 3:switch(b){case Sk.astnodes.Load:return this._gr("loadname",f,"!==undefined?",f,":Sk.misceval.loadname('",a,"',$gbl);");case Sk.astnodes.Store:h(f,"=",e,";");break;case Sk.astnodes.Del:h("delete ",f,";");break;case Sk.astnodes.Param:return f;default:Sk.asserts.fail("unhandled")}break;case 1:switch(b){case Sk.astnodes.Load:return this._gr("loadgbl",
1022
"Sk.misceval.loadname('",a,"',$gbl)");case Sk.astnodes.Store:h("$gbl.",a,"=",e,";");break;case Sk.astnodes.Del:h("delete $gbl.",a);break;default:Sk.asserts.fail("unhandled case in name op_global")}break;case 2:switch(b){case Sk.astnodes.Load:return n+"."+a;case Sk.astnodes.Store:h(n,".",a,"=",e,";");break;case Sk.astnodes.Param:return a;default:Sk.asserts.fail("unhandled case in name op_deref")}break;default:Sk.asserts.fail("unhandled case")}};a.prototype.enterScope=function(a,c,d,e){var f=new b;
1023
f.ste=this.st.getStsForAst(c);f.name=a;f.firstlineno=d;f.canSuspend=e||!1;this.u&&this.u.private_&&(f.private_=this.u.private_);this.stack.push(this.u);this.allUnits.push(f);a=this.gensym("scope");f.scopename=a;this.u=f;this.u.activateScope();this.nestlevel++;return a};a.prototype.exitScope=function(){var a=this.u;this.nestlevel--;(this.u=0<=this.stack.length-1?this.stack.pop():null)&&this.u.activateScope();if("<module>"!==a.name.v){var b=a.name.$r().v;b=b.substring(1,b.length-1);h(a.scopename,".co_name=new Sk.builtins['str']('",
1024
b,"');")}for(var c in a.consts)a.consts.hasOwnProperty(c)&&(a.suffixCode+=c+" = "+a.consts[c]+";")};a.prototype.cbody=function(a,b){var c;for(c=0;c<a.length;++c)this.vstmt(a[c],b)};a.prototype.cprint=function(a){var b;Sk.asserts.assert(a instanceof Sk.astnodes.Print);a.dest&&this.vexpr(a.dest);var c=a.values.length;for(b=0;b<c;++b)h("$ret = Sk.misceval.print_(","new Sk.builtins['str'](",this.vexpr(a.values[b]),").v);"),this._checkSuspension(a);a.nl&&(h("$ret = Sk.misceval.print_(",'"\\n");'),this._checkSuspension(a))};
1025
a.prototype.cmod=function(a){var b=this.enterScope(new Sk.builtin.str("<module>"),a,0,this.canSuspend),c=this.newBlock("module entry");this.u.prefixCode="var "+b+"=(function($forcegbl){";this.u.varDeclsCode="var $gbl = $forcegbl || {}, $blk="+c+",$exc=[],$loc=$gbl,$cell={},$err=undefined;$loc.__file__=new Sk.builtins.str('"+this.filename+"');var $ret=undefined,$postfinally=undefined,$currLineNo=undefined,$currColNo=undefined;";null!==Sk.execLimit&&(this.u.varDeclsCode+="if (typeof Sk.execStart === 'undefined') {Sk.execStart = Date.now()}");
1026
null!==Sk.yieldLimit&&this.u.canSuspend&&(this.u.varDeclsCode+="if (typeof Sk.lastYield === 'undefined') {Sk.lastYield = Date.now()}");this.u.varDeclsCode+="if ("+b+".$wakingSuspension!==undefined) { $wakeFromSuspension(); }if (Sk.retainGlobals) {    if (Sk.globals) { $gbl = Sk.globals; Sk.globals = $gbl; $loc = $gbl; }    if (Sk.globals) { $gbl = Sk.globals; Sk.globals = $gbl; $loc = $gbl; $loc.__file__=new Sk.builtins.str('"+this.filename+"');}    else { Sk.globals = $gbl; }} else { Sk.globals = $gbl; }";
1027
this.u.switchCode="while(true){try{";this.u.switchCode+=this.outputInterruptTest();this.u.switchCode+="switch($blk){";this.u.suffixCode="}";this.u.suffixCode+="}catch(err){ if (!(err instanceof Sk.builtin.BaseException)) { err = new Sk.builtin.ExternalError(err); } err.traceback.push({lineno: $currLineNo, colno: $currColNo, filename: '"+this.filename+"'}); if ($exc.length>0) { $err = err; $blk=$exc.pop(); continue; } else { throw err; }} } });";switch(a.constructor){case Sk.astnodes.Module:this.cbody(a.body);
1028
h("return $loc;");break;default:Sk.asserts.fail("todo; unhandled case in compilerMod")}this.exitScope();this.result.push(this.outputAllUnits());return b};Sk.compile=function(b,c,d,e){d=Sk.__future__;Sk.__future__=Object.create(Sk.__future__);var f=Sk.parse(c,b),g=Sk.astFromParse(f.cst,c,f.flags);f=f.flags;var h=Sk.symboltable(g,c);b=new a(c,h,f,e,b);c=b.cmod(g);Sk.__future__=d;return{funcname:"$compiledmod",code:"$compiledmod = function() {"+b.result.join("")+"\nreturn "+c+";}();"}};Sk.exportSymbol("Sk.compile",
1029
Sk.compile);Sk.resetCompiler=function(){Sk.gensymcount=0};Sk.exportSymbol("Sk.resetCompiler",Sk.resetCompiler);Sk.fixReserved=c;Sk.exportSymbol("Sk.fixReserved",Sk.fixReserved);Sk.unfixReserved=function(a){return a.replace(/_\$rw\$$/,"")};Sk.exportSymbol("Sk.unfixReserved",Sk.unfixReserved);Sk.mangleName=d;Sk.exportSymbol("Sk.mangleName",Sk.mangleName)},function(m,p){Sk.sysmodules=new Sk.builtin.dict([]);Sk.realsyspath=void 0;Sk.importSearchPathForName=function(a,b,c){var d=a.replace(/\./g,"/"),e=
1030
function(a,b){return Sk.misceval.chain(Sk.misceval.tryCatch(function(){return Sk.read(a)},function(a){}),function(c){if(void 0!==c)return new Sk.misceval.Break({filename:a,code:c,packagePath:b})})};void 0===c&&(c=Sk.realsyspath);return Sk.misceval.iterFor(c.tp$iter(),function(a){return Sk.misceval.chain(e(a.v+"/"+d+b,!1),function(c){return c?c:e(a.v+"/"+d+"/__init__"+b,a.v+"/"+d)})})};Sk.doOneTimeInitialization=function(a){Sk.builtin.type.basesStr_=new Sk.builtin.str("__bases__");Sk.builtin.type.mroStr_=
1031
new Sk.builtin.str("__mro__");for(var b in Sk.builtin)if(a=Sk.builtin[b],a instanceof Sk.builtin.type&&void 0===a.sk$abstract){for(var c=a.prototype.tp$base,d=[];void 0!==c;c=c.prototype.tp$base)!c.sk$abstract&&Sk.builtins[c.prototype.tp$name]&&d.push(c);a.tp$mro=new Sk.builtin.tuple([a].concat(d));a.hasOwnProperty("tp$base")||(a.tp$base=d[0]);a.$d=new Sk.builtin.dict([]);a.$d.mp$ass_subscript(Sk.builtin.type.basesStr_,a.tp$base?new Sk.builtin.tuple([a.tp$base]):new Sk.builtin.tuple([]));a.$d.mp$ass_subscript(Sk.builtin.type.mroStr_,
1032
a.tp$mro);a.$d.mp$ass_subscript(new Sk.builtin.str("__name__"),new Sk.builtin.str(a.prototype.tp$name))}b=[Sk.builtin.object,Sk.builtin.type,Sk.builtin.func,Sk.builtin.method];for(a=0;a<b.length;a++){d=b[a];c=d.prototype;for(let a=0;a<d.pythonFunctions.length;a++){const b=d.pythonFunctions[a];if(c[b]instanceof Sk.builtin.func)break;c[b].co_kwargs=null;c[b]=new Sk.builtin.func(c[b])}}for(var e in Sk.internalPy.files)b=e.split(".")[0].split("/")[1],a=Sk.importBuiltinWithBody(b,!1,Sk.internalPy.files[e],
1033
!0),a=Sk.misceval.retryOptionalSuspensionOrThrow(a),Sk.asserts.assert(void 0!==a.$d[b],"Should have imported name "+b),Sk.builtins[b]=a.$d[b],delete Sk.builtins[b].__module__,delete Sk.globals[b]};Sk.importSetUpPath=function(a){var b;if(!Sk.realsyspath){var c=[new Sk.builtin.str("src/builtin"),new Sk.builtin.str("src/lib"),new Sk.builtin.str(".")];for(b=0;b<Sk.syspath.length;++b)c.push(new Sk.builtin.str(Sk.syspath[b]));Sk.realsyspath=new Sk.builtin.list(c);Sk.doOneTimeInitialization(a)}};Sk.importModuleInternal_=
1034
function(a,b,c,d,e,h,g){var f,k,m,l,p=null,u=void 0!==e?e.tp$getattr(Sk.builtin.str.$name):void 0,z=void 0!==u?u.v+".":"",y=void 0!==e?e.tp$getattr(Sk.builtin.str.$path):void 0;Sk.importSetUpPath(g);if(e&&!u){if(h)return;throw new Sk.builtin.ValueError("Attempted to import relative to invalid package (no name)");}void 0===c&&(c=z+a);var t=a.split(".");if(1<t.length){var H=t.slice(0,t.length-1).join(".");p=Sk.importModuleInternal_(H,b,void 0,void 0,e,h,g)}var K=Sk.misceval.chain(p,function(n){p=n;
1035
k=Sk.sysmodules.mp$lookup(c);return void 0!==k?p||k:Sk.misceval.chain(void 0,function(){var b=a;if(1<t.length){if(!p)return;m=Sk.sysmodules.mp$subscript(z+H);b=t[t.length-1];y=m.tp$getattr(Sk.builtin.str.$path)}l=new Sk.builtin.module;if("string"===typeof d){f=a+".py";var c=Sk.compile(d,f,"exec",g)}else c=Sk.misceval.chain(void 0,function(){if(Sk.onBeforeImport&&"function"===typeof Sk.onBeforeImport)return Sk.onBeforeImport(a)},function(c){if(!1===c)throw new Sk.builtin.ImportError("Importing "+a+
1036
" is not allowed");if("string"===typeof c)throw new Sk.builtin.ImportError(c);return Sk.importSearchPathForName(b,".js",y)},function(a){return a?{funcname:"$builtinmodule",code:a.code,filename:a.filename,packagePath:a.packagePath}:Sk.misceval.chain(Sk.importSearchPathForName(b,".py",y),function(b){if(a=b)return Sk.compile(a.code,a.filename,"exec",g)},function(b){if(b)return b.packagePath=a.packagePath,b})});return c},function(a){if(a){Sk.sysmodules.mp$ass_subscript(c,l);var d=l.$js=a.code;null==f&&
1037
(f=a.filename);null!=Sk.dateSet&&Sk.dateSet||(d="Sk.execStart = Sk.lastYield = new Date();\n"+a.code,Sk.dateSet=!0);if(b){var e=function(a){var b,c=Sk.js_beautify(a).split("\n");for(b=1;b<=c.length;++b){var d=(""+b).length;for(a="";5>d;++d)a+=" ";c[b-1]="/* "+a+b+" */ "+c[b-1]}return c.join("\n")};d=e(d);Sk.debugout(d)}d+="\n"+a.funcname+";";d=Sk.global.eval(d);l.$d={__name__:new Sk.builtin.str(c),__doc__:Sk.builtin.none.none$,__package__:a.packagePath?new Sk.builtin.str(c):H?new Sk.builtin.str(z+
1038
H):u?u:Sk.builtin.none.none$};a.packagePath&&(l.$d.__path__=new Sk.builtin.tuple([new Sk.builtin.str(a.packagePath)]));return d(l.$d)}},function(b){var c;if(void 0===b){if(h&&!p)return;throw new Sk.builtin.ImportError("No module named "+a);}if(b!==l.$d){for(c in l.$d)b[c]||(b[c]=l.$d[c]);l.$d=b}if(Sk.onAfterImport&&"function"===typeof Sk.onAfterImport)try{Sk.onAfterImport(a)}catch(W){}if(p)return m.tp$setattr(new Sk.builtin.str(t[t.length-1]),l),p;e&&e.tp$setattr(new Sk.builtin.str(a),l);return l})});
1039
return g?K:Sk.misceval.retryOptionalSuspensionOrThrow(K)};Sk.importModule=function(a,b,c){return Sk.importModuleInternal_(a,b,void 0,void 0,void 0,!1,c)};Sk.importMain=function(a,b,c){Sk.dateSet=!1;Sk.filesLoaded=!1;Sk.sysmodules=new Sk.builtin.dict([]);Sk.realsyspath=void 0;Sk.resetCompiler();return Sk.importModuleInternal_(a,b,"__main__",void 0,void 0,!1,c)};Sk.importMainWithBody=function(a,b,c,d){Sk.dateSet=!1;Sk.filesLoaded=!1;Sk.sysmodules=new Sk.builtin.dict([]);Sk.realsyspath=void 0;Sk.resetCompiler();
1040
return Sk.importModuleInternal_(a,b,"__main__",c,void 0,!1,d)};Sk.importBuiltinWithBody=function(a,b,c,d){return Sk.importModuleInternal_(a,b,"__builtin__."+a,c,void 0,!1,d)};Sk.builtin.__import__=function(a,b,c,d,e){var h=Sk.globals,g;void 0===e&&(e=Sk.__future__.absolute_import?0:-1);if(0!==e&&b.__package__&&b.__package__!==Sk.builtin.none.none$){if((g=b.__package__.v)&&0<e){b=g.split(".");if(e-1>=b.length)throw new Sk.builtin.ValueError("Attempted relative import beyond toplevel package");b.length-=
1041
e-1;g=b.join(".")}var f=Sk.sysmodules.mp$lookup(g)}if(0<e&&void 0===f)throw new Sk.builtin.ValueError("Attempted relative import in non-package");a.split(".");return Sk.misceval.chain(void 0,function(){if(0!==e&&void 0!==f)return""===a?f:Sk.importModuleInternal_(a,void 0,g+"."+a,void 0,f,-1==e,!0)},function(b){return void 0===b?(g=f=void 0,Sk.importModuleInternal_(a,void 0,void 0,void 0,void 0,!1,!0)):b},function(b){if(d&&0!==d.length){var c;var e=Sk.sysmodules.mp$subscript((g||"")+(g&&a?".":"")+
1042
a);for(b=0;b<d.length;b++){var f=d[b];"*"!=f&&void 0===e.tp$getattr(new Sk.builtin.str(f))&&(c=Sk.misceval.chain(c,Sk.importModuleInternal_.bind(null,f,void 0,void 0,void 0,e,!0,!0)))}return Sk.misceval.chain(c,function(){Sk.asserts.assert(e);return e})}return b},function(a){h!==Sk.globals&&(Sk.globals=h);return a})};Sk.importStar=function(a,b,c){if(c=a.tp$getattr(new Sk.builtin.str("__all__")))for(let d=Sk.abstr.iter(c),e=d.tp$iternext();void 0!==e;e=d.tp$iternext())b[e.v]=Sk.abstr.gattr(a,e);else{c=
1043
Object.getOwnPropertyNames(a.$d);for(let d in c)"_"!=c[d].charAt(0)&&(b[c[d]]=a.$d[c[d]])}};Sk.exportSymbol("Sk.importMain",Sk.importMain);Sk.exportSymbol("Sk.importMainWithBody",Sk.importMainWithBody);Sk.exportSymbol("Sk.importBuiltinWithBody",Sk.importBuiltinWithBody);Sk.exportSymbol("Sk.builtin.__import__",Sk.builtin.__import__);Sk.exportSymbol("Sk.importStar",Sk.importStar)},function(m,p){Sk.builtin.timSort=function(a,b){this.list=new Sk.builtin.list(a.v);this.MIN_GALLOP=7;this.listlength=b?b:
1044
a.sq$length()};Sk.builtin.timSort.prototype.lt=function(a,b){return Sk.misceval.richCompareBool(a,b,"Lt")};Sk.builtin.timSort.prototype.le=function(a,b){return!this.lt(b,a)};Sk.builtin.timSort.prototype.setitem=function(a,b){this.list.v[a]=b};Sk.builtin.timSort.prototype.binary_sort=function(a,b){var c;for(c=a.base+b;c<a.base+a.len;c++){var d=a.base;var e=c;for(b=a.getitem(e);d<e;){var h=d+(e-d>>1);this.lt(b,a.getitem(h))?e=h:d=h+1}Sk.asserts.assert(d===e);for(h=c;h>d;h--)a.setitem(h,a.getitem(h-
1045
1));a.setitem(d,b)}};Sk.builtin.timSort.prototype.count_run=function(a){var b;if(1>=a.len){var c=a.len;var d=!1}else if(c=2,this.lt(a.getitem(a.base+1),a.getitem(a.base)))for(d=!0,b=a.base+2;b<a.base+a.len;b++)if(this.lt(a.getitem(b),a.getitem(b-1)))c++;else break;else for(d=!1,b=a.base+2;b<a.base+a.len&&!this.lt(a.getitem(b),a.getitem(b-1));b++)c++;return{run:new Sk.builtin.listSlice(a.list,a.base,c),descending:d}};Sk.builtin.timSort.prototype.sort=function(){var a,b=new Sk.builtin.listSlice(this.list,
1046
0,this.listlength);if(!(2>b.len)){this.merge_init();for(a=this.merge_compute_minrun(b.len);0<b.len;){var c=this.count_run(b);c.descending&&c.run.reverse();if(c.run.len<a){var d=c.run.len;c.run.len=a<b.len?a:b.len;this.binary_sort(c.run,d)}b.advance(c.run.len);this.pending.push(c.run);this.merge_collapse()}Sk.asserts.assert(b.base==this.listlength);this.merge_force_collapse();Sk.asserts.assert(1==this.pending.length);Sk.asserts.assert(0===this.pending[0].base);Sk.asserts.assert(this.pending[0].len==
1047
this.listlength)}};Sk.builtin.timSort.prototype.gallop=function(a,b,c,d){var e;Sk.asserts.assert(0<=c&&c<b.len);var h=this;d=d?function(a,b){return h.le(a,b)}:function(a,b){return h.lt(a,b)};var g=b.base+c;var f=0;var k=1;if(d(b.getitem(g),a)){for(e=b.len-c;k<e;)if(d(b.getitem(g+k),a)){f=k;try{k=(k<<1)+1}catch(n){k=e}}else break;k>e&&(k=e);f+=c;k+=c}else{for(e=c+1;k<e&&!d(b.getitem(g-k),a);){f=k;try{k=(k<<1)+1}catch(n){k=e}}k>e&&(k=e);g=c-f;f=c-k;k=g}Sk.asserts.assert(-1<=f<k<=b.len);for(f+=1;f<k;)c=
1048
f+(k-f>>1),d(b.getitem(b.base+c),a)?f=c+1:k=c;Sk.asserts.assert(f==k);return k};Sk.builtin.timSort.prototype.merge_init=function(){this.min_gallop=this.MIN_GALLOP;this.pending=[]};Sk.builtin.timSort.prototype.merge_lo=function(a,b){var c,d,e;Sk.asserts.assert(0<a.len&&0<b.len&&a.base+a.len==b.base);var h=this.min_gallop;var g=a.base;a=a.copyitems();try{if(this.setitem(g,b.popleft()),g++,1!=a.len&&0!==b.len)for(;;){for(d=c=0;;)if(this.lt(b.getitem(b.base),a.getitem(a.base))){this.setitem(g,b.popleft());
1049
g++;if(0===b.len)return;d++;c=0;if(d>=h)break}else{this.setitem(g,a.popleft());g++;if(1==a.len)return;c++;d=0;if(c>=h)break}for(h+=1;;){this.min_gallop=h-=1<h;c=this.gallop(b.getitem(b.base),a,0,!0);for(e=a.base;e<a.base+c;e++)this.setitem(g,a.getitem(e)),g++;a.advance(c);if(1>=a.len)return;this.setitem(g,b.popleft());g++;if(0===b.len)return;d=this.gallop(a.getitem(a.base),b,0,!1);for(e=b.base;e<b.base+d;e++)this.setitem(g,b.getitem(e)),g++;b.advance(d);if(0===b.len)return;this.setitem(g,a.popleft());
1050
g++;if(1==a.len)return;if(c<this.MIN_GALLOP&&d<this.MIN_GALLOP)break;h++;this.min_gallop=h}}}finally{Sk.asserts.assert(0<=a.len&&0<=b.len);for(e=b.base;e<b.base+b.len;e++)this.setitem(g,b.getitem(e)),g++;for(e=a.base;e<a.base+a.len;e++)this.setitem(g,a.getitem(e)),g++}};Sk.builtin.timSort.prototype.merge_hi=function(a,b){var c,d,e;Sk.asserts.assert(0<a.len&&0<b.len&&a.base+a.len==b.base);var h=this.min_gallop;var g=b.base+b.len;b=b.copyitems();try{if(g--,this.setitem(g,a.popright()),0!==a.len&&1!=
1051
b.len)for(;;){for(d=c=0;;){var f=a.getitem(a.base+a.len-1);var k=b.getitem(b.base+b.len-1);if(this.lt(k,f)){g--;this.setitem(g,f);a.len--;if(0===a.len)return;c++;d=0;if(c>=h)break}else{g--;this.setitem(g,k);b.len--;if(1==b.len)return;d++;c=0;if(d>=h)break}}for(h+=1;;){this.min_gallop=h-=1<h;k=b.getitem(b.base+b.len-1);var m=this.gallop(k,a,a.len-1,!0);c=a.len-m;for(e=a.base+a.len-1;e>a.base+m-1;e--)g--,this.setitem(g,a.getitem(e));a.len-=c;if(0===a.len)return;g--;this.setitem(g,b.popright());if(1==
1052
b.len)return;f=a.getitem(a.base+a.len-1);m=this.gallop(f,b,b.len-1,!1);d=b.len-m;for(e=b.base+b.len-1;e>b.base+m-1;e--)g--,this.setitem(g,b.getitem(e));b.len-=d;if(1>=b.len)return;g--;this.setitem(g,a.popright());if(0===a.len)return;if(c<this.MIN_GALLOP&&d<this.MIN_GALLOP)break;h++;this.min_gallop=h}}}finally{Sk.asserts.assert(0<=a.len&&0<=b.len);for(e=a.base+a.len-1;e>a.base-1;e--)g--,this.setitem(g,a.getitem(e));for(e=b.base+b.len-1;e>b.base-1;e--)g--,this.setitem(g,b.getitem(e))}};Sk.builtin.timSort.prototype.merge_at=
1053
function(a){0>a&&(a=this.pending.length+a);var b=this.pending[a];var c=this.pending[a+1];Sk.asserts.assert(0<b.len&&0<c.len);Sk.asserts.assert(b.base+b.len==c.base);this.pending[a]=new Sk.builtin.listSlice(this.list,b.base,b.len+c.len);this.pending.splice(a+1,1);a=this.gallop(c.getitem(c.base),b,0,!0);b.advance(a);0!==b.len&&(c.len=this.gallop(b.getitem(b.base+b.len-1),c,c.len-1,!1),0!==c.len&&(b.len<=c.len?this.merge_lo(b,c):this.merge_hi(b,c)))};Sk.builtin.timSort.prototype.merge_collapse=function(){for(var a=
1054
this.pending;1<a.length;)if(3<=a.length&&a[a.length-3].len<=a[a.length-2].len+a[a.length-1].len)a[a.length-3].len<a[a.length-1].len?this.merge_at(-3):this.merge_at(-2);else if(a[a.length-2].len<=a[a.length-1].len)this.merge_at(-2);else break};Sk.builtin.timSort.prototype.merge_force_collapse=function(){for(var a=this.pending;1<a.length;)3<=a.length&&a[a.length-3].len<a[a.length-1].len?this.merge_at(-3):this.merge_at(-2)};Sk.builtin.timSort.prototype.merge_compute_minrun=function(a){for(var b=0;64<=
1055
a;)b|=a&1,a>>=1;return a+b};Sk.builtin.listSlice=function(a,b,c){this.list=a;this.base=b;this.len=c};Sk.builtin.listSlice.prototype.copyitems=function(){var a=this.base,b=this.base+this.len;Sk.asserts.assert(0<=a<=b);return new Sk.builtin.listSlice(new Sk.builtin.list(this.list.v.slice(a,b)),0,this.len)};Sk.builtin.listSlice.prototype.advance=function(a){this.base+=a;this.len-=a;Sk.asserts.assert(this.base<=this.list.sq$length())};Sk.builtin.listSlice.prototype.getitem=function(a){return this.list.v[a]};
1056
Sk.builtin.listSlice.prototype.setitem=function(a,b){this.list.v[a]=b};Sk.builtin.listSlice.prototype.popleft=function(){var a=this.list.v[this.base];this.base++;this.len--;return a};Sk.builtin.listSlice.prototype.popright=function(){this.len--;return this.list.v[this.base+this.len]};Sk.builtin.listSlice.prototype.reverse=function(){for(var a,b,c=this.list,d=this.base,e=d+this.len-1;d<e;)a=c.v[e],b=c.v[d],c.v[d]=a,c.v[e]=b,d++,e--};Sk.exportSymbol("Sk.builtin.listSlice",Sk.builtin.listSlice);Sk.exportSymbol("Sk.builtin.timSort",
1057
Sk.builtin.timSort)},function(m,p){Sk.builtin.sorted=function(a,b,c,d){if(void 0===d)d=!1;else{if(d instanceof Sk.builtin.float_)throw new Sk.builtin.TypeError("an integer is required, got float");if(d instanceof Sk.builtin.int_||d.prototype instanceof Sk.builtin.int_)d=Sk.misceval.isTrue(d);else throw new Sk.builtin.TypeError("an integer is required");}if(void 0!==c&&c!==Sk.builtin.none.none$){var e=b===Sk.builtin.none.none$||void 0===b?function(a,b){return Sk.misceval.richCompareBool(a[0],b[0],
1058
"Lt")?new Sk.builtin.int_(-1):new Sk.builtin.int_(0)}:function(a,c){return Sk.misceval.callsimArray(b,[a[0],c[0]])};var h=a.tp$iter();var g=h.tp$iternext();for(a=[];void 0!==g;)a.push([Sk.misceval.callsimArray(c,[g]),g]),g=h.tp$iternext();a=new Sk.builtin.list(a)}else b!==Sk.builtin.none.none$&&void 0!==b&&(e=b),a=new Sk.builtin.list(a);void 0!==e?a.list_sort_(a,e):a.list_sort_(a);d&&a.list_reverse_(a);if(void 0!==c&&c!==Sk.builtin.none.none$){h=a.tp$iter();g=h.tp$iternext();for(a=[];void 0!==g;)a.push(g[1]),
1059
g=h.tp$iternext();a=new Sk.builtin.list(a)}return a}},function(m,p){Sk.builtin.type_is_subtype_base_chain=function(a,b){do{if(a==b)return!0;a=a.tp$base}while(void 0!==a);return b==Sk.builtin.object};Sk.builtin.PyType_IsSubtype=function(a,b){var c=a.tp$mro;if(c){Sk.asserts.assert(c instanceof Sk.builtin.tuple);for(a=0;a<c.v.length;a++)if(c.v[a]==b)return!0;return!1}return Sk.builtin.type_is_subtype_base_chain(a,b)};Sk.builtin.super_=function(a,b){Sk.builtin.pyCheckArgsLen("super",arguments.length,
1060
1);if(!(this instanceof Sk.builtin.super_))return new Sk.builtin.super_(a,b);Sk.misceval.callsimArray(Sk.builtin.super_.__init__,[this,a,b]);return this};Sk.builtin.super_.__init__=new Sk.builtin.func(function(a,b,c){a.obj=c;a.type=b;if(!b.tp$mro)throw new Sk.builtin.TypeError("must be type, not "+Sk.abstr.typeName(b));a.obj_type=b.tp$mro.v[1];if(!c)throw new Sk.builtin.NotImplementedError("unbound super not supported because skulpts implementation of type descriptors aren't brilliant yet, see this question for more information https://stackoverflow.com/a/30190341/117242");
1061
if(!Sk.builtin.PyType_IsSubtype(a.obj.ob$type,a.type))throw new Sk.builtin.TypeError("super(type, obj): obj must be an instance of subtype of type");return Sk.builtin.none.none$});Sk.abstr.setUpInheritance("super",Sk.builtin.super_,Sk.builtin.object);Sk.builtin.super_.prototype.tp$getattr=function(a,b){var c,d,e=a.$jsstr();var h=this.obj_type;Sk.asserts.assert(void 0!==h,"object has no ob$type!");if(d=this.obj.$d||this.obj.constructor.$d)if(d.mp$lookup?c=d.mp$lookup(a):d.mp$subscript?c=Sk.builtin._tryGetSubscript(d,
1062
a):"object"===typeof d&&(c=d[e]),void 0!==c)return c;c=Sk.builtin.type.typeLookup(h,a);if(void 0!==c&&null!==c&&(a=c.tp$descr_get))return a.call(c,this.obj,this.obj_type,b);if(void 0!==c)return c};Sk.builtin.super_.prototype.$r=function(a){return this.obj?new Sk.builtin.str("<super: <class '"+(this.type?this.type.prototype.tp$name:"NULL")+"'>, <"+Sk.abstr.typeName(this.obj)+" object>>"):new Sk.builtin.str("<super: <class '"+(this.type?this.type.prototype.tp$name:"NULL")+"'>, NULL>")};Sk.builtin.super_.__doc__=
1063
new Sk.builtin.str("super(type, obj) -> bound super object; requires isinstance(obj, type)\nsuper(type) -> unbound super object\nsuper(type, type2) -> bound super object; requires issubclass(type2, type)\nTypical use to call a cooperative superclass method:\nclass C(B):\n    def meth(self, arg):\n        super(C, self).meth(arg)")},function(m,p){Sk.builtins={range:new Sk.builtin.func(Sk.builtin.range),round:new Sk.builtin.func(Sk.builtin.round),len:new Sk.builtin.func(Sk.builtin.len),min:new Sk.builtin.func(Sk.builtin.min),
1064
max:new Sk.builtin.func(Sk.builtin.max),sum:new Sk.builtin.func(Sk.builtin.sum),abs:new Sk.builtin.func(Sk.builtin.abs),fabs:new Sk.builtin.func(Sk.builtin.fabs),ord:new Sk.builtin.func(Sk.builtin.ord),chr:new Sk.builtin.func(Sk.builtin.chr),hex:new Sk.builtin.func(Sk.builtin.hex),oct:new Sk.builtin.func(Sk.builtin.oct),bin:new Sk.builtin.func(Sk.builtin.bin),dir:new Sk.builtin.func(Sk.builtin.dir),repr:new Sk.builtin.func(Sk.builtin.repr),open:new Sk.builtin.func(Sk.builtin.open),isinstance:new Sk.builtin.func(Sk.builtin.isinstance),
1065
hash:new Sk.builtin.func(Sk.builtin.hash),getattr:new Sk.builtin.func(Sk.builtin.getattr),hasattr:new Sk.builtin.func(Sk.builtin.hasattr),id:new Sk.builtin.func(Sk.builtin.id),reduce:new Sk.builtin.func(Sk.builtin.reduce),sorted:new Sk.builtin.func(Sk.builtin.sorted),any:new Sk.builtin.func(Sk.builtin.any),all:new Sk.builtin.func(Sk.builtin.all),BaseException:Sk.builtin.BaseException,AttributeError:Sk.builtin.AttributeError,ValueError:Sk.builtin.ValueError,Exception:Sk.builtin.Exception,ZeroDivisionError:Sk.builtin.ZeroDivisionError,
1066
AssertionError:Sk.builtin.AssertionError,ImportError:Sk.builtin.ImportError,IndentationError:Sk.builtin.IndentationError,IndexError:Sk.builtin.IndexError,KeyError:Sk.builtin.KeyError,TypeError:Sk.builtin.TypeError,LookupError:Sk.builtin.LookupError,UnicodeDecodeError:Sk.builtin.UnicodeDecodeError,UnicodeEncodeError:Sk.builtin.UnicodeEncodeError,NameError:Sk.builtin.NameError,IOError:Sk.builtin.IOError,NotImplementedError:Sk.builtin.NotImplementedError,StandardError:Sk.builtin.StandardError,SystemExit:Sk.builtin.SystemExit,
1067
OverflowError:Sk.builtin.OverflowError,OperationError:Sk.builtin.OperationError,NegativePowerError:Sk.builtin.NegativePowerError,RuntimeError:Sk.builtin.RuntimeError,StopIteration:Sk.builtin.StopIteration,SyntaxError:Sk.builtin.SyntaxError,float_$rw$:Sk.builtin.float_,int_$rw$:Sk.builtin.int_,bool:Sk.builtin.bool,complex:Sk.builtin.complex,enumerate:Sk.builtin.enumerate,dict:Sk.builtin.dict,file:Sk.builtin.file,"function":Sk.builtin.func,generator:Sk.builtin.generator,list:Sk.builtin.list,long_$rw$:Sk.builtin.lng,
1068
method:Sk.builtin.method,object:Sk.builtin.object,slice:Sk.builtin.slice,str:Sk.builtin.str,set:Sk.builtin.set,tuple:Sk.builtin.tuple,type:Sk.builtin.type,input:new Sk.builtin.func(Sk.builtin.input),raw_input:new Sk.builtin.func(Sk.builtin.raw_input),setattr:new Sk.builtin.func(Sk.builtin.setattr),jseval:Sk.builtin.jseval,jsmillis:Sk.builtin.jsmillis,quit:new Sk.builtin.func(Sk.builtin.quit),exit:new Sk.builtin.func(Sk.builtin.quit),print:Sk.builtin.print,divmod:new Sk.builtin.func(Sk.builtin.divmod),
1069
format:new Sk.builtin.func(Sk.builtin.format),globals:new Sk.builtin.func(Sk.builtin.globals),issubclass:new Sk.builtin.func(Sk.builtin.issubclass),iter:Sk.builtin.iter,bytearray:Sk.builtin.bytearray,callable:Sk.builtin.callable,delattr:Sk.builtin.delattr,eval_$rw$:Sk.builtin.eval_,execfile:Sk.builtin.execfile,frozenset:Sk.builtin.frozenset,help:Sk.builtin.help,locals:Sk.builtin.locals,memoryview:Sk.builtin.memoryview,next:Sk.builtin.next_,pow:Sk.builtin.pow,reload:Sk.builtin.reload,reversed:Sk.builtin.reversed,
1070
"super":Sk.builtin.super_,unichr:Sk.builtin.unichr,vars:Sk.builtin.vars,xrange:Sk.builtin.xrange,apply_$rw$:Sk.builtin.apply_,buffer:Sk.builtin.buffer,coerce:Sk.builtin.coerce,intern:Sk.builtin.intern};Sk.setupObjects=function(a){a?(Sk.builtins.filter=Sk.builtin.filter_,Sk.builtins.map=Sk.builtin.map_,Sk.builtins.zip=Sk.builtin.zip_,Sk.builtins.bytes=Sk.builtin.bytes,Sk.builtins.range=new Sk.builtin.func(Sk.builtin.xrange),delete Sk.builtins.xrange,delete Sk.builtins.StandardError,delete Sk.builtins.unicode,
1071
delete Sk.builtins.basestring,delete Sk.builtin.str.prototype.decode,Sk.builtins.bytes=Sk.builtin.bytes,Sk.builtins.ascii=new Sk.builtin.func(Sk.builtin.ascii)):(Sk.builtins.filter=new Sk.builtin.func(Sk.builtin.filter),Sk.builtins.map=new Sk.builtin.func(Sk.builtin.map),Sk.builtins.zip=new Sk.builtin.func(Sk.builtin.zip),Sk.builtins.range=new Sk.builtin.func(Sk.builtin.range),Sk.builtins.xrange=new Sk.builtin.func(Sk.builtin.xrange),Sk.builtins.StandardError=Sk.builtin.Exception,Sk.builtins.unicode=
1072
Sk.builtin.str,Sk.builtins.basestring=Sk.builtin.str,Sk.builtin.str.prototype.decode=Sk.builtin.str.$py2decode,delete Sk.builtins.bytes,delete Sk.builtins.ascii)};Sk.exportSymbol("Sk.setupObjects",Sk.setupObjects);Sk.exportSymbol("Sk.builtins",Sk.builtins)},function(m,p){Sk.builtin.str.$emptystr=new Sk.builtin.str("");Sk.builtin.int_.co_varnames=["number","base"];Sk.builtin.int_.$defaults=[0,Sk.builtin.none.none$];Sk.builtin.lng.co_varnames=["number","base"];Sk.builtin.lng.$defaults=[0,Sk.builtin.none.none$];
1073
Sk.builtin.sorted.co_varnames=["list","cmp","key","reverse"];Sk.builtin.sorted.$defaults=[Sk.builtin.none.none$,Sk.builtin.none.none$,Sk.builtin.bool.false$];Sk.builtin.dict.$fromkeys.co_name=new Sk.builtin.str("fromkeys");Sk.builtin.dict.prototype.fromkeys=new Sk.builtin.func(Sk.builtin.dict.$fromkeys);Sk.builtin.str.$empty=new Sk.builtin.str("");Sk.builtin.str.$utf8=new Sk.builtin.str("utf-8");Sk.builtin.str.$ascii=new Sk.builtin.str("ascii");Sk.builtin.str.$default_factory=new Sk.builtin.str("default_factory");
1074
Sk.builtin.str.$imag=new Sk.builtin.str("imag");Sk.builtin.str.$real=new Sk.builtin.str("real");Sk.builtin.str.$abs=new Sk.builtin.str("__abs__");Sk.builtin.str.$bytes=new Sk.builtin.str("__bytes__");Sk.builtin.str.$call=new Sk.builtin.str("__call__");Sk.builtin.str.$cmp=new Sk.builtin.str("__cmp__");Sk.builtin.str.$complex=new Sk.builtin.str("__complex__");Sk.builtin.str.$contains=new Sk.builtin.str("__contains__");Sk.builtin.str.$copy=new Sk.builtin.str("__copy__");Sk.builtin.str.$dict=new Sk.builtin.str("__dict__");
1075
Sk.builtin.str.$dir=new Sk.builtin.str("__dir__");Sk.builtin.str.$enter=new Sk.builtin.str("__enter__");Sk.builtin.str.$eq=new Sk.builtin.str("__eq__");Sk.builtin.str.$exit=new Sk.builtin.str("__exit__");Sk.builtin.str.$index=new Sk.builtin.str("__index__");Sk.builtin.str.$init=new Sk.builtin.str("__init__");Sk.builtin.str.$int_=new Sk.builtin.str("__int__");Sk.builtin.str.$iter=new Sk.builtin.str("__iter__");Sk.builtin.str.$float_=new Sk.builtin.str("__float__");Sk.builtin.str.$format=new Sk.builtin.str("__format__");
1076
Sk.builtin.str.$ge=new Sk.builtin.str("__ge__");Sk.builtin.str.$getattr=new Sk.builtin.str("__getattr__");Sk.builtin.str.$getattribute=new Sk.builtin.str("__getattribute__");Sk.builtin.str.$getitem=new Sk.builtin.str("__getitem__");Sk.builtin.str.$gt=new Sk.builtin.str("__gt__");Sk.builtin.str.$le=new Sk.builtin.str("__le__");Sk.builtin.str.$len=new Sk.builtin.str("__len__");Sk.builtin.str.$lt=new Sk.builtin.str("__lt__");Sk.builtin.str.$module=new Sk.builtin.str("__module__");Sk.builtin.str.$name=
1077
new Sk.builtin.str("__name__");Sk.builtin.str.$ne=new Sk.builtin.str("__ne__");Sk.builtin.str.$new=new Sk.builtin.str("__new__");Sk.builtin.str.$next=new Sk.builtin.str("__next__");Sk.builtin.str.$path=new Sk.builtin.str("__path__");Sk.builtin.str.$repr=new Sk.builtin.str("__repr__");Sk.builtin.str.$reversed=new Sk.builtin.str("__reversed__");Sk.builtin.str.$round=new Sk.builtin.str("__round__");Sk.builtin.str.$setattr=new Sk.builtin.str("__setattr__");Sk.builtin.str.$setitem=new Sk.builtin.str("__setitem__");
1078
Sk.builtin.str.$str=new Sk.builtin.str("__str__");Sk.builtin.str.$trunc=new Sk.builtin.str("__trunc__");Sk.builtin.str.$write=new Sk.builtin.str("write");Sk.misceval.op2method_={Eq:Sk.builtin.str.$eq,NotEq:Sk.builtin.str.$ne,Gt:Sk.builtin.str.$gt,GtE:Sk.builtin.str.$ge,Lt:Sk.builtin.str.$lt,LtE:Sk.builtin.str.$le};m="int_ lng sorted range round len min max sum zip abs fabs ord chr hex oct bin dir repr open isinstance hash getattr hasattr id map filter reduce sorted any all input raw_input setattr quit quit divmod format globals issubclass".split(" ");
1079
for(p=0;p<m.length;p++)Sk.builtin[m[p]].co_name=new Sk.builtin.str(m[p])},function(m,p){Sk.internalPy={files:{"src/classmethod.py":'class classmethod(object):\n    "Emulate PyClassMethod_Type() in Objects/funcobject.c"\n\n    def __init__(self, f):\n        self.f = f\n\n    def __get__(self, obj, klass=None):\n        if klass is None:\n            klass = type(obj)\n        def newfunc(*args):\n            return self.f(klass, *args)\n        return newfunc\n',"src/property.py":'class property(object):\n    "Emulate PyProperty_Type() in Objects/descrobject.c"\n\n    def __init__(self, fget=None, fset=None, fdel=None, doc=None):\n        self.fget = fget\n        self.fset = fset\n        self.fdel = fdel\n        if doc is None and fget is not None:\n            if hasattr(fget, \'__doc__\'):\n                doc = fget.__doc__\n            else:\n                doc = None\n        self.__doc__ = doc\n\n    def __get__(self, obj, objtype=None):\n        if obj is None:\n            return self\n        if self.fget is None:\n            raise AttributeError("unreadable attribute")\n        return self.fget(obj)\n\n    def __set__(self, obj, value):\n        if self.fset is None:\n            raise AttributeError("can\'t set attribute")\n        self.fset(obj, value)\n\n    def __delete__(self, obj):\n        if self.fdel is None:\n            raise AttributeError("can\'t delete attribute")\n        self.fdel(obj)\n\n    def getter(self, fget):\n        return type(self)(fget, self.fset, self.fdel, self.__doc__)\n\n    def setter(self, fset):\n        return type(self)(self.fget, fset, self.fdel, self.__doc__)\n\n    def deleter(self, fdel):\n        return type(self)(self.fget, self.fset, fdel, self.__doc__)\n',
1080
"src/staticmethod.py":'class staticmethod(object):\n    "Emulate PyStaticMethod_Type() in Objects/funcobject.c"\n\n    def __init__(self, f):\n        self.f = f\n\n    def __get__(self, obj, objtype=None):\n        return self.f\n'}}}]);}).call(this || window)
1081
1082
//# sourceMappingURL=skulpt.min.js.map
14575 bpr 1083