From 36c8d85a45973cbfd97c0897548994293924f48e Mon Sep 17 00:00:00 2001 From: Andrea Giammarchi Date: Tue, 5 Sep 2017 17:36:25 +0100 Subject: [PATCH 1/4] Introducing Majin Buu as core engine to update any content. Based on Levenshtein distance, Majin Buu can transform any collection of nodes into a new collection. It's not by accident that it plays so well with node lists that from a shape would like to become another, performing the least amount of DOM operations. --- .npmignore | 2 + coverage/coverage.json | 2 +- .../lcov-report/hyperHTML/hyperhtml.js.html | 84 +- coverage/lcov-report/hyperHTML/index.html | 20 +- coverage/lcov-report/hyperHTML/index.js.html | 4274 +++++++++++++++++ coverage/lcov-report/index.html | 18 +- coverage/lcov.info | 1951 ++++---- hyperhtml.js | 554 +-- index.js | 1403 ++++++ majinbuu.js | 12 + min.js | 5 +- package-lock.json | 2497 ++++++++++ package.json | 10 +- test/adopt.html | 2 +- test/basic.html | 2 +- test/boot-speed.html | 2 +- test/edge.html | 2 +- test/ie.html | 2 +- test/ie/index.html | 2 +- test/ie/test/test.js | 120 +- test/index.html | 2 +- test/lib.html | 2 +- test/many-rows-adopted.html | 2 +- test/many-rows.html | 2 +- test/my-button.html | 2 +- test/runner.js | 11 +- test/test.js | 58 +- test/value.html | 2 +- test/virtual.html | 2 +- test/webkit.html | 2 +- 30 files changed, 9669 insertions(+), 1380 deletions(-) create mode 100644 coverage/lcov-report/hyperHTML/index.js.html create mode 100644 index.js create mode 100644 majinbuu.js create mode 100644 package-lock.json diff --git a/.npmignore b/.npmignore index 8531b1ac..f333da11 100644 --- a/.npmignore +++ b/.npmignore @@ -9,3 +9,5 @@ _config.yml .DS_Store .gitignore .travis.yml +majinbuu.js +hyperhtml.js \ No newline at end of file diff --git a/coverage/coverage.json b/coverage/coverage.json index 060893cd..26ea4c3c 100644 --- a/coverage/coverage.json +++ b/coverage/coverage.json @@ -1 +1 @@ -{"/home/webreflection/code/hyperHTML/hyperhtml.js":{"path":"/home/webreflection/code/hyperHTML/hyperhtml.js","s":{"1":2,"2":2,"3":2,"4":1,"5":20,"6":2,"7":28,"8":32,"9":32,"10":32,"11":32,"12":2,"13":1,"14":208,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":62,"22":2,"23":1,"24":2,"25":6,"26":6,"27":6,"28":4,"29":6,"30":6,"31":6,"32":11,"33":6,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":1,"46":48,"47":48,"48":34,"49":22,"50":12,"51":36,"52":1,"53":16,"54":8,"55":8,"56":2,"57":2,"58":6,"59":6,"60":6,"61":4,"62":6,"63":2,"64":2,"65":1,"66":88,"67":88,"68":26,"69":26,"70":1,"71":148,"72":148,"73":1,"74":18,"75":18,"76":2,"77":2,"78":2,"79":16,"80":16,"81":1,"82":278,"83":278,"84":154,"85":154,"86":278,"87":278,"88":1,"89":48,"90":48,"91":12,"92":48,"93":24,"94":48,"95":30,"96":18,"97":4,"98":18,"99":18,"100":16,"101":20,"102":16,"103":16,"104":14,"105":4,"106":4,"107":10,"108":48,"109":36,"110":36,"111":34,"112":4,"113":2,"114":2,"115":30,"116":30,"117":2,"118":2,"119":1,"120":106,"121":106,"122":106,"123":288,"124":120,"125":56,"126":50,"127":50,"128":64,"129":22,"130":8,"131":8,"132":42,"133":42,"134":42,"135":42,"136":120,"137":4,"138":2,"139":2,"140":4,"141":164,"142":6,"143":6,"144":6,"145":158,"146":2,"147":158,"148":158,"149":74,"150":74,"151":2,"152":2,"153":72,"154":24,"155":24,"156":10,"157":10,"158":10,"159":12,"160":10,"161":8,"162":10,"163":10,"164":36,"165":8,"166":36,"167":4,"168":4,"169":32,"170":64,"171":4,"172":34,"173":26,"174":26,"175":18,"176":8,"177":34,"178":84,"179":24,"180":16,"181":8,"182":60,"183":4,"184":56,"185":10,"186":46,"187":4,"188":42,"189":4,"190":38,"191":28,"192":28,"193":18,"194":10,"195":10,"196":10,"197":10,"198":10,"199":4,"200":6,"201":158,"202":1,"203":118,"204":56,"205":56,"206":48,"207":48,"208":1,"209":228,"210":312,"211":312,"212":118,"213":118,"214":118,"215":66,"216":64,"217":64,"218":24,"219":24,"220":40,"221":66,"222":128,"223":4,"224":4,"225":128,"226":2,"227":2,"228":2,"229":2,"230":2,"231":2,"232":2,"233":2,"234":2,"235":1,"236":4,"237":1,"238":2,"239":1,"240":62,"241":90,"242":90,"243":66,"244":62,"245":1,"246":150,"247":1,"248":120,"249":1,"250":118,"251":118,"252":118,"253":118,"254":118,"255":118,"256":56,"257":56,"258":118,"259":1,"260":1,"261":1,"262":117,"263":117,"264":62,"265":55,"266":118,"267":1,"268":2,"269":2,"270":2,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":2,"278":1,"279":46,"280":1,"281":46,"282":58,"283":8,"284":8,"285":6,"286":8,"287":8,"288":12,"289":12,"290":12,"291":12,"292":12,"293":12,"294":12,"295":12,"296":2,"297":2,"298":4,"299":10,"300":10,"301":12,"302":12,"303":2,"304":10,"305":12,"306":10,"307":12,"308":38,"309":38,"310":38,"311":46,"312":1,"313":4,"314":4,"315":4,"316":1,"317":12,"318":10,"319":2,"320":1,"321":46,"322":46,"323":4,"324":4,"325":2,"326":46,"327":1,"328":30,"329":1,"330":10,"331":10,"332":2,"333":8,"334":2,"335":6,"336":2,"337":4,"338":1,"339":10,"340":10,"341":8,"342":1,"343":84,"344":1,"345":96,"346":1,"347":6,"348":6,"349":42,"350":18,"351":1,"352":68,"353":68,"354":1,"355":154,"356":24,"357":1,"358":14,"359":14,"360":4,"361":4,"362":1,"363":154,"364":154,"365":54,"366":54,"367":48,"368":48,"369":52,"370":52,"371":154,"372":1,"373":16,"374":16,"375":12,"376":12,"377":12,"378":12,"379":12,"380":12,"381":12,"382":1,"383":116,"384":2,"385":2,"386":162,"387":89,"388":2,"389":1,"390":1,"391":77,"392":55,"393":2,"394":1,"395":1,"396":1,"397":97,"398":2,"399":41,"400":2,"401":2,"402":2,"403":2,"404":1,"405":1,"406":203,"407":203,"408":2,"409":76,"410":20,"411":30,"412":2,"413":143,"414":363,"415":363,"416":205,"417":143,"418":82,"419":2,"420":81,"421":111,"422":111,"423":61,"424":61,"425":50,"426":50,"427":81,"428":81,"429":111,"430":81,"431":2,"432":2,"433":2,"434":38,"435":2,"436":48,"437":2,"438":7,"439":8,"440":6,"441":1,"442":7,"443":2,"444":6,"445":6,"446":4,"447":2,"448":6,"449":2,"450":2,"451":2,"452":2,"453":2,"454":2,"455":2,"456":2,"457":204,"458":143,"459":204,"460":61,"461":1,"462":110,"463":110,"464":110,"465":110,"466":110,"467":110,"468":1,"469":116,"470":116,"471":116,"472":28,"473":28,"474":40,"475":40,"476":40,"477":48,"478":48,"479":48,"480":116,"481":92,"482":116,"483":1,"484":122,"485":108,"486":108,"487":108,"488":10,"489":10,"490":108,"491":122,"492":122,"493":1,"494":32,"495":46,"496":46,"497":46,"498":32,"499":32,"500":1,"501":278,"502":296,"503":1,"504":154,"505":77,"506":154,"507":154,"508":154,"509":122,"510":122,"511":122,"512":32,"513":154,"514":1,"515":60,"516":1,"517":60,"518":60,"519":60,"520":1,"521":90,"522":62,"523":62,"524":8,"525":62,"526":90,"527":60,"528":14,"529":14,"530":7,"531":14,"532":10,"533":10,"534":10,"535":14,"536":10,"537":2,"538":2,"539":2,"540":8,"541":2,"542":8,"543":14,"544":14,"545":14,"546":76,"547":38,"548":76,"549":52,"550":52,"551":52,"552":76,"553":76,"554":1,"555":46,"556":46,"557":46,"558":46,"559":12,"560":12,"561":46,"562":24,"563":24,"564":46,"565":2,"566":2,"567":2},"b":{"1":[14,6],"2":[2,12],"3":[2,10],"4":[2,8],"5":[4,4],"6":[2,4],"7":[14,48],"8":[6,42],"9":[6,2],"10":[42,16],"11":[6,4,4],"12":[2,4],"13":[22,12],"14":[34,28],"15":[14,22],"16":[8,6,2],"17":[2,6],"18":[4,2],"19":[2,16],"20":[154,124],"21":[278,162],"22":[81,81],"23":[48,46,20],"24":[14,34],"25":[48,34],"26":[12,36],"27":[48,14],"28":[24,24],"29":[14,34],"30":[18,12],"31":[4,14],"32":[16,2],"33":[10,24],"34":[16,4],"35":[14,2],"36":[4,10],"37":[36,12],"38":[34,2],"39":[4,30],"40":[2,2],"41":[2,28],"42":[106,118,120,4,160,164,158],"43":[56,64],"44":[50,6],"45":[22,42],"46":[64,24],"47":[8,14],"48":[2,2],"49":[6,158],"50":[2,156],"51":[74,84],"52":[2,72],"53":[74,4],"54":[16,24,24,10,36,34],"55":[8,2],"56":[8,2],"57":[8,2],"58":[8,28],"59":[4,32],"60":[4,60],"61":[26,8],"62":[18,8],"63":[24,60],"64":[16,8],"65":[2,6],"66":[4,56],"67":[10,46],"68":[4,42],"69":[4,38],"70":[28,10],"71":[18,10],"72":[4,6],"73":[48,8],"74":[118,66,128],"75":[64,2],"76":[24,40],"77":[64,50,18],"78":[4,124],"79":[128,4],"80":[2,1,1],"81":[66,24],"82":[90,38],"83":[54,8],"84":[2,118],"85":[56,62],"86":[1,117],"87":[62,55],"88":[1,1],"89":[2,1],"90":[8,12,38],"91":[6,2],"92":[8,4],"93":[10,2],"94":[2,4,10],"95":[2,10],"96":[10,2],"97":[38,8],"98":[4,4],"99":[4,4],"100":[10,2],"101":[4,42],"102":[46,46],"103":[2,2],"104":[46,46],"105":[2,8],"106":[2,6],"107":[2,4],"108":[8,2],"109":[96,96],"110":[42,14],"111":[92,64,40],"112":[4,10],"113":[14,10],"114":[54,48,52],"115":[12,4],"116":[1,1],"117":[1,1],"118":[2,1],"119":[2,1],"120":[1,1],"121":[203,55],"122":[1,1],"123":[1,1],"124":[2,1],"125":[205,158],"126":[1,1],"127":[2,1],"128":[61,50],"129":[48,22],"130":[48,22],"131":[1,1],"132":[6,2],"133":[1,1],"134":[4,2],"135":[1,1],"136":[26,28,40,16,48],"137":[10,98],"138":[77,77],"139":[154,110],"140":[122,32],"141":[8,52],"142":[62,28],"143":[8,54],"144":[8,52],"145":[7,7],"146":[10,4],"147":[10,4],"148":[2,8],"149":[2,6],"150":[38,38],"151":[52,24],"152":[12,34],"153":[12,12],"154":[24,22],"155":[46,26]},"f":{"1":2,"2":20,"3":28,"4":32,"5":208,"6":2,"7":2,"8":62,"9":14,"10":6,"11":6,"12":4,"13":6,"14":48,"15":16,"16":88,"17":148,"18":18,"19":278,"20":48,"21":30,"22":20,"23":48,"24":106,"25":288,"26":118,"27":228,"28":2,"29":4,"30":2,"31":62,"32":150,"33":120,"34":118,"35":2,"36":46,"37":46,"38":4,"39":12,"40":46,"41":30,"42":10,"43":10,"44":84,"45":96,"46":6,"47":42,"48":18,"49":68,"50":154,"51":14,"52":154,"53":16,"54":116,"55":2,"56":162,"57":89,"58":1,"59":77,"60":55,"61":1,"62":97,"63":41,"64":203,"65":76,"66":20,"67":143,"68":82,"69":81,"70":81,"71":38,"72":48,"73":7,"74":7,"75":6,"76":6,"77":2,"78":204,"79":61,"80":110,"81":116,"82":122,"83":32,"84":278,"85":154,"86":60,"87":60,"88":90,"89":14,"90":14,"91":76,"92":46},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":43}}},"2":{"name":"hyper","line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":16,"column":23}}},"3":{"name":"adopt","line":38,"loc":{"start":{"line":38,"column":16},"end":{"line":38,"column":37}}},"4":{"name":"(anonymous_4)","line":39,"loc":{"start":{"line":39,"column":11},"end":{"line":39,"column":23}}},"5":{"name":"bind","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":25}}},"6":{"name":"define","line":53,"loc":{"start":{"line":53,"column":17},"end":{"line":53,"column":56}}},"7":{"name":"escape","line":58,"loc":{"start":{"line":58,"column":17},"end":{"line":58,"column":39}}},"8":{"name":"wire","line":65,"loc":{"start":{"line":65,"column":2},"end":{"line":65,"column":27}}},"9":{"name":"Component","line":79,"loc":{"start":{"line":79,"column":2},"end":{"line":79,"column":23}}},"10":{"name":"(anonymous_10)","line":84,"loc":{"start":{"line":84,"column":27},"end":{"line":84,"column":40}}},"11":{"name":"(anonymous_11)","line":97,"loc":{"start":{"line":97,"column":33},"end":{"line":97,"column":45}}},"12":{"name":"(anonymous_12)","line":99,"loc":{"start":{"line":99,"column":26},"end":{"line":99,"column":38}}},"13":{"name":"(anonymous_13)","line":101,"loc":{"start":{"line":101,"column":24},"end":{"line":101,"column":41}}},"14":{"name":"indexOfDifferences","line":143,"loc":{"start":{"line":143,"column":2},"end":{"line":143,"column":36}}},"15":{"name":"populateNode","line":159,"loc":{"start":{"line":159,"column":2},"end":{"line":159,"column":39}}},"16":{"name":"removeNodeList","line":181,"loc":{"start":{"line":181,"column":2},"end":{"line":181,"column":44}}},"17":{"name":"resetAndPopulate","line":190,"loc":{"start":{"line":190,"column":2},"end":{"line":190,"column":43}}},"18":{"name":"updateViaArray","line":196,"loc":{"start":{"line":196,"column":2},"end":{"line":196,"column":47}}},"19":{"name":"render","line":213,"loc":{"start":{"line":213,"column":2},"end":{"line":213,"column":28}}},"20":{"name":"setAttribute","line":230,"loc":{"start":{"line":230,"column":2},"end":{"line":230,"column":59}}},"21":{"name":"eventAttr","line":244,"loc":{"start":{"line":244,"column":6},"end":{"line":244,"column":35}}},"22":{"name":"specialAttr","line":252,"loc":{"start":{"line":252,"column":8},"end":{"line":252,"column":39}}},"23":{"name":"normalAttr","line":272,"loc":{"start":{"line":272,"column":8},"end":{"line":272,"column":38}}},"24":{"name":"setVirtualContent","line":299,"loc":{"start":{"line":299,"column":2},"end":{"line":299,"column":47}}},"25":{"name":"anyVirtual","line":302,"loc":{"start":{"line":302,"column":11},"end":{"line":302,"column":38}}},"26":{"name":"attributesSeeker","line":434,"loc":{"start":{"line":434,"column":2},"end":{"line":434,"column":48}}},"27":{"name":"hyperSeeker","line":460,"loc":{"start":{"line":460,"column":2},"end":{"line":460,"column":43}}},"28":{"name":"(anonymous_28)","line":514,"loc":{"start":{"line":514,"column":13},"end":{"line":514,"column":25}}},"29":{"name":"fnEscape","line":539,"loc":{"start":{"line":539,"column":2},"end":{"line":539,"column":23}}},"30":{"name":"asHTML","line":544,"loc":{"start":{"line":544,"column":2},"end":{"line":544,"column":24}}},"31":{"name":"createContent","line":549,"loc":{"start":{"line":549,"column":2},"end":{"line":549,"column":31}}},"32":{"name":"createDocumentFragment","line":570,"loc":{"start":{"line":570,"column":2},"end":{"line":570,"column":44}}},"33":{"name":"createFragment","line":576,"loc":{"start":{"line":576,"column":2},"end":{"line":576,"column":38}}},"34":{"name":"createHTMLFragment","line":585,"loc":{"start":{"line":585,"column":2},"end":{"line":585,"column":42}}},"35":{"name":"createSVGFragment","line":621,"loc":{"start":{"line":621,"column":2},"end":{"line":621,"column":41}}},"36":{"name":"createText","line":637,"loc":{"start":{"line":637,"column":2},"end":{"line":637,"column":34}}},"37":{"name":"discoverNode","line":643,"loc":{"start":{"line":643,"column":2},"end":{"line":643,"column":63}}},"38":{"name":"getCEClass","line":723,"loc":{"start":{"line":723,"column":2},"end":{"line":723,"column":28}}},"39":{"name":"insertBefore","line":730,"loc":{"start":{"line":730,"column":2},"end":{"line":730,"column":51}}},"40":{"name":"isSpecialAttribute","line":740,"loc":{"start":{"line":740,"column":2},"end":{"line":740,"column":42}}},"41":{"name":"emptyFragment","line":750,"loc":{"start":{"line":750,"column":2},"end":{"line":750,"column":31}}},"42":{"name":"invokeAtDistance","line":755,"loc":{"start":{"line":755,"column":2},"end":{"line":755,"column":45}}},"43":{"name":"invokeTransformer","line":769,"loc":{"start":{"line":769,"column":2},"end":{"line":769,"column":37}}},"44":{"name":"isNode_ish","line":778,"loc":{"start":{"line":778,"column":2},"end":{"line":778,"column":29}}},"45":{"name":"isPromise_ish","line":783,"loc":{"start":{"line":783,"column":2},"end":{"line":783,"column":32}}},"46":{"name":"lazyGetter","line":789,"loc":{"start":{"line":789,"column":2},"end":{"line":789,"column":32}}},"47":{"name":"(anonymous_47)","line":792,"loc":{"start":{"line":792,"column":11},"end":{"line":792,"column":23}}},"48":{"name":"(anonymous_48)","line":795,"loc":{"start":{"line":795,"column":11},"end":{"line":795,"column":28}}},"49":{"name":"noContent","line":803,"loc":{"start":{"line":803,"column":2},"end":{"line":803,"column":38}}},"50":{"name":"removeAttributeList","line":813,"loc":{"start":{"line":813,"column":2},"end":{"line":813,"column":37}}},"51":{"name":"removePreviousText","line":820,"loc":{"start":{"line":820,"column":2},"end":{"line":820,"column":48}}},"52":{"name":"setContent","line":829,"loc":{"start":{"line":829,"column":2},"end":{"line":829,"column":66}}},"53":{"name":"updateVirtualNodes","line":847,"loc":{"start":{"line":847,"column":2},"end":{"line":847,"column":55}}},"54":{"name":"Path","line":861,"loc":{"start":{"line":861,"column":2},"end":{"line":861,"column":34}}},"55":{"name":"(anonymous_55)","line":871,"loc":{"start":{"line":871,"column":6},"end":{"line":871,"column":18}}},"56":{"name":"(anonymous_56)","line":873,"loc":{"start":{"line":873,"column":15},"end":{"line":873,"column":30}}},"57":{"name":"(anonymous_57)","line":874,"loc":{"start":{"line":874,"column":15},"end":{"line":874,"column":37}}},"58":{"name":"(anonymous_58)","line":886,"loc":{"start":{"line":886,"column":6},"end":{"line":886,"column":18}}},"59":{"name":"(anonymous_59)","line":889,"loc":{"start":{"line":889,"column":15},"end":{"line":889,"column":30}}},"60":{"name":"(anonymous_60)","line":895,"loc":{"start":{"line":895,"column":15},"end":{"line":895,"column":37}}},"61":{"name":"(anonymous_61)","line":906,"loc":{"start":{"line":906,"column":17},"end":{"line":906,"column":29}}},"62":{"name":"(anonymous_62)","line":911,"loc":{"start":{"line":911,"column":25},"end":{"line":911,"column":38}}},"63":{"name":"(anonymous_63)","line":918,"loc":{"start":{"line":918,"column":14},"end":{"line":918,"column":26}}},"64":{"name":"(anonymous_64)","line":934,"loc":{"start":{"line":934,"column":13},"end":{"line":934,"column":33}}},"65":{"name":"(anonymous_65)","line":943,"loc":{"start":{"line":943,"column":6},"end":{"line":943,"column":34}}},"66":{"name":"appendNodes","line":946,"loc":{"start":{"line":946,"column":6},"end":{"line":946,"column":45}}},"67":{"name":"(anonymous_67)","line":958,"loc":{"start":{"line":958,"column":6},"end":{"line":958,"column":22}}},"68":{"name":"(anonymous_68)","line":972,"loc":{"start":{"line":972,"column":6},"end":{"line":972,"column":22}}},"69":{"name":"(anonymous_69)","line":977,"loc":{"start":{"line":977,"column":6},"end":{"line":977,"column":34}}},"70":{"name":"(anonymous_70)","line":991,"loc":{"start":{"line":991,"column":6},"end":{"line":991,"column":34}}},"71":{"name":"(anonymous_71)","line":1001,"loc":{"start":{"line":1001,"column":17},"end":{"line":1001,"column":43}}},"72":{"name":"(anonymous_72)","line":1005,"loc":{"start":{"line":1005,"column":26},"end":{"line":1005,"column":48}}},"73":{"name":"(anonymous_73)","line":1011,"loc":{"start":{"line":1011,"column":4},"end":{"line":1011,"column":20}}},"74":{"name":"(anonymous_74)","line":1017,"loc":{"start":{"line":1017,"column":4},"end":{"line":1017,"column":20}}},"75":{"name":"(anonymous_75)","line":1020,"loc":{"start":{"line":1020,"column":4},"end":{"line":1020,"column":20}}},"76":{"name":"(anonymous_76)","line":1026,"loc":{"start":{"line":1026,"column":4},"end":{"line":1026,"column":20}}},"77":{"name":"(anonymous_77)","line":1042,"loc":{"start":{"line":1042,"column":19},"end":{"line":1042,"column":31}}},"78":{"name":"(anonymous_78)","line":1046,"loc":{"start":{"line":1046,"column":6},"end":{"line":1046,"column":22}}},"79":{"name":"(anonymous_79)","line":1057,"loc":{"start":{"line":1057,"column":6},"end":{"line":1057,"column":26}}},"80":{"name":"createTemplate","line":1068,"loc":{"start":{"line":1068,"column":2},"end":{"line":1068,"column":36}}},"81":{"name":"createPath","line":1080,"loc":{"start":{"line":1080,"column":2},"end":{"line":1080,"column":28}}},"82":{"name":"createUpdates","line":1114,"loc":{"start":{"line":1114,"column":2},"end":{"line":1114,"column":42}}},"83":{"name":"discoverUpdates","line":1135,"loc":{"start":{"line":1135,"column":2},"end":{"line":1135,"column":44}}},"84":{"name":"update","line":1157,"loc":{"start":{"line":1157,"column":2},"end":{"line":1157,"column":20}}},"85":{"name":"upgrade","line":1165,"loc":{"start":{"line":1165,"column":2},"end":{"line":1165,"column":29}}},"86":{"name":"wireContent","line":1185,"loc":{"start":{"line":1185,"column":2},"end":{"line":1185,"column":29}}},"87":{"name":"before","line":1188,"loc":{"start":{"line":1188,"column":4},"end":{"line":1188,"column":30}}},"88":{"name":"after","line":1196,"loc":{"start":{"line":1196,"column":4},"end":{"line":1196,"column":21}}},"89":{"name":"adopt","line":1208,"loc":{"start":{"line":1208,"column":6},"end":{"line":1208,"column":30}}},"90":{"name":"(anonymous_90)","line":1214,"loc":{"start":{"line":1214,"column":20},"end":{"line":1214,"column":55}}},"91":{"name":"update","line":1235,"loc":{"start":{"line":1235,"column":6},"end":{"line":1235,"column":31}}},"92":{"name":"wireWeakly","line":1248,"loc":{"start":{"line":1248,"column":2},"end":{"line":1248,"column":33}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1268,"column":13}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":34}},"3":{"start":{"line":14,"column":2},"end":{"line":14,"column":22}},"4":{"start":{"line":16,"column":2},"end":{"line":33,"column":3}},"5":{"start":{"line":17,"column":4},"end":{"line":32,"column":31}},"6":{"start":{"line":38,"column":2},"end":{"line":45,"column":4}},"7":{"start":{"line":39,"column":4},"end":{"line":44,"column":6}},"8":{"start":{"line":40,"column":6},"end":{"line":40,"column":26}},"9":{"start":{"line":41,"column":6},"end":{"line":41,"column":36}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":25}},"11":{"start":{"line":43,"column":6},"end":{"line":43,"column":18}},"12":{"start":{"line":49,"column":2},"end":{"line":49,"column":20}},"13":{"start":{"line":50,"column":2},"end":{"line":50,"column":57}},"14":{"start":{"line":50,"column":27},"end":{"line":50,"column":55}},"15":{"start":{"line":53,"column":2},"end":{"line":55,"column":4}},"16":{"start":{"line":54,"column":4},"end":{"line":54,"column":41}},"17":{"start":{"line":58,"column":2},"end":{"line":60,"column":4}},"18":{"start":{"line":59,"column":4},"end":{"line":59,"column":46}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":20}},"20":{"start":{"line":65,"column":2},"end":{"line":72,"column":3}},"21":{"start":{"line":66,"column":4},"end":{"line":71,"column":8}},"22":{"start":{"line":78,"column":2},"end":{"line":78,"column":30}},"23":{"start":{"line":79,"column":2},"end":{"line":79,"column":25}},"24":{"start":{"line":80,"column":2},"end":{"line":111,"column":4}},"25":{"start":{"line":86,"column":8},"end":{"line":86,"column":33}},"26":{"start":{"line":87,"column":8},"end":{"line":90,"column":13}},"27":{"start":{"line":97,"column":47},"end":{"line":97,"column":72}},"28":{"start":{"line":99,"column":40},"end":{"line":99,"column":50}},"29":{"start":{"line":102,"column":8},"end":{"line":102,"column":32}},"30":{"start":{"line":103,"column":8},"end":{"line":103,"column":84}},"31":{"start":{"line":104,"column":8},"end":{"line":104,"column":58}},"32":{"start":{"line":104,"column":32},"end":{"line":104,"column":58}},"33":{"start":{"line":105,"column":8},"end":{"line":105,"column":22}},"34":{"start":{"line":122,"column":2},"end":{"line":122,"column":23}},"35":{"start":{"line":123,"column":2},"end":{"line":123,"column":25}},"36":{"start":{"line":124,"column":2},"end":{"line":124,"column":20}},"37":{"start":{"line":125,"column":2},"end":{"line":125,"column":23}},"38":{"start":{"line":126,"column":2},"end":{"line":126,"column":34}},"39":{"start":{"line":129,"column":2},"end":{"line":129,"column":44}},"40":{"start":{"line":130,"column":2},"end":{"line":130,"column":51}},"41":{"start":{"line":132,"column":2},"end":{"line":132,"column":40}},"42":{"start":{"line":133,"column":2},"end":{"line":133,"column":32}},"43":{"start":{"line":134,"column":2},"end":{"line":134,"column":61}},"44":{"start":{"line":135,"column":2},"end":{"line":135,"column":34}},"45":{"start":{"line":143,"column":2},"end":{"line":154,"column":3}},"46":{"start":{"line":144,"column":4},"end":{"line":148,"column":5}},"47":{"start":{"line":149,"column":4},"end":{"line":152,"column":5}},"48":{"start":{"line":150,"column":6},"end":{"line":151,"column":20}},"49":{"start":{"line":150,"column":40},"end":{"line":150,"column":44}},"50":{"start":{"line":151,"column":11},"end":{"line":151,"column":20}},"51":{"start":{"line":153,"column":4},"end":{"line":153,"column":34}},"52":{"start":{"line":159,"column":2},"end":{"line":178,"column":3}},"53":{"start":{"line":160,"column":4},"end":{"line":177,"column":5}},"54":{"start":{"line":162,"column":8},"end":{"line":162,"column":43}},"55":{"start":{"line":163,"column":8},"end":{"line":166,"column":9}},"56":{"start":{"line":164,"column":10},"end":{"line":164,"column":40}},"57":{"start":{"line":165,"column":10},"end":{"line":165,"column":16}},"58":{"start":{"line":167,"column":8},"end":{"line":167,"column":40}},"59":{"start":{"line":168,"column":8},"end":{"line":168,"column":14}},"60":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"61":{"start":{"line":171,"column":10},"end":{"line":171,"column":42}},"62":{"start":{"line":173,"column":8},"end":{"line":173,"column":14}},"63":{"start":{"line":175,"column":8},"end":{"line":175,"column":47}},"64":{"start":{"line":176,"column":8},"end":{"line":176,"column":14}},"65":{"start":{"line":181,"column":2},"end":{"line":187,"column":3}},"66":{"start":{"line":182,"column":4},"end":{"line":182,"column":36}},"67":{"start":{"line":183,"column":4},"end":{"line":186,"column":5}},"68":{"start":{"line":184,"column":6},"end":{"line":184,"column":27}},"69":{"start":{"line":185,"column":6},"end":{"line":185,"column":42}},"70":{"start":{"line":190,"column":2},"end":{"line":193,"column":3}},"71":{"start":{"line":191,"column":4},"end":{"line":191,"column":28}},"72":{"start":{"line":192,"column":4},"end":{"line":192,"column":30}},"73":{"start":{"line":196,"column":2},"end":{"line":206,"column":3}},"74":{"start":{"line":197,"column":4},"end":{"line":197,"column":39}},"75":{"start":{"line":198,"column":4},"end":{"line":205,"column":5}},"76":{"start":{"line":199,"column":6},"end":{"line":199,"column":41}},"77":{"start":{"line":200,"column":6},"end":{"line":200,"column":49}},"78":{"start":{"line":201,"column":6},"end":{"line":201,"column":33}},"79":{"start":{"line":203,"column":6},"end":{"line":203,"column":40}},"80":{"start":{"line":204,"column":6},"end":{"line":204,"column":39}},"81":{"start":{"line":213,"column":2},"end":{"line":224,"column":3}},"82":{"start":{"line":214,"column":4},"end":{"line":214,"column":33}},"83":{"start":{"line":215,"column":4},"end":{"line":221,"column":5}},"84":{"start":{"line":219,"column":6},"end":{"line":219,"column":45}},"85":{"start":{"line":220,"column":6},"end":{"line":220,"column":30}},"86":{"start":{"line":222,"column":4},"end":{"line":222,"column":43}},"87":{"start":{"line":223,"column":4},"end":{"line":223,"column":16}},"88":{"start":{"line":230,"column":2},"end":{"line":295,"column":3}},"89":{"start":{"line":231,"column":4},"end":{"line":240,"column":5}},"90":{"start":{"line":241,"column":4},"end":{"line":241,"column":73}},"91":{"start":{"line":241,"column":47},"end":{"line":241,"column":73}},"92":{"start":{"line":242,"column":4},"end":{"line":242,"column":51}},"93":{"start":{"line":242,"column":17},"end":{"line":242,"column":51}},"94":{"start":{"line":243,"column":4},"end":{"line":294,"column":8}},"95":{"start":{"line":245,"column":8},"end":{"line":249,"column":9}},"96":{"start":{"line":246,"column":10},"end":{"line":246,"column":72}},"97":{"start":{"line":246,"column":24},"end":{"line":246,"column":72}},"98":{"start":{"line":247,"column":10},"end":{"line":247,"column":30}},"99":{"start":{"line":248,"column":10},"end":{"line":248,"column":69}},"100":{"start":{"line":248,"column":24},"end":{"line":248,"column":69}},"101":{"start":{"line":253,"column":10},"end":{"line":270,"column":11}},"102":{"start":{"line":254,"column":12},"end":{"line":254,"column":32}},"103":{"start":{"line":257,"column":12},"end":{"line":269,"column":13}},"104":{"start":{"line":261,"column":14},"end":{"line":268,"column":15}},"105":{"start":{"line":264,"column":16},"end":{"line":264,"column":34}},"106":{"start":{"line":265,"column":16},"end":{"line":265,"column":43}},"107":{"start":{"line":267,"column":16},"end":{"line":267,"column":38}},"108":{"start":{"line":273,"column":10},"end":{"line":292,"column":11}},"109":{"start":{"line":274,"column":12},"end":{"line":274,"column":32}},"110":{"start":{"line":277,"column":12},"end":{"line":291,"column":13}},"111":{"start":{"line":278,"column":14},"end":{"line":290,"column":15}},"112":{"start":{"line":279,"column":16},"end":{"line":283,"column":17}},"113":{"start":{"line":281,"column":18},"end":{"line":281,"column":33}},"114":{"start":{"line":282,"column":18},"end":{"line":282,"column":54}},"115":{"start":{"line":285,"column":16},"end":{"line":285,"column":43}},"116":{"start":{"line":286,"column":16},"end":{"line":289,"column":17}},"117":{"start":{"line":287,"column":18},"end":{"line":287,"column":34}},"118":{"start":{"line":288,"column":18},"end":{"line":288,"column":51}},"119":{"start":{"line":299,"column":2},"end":{"line":427,"column":3}},"120":{"start":{"line":300,"column":4},"end":{"line":300,"column":17}},"121":{"start":{"line":301,"column":4},"end":{"line":301,"column":34}},"122":{"start":{"line":302,"column":4},"end":{"line":426,"column":6}},"123":{"start":{"line":303,"column":6},"end":{"line":425,"column":7}},"124":{"start":{"line":307,"column":10},"end":{"line":325,"column":11}},"125":{"start":{"line":308,"column":12},"end":{"line":311,"column":13}},"126":{"start":{"line":309,"column":14},"end":{"line":309,"column":31}},"127":{"start":{"line":310,"column":14},"end":{"line":310,"column":39}},"128":{"start":{"line":312,"column":17},"end":{"line":325,"column":11}},"129":{"start":{"line":316,"column":12},"end":{"line":319,"column":13}},"130":{"start":{"line":317,"column":14},"end":{"line":317,"column":31}},"131":{"start":{"line":318,"column":14},"end":{"line":318,"column":48}},"132":{"start":{"line":321,"column":12},"end":{"line":321,"column":29}},"133":{"start":{"line":322,"column":12},"end":{"line":322,"column":42}},"134":{"start":{"line":323,"column":12},"end":{"line":323,"column":51}},"135":{"start":{"line":324,"column":12},"end":{"line":324,"column":62}},"136":{"start":{"line":326,"column":10},"end":{"line":326,"column":16}},"137":{"start":{"line":328,"column":10},"end":{"line":332,"column":11}},"138":{"start":{"line":329,"column":12},"end":{"line":329,"column":58}},"139":{"start":{"line":331,"column":12},"end":{"line":331,"column":62}},"140":{"start":{"line":333,"column":10},"end":{"line":333,"column":16}},"141":{"start":{"line":336,"column":10},"end":{"line":342,"column":11}},"142":{"start":{"line":337,"column":12},"end":{"line":337,"column":29}},"143":{"start":{"line":338,"column":12},"end":{"line":338,"column":27}},"144":{"start":{"line":339,"column":12},"end":{"line":339,"column":18}},"145":{"start":{"line":340,"column":17},"end":{"line":342,"column":11}},"146":{"start":{"line":341,"column":12},"end":{"line":341,"column":35}},"147":{"start":{"line":344,"column":10},"end":{"line":344,"column":27}},"148":{"start":{"line":345,"column":10},"end":{"line":423,"column":11}},"149":{"start":{"line":346,"column":12},"end":{"line":346,"column":38}},"150":{"start":{"line":347,"column":12},"end":{"line":390,"column":13}},"151":{"start":{"line":348,"column":14},"end":{"line":348,"column":44}},"152":{"start":{"line":349,"column":14},"end":{"line":349,"column":30}},"153":{"start":{"line":351,"column":14},"end":{"line":389,"column":15}},"154":{"start":{"line":355,"column":18},"end":{"line":355,"column":44}},"155":{"start":{"line":356,"column":18},"end":{"line":356,"column":24}},"156":{"start":{"line":358,"column":18},"end":{"line":358,"column":72}},"157":{"start":{"line":359,"column":18},"end":{"line":360,"column":65}},"158":{"start":{"line":361,"column":18},"end":{"line":363,"column":19}},"159":{"start":{"line":362,"column":20},"end":{"line":362,"column":65}},"160":{"start":{"line":364,"column":18},"end":{"line":364,"column":63}},"161":{"start":{"line":364,"column":35},"end":{"line":364,"column":63}},"162":{"start":{"line":365,"column":18},"end":{"line":365,"column":60}},"163":{"start":{"line":366,"column":18},"end":{"line":366,"column":24}},"164":{"start":{"line":368,"column":18},"end":{"line":370,"column":19}},"165":{"start":{"line":369,"column":20},"end":{"line":369,"column":58}},"166":{"start":{"line":371,"column":18},"end":{"line":380,"column":19}},"167":{"start":{"line":372,"column":20},"end":{"line":372,"column":56}},"168":{"start":{"line":373,"column":20},"end":{"line":373,"column":26}},"169":{"start":{"line":375,"column":20},"end":{"line":379,"column":21}},"170":{"start":{"line":376,"column":22},"end":{"line":378,"column":23}},"171":{"start":{"line":377,"column":24},"end":{"line":377,"column":53}},"172":{"start":{"line":382,"column":18},"end":{"line":387,"column":19}},"173":{"start":{"line":383,"column":20},"end":{"line":383,"column":71}},"174":{"start":{"line":384,"column":20},"end":{"line":384,"column":65}},"175":{"start":{"line":384,"column":34},"end":{"line":384,"column":65}},"176":{"start":{"line":386,"column":20},"end":{"line":386,"column":64}},"177":{"start":{"line":388,"column":18},"end":{"line":388,"column":24}},"178":{"start":{"line":391,"column":17},"end":{"line":423,"column":11}},"179":{"start":{"line":392,"column":12},"end":{"line":399,"column":14}},"180":{"start":{"line":392,"column":29},"end":{"line":392,"column":55}},"181":{"start":{"line":393,"column":17},"end":{"line":399,"column":14}},"182":{"start":{"line":400,"column":17},"end":{"line":423,"column":11}},"183":{"start":{"line":401,"column":12},"end":{"line":401,"column":35}},"184":{"start":{"line":402,"column":17},"end":{"line":423,"column":11}},"185":{"start":{"line":403,"column":12},"end":{"line":403,"column":48}},"186":{"start":{"line":404,"column":17},"end":{"line":423,"column":11}},"187":{"start":{"line":405,"column":12},"end":{"line":405,"column":43}},"188":{"start":{"line":406,"column":17},"end":{"line":423,"column":11}},"189":{"start":{"line":407,"column":12},"end":{"line":407,"column":34}},"190":{"start":{"line":408,"column":17},"end":{"line":423,"column":11}},"191":{"start":{"line":409,"column":12},"end":{"line":409,"column":54}},"192":{"start":{"line":412,"column":12},"end":{"line":418,"column":13}},"193":{"start":{"line":412,"column":29},"end":{"line":412,"column":51}},"194":{"start":{"line":414,"column":14},"end":{"line":414,"column":44}},"195":{"start":{"line":415,"column":14},"end":{"line":415,"column":56}},"196":{"start":{"line":416,"column":14},"end":{"line":416,"column":59}},"197":{"start":{"line":417,"column":14},"end":{"line":417,"column":59}},"198":{"start":{"line":419,"column":17},"end":{"line":423,"column":11}},"199":{"start":{"line":420,"column":12},"end":{"line":420,"column":42}},"200":{"start":{"line":422,"column":12},"end":{"line":422,"column":49}},"201":{"start":{"line":424,"column":10},"end":{"line":424,"column":16}},"202":{"start":{"line":434,"column":2},"end":{"line":457,"column":3}},"203":{"start":{"line":435,"column":4},"end":{"line":456,"column":5}},"204":{"start":{"line":443,"column":6},"end":{"line":443,"column":32}},"205":{"start":{"line":444,"column":6},"end":{"line":455,"column":7}},"206":{"start":{"line":445,"column":8},"end":{"line":445,"column":76}},"207":{"start":{"line":446,"column":8},"end":{"line":454,"column":10}},"208":{"start":{"line":460,"column":2},"end":{"line":498,"column":3}},"209":{"start":{"line":461,"column":4},"end":{"line":497,"column":5}},"210":{"start":{"line":467,"column":6},"end":{"line":467,"column":28}},"211":{"start":{"line":468,"column":6},"end":{"line":496,"column":7}},"212":{"start":{"line":470,"column":10},"end":{"line":470,"column":48}},"213":{"start":{"line":471,"column":10},"end":{"line":471,"column":43}},"214":{"start":{"line":472,"column":10},"end":{"line":472,"column":16}},"215":{"start":{"line":474,"column":10},"end":{"line":485,"column":11}},"216":{"start":{"line":475,"column":12},"end":{"line":475,"column":26}},"217":{"start":{"line":476,"column":12},"end":{"line":484,"column":13}},"218":{"start":{"line":480,"column":14},"end":{"line":480,"column":44}},"219":{"start":{"line":481,"column":14},"end":{"line":481,"column":25}},"220":{"start":{"line":483,"column":14},"end":{"line":483,"column":49}},"221":{"start":{"line":486,"column":10},"end":{"line":486,"column":16}},"222":{"start":{"line":488,"column":10},"end":{"line":494,"column":11}},"223":{"start":{"line":492,"column":12},"end":{"line":492,"column":26}},"224":{"start":{"line":493,"column":12},"end":{"line":493,"column":42}},"225":{"start":{"line":495,"column":10},"end":{"line":495,"column":16}},"226":{"start":{"line":503,"column":2},"end":{"line":503,"column":63}},"227":{"start":{"line":508,"column":2},"end":{"line":510,"column":39}},"228":{"start":{"line":514,"column":2},"end":{"line":518,"column":17}},"229":{"start":{"line":515,"column":14},"end":{"line":515,"column":57}},"230":{"start":{"line":516,"column":14},"end":{"line":516,"column":57}},"231":{"start":{"line":517,"column":14},"end":{"line":517,"column":68}},"232":{"start":{"line":522,"column":2},"end":{"line":522,"column":44}},"233":{"start":{"line":529,"column":2},"end":{"line":529,"column":23}},"234":{"start":{"line":532,"column":2},"end":{"line":538,"column":4}},"235":{"start":{"line":539,"column":2},"end":{"line":541,"column":3}},"236":{"start":{"line":540,"column":4},"end":{"line":540,"column":22}},"237":{"start":{"line":544,"column":2},"end":{"line":546,"column":3}},"238":{"start":{"line":545,"column":4},"end":{"line":545,"column":24}},"239":{"start":{"line":549,"column":2},"end":{"line":567,"column":3}},"240":{"start":{"line":550,"column":4},"end":{"line":565,"column":5}},"241":{"start":{"line":558,"column":6},"end":{"line":558,"column":28}},"242":{"start":{"line":559,"column":6},"end":{"line":564,"column":7}},"243":{"start":{"line":563,"column":8},"end":{"line":563,"column":28}},"244":{"start":{"line":566,"column":4},"end":{"line":566,"column":55}},"245":{"start":{"line":570,"column":2},"end":{"line":572,"column":3}},"246":{"start":{"line":571,"column":4},"end":{"line":571,"column":45}},"247":{"start":{"line":576,"column":2},"end":{"line":582,"column":3}},"248":{"start":{"line":577,"column":4},"end":{"line":581,"column":40}},"249":{"start":{"line":585,"column":2},"end":{"line":618,"column":3}},"250":{"start":{"line":586,"column":4},"end":{"line":586,"column":17}},"251":{"start":{"line":587,"column":4},"end":{"line":587,"column":38}},"252":{"start":{"line":588,"column":4},"end":{"line":588,"column":55}},"253":{"start":{"line":589,"column":4},"end":{"line":589,"column":44}},"254":{"start":{"line":590,"column":4},"end":{"line":590,"column":31}},"255":{"start":{"line":591,"column":4},"end":{"line":601,"column":5}},"256":{"start":{"line":593,"column":6},"end":{"line":593,"column":50}},"257":{"start":{"line":600,"column":6},"end":{"line":600,"column":88}},"258":{"start":{"line":602,"column":4},"end":{"line":616,"column":5}},"259":{"start":{"line":606,"column":6},"end":{"line":606,"column":31}},"260":{"start":{"line":607,"column":6},"end":{"line":607,"column":58}},"261":{"start":{"line":608,"column":6},"end":{"line":608,"column":78}},"262":{"start":{"line":610,"column":6},"end":{"line":610,"column":33}},"263":{"start":{"line":611,"column":6},"end":{"line":615,"column":7}},"264":{"start":{"line":612,"column":8},"end":{"line":612,"column":37}},"265":{"start":{"line":614,"column":8},"end":{"line":614,"column":64}},"266":{"start":{"line":617,"column":4},"end":{"line":617,"column":20}},"267":{"start":{"line":621,"column":2},"end":{"line":634,"column":3}},"268":{"start":{"line":622,"column":4},"end":{"line":622,"column":38}},"269":{"start":{"line":623,"column":4},"end":{"line":623,"column":52}},"270":{"start":{"line":624,"column":4},"end":{"line":632,"column":5}},"271":{"start":{"line":625,"column":6},"end":{"line":625,"column":52}},"272":{"start":{"line":626,"column":6},"end":{"line":626,"column":84}},"273":{"start":{"line":627,"column":6},"end":{"line":627,"column":73}},"274":{"start":{"line":629,"column":6},"end":{"line":629,"column":69}},"275":{"start":{"line":630,"column":6},"end":{"line":630,"column":33}},"276":{"start":{"line":631,"column":6},"end":{"line":631,"column":62}},"277":{"start":{"line":633,"column":4},"end":{"line":633,"column":20}},"278":{"start":{"line":637,"column":2},"end":{"line":639,"column":3}},"279":{"start":{"line":638,"column":4},"end":{"line":638,"column":51}},"280":{"start":{"line":643,"column":2},"end":{"line":719,"column":3}},"281":{"start":{"line":644,"column":4},"end":{"line":717,"column":5}},"282":{"start":{"line":653,"column":6},"end":{"line":716,"column":7}},"283":{"start":{"line":655,"column":10},"end":{"line":655,"column":38}},"284":{"start":{"line":656,"column":10},"end":{"line":658,"column":11}},"285":{"start":{"line":657,"column":12},"end":{"line":657,"column":46}},"286":{"start":{"line":659,"column":10},"end":{"line":659,"column":47}},"287":{"start":{"line":660,"column":10},"end":{"line":660,"column":16}},"288":{"start":{"line":662,"column":10},"end":{"line":662,"column":49}},"289":{"start":{"line":663,"column":10},"end":{"line":663,"column":68}},"290":{"start":{"line":664,"column":10},"end":{"line":664,"column":55}},"291":{"start":{"line":665,"column":10},"end":{"line":665,"column":86}},"292":{"start":{"line":666,"column":10},"end":{"line":666,"column":51}},"293":{"start":{"line":667,"column":10},"end":{"line":667,"column":79}},"294":{"start":{"line":668,"column":10},"end":{"line":668,"column":47}},"295":{"start":{"line":669,"column":10},"end":{"line":684,"column":11}},"296":{"start":{"line":675,"column":14},"end":{"line":675,"column":38}},"297":{"start":{"line":676,"column":14},"end":{"line":676,"column":20}},"298":{"start":{"line":679,"column":14},"end":{"line":679,"column":25}},"299":{"start":{"line":682,"column":14},"end":{"line":682,"column":56}},"300":{"start":{"line":683,"column":14},"end":{"line":683,"column":20}},"301":{"start":{"line":685,"column":10},"end":{"line":688,"column":12}},"302":{"start":{"line":689,"column":10},"end":{"line":701,"column":11}},"303":{"start":{"line":690,"column":12},"end":{"line":694,"column":14}},"304":{"start":{"line":696,"column":12},"end":{"line":700,"column":14}},"305":{"start":{"line":702,"column":10},"end":{"line":704,"column":11}},"306":{"start":{"line":703,"column":12},"end":{"line":703,"column":51}},"307":{"start":{"line":705,"column":10},"end":{"line":705,"column":16}},"308":{"start":{"line":708,"column":10},"end":{"line":713,"column":22}},"309":{"start":{"line":714,"column":10},"end":{"line":714,"column":30}},"310":{"start":{"line":715,"column":10},"end":{"line":715,"column":16}},"311":{"start":{"line":718,"column":4},"end":{"line":718,"column":18}},"312":{"start":{"line":723,"column":2},"end":{"line":727,"column":3}},"313":{"start":{"line":724,"column":4},"end":{"line":724,"column":29}},"314":{"start":{"line":725,"column":4},"end":{"line":725,"column":66}},"315":{"start":{"line":726,"column":4},"end":{"line":726,"column":53}},"316":{"start":{"line":730,"column":2},"end":{"line":736,"column":3}},"317":{"start":{"line":731,"column":4},"end":{"line":735,"column":5}},"318":{"start":{"line":732,"column":6},"end":{"line":732,"column":45}},"319":{"start":{"line":734,"column":6},"end":{"line":734,"column":37}},"320":{"start":{"line":740,"column":2},"end":{"line":747,"column":3}},"321":{"start":{"line":741,"column":4},"end":{"line":741,"column":46}},"322":{"start":{"line":742,"column":4},"end":{"line":745,"column":5}},"323":{"start":{"line":743,"column":6},"end":{"line":743,"column":35}},"324":{"start":{"line":744,"column":6},"end":{"line":744,"column":40}},"325":{"start":{"line":744,"column":17},"end":{"line":744,"column":40}},"326":{"start":{"line":746,"column":4},"end":{"line":746,"column":34}},"327":{"start":{"line":750,"column":2},"end":{"line":752,"column":3}},"328":{"start":{"line":751,"column":4},"end":{"line":751,"column":54}},"329":{"start":{"line":755,"column":2},"end":{"line":766,"column":3}},"330":{"start":{"line":756,"column":4},"end":{"line":756,"column":32}},"331":{"start":{"line":757,"column":4},"end":{"line":765,"column":5}},"332":{"start":{"line":758,"column":6},"end":{"line":758,"column":62}},"333":{"start":{"line":759,"column":11},"end":{"line":765,"column":5}},"334":{"start":{"line":760,"column":6},"end":{"line":760,"column":48}},"335":{"start":{"line":761,"column":11},"end":{"line":765,"column":5}},"336":{"start":{"line":762,"column":6},"end":{"line":762,"column":62}},"337":{"start":{"line":764,"column":6},"end":{"line":764,"column":63}},"338":{"start":{"line":769,"column":2},"end":{"line":775,"column":3}},"339":{"start":{"line":770,"column":4},"end":{"line":774,"column":5}},"340":{"start":{"line":771,"column":6},"end":{"line":773,"column":7}},"341":{"start":{"line":772,"column":8},"end":{"line":772,"column":46}},"342":{"start":{"line":778,"column":2},"end":{"line":780,"column":3}},"343":{"start":{"line":779,"column":4},"end":{"line":779,"column":35}},"344":{"start":{"line":783,"column":2},"end":{"line":785,"column":3}},"345":{"start":{"line":784,"column":4},"end":{"line":784,"column":44}},"346":{"start":{"line":789,"column":2},"end":{"line":799,"column":3}},"347":{"start":{"line":790,"column":4},"end":{"line":790,"column":34}},"348":{"start":{"line":791,"column":4},"end":{"line":798,"column":6}},"349":{"start":{"line":793,"column":8},"end":{"line":793,"column":66}},"350":{"start":{"line":796,"column":8},"end":{"line":796,"column":73}},"351":{"start":{"line":803,"column":2},"end":{"line":810,"column":3}},"352":{"start":{"line":804,"column":4},"end":{"line":808,"column":6}},"353":{"start":{"line":809,"column":4},"end":{"line":809,"column":24}},"354":{"start":{"line":813,"column":2},"end":{"line":817,"column":3}},"355":{"start":{"line":814,"column":4},"end":{"line":816,"column":5}},"356":{"start":{"line":815,"column":6},"end":{"line":815,"column":41}},"357":{"start":{"line":820,"column":2},"end":{"line":826,"column":3}},"358":{"start":{"line":821,"column":4},"end":{"line":821,"column":47}},"359":{"start":{"line":822,"column":4},"end":{"line":825,"column":5}},"360":{"start":{"line":823,"column":6},"end":{"line":823,"column":46}},"361":{"start":{"line":824,"column":6},"end":{"line":824,"column":43}},"362":{"start":{"line":829,"column":2},"end":{"line":843,"column":3}},"363":{"start":{"line":830,"column":4},"end":{"line":830,"column":15}},"364":{"start":{"line":831,"column":4},"end":{"line":841,"column":5}},"365":{"start":{"line":833,"column":8},"end":{"line":833,"column":49}},"366":{"start":{"line":834,"column":8},"end":{"line":834,"column":14}},"367":{"start":{"line":836,"column":8},"end":{"line":836,"column":67}},"368":{"start":{"line":837,"column":8},"end":{"line":837,"column":14}},"369":{"start":{"line":839,"column":8},"end":{"line":839,"column":55}},"370":{"start":{"line":840,"column":8},"end":{"line":840,"column":14}},"371":{"start":{"line":842,"column":4},"end":{"line":842,"column":18}},"372":{"start":{"line":847,"column":2},"end":{"line":858,"column":3}},"373":{"start":{"line":848,"column":4},"end":{"line":848,"column":50}},"374":{"start":{"line":849,"column":4},"end":{"line":857,"column":5}},"375":{"start":{"line":850,"column":6},"end":{"line":850,"column":41}},"376":{"start":{"line":851,"column":6},"end":{"line":851,"column":36}},"377":{"start":{"line":852,"column":6},"end":{"line":852,"column":27}},"378":{"start":{"line":853,"column":6},"end":{"line":853,"column":29}},"379":{"start":{"line":854,"column":6},"end":{"line":854,"column":35}},"380":{"start":{"line":855,"column":6},"end":{"line":855,"column":51}},"381":{"start":{"line":856,"column":6},"end":{"line":856,"column":47}},"382":{"start":{"line":861,"column":2},"end":{"line":863,"column":3}},"383":{"start":{"line":862,"column":4},"end":{"line":862,"column":60}},"384":{"start":{"line":870,"column":2},"end":{"line":882,"column":14}},"385":{"start":{"line":872,"column":8},"end":{"line":880,"column":10}},"386":{"start":{"line":873,"column":32},"end":{"line":873,"column":52}},"387":{"start":{"line":875,"column":12},"end":{"line":878,"column":15}},"388":{"start":{"line":885,"column":2},"end":{"line":900,"column":10}},"389":{"start":{"line":887,"column":8},"end":{"line":887,"column":27}},"390":{"start":{"line":888,"column":8},"end":{"line":898,"column":10}},"391":{"start":{"line":890,"column":12},"end":{"line":890,"column":37}},"392":{"start":{"line":896,"column":12},"end":{"line":896,"column":39}},"393":{"start":{"line":905,"column":2},"end":{"line":914,"column":21}},"394":{"start":{"line":907,"column":18},"end":{"line":907,"column":45}},"395":{"start":{"line":910,"column":18},"end":{"line":910,"column":44}},"396":{"start":{"line":911,"column":18},"end":{"line":913,"column":20}},"397":{"start":{"line":912,"column":20},"end":{"line":912,"column":50}},"398":{"start":{"line":917,"column":2},"end":{"line":918,"column":69}},"399":{"start":{"line":918,"column":28},"end":{"line":918,"column":66}},"400":{"start":{"line":925,"column":2},"end":{"line":925,"column":45}},"401":{"start":{"line":928,"column":2},"end":{"line":928,"column":24}},"402":{"start":{"line":931,"column":2},"end":{"line":931,"column":30}},"403":{"start":{"line":932,"column":2},"end":{"line":939,"column":3}},"404":{"start":{"line":933,"column":4},"end":{"line":933,"column":25}},"405":{"start":{"line":934,"column":4},"end":{"line":938,"column":6}},"406":{"start":{"line":935,"column":6},"end":{"line":935,"column":42}},"407":{"start":{"line":936,"column":6},"end":{"line":937,"column":46}},"408":{"start":{"line":942,"column":2},"end":{"line":954,"column":8}},"409":{"start":{"line":944,"column":8},"end":{"line":944,"column":44}},"410":{"start":{"line":947,"column":8},"end":{"line":953,"column":9}},"411":{"start":{"line":952,"column":10},"end":{"line":952,"column":42}},"412":{"start":{"line":957,"column":2},"end":{"line":972,"column":48}},"413":{"start":{"line":959,"column":8},"end":{"line":969,"column":9}},"414":{"start":{"line":966,"column":10},"end":{"line":966,"column":32}},"415":{"start":{"line":967,"column":10},"end":{"line":968,"column":34}},"416":{"start":{"line":968,"column":12},"end":{"line":968,"column":34}},"417":{"start":{"line":970,"column":8},"end":{"line":970,"column":24}},"418":{"start":{"line":972,"column":24},"end":{"line":972,"column":45}},"419":{"start":{"line":976,"column":2},"end":{"line":996,"column":8}},"420":{"start":{"line":978,"column":8},"end":{"line":988,"column":9}},"421":{"start":{"line":979,"column":10},"end":{"line":979,"column":27}},"422":{"start":{"line":980,"column":10},"end":{"line":987,"column":11}},"423":{"start":{"line":982,"column":14},"end":{"line":982,"column":60}},"424":{"start":{"line":983,"column":14},"end":{"line":983,"column":20}},"425":{"start":{"line":985,"column":14},"end":{"line":985,"column":53}},"426":{"start":{"line":986,"column":14},"end":{"line":986,"column":20}},"427":{"start":{"line":989,"column":8},"end":{"line":989,"column":26}},"428":{"start":{"line":992,"column":8},"end":{"line":994,"column":9}},"429":{"start":{"line":993,"column":10},"end":{"line":993,"column":54}},"430":{"start":{"line":995,"column":8},"end":{"line":995,"column":26}},"431":{"start":{"line":999,"column":2},"end":{"line":999,"column":105}},"432":{"start":{"line":1000,"column":2},"end":{"line":1000,"column":94}},"433":{"start":{"line":1001,"column":2},"end":{"line":1003,"column":4}},"434":{"start":{"line":1002,"column":4},"end":{"line":1002,"column":67}},"435":{"start":{"line":1005,"column":2},"end":{"line":1007,"column":4}},"436":{"start":{"line":1006,"column":4},"end":{"line":1006,"column":48}},"437":{"start":{"line":1010,"column":2},"end":{"line":1017,"column":56}},"438":{"start":{"line":1012,"column":6},"end":{"line":1014,"column":7}},"439":{"start":{"line":1013,"column":8},"end":{"line":1013,"column":56}},"440":{"start":{"line":1013,"column":44},"end":{"line":1013,"column":56}},"441":{"start":{"line":1015,"column":6},"end":{"line":1015,"column":23}},"442":{"start":{"line":1017,"column":22},"end":{"line":1017,"column":53}},"443":{"start":{"line":1019,"column":2},"end":{"line":1026,"column":60}},"444":{"start":{"line":1021,"column":6},"end":{"line":1023,"column":7}},"445":{"start":{"line":1022,"column":8},"end":{"line":1022,"column":56}},"446":{"start":{"line":1022,"column":44},"end":{"line":1022,"column":56}},"447":{"start":{"line":1024,"column":6},"end":{"line":1024,"column":23}},"448":{"start":{"line":1026,"column":22},"end":{"line":1026,"column":57}},"449":{"start":{"line":1029,"column":2},"end":{"line":1029,"column":28}},"450":{"start":{"line":1032,"column":2},"end":{"line":1032,"column":27}},"451":{"start":{"line":1035,"column":2},"end":{"line":1035,"column":27}},"452":{"start":{"line":1038,"column":2},"end":{"line":1038,"column":25}},"453":{"start":{"line":1042,"column":2},"end":{"line":1060,"column":7}},"454":{"start":{"line":1043,"column":4},"end":{"line":1043,"column":66}},"455":{"start":{"line":1044,"column":4},"end":{"line":1044,"column":65}},"456":{"start":{"line":1045,"column":4},"end":{"line":1059,"column":8}},"457":{"start":{"line":1047,"column":8},"end":{"line":1054,"column":9}},"458":{"start":{"line":1053,"column":10},"end":{"line":1053,"column":54}},"459":{"start":{"line":1055,"column":8},"end":{"line":1055,"column":21}},"460":{"start":{"line":1058,"column":8},"end":{"line":1058,"column":40}},"461":{"start":{"line":1068,"column":2},"end":{"line":1075,"column":3}},"462":{"start":{"line":1069,"column":4},"end":{"line":1069,"column":19}},"463":{"start":{"line":1070,"column":4},"end":{"line":1070,"column":61}},"464":{"start":{"line":1071,"column":4},"end":{"line":1071,"column":50}},"465":{"start":{"line":1072,"column":4},"end":{"line":1072,"column":51}},"466":{"start":{"line":1073,"column":4},"end":{"line":1073,"column":34}},"467":{"start":{"line":1074,"column":4},"end":{"line":1074,"column":16}},"468":{"start":{"line":1080,"column":2},"end":{"line":1109,"column":3}},"469":{"start":{"line":1081,"column":4},"end":{"line":1081,"column":18}},"470":{"start":{"line":1082,"column":4},"end":{"line":1082,"column":19}},"471":{"start":{"line":1083,"column":4},"end":{"line":1100,"column":5}},"472":{"start":{"line":1086,"column":8},"end":{"line":1086,"column":26}},"473":{"start":{"line":1087,"column":8},"end":{"line":1087,"column":14}},"474":{"start":{"line":1089,"column":8},"end":{"line":1089,"column":37}},"475":{"start":{"line":1090,"column":8},"end":{"line":1093,"column":10}},"476":{"start":{"line":1094,"column":8},"end":{"line":1094,"column":14}},"477":{"start":{"line":1097,"column":8},"end":{"line":1097,"column":39}},"478":{"start":{"line":1098,"column":8},"end":{"line":1098,"column":46}},"479":{"start":{"line":1099,"column":8},"end":{"line":1099,"column":14}},"480":{"start":{"line":1101,"column":4},"end":{"line":1107,"column":5}},"481":{"start":{"line":1106,"column":6},"end":{"line":1106,"column":81}},"482":{"start":{"line":1108,"column":4},"end":{"line":1108,"column":16}},"483":{"start":{"line":1114,"column":2},"end":{"line":1132,"column":3}},"484":{"start":{"line":1115,"column":4},"end":{"line":1129,"column":5}},"485":{"start":{"line":1122,"column":6},"end":{"line":1122,"column":22}},"486":{"start":{"line":1123,"column":6},"end":{"line":1123,"column":44}},"487":{"start":{"line":1124,"column":6},"end":{"line":1127,"column":7}},"488":{"start":{"line":1125,"column":8},"end":{"line":1125,"column":45}},"489":{"start":{"line":1126,"column":8},"end":{"line":1126,"column":22}},"490":{"start":{"line":1128,"column":6},"end":{"line":1128,"column":66}},"491":{"start":{"line":1130,"column":4},"end":{"line":1130,"column":42}},"492":{"start":{"line":1131,"column":4},"end":{"line":1131,"column":19}},"493":{"start":{"line":1135,"column":2},"end":{"line":1154,"column":3}},"494":{"start":{"line":1136,"column":4},"end":{"line":1151,"column":5}},"495":{"start":{"line":1143,"column":6},"end":{"line":1143,"column":22}},"496":{"start":{"line":1144,"column":6},"end":{"line":1144,"column":22}},"497":{"start":{"line":1145,"column":6},"end":{"line":1150,"column":8}},"498":{"start":{"line":1152,"column":4},"end":{"line":1152,"column":42}},"499":{"start":{"line":1153,"column":4},"end":{"line":1153,"column":19}},"500":{"start":{"line":1157,"column":2},"end":{"line":1161,"column":3}},"501":{"start":{"line":1158,"column":4},"end":{"line":1160,"column":5}},"502":{"start":{"line":1159,"column":6},"end":{"line":1159,"column":32}},"503":{"start":{"line":1165,"column":2},"end":{"line":1178,"column":3}},"504":{"start":{"line":1166,"column":4},"end":{"line":1166,"column":40}},"505":{"start":{"line":1166,"column":12},"end":{"line":1166,"column":40}},"506":{"start":{"line":1167,"column":4},"end":{"line":1167,"column":16}},"507":{"start":{"line":1168,"column":4},"end":{"line":1169,"column":52}},"508":{"start":{"line":1170,"column":4},"end":{"line":1176,"column":5}},"509":{"start":{"line":1171,"column":6},"end":{"line":1171,"column":46}},"510":{"start":{"line":1172,"column":6},"end":{"line":1172,"column":63}},"511":{"start":{"line":1173,"column":6},"end":{"line":1173,"column":39}},"512":{"start":{"line":1175,"column":6},"end":{"line":1175,"column":70}},"513":{"start":{"line":1177,"column":4},"end":{"line":1177,"column":50}},"514":{"start":{"line":1185,"column":2},"end":{"line":1245,"column":3}},"515":{"start":{"line":1186,"column":4},"end":{"line":1186,"column":71}},"516":{"start":{"line":1188,"column":4},"end":{"line":1194,"column":5}},"517":{"start":{"line":1189,"column":6},"end":{"line":1189,"column":50}},"518":{"start":{"line":1190,"column":6},"end":{"line":1192,"column":17}},"519":{"start":{"line":1193,"column":6},"end":{"line":1193,"column":31}},"520":{"start":{"line":1196,"column":4},"end":{"line":1205,"column":5}},"521":{"start":{"line":1197,"column":6},"end":{"line":1203,"column":7}},"522":{"start":{"line":1198,"column":8},"end":{"line":1198,"column":22}},"523":{"start":{"line":1199,"column":8},"end":{"line":1201,"column":9}},"524":{"start":{"line":1200,"column":10},"end":{"line":1200,"column":66}},"525":{"start":{"line":1202,"column":8},"end":{"line":1202,"column":42}},"526":{"start":{"line":1204,"column":6},"end":{"line":1204,"column":21}},"527":{"start":{"line":1207,"column":4},"end":{"line":1244,"column":8}},"528":{"start":{"line":1209,"column":8},"end":{"line":1209,"column":29}},"529":{"start":{"line":1210,"column":8},"end":{"line":1210,"column":42}},"530":{"start":{"line":1210,"column":16},"end":{"line":1210,"column":42}},"531":{"start":{"line":1211,"column":8},"end":{"line":1232,"column":9}},"532":{"start":{"line":1212,"column":10},"end":{"line":1212,"column":23}},"533":{"start":{"line":1213,"column":10},"end":{"line":1213,"column":29}},"534":{"start":{"line":1214,"column":10},"end":{"line":1231,"column":12}},"535":{"start":{"line":1215,"column":12},"end":{"line":1228,"column":13}},"536":{"start":{"line":1216,"column":14},"end":{"line":1227,"column":15}},"537":{"start":{"line":1217,"column":16},"end":{"line":1217,"column":40}},"538":{"start":{"line":1218,"column":16},"end":{"line":1222,"column":18}},"539":{"start":{"line":1223,"column":16},"end":{"line":1223,"column":47}},"540":{"start":{"line":1225,"column":16},"end":{"line":1225,"column":66}},"541":{"start":{"line":1225,"column":53},"end":{"line":1225,"column":66}},"542":{"start":{"line":1226,"column":16},"end":{"line":1226,"column":49}},"543":{"start":{"line":1229,"column":12},"end":{"line":1229,"column":37}},"544":{"start":{"line":1230,"column":12},"end":{"line":1230,"column":27}},"545":{"start":{"line":1233,"column":8},"end":{"line":1233,"column":23}},"546":{"start":{"line":1236,"column":8},"end":{"line":1236,"column":42}},"547":{"start":{"line":1236,"column":16},"end":{"line":1236,"column":42}},"548":{"start":{"line":1237,"column":8},"end":{"line":1241,"column":9}},"549":{"start":{"line":1238,"column":10},"end":{"line":1238,"column":23}},"550":{"start":{"line":1239,"column":10},"end":{"line":1239,"column":29}},"551":{"start":{"line":1240,"column":10},"end":{"line":1240,"column":33}},"552":{"start":{"line":1242,"column":8},"end":{"line":1242,"column":38}},"553":{"start":{"line":1243,"column":8},"end":{"line":1243,"column":23}},"554":{"start":{"line":1248,"column":2},"end":{"line":1261,"column":3}},"555":{"start":{"line":1249,"column":4},"end":{"line":1249,"column":30}},"556":{"start":{"line":1250,"column":4},"end":{"line":1250,"column":30}},"557":{"start":{"line":1251,"column":4},"end":{"line":1251,"column":18}},"558":{"start":{"line":1252,"column":4},"end":{"line":1255,"column":5}},"559":{"start":{"line":1253,"column":6},"end":{"line":1253,"column":29}},"560":{"start":{"line":1254,"column":6},"end":{"line":1254,"column":40}},"561":{"start":{"line":1256,"column":4},"end":{"line":1259,"column":5}},"562":{"start":{"line":1257,"column":6},"end":{"line":1257,"column":16}},"563":{"start":{"line":1258,"column":6},"end":{"line":1258,"column":27}},"564":{"start":{"line":1260,"column":4},"end":{"line":1260,"column":54}},"565":{"start":{"line":1266,"column":2},"end":{"line":1266,"column":15}},"566":{"start":{"line":1271,"column":0},"end":{"line":1271,"column":49}},"567":{"start":{"line":1271,"column":6},"end":{"line":1271,"column":33}}},"branchMap":{"1":{"line":17,"type":"cond-expr","locations":[{"start":{"line":18,"column":7},"end":{"line":29,"column":9}},{"start":{"line":30,"column":6},"end":{"line":32,"column":30}}]},"2":{"line":18,"type":"cond-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":27}},{"start":{"line":20,"column":9},"end":{"line":28,"column":11}}]},"3":{"line":20,"type":"cond-expr","locations":[{"start":{"line":21,"column":10},"end":{"line":21,"column":26}},{"start":{"line":22,"column":11},"end":{"line":27,"column":13}}]},"4":{"line":22,"type":"cond-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":23,"column":37}},{"start":{"line":24,"column":13},"end":{"line":26,"column":38}}]},"5":{"line":24,"type":"cond-expr","locations":[{"start":{"line":25,"column":14},"end":{"line":25,"column":24}},{"start":{"line":26,"column":14},"end":{"line":26,"column":38}}]},"6":{"line":30,"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":27}},{"start":{"line":31,"column":30},"end":{"line":31,"column":34}}]},"7":{"line":66,"type":"cond-expr","locations":[{"start":{"line":67,"column":6},"end":{"line":67,"column":25}},{"start":{"line":68,"column":7},"end":{"line":70,"column":39}}]},"8":{"line":68,"type":"cond-expr","locations":[{"start":{"line":69,"column":8},"end":{"line":69,"column":35}},{"start":{"line":70,"column":8},"end":{"line":70,"column":39}}]},"9":{"line":69,"type":"binary-expr","locations":[{"start":{"line":69,"column":20},"end":{"line":69,"column":24}},{"start":{"line":69,"column":28},"end":{"line":69,"column":34}}]},"10":{"line":70,"type":"binary-expr","locations":[{"start":{"line":70,"column":24},"end":{"line":70,"column":28}},{"start":{"line":70,"column":32},"end":{"line":70,"column":38}}]},"11":{"line":88,"type":"binary-expr","locations":[{"start":{"line":88,"column":11},"end":{"line":88,"column":31}},{"start":{"line":88,"column":35},"end":{"line":88,"column":63}},{"start":{"line":89,"column":11},"end":{"line":89,"column":24}}]},"12":{"line":103,"type":"cond-expr","locations":[{"start":{"line":103,"column":51},"end":{"line":103,"column":75}},{"start":{"line":103,"column":78},"end":{"line":103,"column":83}}]},"13":{"line":150,"type":"if","locations":[{"start":{"line":150,"column":6},"end":{"line":150,"column":6}},{"start":{"line":150,"column":6},"end":{"line":150,"column":6}}]},"14":{"line":150,"type":"binary-expr","locations":[{"start":{"line":150,"column":10},"end":{"line":150,"column":21}},{"start":{"line":150,"column":25},"end":{"line":150,"column":38}}]},"15":{"line":153,"type":"cond-expr","locations":[{"start":{"line":153,"column":27},"end":{"line":153,"column":29}},{"start":{"line":153,"column":32},"end":{"line":153,"column":33}}]},"16":{"line":160,"type":"switch","locations":[{"start":{"line":161,"column":6},"end":{"line":168,"column":14}},{"start":{"line":169,"column":6},"end":{"line":173,"column":14}},{"start":{"line":174,"column":6},"end":{"line":176,"column":14}}]},"17":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":8},"end":{"line":163,"column":8}},{"start":{"line":163,"column":8},"end":{"line":163,"column":8}}]},"18":{"line":170,"type":"if","locations":[{"start":{"line":170,"column":8},"end":{"line":170,"column":8}},{"start":{"line":170,"column":8},"end":{"line":170,"column":8}}]},"19":{"line":198,"type":"if","locations":[{"start":{"line":198,"column":4},"end":{"line":198,"column":4}},{"start":{"line":198,"column":4},"end":{"line":198,"column":4}}]},"20":{"line":215,"type":"if","locations":[{"start":{"line":215,"column":4},"end":{"line":215,"column":4}},{"start":{"line":215,"column":4},"end":{"line":215,"column":4}}]},"21":{"line":216,"type":"binary-expr","locations":[{"start":{"line":216,"column":6},"end":{"line":216,"column":12}},{"start":{"line":217,"column":6},"end":{"line":217,"column":59}}]},"22":{"line":217,"type":"cond-expr","locations":[{"start":{"line":217,"column":31},"end":{"line":217,"column":47}},{"start":{"line":217,"column":50},"end":{"line":217,"column":58}}]},"23":{"line":234,"type":"binary-expr","locations":[{"start":{"line":234,"column":18},"end":{"line":234,"column":33}},{"start":{"line":235,"column":19},"end":{"line":235,"column":49}},{"start":{"line":236,"column":18},"end":{"line":236,"column":50}}]},"24":{"line":237,"type":"cond-expr","locations":[{"start":{"line":237,"column":23},"end":{"line":237,"column":36}},{"start":{"line":237,"column":39},"end":{"line":237,"column":41}}]},"25":{"line":238,"type":"binary-expr","locations":[{"start":{"line":238,"column":16},"end":{"line":238,"column":23}},{"start":{"line":238,"column":27},"end":{"line":238,"column":36}}]},"26":{"line":241,"type":"if","locations":[{"start":{"line":241,"column":4},"end":{"line":241,"column":4}},{"start":{"line":241,"column":4},"end":{"line":241,"column":4}}]},"27":{"line":241,"type":"binary-expr","locations":[{"start":{"line":241,"column":8},"end":{"line":241,"column":15}},{"start":{"line":241,"column":19},"end":{"line":241,"column":45}}]},"28":{"line":242,"type":"if","locations":[{"start":{"line":242,"column":4},"end":{"line":242,"column":4}},{"start":{"line":242,"column":4},"end":{"line":242,"column":4}}]},"29":{"line":243,"type":"cond-expr","locations":[{"start":{"line":244,"column":6},"end":{"line":250,"column":7}},{"start":{"line":251,"column":7},"end":{"line":293,"column":9}}]},"30":{"line":245,"type":"if","locations":[{"start":{"line":245,"column":8},"end":{"line":245,"column":8}},{"start":{"line":245,"column":8},"end":{"line":245,"column":8}}]},"31":{"line":246,"type":"if","locations":[{"start":{"line":246,"column":10},"end":{"line":246,"column":10}},{"start":{"line":246,"column":10},"end":{"line":246,"column":10}}]},"32":{"line":248,"type":"if","locations":[{"start":{"line":248,"column":10},"end":{"line":248,"column":10}},{"start":{"line":248,"column":10},"end":{"line":248,"column":10}}]},"33":{"line":251,"type":"cond-expr","locations":[{"start":{"line":252,"column":8},"end":{"line":271,"column":9}},{"start":{"line":272,"column":8},"end":{"line":293,"column":9}}]},"34":{"line":253,"type":"if","locations":[{"start":{"line":253,"column":10},"end":{"line":253,"column":10}},{"start":{"line":253,"column":10},"end":{"line":253,"column":10}}]},"35":{"line":257,"type":"if","locations":[{"start":{"line":257,"column":12},"end":{"line":257,"column":12}},{"start":{"line":257,"column":12},"end":{"line":257,"column":12}}]},"36":{"line":261,"type":"if","locations":[{"start":{"line":261,"column":14},"end":{"line":261,"column":14}},{"start":{"line":261,"column":14},"end":{"line":261,"column":14}}]},"37":{"line":273,"type":"if","locations":[{"start":{"line":273,"column":10},"end":{"line":273,"column":10}},{"start":{"line":273,"column":10},"end":{"line":273,"column":10}}]},"38":{"line":277,"type":"if","locations":[{"start":{"line":277,"column":12},"end":{"line":277,"column":12}},{"start":{"line":277,"column":12},"end":{"line":277,"column":12}}]},"39":{"line":278,"type":"if","locations":[{"start":{"line":278,"column":14},"end":{"line":278,"column":14}},{"start":{"line":278,"column":14},"end":{"line":278,"column":14}}]},"40":{"line":279,"type":"if","locations":[{"start":{"line":279,"column":16},"end":{"line":279,"column":16}},{"start":{"line":279,"column":16},"end":{"line":279,"column":16}}]},"41":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":16},"end":{"line":286,"column":16}},{"start":{"line":286,"column":16},"end":{"line":286,"column":16}}]},"42":{"line":303,"type":"switch","locations":[{"start":{"line":304,"column":8},"end":{"line":304,"column":22}},{"start":{"line":305,"column":8},"end":{"line":305,"column":22}},{"start":{"line":306,"column":8},"end":{"line":326,"column":16}},{"start":{"line":327,"column":8},"end":{"line":333,"column":16}},{"start":{"line":334,"column":8},"end":{"line":334,"column":22}},{"start":{"line":335,"column":8},"end":{"line":342,"column":11}},{"start":{"line":343,"column":8},"end":{"line":424,"column":16}}]},"43":{"line":307,"type":"if","locations":[{"start":{"line":307,"column":10},"end":{"line":307,"column":10}},{"start":{"line":307,"column":10},"end":{"line":307,"column":10}}]},"44":{"line":308,"type":"if","locations":[{"start":{"line":308,"column":12},"end":{"line":308,"column":12}},{"start":{"line":308,"column":12},"end":{"line":308,"column":12}}]},"45":{"line":312,"type":"if","locations":[{"start":{"line":312,"column":17},"end":{"line":312,"column":17}},{"start":{"line":312,"column":17},"end":{"line":312,"column":17}}]},"46":{"line":313,"type":"binary-expr","locations":[{"start":{"line":313,"column":12},"end":{"line":313,"column":35}},{"start":{"line":314,"column":12},"end":{"line":314,"column":48}}]},"47":{"line":316,"type":"if","locations":[{"start":{"line":316,"column":12},"end":{"line":316,"column":12}},{"start":{"line":316,"column":12},"end":{"line":316,"column":12}}]},"48":{"line":328,"type":"if","locations":[{"start":{"line":328,"column":10},"end":{"line":328,"column":10}},{"start":{"line":328,"column":10},"end":{"line":328,"column":10}}]},"49":{"line":336,"type":"if","locations":[{"start":{"line":336,"column":10},"end":{"line":336,"column":10}},{"start":{"line":336,"column":10},"end":{"line":336,"column":10}}]},"50":{"line":340,"type":"if","locations":[{"start":{"line":340,"column":17},"end":{"line":340,"column":17}},{"start":{"line":340,"column":17},"end":{"line":340,"column":17}}]},"51":{"line":345,"type":"if","locations":[{"start":{"line":345,"column":10},"end":{"line":345,"column":10}},{"start":{"line":345,"column":10},"end":{"line":345,"column":10}}]},"52":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":12},"end":{"line":347,"column":12}},{"start":{"line":347,"column":12},"end":{"line":347,"column":12}}]},"53":{"line":347,"type":"binary-expr","locations":[{"start":{"line":347,"column":16},"end":{"line":347,"column":28}},{"start":{"line":347,"column":32},"end":{"line":347,"column":44}}]},"54":{"line":351,"type":"switch","locations":[{"start":{"line":352,"column":16},"end":{"line":352,"column":30}},{"start":{"line":353,"column":16},"end":{"line":353,"column":30}},{"start":{"line":354,"column":16},"end":{"line":356,"column":24}},{"start":{"line":357,"column":16},"end":{"line":366,"column":24}},{"start":{"line":367,"column":16},"end":{"line":380,"column":19}},{"start":{"line":381,"column":16},"end":{"line":388,"column":24}}]},"55":{"line":358,"type":"cond-expr","locations":[{"start":{"line":358,"column":49},"end":{"line":358,"column":53}},{"start":{"line":358,"column":56},"end":{"line":358,"column":71}}]},"56":{"line":359,"type":"cond-expr","locations":[{"start":{"line":360,"column":22},"end":{"line":360,"column":51}},{"start":{"line":360,"column":54},"end":{"line":360,"column":64}}]},"57":{"line":364,"type":"if","locations":[{"start":{"line":364,"column":18},"end":{"line":364,"column":18}},{"start":{"line":364,"column":18},"end":{"line":364,"column":18}}]},"58":{"line":368,"type":"if","locations":[{"start":{"line":368,"column":18},"end":{"line":368,"column":18}},{"start":{"line":368,"column":18},"end":{"line":368,"column":18}}]},"59":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":18},"end":{"line":371,"column":18}},{"start":{"line":371,"column":18},"end":{"line":371,"column":18}}]},"60":{"line":376,"type":"if","locations":[{"start":{"line":376,"column":22},"end":{"line":376,"column":22}},{"start":{"line":376,"column":22},"end":{"line":376,"column":22}}]},"61":{"line":382,"type":"if","locations":[{"start":{"line":382,"column":18},"end":{"line":382,"column":18}},{"start":{"line":382,"column":18},"end":{"line":382,"column":18}}]},"62":{"line":384,"type":"if","locations":[{"start":{"line":384,"column":20},"end":{"line":384,"column":20}},{"start":{"line":384,"column":20},"end":{"line":384,"column":20}}]},"63":{"line":391,"type":"if","locations":[{"start":{"line":391,"column":17},"end":{"line":391,"column":17}},{"start":{"line":391,"column":17},"end":{"line":391,"column":17}}]},"64":{"line":392,"type":"if","locations":[{"start":{"line":392,"column":12},"end":{"line":392,"column":12}},{"start":{"line":392,"column":12},"end":{"line":392,"column":12}}]},"65":{"line":396,"type":"cond-expr","locations":[{"start":{"line":397,"column":16},"end":{"line":397,"column":44}},{"start":{"line":398,"column":16},"end":{"line":398,"column":23}}]},"66":{"line":400,"type":"if","locations":[{"start":{"line":400,"column":17},"end":{"line":400,"column":17}},{"start":{"line":400,"column":17},"end":{"line":400,"column":17}}]},"67":{"line":402,"type":"if","locations":[{"start":{"line":402,"column":17},"end":{"line":402,"column":17}},{"start":{"line":402,"column":17},"end":{"line":402,"column":17}}]},"68":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":17},"end":{"line":404,"column":17}},{"start":{"line":404,"column":17},"end":{"line":404,"column":17}}]},"69":{"line":406,"type":"if","locations":[{"start":{"line":406,"column":17},"end":{"line":406,"column":17}},{"start":{"line":406,"column":17},"end":{"line":406,"column":17}}]},"70":{"line":408,"type":"if","locations":[{"start":{"line":408,"column":17},"end":{"line":408,"column":17}},{"start":{"line":408,"column":17},"end":{"line":408,"column":17}}]},"71":{"line":412,"type":"if","locations":[{"start":{"line":412,"column":12},"end":{"line":412,"column":12}},{"start":{"line":412,"column":12},"end":{"line":412,"column":12}}]},"72":{"line":419,"type":"if","locations":[{"start":{"line":419,"column":17},"end":{"line":419,"column":17}},{"start":{"line":419,"column":17},"end":{"line":419,"column":17}}]},"73":{"line":444,"type":"if","locations":[{"start":{"line":444,"column":6},"end":{"line":444,"column":6}},{"start":{"line":444,"column":6},"end":{"line":444,"column":6}}]},"74":{"line":468,"type":"switch","locations":[{"start":{"line":469,"column":8},"end":{"line":472,"column":16}},{"start":{"line":473,"column":8},"end":{"line":486,"column":16}},{"start":{"line":487,"column":8},"end":{"line":495,"column":16}}]},"75":{"line":474,"type":"if","locations":[{"start":{"line":474,"column":10},"end":{"line":474,"column":10}},{"start":{"line":474,"column":10},"end":{"line":474,"column":10}}]},"76":{"line":476,"type":"if","locations":[{"start":{"line":476,"column":12},"end":{"line":476,"column":12}},{"start":{"line":476,"column":12},"end":{"line":476,"column":12}}]},"77":{"line":476,"type":"binary-expr","locations":[{"start":{"line":476,"column":16},"end":{"line":476,"column":28}},{"start":{"line":477,"column":14},"end":{"line":477,"column":42}},{"start":{"line":478,"column":14},"end":{"line":478,"column":38}}]},"78":{"line":488,"type":"if","locations":[{"start":{"line":488,"column":10},"end":{"line":488,"column":10}},{"start":{"line":488,"column":10},"end":{"line":488,"column":10}}]},"79":{"line":489,"type":"binary-expr","locations":[{"start":{"line":489,"column":12},"end":{"line":489,"column":52}},{"start":{"line":490,"column":12},"end":{"line":490,"column":49}}]},"80":{"line":508,"type":"binary-expr","locations":[{"start":{"line":508,"column":11},"end":{"line":508,"column":40}},{"start":{"line":509,"column":12},"end":{"line":509,"column":54}},{"start":{"line":510,"column":12},"end":{"line":510,"column":38}}]},"81":{"line":559,"type":"if","locations":[{"start":{"line":559,"column":6},"end":{"line":559,"column":6}},{"start":{"line":559,"column":6},"end":{"line":559,"column":6}}]},"82":{"line":560,"type":"binary-expr","locations":[{"start":{"line":560,"column":8},"end":{"line":560,"column":39}},{"start":{"line":561,"column":8},"end":{"line":561,"column":49}}]},"83":{"line":566,"type":"cond-expr","locations":[{"start":{"line":566,"column":34},"end":{"line":566,"column":44}},{"start":{"line":566,"column":47},"end":{"line":566,"column":54}}]},"84":{"line":578,"type":"cond-expr","locations":[{"start":{"line":579,"column":8},"end":{"line":579,"column":25}},{"start":{"line":580,"column":8},"end":{"line":580,"column":26}}]},"85":{"line":591,"type":"if","locations":[{"start":{"line":591,"column":4},"end":{"line":591,"column":4}},{"start":{"line":591,"column":4},"end":{"line":591,"column":4}}]},"86":{"line":602,"type":"if","locations":[{"start":{"line":602,"column":4},"end":{"line":602,"column":4}},{"start":{"line":602,"column":4},"end":{"line":602,"column":4}}]},"87":{"line":611,"type":"if","locations":[{"start":{"line":611,"column":6},"end":{"line":611,"column":6}},{"start":{"line":611,"column":6},"end":{"line":611,"column":6}}]},"88":{"line":624,"type":"if","locations":[{"start":{"line":624,"column":4},"end":{"line":624,"column":4}},{"start":{"line":624,"column":4},"end":{"line":624,"column":4}}]},"89":{"line":624,"type":"binary-expr","locations":[{"start":{"line":624,"column":8},"end":{"line":624,"column":10}},{"start":{"line":624,"column":14},"end":{"line":624,"column":16}}]},"90":{"line":653,"type":"switch","locations":[{"start":{"line":654,"column":8},"end":{"line":660,"column":16}},{"start":{"line":661,"column":8},"end":{"line":705,"column":16}},{"start":{"line":706,"column":8},"end":{"line":715,"column":16}}]},"91":{"line":656,"type":"if","locations":[{"start":{"line":656,"column":10},"end":{"line":656,"column":10}},{"start":{"line":656,"column":10},"end":{"line":656,"column":10}}]},"92":{"line":665,"type":"cond-expr","locations":[{"start":{"line":665,"column":33},"end":{"line":665,"column":79}},{"start":{"line":665,"column":83},"end":{"line":665,"column":85}}]},"93":{"line":667,"type":"cond-expr","locations":[{"start":{"line":667,"column":31},"end":{"line":667,"column":73}},{"start":{"line":667,"column":76},"end":{"line":667,"column":78}}]},"94":{"line":669,"type":"switch","locations":[{"start":{"line":674,"column":12},"end":{"line":676,"column":20}},{"start":{"line":678,"column":12},"end":{"line":679,"column":25}},{"start":{"line":681,"column":12},"end":{"line":683,"column":20}}]},"95":{"line":689,"type":"if","locations":[{"start":{"line":689,"column":10},"end":{"line":689,"column":10}},{"start":{"line":689,"column":10},"end":{"line":689,"column":10}}]},"96":{"line":702,"type":"if","locations":[{"start":{"line":702,"column":10},"end":{"line":702,"column":10}},{"start":{"line":702,"column":10},"end":{"line":702,"column":10}}]},"97":{"line":708,"type":"binary-expr","locations":[{"start":{"line":708,"column":19},"end":{"line":708,"column":51}},{"start":{"line":709,"column":20},"end":{"line":713,"column":21}}]},"98":{"line":725,"type":"binary-expr","locations":[{"start":{"line":725,"column":13},"end":{"line":725,"column":31}},{"start":{"line":725,"column":35},"end":{"line":725,"column":65}}]},"99":{"line":726,"type":"binary-expr","locations":[{"start":{"line":726,"column":11},"end":{"line":726,"column":13}},{"start":{"line":726,"column":17},"end":{"line":726,"column":52}}]},"100":{"line":731,"type":"if","locations":[{"start":{"line":731,"column":4},"end":{"line":731,"column":4}},{"start":{"line":731,"column":4},"end":{"line":731,"column":4}}]},"101":{"line":742,"type":"if","locations":[{"start":{"line":742,"column":4},"end":{"line":742,"column":4}},{"start":{"line":742,"column":4},"end":{"line":742,"column":4}}]},"102":{"line":742,"type":"binary-expr","locations":[{"start":{"line":742,"column":8},"end":{"line":742,"column":14}},{"start":{"line":742,"column":18},"end":{"line":742,"column":41}}]},"103":{"line":744,"type":"if","locations":[{"start":{"line":744,"column":6},"end":{"line":744,"column":6}},{"start":{"line":744,"column":6},"end":{"line":744,"column":6}}]},"104":{"line":746,"type":"binary-expr","locations":[{"start":{"line":746,"column":11},"end":{"line":746,"column":17}},{"start":{"line":746,"column":21},"end":{"line":746,"column":33}}]},"105":{"line":757,"type":"if","locations":[{"start":{"line":757,"column":4},"end":{"line":757,"column":4}},{"start":{"line":757,"column":4},"end":{"line":757,"column":4}}]},"106":{"line":759,"type":"if","locations":[{"start":{"line":759,"column":11},"end":{"line":759,"column":11}},{"start":{"line":759,"column":11},"end":{"line":759,"column":11}}]},"107":{"line":761,"type":"if","locations":[{"start":{"line":761,"column":11},"end":{"line":761,"column":11}},{"start":{"line":761,"column":11},"end":{"line":761,"column":11}}]},"108":{"line":771,"type":"if","locations":[{"start":{"line":771,"column":6},"end":{"line":771,"column":6}},{"start":{"line":771,"column":6},"end":{"line":771,"column":6}}]},"109":{"line":784,"type":"binary-expr","locations":[{"start":{"line":784,"column":11},"end":{"line":784,"column":24}},{"start":{"line":784,"column":28},"end":{"line":784,"column":43}}]},"110":{"line":793,"type":"binary-expr","locations":[{"start":{"line":793,"column":15},"end":{"line":793,"column":27}},{"start":{"line":793,"column":32},"end":{"line":793,"column":64}}]},"111":{"line":805,"type":"binary-expr","locations":[{"start":{"line":805,"column":7},"end":{"line":805,"column":51}},{"start":{"line":806,"column":6},"end":{"line":806,"column":33}},{"start":{"line":807,"column":6},"end":{"line":807,"column":44}}]},"112":{"line":822,"type":"if","locations":[{"start":{"line":822,"column":4},"end":{"line":822,"column":4}},{"start":{"line":822,"column":4},"end":{"line":822,"column":4}}]},"113":{"line":822,"type":"binary-expr","locations":[{"start":{"line":822,"column":8},"end":{"line":822,"column":23}},{"start":{"line":822,"column":27},"end":{"line":822,"column":65}}]},"114":{"line":831,"type":"switch","locations":[{"start":{"line":832,"column":6},"end":{"line":834,"column":14}},{"start":{"line":835,"column":6},"end":{"line":837,"column":14}},{"start":{"line":838,"column":6},"end":{"line":840,"column":14}}]},"115":{"line":849,"type":"if","locations":[{"start":{"line":849,"column":4},"end":{"line":849,"column":4}},{"start":{"line":849,"column":4},"end":{"line":849,"column":4}}]},"116":{"line":870,"type":"cond-expr","locations":[{"start":{"line":871,"column":6},"end":{"line":881,"column":7}},{"start":{"line":882,"column":6},"end":{"line":882,"column":13}}]},"117":{"line":885,"type":"cond-expr","locations":[{"start":{"line":886,"column":6},"end":{"line":899,"column":7}},{"start":{"line":900,"column":6},"end":{"line":900,"column":9}}]},"118":{"line":905,"type":"binary-expr","locations":[{"start":{"line":905,"column":16},"end":{"line":905,"column":29}},{"start":{"line":906,"column":17},"end":{"line":914,"column":19}}]},"119":{"line":917,"type":"binary-expr","locations":[{"start":{"line":917,"column":13},"end":{"line":917,"column":25}},{"start":{"line":918,"column":14},"end":{"line":918,"column":68}}]},"120":{"line":932,"type":"if","locations":[{"start":{"line":932,"column":2},"end":{"line":932,"column":2}},{"start":{"line":932,"column":2},"end":{"line":932,"column":2}}]},"121":{"line":936,"type":"binary-expr","locations":[{"start":{"line":936,"column":13},"end":{"line":936,"column":33}},{"start":{"line":937,"column":13},"end":{"line":937,"column":44}}]},"122":{"line":942,"type":"cond-expr","locations":[{"start":{"line":943,"column":6},"end":{"line":945,"column":7}},{"start":{"line":946,"column":6},"end":{"line":954,"column":7}}]},"123":{"line":957,"type":"cond-expr","locations":[{"start":{"line":958,"column":6},"end":{"line":971,"column":7}},{"start":{"line":972,"column":6},"end":{"line":972,"column":47}}]},"124":{"line":957,"type":"binary-expr","locations":[{"start":{"line":957,"column":20},"end":{"line":957,"column":22}},{"start":{"line":957,"column":26},"end":{"line":957,"column":28}}]},"125":{"line":967,"type":"if","locations":[{"start":{"line":967,"column":10},"end":{"line":967,"column":10}},{"start":{"line":967,"column":10},"end":{"line":967,"column":10}}]},"126":{"line":976,"type":"cond-expr","locations":[{"start":{"line":977,"column":6},"end":{"line":990,"column":7}},{"start":{"line":991,"column":6},"end":{"line":996,"column":7}}]},"127":{"line":976,"type":"binary-expr","locations":[{"start":{"line":976,"column":16},"end":{"line":976,"column":18}},{"start":{"line":976,"column":22},"end":{"line":976,"column":24}}]},"128":{"line":980,"type":"switch","locations":[{"start":{"line":981,"column":12},"end":{"line":983,"column":20}},{"start":{"line":984,"column":12},"end":{"line":986,"column":20}}]},"129":{"line":1006,"type":"binary-expr","locations":[{"start":{"line":1006,"column":17},"end":{"line":1006,"column":19}},{"start":{"line":1006,"column":23},"end":{"line":1006,"column":26}}]},"130":{"line":1006,"type":"binary-expr","locations":[{"start":{"line":1006,"column":37},"end":{"line":1006,"column":39}},{"start":{"line":1006,"column":43},"end":{"line":1006,"column":46}}]},"131":{"line":1010,"type":"cond-expr","locations":[{"start":{"line":1011,"column":4},"end":{"line":1016,"column":5}},{"start":{"line":1017,"column":4},"end":{"line":1017,"column":55}}]},"132":{"line":1013,"type":"if","locations":[{"start":{"line":1013,"column":8},"end":{"line":1013,"column":8}},{"start":{"line":1013,"column":8},"end":{"line":1013,"column":8}}]},"133":{"line":1019,"type":"cond-expr","locations":[{"start":{"line":1020,"column":4},"end":{"line":1025,"column":5}},{"start":{"line":1026,"column":4},"end":{"line":1026,"column":59}}]},"134":{"line":1022,"type":"if","locations":[{"start":{"line":1022,"column":8},"end":{"line":1022,"column":8}},{"start":{"line":1022,"column":8},"end":{"line":1022,"column":8}}]},"135":{"line":1045,"type":"cond-expr","locations":[{"start":{"line":1046,"column":6},"end":{"line":1056,"column":7}},{"start":{"line":1057,"column":6},"end":{"line":1059,"column":7}}]},"136":{"line":1083,"type":"switch","locations":[{"start":{"line":1084,"column":6},"end":{"line":1084,"column":24}},{"start":{"line":1085,"column":6},"end":{"line":1087,"column":14}},{"start":{"line":1088,"column":6},"end":{"line":1094,"column":14}},{"start":{"line":1095,"column":6},"end":{"line":1095,"column":26}},{"start":{"line":1096,"column":6},"end":{"line":1099,"column":14}}]},"137":{"line":1124,"type":"if","locations":[{"start":{"line":1124,"column":6},"end":{"line":1124,"column":6}},{"start":{"line":1124,"column":6},"end":{"line":1124,"column":6}}]},"138":{"line":1166,"type":"if","locations":[{"start":{"line":1166,"column":4},"end":{"line":1166,"column":4}},{"start":{"line":1166,"column":4},"end":{"line":1166,"column":4}}]},"139":{"line":1168,"type":"binary-expr","locations":[{"start":{"line":1168,"column":16},"end":{"line":1168,"column":39}},{"start":{"line":1169,"column":16},"end":{"line":1169,"column":51}}]},"140":{"line":1170,"type":"if","locations":[{"start":{"line":1170,"column":4},"end":{"line":1170,"column":4}},{"start":{"line":1170,"column":4},"end":{"line":1170,"column":4}}]},"141":{"line":1190,"type":"cond-expr","locations":[{"start":{"line":1191,"column":8},"end":{"line":1191,"column":54}},{"start":{"line":1192,"column":8},"end":{"line":1192,"column":16}}]},"142":{"line":1197,"type":"if","locations":[{"start":{"line":1197,"column":6},"end":{"line":1197,"column":6}},{"start":{"line":1197,"column":6},"end":{"line":1197,"column":6}}]},"143":{"line":1199,"type":"if","locations":[{"start":{"line":1199,"column":8},"end":{"line":1199,"column":8}},{"start":{"line":1199,"column":8},"end":{"line":1199,"column":8}}]},"144":{"line":1207,"type":"cond-expr","locations":[{"start":{"line":1208,"column":6},"end":{"line":1234,"column":7}},{"start":{"line":1235,"column":6},"end":{"line":1244,"column":7}}]},"145":{"line":1210,"type":"if","locations":[{"start":{"line":1210,"column":8},"end":{"line":1210,"column":8}},{"start":{"line":1210,"column":8},"end":{"line":1210,"column":8}}]},"146":{"line":1211,"type":"if","locations":[{"start":{"line":1211,"column":8},"end":{"line":1211,"column":8}},{"start":{"line":1211,"column":8},"end":{"line":1211,"column":8}}]},"147":{"line":1215,"type":"if","locations":[{"start":{"line":1215,"column":12},"end":{"line":1215,"column":12}},{"start":{"line":1215,"column":12},"end":{"line":1215,"column":12}}]},"148":{"line":1216,"type":"if","locations":[{"start":{"line":1216,"column":14},"end":{"line":1216,"column":14}},{"start":{"line":1216,"column":14},"end":{"line":1216,"column":14}}]},"149":{"line":1225,"type":"if","locations":[{"start":{"line":1225,"column":16},"end":{"line":1225,"column":16}},{"start":{"line":1225,"column":16},"end":{"line":1225,"column":16}}]},"150":{"line":1236,"type":"if","locations":[{"start":{"line":1236,"column":8},"end":{"line":1236,"column":8}},{"start":{"line":1236,"column":8},"end":{"line":1236,"column":8}}]},"151":{"line":1237,"type":"if","locations":[{"start":{"line":1237,"column":8},"end":{"line":1237,"column":8}},{"start":{"line":1237,"column":8},"end":{"line":1237,"column":8}}]},"152":{"line":1252,"type":"if","locations":[{"start":{"line":1252,"column":4},"end":{"line":1252,"column":4}},{"start":{"line":1252,"column":4},"end":{"line":1252,"column":4}}]},"153":{"line":1254,"type":"binary-expr","locations":[{"start":{"line":1254,"column":13},"end":{"line":1254,"column":29}},{"start":{"line":1254,"column":33},"end":{"line":1254,"column":39}}]},"154":{"line":1256,"type":"if","locations":[{"start":{"line":1256,"column":4},"end":{"line":1256,"column":4}},{"start":{"line":1256,"column":4},"end":{"line":1256,"column":4}}]},"155":{"line":1260,"type":"binary-expr","locations":[{"start":{"line":1260,"column":11},"end":{"line":1260,"column":19}},{"start":{"line":1260,"column":24},"end":{"line":1260,"column":52}}]}}}} \ No newline at end of file +{"/home/webreflection/code/hyperHTML/index.js":{"path":"/home/webreflection/code/hyperHTML/index.js","s":{"1":2,"2":2,"3":2,"4":1,"5":20,"6":2,"7":28,"8":32,"9":32,"10":32,"11":32,"12":2,"13":1,"14":210,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":62,"22":2,"23":1,"24":2,"25":6,"26":6,"27":6,"28":4,"29":6,"30":6,"31":6,"32":11,"33":6,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":1,"46":104,"47":104,"48":104,"49":2,"50":88,"51":50,"52":88,"53":88,"54":88,"55":48,"56":34,"57":14,"58":14,"59":38,"60":48,"61":88,"62":1,"63":282,"64":282,"65":156,"66":156,"67":282,"68":282,"69":1,"70":48,"71":48,"72":12,"73":48,"74":24,"75":48,"76":30,"77":18,"78":4,"79":18,"80":18,"81":16,"82":20,"83":16,"84":16,"85":14,"86":4,"87":4,"88":10,"89":48,"90":36,"91":36,"92":34,"93":4,"94":2,"95":2,"96":30,"97":30,"98":2,"99":2,"100":1,"101":4,"102":4,"103":6,"104":4,"105":4,"106":1,"107":104,"108":104,"109":286,"110":114,"111":114,"112":46,"113":28,"114":28,"115":68,"116":68,"117":2,"118":66,"119":114,"120":4,"121":4,"122":168,"123":6,"124":6,"125":6,"126":162,"127":2,"128":162,"129":162,"130":78,"131":78,"132":4,"133":74,"134":24,"135":24,"136":10,"137":10,"138":12,"139":10,"140":10,"141":40,"142":12,"143":40,"144":4,"145":4,"146":36,"147":78,"148":4,"149":36,"150":36,"151":84,"152":24,"153":60,"154":4,"155":56,"156":10,"157":46,"158":4,"159":42,"160":4,"161":38,"162":28,"163":28,"164":28,"165":28,"166":28,"167":10,"168":4,"169":6,"170":162,"171":1,"172":118,"173":56,"174":56,"175":48,"176":48,"177":1,"178":228,"179":322,"180":322,"181":118,"182":118,"183":118,"184":66,"185":64,"186":64,"187":66,"188":138,"189":4,"190":4,"191":138,"192":2,"193":2,"194":2,"195":2,"196":2,"197":2,"198":2,"199":2,"200":2,"201":1,"202":4,"203":1,"204":2,"205":1,"206":62,"207":90,"208":90,"209":66,"210":62,"211":1,"212":142,"213":1,"214":138,"215":1,"216":136,"217":136,"218":136,"219":136,"220":136,"221":136,"222":64,"223":64,"224":136,"225":1,"226":1,"227":1,"228":135,"229":135,"230":72,"231":63,"232":136,"233":1,"234":2,"235":2,"236":2,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":2,"244":1,"245":72,"246":1,"247":4,"248":4,"249":4,"250":1,"251":46,"252":46,"253":4,"254":4,"255":2,"256":46,"257":1,"258":10,"259":10,"260":2,"261":8,"262":2,"263":6,"264":2,"265":4,"266":1,"267":10,"268":10,"269":8,"270":1,"271":84,"272":1,"273":100,"274":1,"275":6,"276":6,"277":42,"278":18,"279":1,"280":156,"281":24,"282":1,"283":156,"284":156,"285":104,"286":104,"287":48,"288":48,"289":4,"290":4,"291":156,"292":1,"293":116,"294":2,"295":2,"296":164,"297":90,"298":2,"299":1,"300":1,"301":78,"302":55,"303":2,"304":1,"305":1,"306":1,"307":101,"308":2,"309":21,"310":2,"311":2,"312":2,"313":2,"314":1,"315":1,"316":206,"317":206,"318":2,"319":69,"320":5,"321":6,"322":2,"323":162,"324":390,"325":390,"326":205,"327":162,"328":101,"329":2,"330":82,"331":137,"332":137,"333":61,"334":61,"335":76,"336":76,"337":82,"338":82,"339":137,"340":82,"341":2,"342":2,"343":2,"344":38,"345":2,"346":48,"347":2,"348":2,"349":2,"350":2,"351":2,"352":2,"353":2,"354":2,"355":206,"356":144,"357":206,"358":62,"359":2,"360":21,"361":15,"362":6,"363":15,"364":21,"365":2,"366":18,"367":12,"368":4,"369":14,"370":18,"371":1,"372":40,"373":40,"374":10,"375":10,"376":1,"377":36,"378":10,"379":26,"380":1,"381":46,"382":82,"383":8,"384":8,"385":6,"386":8,"387":8,"388":36,"389":36,"390":36,"391":36,"392":36,"393":36,"394":36,"395":36,"396":26,"397":26,"398":4,"399":10,"400":10,"401":36,"402":36,"403":6,"404":30,"405":36,"406":30,"407":36,"408":38,"409":38,"410":38,"411":46,"412":1,"413":32,"414":46,"415":46,"416":46,"417":32,"418":32,"419":1,"420":110,"421":110,"422":110,"423":110,"424":110,"425":110,"426":1,"427":116,"428":116,"429":116,"430":4,"431":4,"432":64,"433":64,"434":64,"435":48,"436":48,"437":48,"438":116,"439":92,"440":116,"441":1,"442":124,"443":110,"444":110,"445":124,"446":124,"447":1,"448":282,"449":300,"450":1,"451":156,"452":78,"453":156,"454":156,"455":156,"456":124,"457":124,"458":124,"459":124,"460":32,"461":156,"462":1,"463":60,"464":1,"465":60,"466":60,"467":60,"468":1,"469":90,"470":62,"471":62,"472":8,"473":62,"474":90,"475":60,"476":14,"477":14,"478":7,"479":14,"480":10,"481":10,"482":10,"483":14,"484":10,"485":2,"486":2,"487":2,"488":8,"489":2,"490":8,"491":14,"492":14,"493":14,"494":76,"495":38,"496":76,"497":52,"498":52,"499":52,"500":76,"501":76,"502":1,"503":46,"504":46,"505":46,"506":46,"507":12,"508":12,"509":46,"510":24,"511":24,"512":46,"513":2,"514":2,"515":2,"516":1,"517":60,"518":60,"519":26,"520":24,"521":26,"522":34,"523":4,"524":4,"525":30,"526":2,"527":104,"528":104,"529":2,"530":1,"531":104,"532":104,"533":104,"534":1,"535":30,"536":30,"537":30,"538":30,"539":30,"540":30,"541":30,"542":30,"543":30,"544":30,"545":30,"546":30,"547":30,"548":50,"549":30,"550":46,"551":46,"552":46,"553":46,"554":46,"555":84,"556":84,"557":84,"558":84,"559":84,"560":46,"561":30,"562":1,"563":28,"564":1,"565":30,"566":30,"567":50,"568":50,"569":50,"570":50,"571":50,"572":50,"573":50,"574":42,"575":42,"576":42,"577":16,"578":8,"579":6,"580":6,"581":2,"582":2,"583":30,"584":2,"585":30,"586":2,"587":30,"588":1,"589":30,"590":30,"591":20,"592":20,"593":8,"594":8,"595":2,"596":2,"597":6,"598":6,"599":6,"600":8,"601":20,"602":1,"603":88,"604":2,"605":2},"b":{"1":[14,6],"2":[2,12],"3":[2,10],"4":[2,8],"5":[4,4],"6":[2,4],"7":[14,48],"8":[6,42],"9":[6,2],"10":[42,16],"11":[6,4,4],"12":[2,4],"13":[138,56],"14":[48,40],"15":[34,14],"16":[48,44],"17":[156,126],"18":[282,166],"19":[83,83],"20":[48,46,20],"21":[14,34],"22":[48,34],"23":[12,36],"24":[48,14],"25":[24,24],"26":[14,34],"27":[18,12],"28":[4,14],"29":[16,2],"30":[10,24],"31":[16,4],"32":[14,2],"33":[4,10],"34":[36,12],"35":[34,2],"36":[4,30],"37":[2,2],"38":[2,28],"39":[4,2],"40":[100,112,114,4,164,168,162],"41":[46,68],"42":[114,48],"43":[28,18],"44":[2,66],"45":[6,162],"46":[2,160],"47":[78,84],"48":[4,74],"49":[16,24,24,10,40,36],"50":[12,28],"51":[4,36],"52":[4,74],"53":[24,60],"54":[8,16],"55":[4,56],"56":[10,46],"57":[4,42],"58":[4,38],"59":[28,10],"60":[4,6],"61":[48,8],"62":[118,66,138],"63":[64,2],"64":[4,134],"65":[138,4],"66":[2,1,1],"67":[66,24],"68":[90,38],"69":[54,8],"70":[2,136],"71":[64,72],"72":[1,135],"73":[72,63],"74":[1,1],"75":[2,1],"76":[4,4],"77":[4,4],"78":[4,42],"79":[46,46],"80":[2,2],"81":[46,46],"82":[2,8],"83":[2,6],"84":[2,4],"85":[8,2],"86":[100,100],"87":[42,14],"88":[104,48,4],"89":[1,1],"90":[1,1],"91":[2,1],"92":[2,1],"93":[1,1],"94":[206,55],"95":[1,1],"96":[1,1],"97":[2,1],"98":[205,185],"99":[1,1],"100":[2,1],"101":[61,76],"102":[48,22],"103":[48,22],"104":[1,1],"105":[1,1],"106":[6,9],"107":[1,1],"108":[4,8],"109":[10,30],"110":[40,16],"111":[10,26],"112":[8,36,38],"113":[6,2],"114":[8,28],"115":[10,26],"116":[26,4,10],"117":[6,30],"118":[30,6],"119":[38,8],"120":[4,4,64,16,48],"121":[78,78],"122":[156,110],"123":[124,32],"124":[8,52],"125":[62,28],"126":[8,54],"127":[8,52],"128":[7,7],"129":[10,4],"130":[10,4],"131":[2,8],"132":[2,6],"133":[38,38],"134":[52,24],"135":[12,34],"136":[12,12],"137":[24,22],"138":[46,26],"139":[1,1],"140":[60,34],"141":[26,34],"142":[60,34],"143":[24,2],"144":[26,2],"145":[4,30],"146":[30,54],"147":[18,66],"148":[10,8],"149":[16,50],"150":[80,52],"151":[42,8],"152":[50,44,42],"153":[16,26],"154":[6,2],"155":[8,6],"156":[20,10],"157":[2,6],"158":[8,4,2],"159":[2,4],"160":[2,2]},"f":{"1":2,"2":20,"3":28,"4":32,"5":210,"6":2,"7":2,"8":62,"9":14,"10":6,"11":6,"12":4,"13":6,"14":104,"15":88,"16":282,"17":48,"18":30,"19":20,"20":48,"21":4,"22":6,"23":104,"24":286,"25":118,"26":228,"27":2,"28":4,"29":2,"30":62,"31":142,"32":138,"33":136,"34":2,"35":72,"36":4,"37":46,"38":10,"39":10,"40":84,"41":100,"42":6,"43":42,"44":18,"45":156,"46":156,"47":116,"48":2,"49":164,"50":90,"51":1,"52":78,"53":55,"54":1,"55":101,"56":21,"57":206,"58":69,"59":5,"60":162,"61":101,"62":82,"63":82,"64":38,"65":48,"66":2,"67":206,"68":62,"69":21,"70":21,"71":18,"72":18,"73":40,"74":36,"75":46,"76":32,"77":110,"78":116,"79":124,"80":282,"81":156,"82":60,"83":60,"84":90,"85":14,"86":14,"87":76,"88":46,"89":2,"90":60,"91":104,"92":104,"93":30,"94":28,"95":30,"96":30,"97":88},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":53}}},"2":{"name":"hyper","line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":16,"column":23}}},"3":{"name":"adopt","line":38,"loc":{"start":{"line":38,"column":16},"end":{"line":38,"column":37}}},"4":{"name":"(anonymous_4)","line":39,"loc":{"start":{"line":39,"column":11},"end":{"line":39,"column":23}}},"5":{"name":"bind","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":25}}},"6":{"name":"define","line":53,"loc":{"start":{"line":53,"column":17},"end":{"line":53,"column":56}}},"7":{"name":"escape","line":58,"loc":{"start":{"line":58,"column":17},"end":{"line":58,"column":39}}},"8":{"name":"wire","line":65,"loc":{"start":{"line":65,"column":2},"end":{"line":65,"column":27}}},"9":{"name":"Component","line":79,"loc":{"start":{"line":79,"column":2},"end":{"line":79,"column":23}}},"10":{"name":"(anonymous_10)","line":84,"loc":{"start":{"line":84,"column":27},"end":{"line":84,"column":40}}},"11":{"name":"(anonymous_11)","line":97,"loc":{"start":{"line":97,"column":33},"end":{"line":97,"column":45}}},"12":{"name":"(anonymous_12)","line":99,"loc":{"start":{"line":99,"column":26},"end":{"line":99,"column":38}}},"13":{"name":"(anonymous_13)","line":101,"loc":{"start":{"line":101,"column":24},"end":{"line":101,"column":41}}},"14":{"name":"Aura","line":141,"loc":{"start":{"line":141,"column":2},"end":{"line":141,"column":34}}},"15":{"name":"splice","line":147,"loc":{"start":{"line":147,"column":26},"end":{"line":147,"column":62}}},"16":{"name":"render","line":181,"loc":{"start":{"line":181,"column":2},"end":{"line":181,"column":28}}},"17":{"name":"setAttribute","line":198,"loc":{"start":{"line":198,"column":2},"end":{"line":198,"column":59}}},"18":{"name":"eventAttr","line":212,"loc":{"start":{"line":212,"column":6},"end":{"line":212,"column":35}}},"19":{"name":"specialAttr","line":220,"loc":{"start":{"line":220,"column":8},"end":{"line":220,"column":39}}},"20":{"name":"normalAttr","line":240,"loc":{"start":{"line":240,"column":8},"end":{"line":240,"column":38}}},"21":{"name":"setTextContent","line":266,"loc":{"start":{"line":266,"column":2},"end":{"line":266,"column":32}}},"22":{"name":"(anonymous_22)","line":268,"loc":{"start":{"line":268,"column":11},"end":{"line":268,"column":28}}},"23":{"name":"setAnyContent","line":278,"loc":{"start":{"line":278,"column":2},"end":{"line":278,"column":49}}},"24":{"name":"anyContent","line":280,"loc":{"start":{"line":280,"column":11},"end":{"line":280,"column":38}}},"25":{"name":"attributesSeeker","line":394,"loc":{"start":{"line":394,"column":2},"end":{"line":394,"column":48}}},"26":{"name":"hyperSeeker","line":420,"loc":{"start":{"line":420,"column":2},"end":{"line":420,"column":43}}},"27":{"name":"(anonymous_27)","line":466,"loc":{"start":{"line":466,"column":13},"end":{"line":466,"column":25}}},"28":{"name":"fnEscape","line":491,"loc":{"start":{"line":491,"column":2},"end":{"line":491,"column":23}}},"29":{"name":"asHTML","line":496,"loc":{"start":{"line":496,"column":2},"end":{"line":496,"column":24}}},"30":{"name":"createContent","line":501,"loc":{"start":{"line":501,"column":2},"end":{"line":501,"column":31}}},"31":{"name":"createDocumentFragment","line":522,"loc":{"start":{"line":522,"column":2},"end":{"line":522,"column":44}}},"32":{"name":"createFragment","line":528,"loc":{"start":{"line":528,"column":2},"end":{"line":528,"column":38}}},"33":{"name":"createHTMLFragment","line":537,"loc":{"start":{"line":537,"column":2},"end":{"line":537,"column":42}}},"34":{"name":"createSVGFragment","line":573,"loc":{"start":{"line":573,"column":2},"end":{"line":573,"column":41}}},"35":{"name":"createText","line":589,"loc":{"start":{"line":589,"column":2},"end":{"line":589,"column":34}}},"36":{"name":"getCEClass","line":595,"loc":{"start":{"line":595,"column":2},"end":{"line":595,"column":28}}},"37":{"name":"isSpecialAttribute","line":603,"loc":{"start":{"line":603,"column":2},"end":{"line":603,"column":42}}},"38":{"name":"invokeAtDistance","line":613,"loc":{"start":{"line":613,"column":2},"end":{"line":613,"column":45}}},"39":{"name":"invokeTransformer","line":627,"loc":{"start":{"line":627,"column":2},"end":{"line":627,"column":37}}},"40":{"name":"isNode_ish","line":636,"loc":{"start":{"line":636,"column":2},"end":{"line":636,"column":29}}},"41":{"name":"isPromise_ish","line":641,"loc":{"start":{"line":641,"column":2},"end":{"line":641,"column":32}}},"42":{"name":"lazyGetter","line":647,"loc":{"start":{"line":647,"column":2},"end":{"line":647,"column":32}}},"43":{"name":"(anonymous_43)","line":650,"loc":{"start":{"line":650,"column":11},"end":{"line":650,"column":23}}},"44":{"name":"(anonymous_44)","line":653,"loc":{"start":{"line":653,"column":11},"end":{"line":653,"column":28}}},"45":{"name":"removeAttributeList","line":660,"loc":{"start":{"line":660,"column":2},"end":{"line":660,"column":37}}},"46":{"name":"setContent","line":667,"loc":{"start":{"line":667,"column":2},"end":{"line":667,"column":66}}},"47":{"name":"Path","line":685,"loc":{"start":{"line":685,"column":2},"end":{"line":685,"column":34}}},"48":{"name":"(anonymous_48)","line":695,"loc":{"start":{"line":695,"column":6},"end":{"line":695,"column":18}}},"49":{"name":"(anonymous_49)","line":697,"loc":{"start":{"line":697,"column":15},"end":{"line":697,"column":30}}},"50":{"name":"(anonymous_50)","line":698,"loc":{"start":{"line":698,"column":15},"end":{"line":698,"column":37}}},"51":{"name":"(anonymous_51)","line":710,"loc":{"start":{"line":710,"column":6},"end":{"line":710,"column":18}}},"52":{"name":"(anonymous_52)","line":713,"loc":{"start":{"line":713,"column":15},"end":{"line":713,"column":30}}},"53":{"name":"(anonymous_53)","line":719,"loc":{"start":{"line":719,"column":15},"end":{"line":719,"column":37}}},"54":{"name":"(anonymous_54)","line":730,"loc":{"start":{"line":730,"column":17},"end":{"line":730,"column":29}}},"55":{"name":"(anonymous_55)","line":735,"loc":{"start":{"line":735,"column":25},"end":{"line":735,"column":38}}},"56":{"name":"(anonymous_56)","line":742,"loc":{"start":{"line":742,"column":14},"end":{"line":742,"column":26}}},"57":{"name":"(anonymous_57)","line":758,"loc":{"start":{"line":758,"column":13},"end":{"line":758,"column":33}}},"58":{"name":"(anonymous_58)","line":767,"loc":{"start":{"line":767,"column":6},"end":{"line":767,"column":34}}},"59":{"name":"appendNodes","line":770,"loc":{"start":{"line":770,"column":6},"end":{"line":770,"column":45}}},"60":{"name":"(anonymous_60)","line":782,"loc":{"start":{"line":782,"column":6},"end":{"line":782,"column":22}}},"61":{"name":"(anonymous_61)","line":796,"loc":{"start":{"line":796,"column":6},"end":{"line":796,"column":22}}},"62":{"name":"(anonymous_62)","line":801,"loc":{"start":{"line":801,"column":6},"end":{"line":801,"column":34}}},"63":{"name":"(anonymous_63)","line":815,"loc":{"start":{"line":815,"column":6},"end":{"line":815,"column":34}}},"64":{"name":"(anonymous_64)","line":825,"loc":{"start":{"line":825,"column":17},"end":{"line":825,"column":43}}},"65":{"name":"(anonymous_65)","line":829,"loc":{"start":{"line":829,"column":26},"end":{"line":829,"column":48}}},"66":{"name":"(anonymous_66)","line":847,"loc":{"start":{"line":847,"column":19},"end":{"line":847,"column":31}}},"67":{"name":"(anonymous_67)","line":851,"loc":{"start":{"line":851,"column":6},"end":{"line":851,"column":22}}},"68":{"name":"(anonymous_68)","line":862,"loc":{"start":{"line":862,"column":6},"end":{"line":862,"column":26}}},"69":{"name":"(anonymous_69)","line":873,"loc":{"start":{"line":873,"column":4},"end":{"line":873,"column":20}}},"70":{"name":"(anonymous_70)","line":879,"loc":{"start":{"line":879,"column":4},"end":{"line":879,"column":20}}},"71":{"name":"(anonymous_71)","line":882,"loc":{"start":{"line":882,"column":4},"end":{"line":882,"column":20}}},"72":{"name":"(anonymous_72)","line":888,"loc":{"start":{"line":888,"column":4},"end":{"line":888,"column":20}}},"73":{"name":"removePreviousText","line":891,"loc":{"start":{"line":891,"column":2},"end":{"line":891,"column":48}}},"74":{"name":"insertBefore","line":900,"loc":{"start":{"line":900,"column":2},"end":{"line":900,"column":51}}},"75":{"name":"discoverNode","line":910,"loc":{"start":{"line":910,"column":2},"end":{"line":910,"column":63}}},"76":{"name":"discoverUpdates","line":989,"loc":{"start":{"line":989,"column":2},"end":{"line":989,"column":44}}},"77":{"name":"createTemplate","line":1016,"loc":{"start":{"line":1016,"column":2},"end":{"line":1016,"column":36}}},"78":{"name":"createPath","line":1028,"loc":{"start":{"line":1028,"column":2},"end":{"line":1028,"column":28}}},"79":{"name":"createUpdates","line":1062,"loc":{"start":{"line":1062,"column":2},"end":{"line":1062,"column":42}}},"80":{"name":"update","line":1083,"loc":{"start":{"line":1083,"column":2},"end":{"line":1083,"column":20}}},"81":{"name":"upgrade","line":1091,"loc":{"start":{"line":1091,"column":2},"end":{"line":1091,"column":29}}},"82":{"name":"wireContent","line":1112,"loc":{"start":{"line":1112,"column":2},"end":{"line":1112,"column":29}}},"83":{"name":"before","line":1115,"loc":{"start":{"line":1115,"column":4},"end":{"line":1115,"column":30}}},"84":{"name":"after","line":1123,"loc":{"start":{"line":1123,"column":4},"end":{"line":1123,"column":21}}},"85":{"name":"adopt","line":1135,"loc":{"start":{"line":1135,"column":6},"end":{"line":1135,"column":30}}},"86":{"name":"(anonymous_86)","line":1141,"loc":{"start":{"line":1141,"column":20},"end":{"line":1141,"column":55}}},"87":{"name":"update","line":1162,"loc":{"start":{"line":1162,"column":6},"end":{"line":1162,"column":31}}},"88":{"name":"wireWeakly","line":1175,"loc":{"start":{"line":1175,"column":2},"end":{"line":1175,"column":33}}},"89":{"name":"(anonymous_89)","line":1206,"loc":{"start":{"line":1206,"column":12},"end":{"line":1206,"column":24}}},"90":{"name":"majinbuu","line":1221,"loc":{"start":{"line":1221,"column":2},"end":{"line":1221,"column":40}}},"91":{"name":"aura","line":1246,"loc":{"start":{"line":1246,"column":18},"end":{"line":1246,"column":51}}},"92":{"name":"Aura","line":1256,"loc":{"start":{"line":1256,"column":2},"end":{"line":1256,"column":29}}},"93":{"name":"levenstein","line":1266,"loc":{"start":{"line":1266,"column":2},"end":{"line":1266,"column":32}}},"94":{"name":"addOperation","line":1302,"loc":{"start":{"line":1302,"column":2},"end":{"line":1302,"column":56}}},"95":{"name":"getOperations","line":1313,"loc":{"start":{"line":1313,"column":2},"end":{"line":1313,"column":37}}},"96":{"name":"performOperations","line":1356,"loc":{"start":{"line":1356,"column":2},"end":{"line":1356,"column":49}}},"97":{"name":"splice","line":1384,"loc":{"start":{"line":1384,"column":2},"end":{"line":1384,"column":20}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1400,"column":6}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":34}},"3":{"start":{"line":14,"column":2},"end":{"line":14,"column":22}},"4":{"start":{"line":16,"column":2},"end":{"line":33,"column":3}},"5":{"start":{"line":17,"column":4},"end":{"line":32,"column":31}},"6":{"start":{"line":38,"column":2},"end":{"line":45,"column":4}},"7":{"start":{"line":39,"column":4},"end":{"line":44,"column":6}},"8":{"start":{"line":40,"column":6},"end":{"line":40,"column":26}},"9":{"start":{"line":41,"column":6},"end":{"line":41,"column":36}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":25}},"11":{"start":{"line":43,"column":6},"end":{"line":43,"column":18}},"12":{"start":{"line":49,"column":2},"end":{"line":49,"column":20}},"13":{"start":{"line":50,"column":2},"end":{"line":50,"column":57}},"14":{"start":{"line":50,"column":27},"end":{"line":50,"column":55}},"15":{"start":{"line":53,"column":2},"end":{"line":55,"column":4}},"16":{"start":{"line":54,"column":4},"end":{"line":54,"column":41}},"17":{"start":{"line":58,"column":2},"end":{"line":60,"column":4}},"18":{"start":{"line":59,"column":4},"end":{"line":59,"column":46}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":20}},"20":{"start":{"line":65,"column":2},"end":{"line":72,"column":3}},"21":{"start":{"line":66,"column":4},"end":{"line":71,"column":8}},"22":{"start":{"line":78,"column":2},"end":{"line":78,"column":30}},"23":{"start":{"line":79,"column":2},"end":{"line":79,"column":25}},"24":{"start":{"line":80,"column":2},"end":{"line":111,"column":4}},"25":{"start":{"line":86,"column":8},"end":{"line":86,"column":33}},"26":{"start":{"line":87,"column":8},"end":{"line":90,"column":13}},"27":{"start":{"line":97,"column":47},"end":{"line":97,"column":72}},"28":{"start":{"line":99,"column":40},"end":{"line":99,"column":50}},"29":{"start":{"line":102,"column":8},"end":{"line":102,"column":32}},"30":{"start":{"line":103,"column":8},"end":{"line":103,"column":84}},"31":{"start":{"line":104,"column":8},"end":{"line":104,"column":58}},"32":{"start":{"line":104,"column":32},"end":{"line":104,"column":58}},"33":{"start":{"line":105,"column":8},"end":{"line":105,"column":22}},"34":{"start":{"line":122,"column":2},"end":{"line":122,"column":23}},"35":{"start":{"line":123,"column":2},"end":{"line":123,"column":25}},"36":{"start":{"line":124,"column":2},"end":{"line":124,"column":20}},"37":{"start":{"line":125,"column":2},"end":{"line":125,"column":23}},"38":{"start":{"line":126,"column":2},"end":{"line":126,"column":34}},"39":{"start":{"line":129,"column":2},"end":{"line":129,"column":44}},"40":{"start":{"line":130,"column":2},"end":{"line":130,"column":51}},"41":{"start":{"line":132,"column":2},"end":{"line":132,"column":40}},"42":{"start":{"line":133,"column":2},"end":{"line":133,"column":27}},"43":{"start":{"line":134,"column":2},"end":{"line":134,"column":61}},"44":{"start":{"line":135,"column":2},"end":{"line":135,"column":34}},"45":{"start":{"line":141,"column":2},"end":{"line":145,"column":3}},"46":{"start":{"line":142,"column":4},"end":{"line":142,"column":21}},"47":{"start":{"line":143,"column":4},"end":{"line":143,"column":33}},"48":{"start":{"line":144,"column":4},"end":{"line":144,"column":43}},"49":{"start":{"line":147,"column":2},"end":{"line":174,"column":4}},"50":{"start":{"line":148,"column":4},"end":{"line":159,"column":5}},"51":{"start":{"line":158,"column":6},"end":{"line":158,"column":28}},"52":{"start":{"line":160,"column":4},"end":{"line":160,"column":10}},"53":{"start":{"line":161,"column":4},"end":{"line":161,"column":30}},"54":{"start":{"line":162,"column":4},"end":{"line":172,"column":5}},"55":{"start":{"line":163,"column":6},"end":{"line":170,"column":7}},"56":{"start":{"line":164,"column":8},"end":{"line":164,"column":27}},"57":{"start":{"line":166,"column":8},"end":{"line":166,"column":55}},"58":{"start":{"line":167,"column":8},"end":{"line":169,"column":9}},"59":{"start":{"line":168,"column":10},"end":{"line":168,"column":42}},"60":{"start":{"line":171,"column":6},"end":{"line":171,"column":42}},"61":{"start":{"line":173,"column":4},"end":{"line":173,"column":42}},"62":{"start":{"line":181,"column":2},"end":{"line":192,"column":3}},"63":{"start":{"line":182,"column":4},"end":{"line":182,"column":33}},"64":{"start":{"line":183,"column":4},"end":{"line":189,"column":5}},"65":{"start":{"line":187,"column":6},"end":{"line":187,"column":45}},"66":{"start":{"line":188,"column":6},"end":{"line":188,"column":30}},"67":{"start":{"line":190,"column":4},"end":{"line":190,"column":43}},"68":{"start":{"line":191,"column":4},"end":{"line":191,"column":16}},"69":{"start":{"line":198,"column":2},"end":{"line":263,"column":3}},"70":{"start":{"line":199,"column":4},"end":{"line":208,"column":5}},"71":{"start":{"line":209,"column":4},"end":{"line":209,"column":73}},"72":{"start":{"line":209,"column":47},"end":{"line":209,"column":73}},"73":{"start":{"line":210,"column":4},"end":{"line":210,"column":51}},"74":{"start":{"line":210,"column":17},"end":{"line":210,"column":51}},"75":{"start":{"line":211,"column":4},"end":{"line":262,"column":8}},"76":{"start":{"line":213,"column":8},"end":{"line":217,"column":9}},"77":{"start":{"line":214,"column":10},"end":{"line":214,"column":72}},"78":{"start":{"line":214,"column":24},"end":{"line":214,"column":72}},"79":{"start":{"line":215,"column":10},"end":{"line":215,"column":30}},"80":{"start":{"line":216,"column":10},"end":{"line":216,"column":69}},"81":{"start":{"line":216,"column":24},"end":{"line":216,"column":69}},"82":{"start":{"line":221,"column":10},"end":{"line":238,"column":11}},"83":{"start":{"line":222,"column":12},"end":{"line":222,"column":32}},"84":{"start":{"line":225,"column":12},"end":{"line":237,"column":13}},"85":{"start":{"line":229,"column":14},"end":{"line":236,"column":15}},"86":{"start":{"line":232,"column":16},"end":{"line":232,"column":34}},"87":{"start":{"line":233,"column":16},"end":{"line":233,"column":43}},"88":{"start":{"line":235,"column":16},"end":{"line":235,"column":38}},"89":{"start":{"line":241,"column":10},"end":{"line":260,"column":11}},"90":{"start":{"line":242,"column":12},"end":{"line":242,"column":32}},"91":{"start":{"line":245,"column":12},"end":{"line":259,"column":13}},"92":{"start":{"line":246,"column":14},"end":{"line":258,"column":15}},"93":{"start":{"line":247,"column":16},"end":{"line":251,"column":17}},"94":{"start":{"line":249,"column":18},"end":{"line":249,"column":33}},"95":{"start":{"line":250,"column":18},"end":{"line":250,"column":54}},"96":{"start":{"line":253,"column":16},"end":{"line":253,"column":43}},"97":{"start":{"line":254,"column":16},"end":{"line":257,"column":17}},"98":{"start":{"line":255,"column":18},"end":{"line":255,"column":34}},"99":{"start":{"line":256,"column":18},"end":{"line":256,"column":51}},"100":{"start":{"line":266,"column":2},"end":{"line":274,"column":3}},"101":{"start":{"line":267,"column":4},"end":{"line":267,"column":17}},"102":{"start":{"line":268,"column":4},"end":{"line":273,"column":6}},"103":{"start":{"line":269,"column":6},"end":{"line":272,"column":7}},"104":{"start":{"line":270,"column":8},"end":{"line":270,"column":25}},"105":{"start":{"line":271,"column":8},"end":{"line":271,"column":33}},"106":{"start":{"line":278,"column":2},"end":{"line":387,"column":3}},"107":{"start":{"line":279,"column":4},"end":{"line":279,"column":17}},"108":{"start":{"line":280,"column":4},"end":{"line":386,"column":6}},"109":{"start":{"line":281,"column":6},"end":{"line":385,"column":7}},"110":{"start":{"line":285,"column":10},"end":{"line":285,"column":41}},"111":{"start":{"line":286,"column":10},"end":{"line":304,"column":11}},"112":{"start":{"line":290,"column":12},"end":{"line":293,"column":13}},"113":{"start":{"line":291,"column":14},"end":{"line":291,"column":31}},"114":{"start":{"line":292,"column":14},"end":{"line":292,"column":48}},"115":{"start":{"line":295,"column":12},"end":{"line":295,"column":29}},"116":{"start":{"line":296,"column":12},"end":{"line":303,"column":13}},"117":{"start":{"line":297,"column":14},"end":{"line":297,"column":62}},"118":{"start":{"line":299,"column":14},"end":{"line":302,"column":16}},"119":{"start":{"line":305,"column":10},"end":{"line":305,"column":16}},"120":{"start":{"line":307,"column":10},"end":{"line":307,"column":60}},"121":{"start":{"line":308,"column":10},"end":{"line":308,"column":16}},"122":{"start":{"line":311,"column":10},"end":{"line":317,"column":11}},"123":{"start":{"line":312,"column":12},"end":{"line":312,"column":29}},"124":{"start":{"line":313,"column":12},"end":{"line":313,"column":27}},"125":{"start":{"line":314,"column":12},"end":{"line":314,"column":18}},"126":{"start":{"line":315,"column":17},"end":{"line":317,"column":11}},"127":{"start":{"line":316,"column":12},"end":{"line":316,"column":35}},"128":{"start":{"line":319,"column":10},"end":{"line":319,"column":27}},"129":{"start":{"line":320,"column":10},"end":{"line":383,"column":11}},"130":{"start":{"line":321,"column":12},"end":{"line":321,"column":38}},"131":{"start":{"line":322,"column":12},"end":{"line":356,"column":13}},"132":{"start":{"line":323,"column":14},"end":{"line":323,"column":29}},"133":{"start":{"line":325,"column":14},"end":{"line":355,"column":15}},"134":{"start":{"line":329,"column":18},"end":{"line":329,"column":44}},"135":{"start":{"line":330,"column":18},"end":{"line":330,"column":24}},"136":{"start":{"line":332,"column":18},"end":{"line":332,"column":51}},"137":{"start":{"line":333,"column":18},"end":{"line":335,"column":19}},"138":{"start":{"line":334,"column":20},"end":{"line":334,"column":67}},"139":{"start":{"line":336,"column":18},"end":{"line":336,"column":60}},"140":{"start":{"line":337,"column":18},"end":{"line":337,"column":24}},"141":{"start":{"line":339,"column":18},"end":{"line":341,"column":19}},"142":{"start":{"line":340,"column":20},"end":{"line":340,"column":58}},"143":{"start":{"line":342,"column":18},"end":{"line":351,"column":19}},"144":{"start":{"line":343,"column":20},"end":{"line":343,"column":56}},"145":{"start":{"line":344,"column":20},"end":{"line":344,"column":26}},"146":{"start":{"line":346,"column":20},"end":{"line":350,"column":21}},"147":{"start":{"line":347,"column":22},"end":{"line":349,"column":23}},"148":{"start":{"line":348,"column":24},"end":{"line":348,"column":53}},"149":{"start":{"line":353,"column":18},"end":{"line":353,"column":61}},"150":{"start":{"line":354,"column":18},"end":{"line":354,"column":24}},"151":{"start":{"line":357,"column":17},"end":{"line":383,"column":11}},"152":{"start":{"line":358,"column":12},"end":{"line":364,"column":14}},"153":{"start":{"line":365,"column":17},"end":{"line":383,"column":11}},"154":{"start":{"line":366,"column":12},"end":{"line":366,"column":35}},"155":{"start":{"line":367,"column":17},"end":{"line":383,"column":11}},"156":{"start":{"line":368,"column":12},"end":{"line":368,"column":48}},"157":{"start":{"line":369,"column":17},"end":{"line":383,"column":11}},"158":{"start":{"line":370,"column":12},"end":{"line":370,"column":43}},"159":{"start":{"line":371,"column":17},"end":{"line":383,"column":11}},"160":{"start":{"line":372,"column":12},"end":{"line":372,"column":34}},"161":{"start":{"line":373,"column":17},"end":{"line":383,"column":11}},"162":{"start":{"line":374,"column":12},"end":{"line":374,"column":54}},"163":{"start":{"line":375,"column":12},"end":{"line":375,"column":27}},"164":{"start":{"line":376,"column":12},"end":{"line":376,"column":54}},"165":{"start":{"line":377,"column":12},"end":{"line":377,"column":67}},"166":{"start":{"line":378,"column":12},"end":{"line":378,"column":57}},"167":{"start":{"line":379,"column":17},"end":{"line":383,"column":11}},"168":{"start":{"line":380,"column":12},"end":{"line":380,"column":42}},"169":{"start":{"line":382,"column":12},"end":{"line":382,"column":49}},"170":{"start":{"line":384,"column":10},"end":{"line":384,"column":16}},"171":{"start":{"line":394,"column":2},"end":{"line":417,"column":3}},"172":{"start":{"line":395,"column":4},"end":{"line":416,"column":5}},"173":{"start":{"line":403,"column":6},"end":{"line":403,"column":32}},"174":{"start":{"line":404,"column":6},"end":{"line":415,"column":7}},"175":{"start":{"line":405,"column":8},"end":{"line":405,"column":76}},"176":{"start":{"line":406,"column":8},"end":{"line":414,"column":10}},"177":{"start":{"line":420,"column":2},"end":{"line":450,"column":3}},"178":{"start":{"line":421,"column":4},"end":{"line":449,"column":5}},"179":{"start":{"line":427,"column":6},"end":{"line":427,"column":28}},"180":{"start":{"line":428,"column":6},"end":{"line":448,"column":7}},"181":{"start":{"line":430,"column":10},"end":{"line":430,"column":48}},"182":{"start":{"line":431,"column":10},"end":{"line":431,"column":43}},"183":{"start":{"line":432,"column":10},"end":{"line":432,"column":16}},"184":{"start":{"line":434,"column":10},"end":{"line":437,"column":11}},"185":{"start":{"line":435,"column":12},"end":{"line":435,"column":26}},"186":{"start":{"line":436,"column":12},"end":{"line":436,"column":43}},"187":{"start":{"line":438,"column":10},"end":{"line":438,"column":16}},"188":{"start":{"line":440,"column":10},"end":{"line":446,"column":11}},"189":{"start":{"line":444,"column":12},"end":{"line":444,"column":26}},"190":{"start":{"line":445,"column":12},"end":{"line":445,"column":43}},"191":{"start":{"line":447,"column":10},"end":{"line":447,"column":16}},"192":{"start":{"line":455,"column":2},"end":{"line":455,"column":63}},"193":{"start":{"line":460,"column":2},"end":{"line":462,"column":39}},"194":{"start":{"line":466,"column":2},"end":{"line":470,"column":17}},"195":{"start":{"line":467,"column":14},"end":{"line":467,"column":57}},"196":{"start":{"line":468,"column":14},"end":{"line":468,"column":57}},"197":{"start":{"line":469,"column":14},"end":{"line":469,"column":68}},"198":{"start":{"line":474,"column":2},"end":{"line":474,"column":44}},"199":{"start":{"line":481,"column":2},"end":{"line":481,"column":23}},"200":{"start":{"line":484,"column":2},"end":{"line":490,"column":4}},"201":{"start":{"line":491,"column":2},"end":{"line":493,"column":3}},"202":{"start":{"line":492,"column":4},"end":{"line":492,"column":22}},"203":{"start":{"line":496,"column":2},"end":{"line":498,"column":3}},"204":{"start":{"line":497,"column":4},"end":{"line":497,"column":24}},"205":{"start":{"line":501,"column":2},"end":{"line":519,"column":3}},"206":{"start":{"line":502,"column":4},"end":{"line":517,"column":5}},"207":{"start":{"line":510,"column":6},"end":{"line":510,"column":28}},"208":{"start":{"line":511,"column":6},"end":{"line":516,"column":7}},"209":{"start":{"line":515,"column":8},"end":{"line":515,"column":28}},"210":{"start":{"line":518,"column":4},"end":{"line":518,"column":55}},"211":{"start":{"line":522,"column":2},"end":{"line":524,"column":3}},"212":{"start":{"line":523,"column":4},"end":{"line":523,"column":45}},"213":{"start":{"line":528,"column":2},"end":{"line":534,"column":3}},"214":{"start":{"line":529,"column":4},"end":{"line":533,"column":40}},"215":{"start":{"line":537,"column":2},"end":{"line":570,"column":3}},"216":{"start":{"line":538,"column":4},"end":{"line":538,"column":17}},"217":{"start":{"line":539,"column":4},"end":{"line":539,"column":38}},"218":{"start":{"line":540,"column":4},"end":{"line":540,"column":55}},"219":{"start":{"line":541,"column":4},"end":{"line":541,"column":44}},"220":{"start":{"line":542,"column":4},"end":{"line":542,"column":31}},"221":{"start":{"line":543,"column":4},"end":{"line":553,"column":5}},"222":{"start":{"line":545,"column":6},"end":{"line":545,"column":50}},"223":{"start":{"line":552,"column":6},"end":{"line":552,"column":88}},"224":{"start":{"line":554,"column":4},"end":{"line":568,"column":5}},"225":{"start":{"line":558,"column":6},"end":{"line":558,"column":31}},"226":{"start":{"line":559,"column":6},"end":{"line":559,"column":58}},"227":{"start":{"line":560,"column":6},"end":{"line":560,"column":78}},"228":{"start":{"line":562,"column":6},"end":{"line":562,"column":33}},"229":{"start":{"line":563,"column":6},"end":{"line":567,"column":7}},"230":{"start":{"line":564,"column":8},"end":{"line":564,"column":37}},"231":{"start":{"line":566,"column":8},"end":{"line":566,"column":64}},"232":{"start":{"line":569,"column":4},"end":{"line":569,"column":20}},"233":{"start":{"line":573,"column":2},"end":{"line":586,"column":3}},"234":{"start":{"line":574,"column":4},"end":{"line":574,"column":38}},"235":{"start":{"line":575,"column":4},"end":{"line":575,"column":52}},"236":{"start":{"line":576,"column":4},"end":{"line":584,"column":5}},"237":{"start":{"line":577,"column":6},"end":{"line":577,"column":52}},"238":{"start":{"line":578,"column":6},"end":{"line":578,"column":84}},"239":{"start":{"line":579,"column":6},"end":{"line":579,"column":73}},"240":{"start":{"line":581,"column":6},"end":{"line":581,"column":69}},"241":{"start":{"line":582,"column":6},"end":{"line":582,"column":33}},"242":{"start":{"line":583,"column":6},"end":{"line":583,"column":62}},"243":{"start":{"line":585,"column":4},"end":{"line":585,"column":20}},"244":{"start":{"line":589,"column":2},"end":{"line":591,"column":3}},"245":{"start":{"line":590,"column":4},"end":{"line":590,"column":51}},"246":{"start":{"line":595,"column":2},"end":{"line":599,"column":3}},"247":{"start":{"line":596,"column":4},"end":{"line":596,"column":29}},"248":{"start":{"line":597,"column":4},"end":{"line":597,"column":66}},"249":{"start":{"line":598,"column":4},"end":{"line":598,"column":53}},"250":{"start":{"line":603,"column":2},"end":{"line":610,"column":3}},"251":{"start":{"line":604,"column":4},"end":{"line":604,"column":46}},"252":{"start":{"line":605,"column":4},"end":{"line":608,"column":5}},"253":{"start":{"line":606,"column":6},"end":{"line":606,"column":35}},"254":{"start":{"line":607,"column":6},"end":{"line":607,"column":40}},"255":{"start":{"line":607,"column":17},"end":{"line":607,"column":40}},"256":{"start":{"line":609,"column":4},"end":{"line":609,"column":34}},"257":{"start":{"line":613,"column":2},"end":{"line":624,"column":3}},"258":{"start":{"line":614,"column":4},"end":{"line":614,"column":32}},"259":{"start":{"line":615,"column":4},"end":{"line":623,"column":5}},"260":{"start":{"line":616,"column":6},"end":{"line":616,"column":62}},"261":{"start":{"line":617,"column":11},"end":{"line":623,"column":5}},"262":{"start":{"line":618,"column":6},"end":{"line":618,"column":48}},"263":{"start":{"line":619,"column":11},"end":{"line":623,"column":5}},"264":{"start":{"line":620,"column":6},"end":{"line":620,"column":62}},"265":{"start":{"line":622,"column":6},"end":{"line":622,"column":63}},"266":{"start":{"line":627,"column":2},"end":{"line":633,"column":3}},"267":{"start":{"line":628,"column":4},"end":{"line":632,"column":5}},"268":{"start":{"line":629,"column":6},"end":{"line":631,"column":7}},"269":{"start":{"line":630,"column":8},"end":{"line":630,"column":46}},"270":{"start":{"line":636,"column":2},"end":{"line":638,"column":3}},"271":{"start":{"line":637,"column":4},"end":{"line":637,"column":35}},"272":{"start":{"line":641,"column":2},"end":{"line":643,"column":3}},"273":{"start":{"line":642,"column":4},"end":{"line":642,"column":44}},"274":{"start":{"line":647,"column":2},"end":{"line":657,"column":3}},"275":{"start":{"line":648,"column":4},"end":{"line":648,"column":34}},"276":{"start":{"line":649,"column":4},"end":{"line":656,"column":6}},"277":{"start":{"line":651,"column":8},"end":{"line":651,"column":66}},"278":{"start":{"line":654,"column":8},"end":{"line":654,"column":73}},"279":{"start":{"line":660,"column":2},"end":{"line":664,"column":3}},"280":{"start":{"line":661,"column":4},"end":{"line":663,"column":5}},"281":{"start":{"line":662,"column":6},"end":{"line":662,"column":41}},"282":{"start":{"line":667,"column":2},"end":{"line":682,"column":3}},"283":{"start":{"line":668,"column":4},"end":{"line":668,"column":15}},"284":{"start":{"line":669,"column":4},"end":{"line":680,"column":5}},"285":{"start":{"line":672,"column":8},"end":{"line":672,"column":81}},"286":{"start":{"line":673,"column":8},"end":{"line":673,"column":14}},"287":{"start":{"line":675,"column":8},"end":{"line":675,"column":67}},"288":{"start":{"line":676,"column":8},"end":{"line":676,"column":14}},"289":{"start":{"line":678,"column":8},"end":{"line":678,"column":40}},"290":{"start":{"line":679,"column":8},"end":{"line":679,"column":14}},"291":{"start":{"line":681,"column":4},"end":{"line":681,"column":18}},"292":{"start":{"line":685,"column":2},"end":{"line":687,"column":3}},"293":{"start":{"line":686,"column":4},"end":{"line":686,"column":60}},"294":{"start":{"line":694,"column":2},"end":{"line":706,"column":14}},"295":{"start":{"line":696,"column":8},"end":{"line":704,"column":10}},"296":{"start":{"line":697,"column":32},"end":{"line":697,"column":52}},"297":{"start":{"line":699,"column":12},"end":{"line":702,"column":15}},"298":{"start":{"line":709,"column":2},"end":{"line":724,"column":10}},"299":{"start":{"line":711,"column":8},"end":{"line":711,"column":27}},"300":{"start":{"line":712,"column":8},"end":{"line":722,"column":10}},"301":{"start":{"line":714,"column":12},"end":{"line":714,"column":37}},"302":{"start":{"line":720,"column":12},"end":{"line":720,"column":39}},"303":{"start":{"line":729,"column":2},"end":{"line":738,"column":21}},"304":{"start":{"line":731,"column":18},"end":{"line":731,"column":45}},"305":{"start":{"line":734,"column":18},"end":{"line":734,"column":44}},"306":{"start":{"line":735,"column":18},"end":{"line":737,"column":20}},"307":{"start":{"line":736,"column":20},"end":{"line":736,"column":50}},"308":{"start":{"line":741,"column":2},"end":{"line":742,"column":69}},"309":{"start":{"line":742,"column":28},"end":{"line":742,"column":66}},"310":{"start":{"line":749,"column":2},"end":{"line":749,"column":45}},"311":{"start":{"line":752,"column":2},"end":{"line":752,"column":24}},"312":{"start":{"line":755,"column":2},"end":{"line":755,"column":30}},"313":{"start":{"line":756,"column":2},"end":{"line":763,"column":3}},"314":{"start":{"line":757,"column":4},"end":{"line":757,"column":25}},"315":{"start":{"line":758,"column":4},"end":{"line":762,"column":6}},"316":{"start":{"line":759,"column":6},"end":{"line":759,"column":42}},"317":{"start":{"line":760,"column":6},"end":{"line":761,"column":46}},"318":{"start":{"line":766,"column":2},"end":{"line":778,"column":8}},"319":{"start":{"line":768,"column":8},"end":{"line":768,"column":44}},"320":{"start":{"line":771,"column":8},"end":{"line":777,"column":9}},"321":{"start":{"line":776,"column":10},"end":{"line":776,"column":42}},"322":{"start":{"line":781,"column":2},"end":{"line":796,"column":48}},"323":{"start":{"line":783,"column":8},"end":{"line":793,"column":9}},"324":{"start":{"line":790,"column":10},"end":{"line":790,"column":32}},"325":{"start":{"line":791,"column":10},"end":{"line":792,"column":34}},"326":{"start":{"line":792,"column":12},"end":{"line":792,"column":34}},"327":{"start":{"line":794,"column":8},"end":{"line":794,"column":24}},"328":{"start":{"line":796,"column":24},"end":{"line":796,"column":45}},"329":{"start":{"line":800,"column":2},"end":{"line":820,"column":8}},"330":{"start":{"line":802,"column":8},"end":{"line":812,"column":9}},"331":{"start":{"line":803,"column":10},"end":{"line":803,"column":27}},"332":{"start":{"line":804,"column":10},"end":{"line":811,"column":11}},"333":{"start":{"line":806,"column":14},"end":{"line":806,"column":60}},"334":{"start":{"line":807,"column":14},"end":{"line":807,"column":20}},"335":{"start":{"line":809,"column":14},"end":{"line":809,"column":53}},"336":{"start":{"line":810,"column":14},"end":{"line":810,"column":20}},"337":{"start":{"line":813,"column":8},"end":{"line":813,"column":26}},"338":{"start":{"line":816,"column":8},"end":{"line":818,"column":9}},"339":{"start":{"line":817,"column":10},"end":{"line":817,"column":54}},"340":{"start":{"line":819,"column":8},"end":{"line":819,"column":26}},"341":{"start":{"line":823,"column":2},"end":{"line":823,"column":105}},"342":{"start":{"line":824,"column":2},"end":{"line":824,"column":94}},"343":{"start":{"line":825,"column":2},"end":{"line":827,"column":4}},"344":{"start":{"line":826,"column":4},"end":{"line":826,"column":67}},"345":{"start":{"line":829,"column":2},"end":{"line":831,"column":4}},"346":{"start":{"line":830,"column":4},"end":{"line":830,"column":48}},"347":{"start":{"line":834,"column":2},"end":{"line":834,"column":28}},"348":{"start":{"line":837,"column":2},"end":{"line":837,"column":27}},"349":{"start":{"line":840,"column":2},"end":{"line":840,"column":27}},"350":{"start":{"line":843,"column":2},"end":{"line":843,"column":25}},"351":{"start":{"line":847,"column":2},"end":{"line":865,"column":7}},"352":{"start":{"line":848,"column":4},"end":{"line":848,"column":66}},"353":{"start":{"line":849,"column":4},"end":{"line":849,"column":65}},"354":{"start":{"line":850,"column":4},"end":{"line":864,"column":8}},"355":{"start":{"line":852,"column":8},"end":{"line":859,"column":9}},"356":{"start":{"line":858,"column":10},"end":{"line":858,"column":54}},"357":{"start":{"line":860,"column":8},"end":{"line":860,"column":21}},"358":{"start":{"line":863,"column":8},"end":{"line":863,"column":40}},"359":{"start":{"line":872,"column":2},"end":{"line":879,"column":56}},"360":{"start":{"line":874,"column":6},"end":{"line":876,"column":7}},"361":{"start":{"line":875,"column":8},"end":{"line":875,"column":56}},"362":{"start":{"line":875,"column":44},"end":{"line":875,"column":56}},"363":{"start":{"line":877,"column":6},"end":{"line":877,"column":23}},"364":{"start":{"line":879,"column":22},"end":{"line":879,"column":53}},"365":{"start":{"line":881,"column":2},"end":{"line":888,"column":60}},"366":{"start":{"line":883,"column":6},"end":{"line":885,"column":7}},"367":{"start":{"line":884,"column":7},"end":{"line":884,"column":55}},"368":{"start":{"line":884,"column":43},"end":{"line":884,"column":55}},"369":{"start":{"line":886,"column":6},"end":{"line":886,"column":23}},"370":{"start":{"line":888,"column":22},"end":{"line":888,"column":57}},"371":{"start":{"line":891,"column":2},"end":{"line":897,"column":3}},"372":{"start":{"line":892,"column":4},"end":{"line":892,"column":47}},"373":{"start":{"line":893,"column":4},"end":{"line":896,"column":5}},"374":{"start":{"line":894,"column":6},"end":{"line":894,"column":46}},"375":{"start":{"line":895,"column":6},"end":{"line":895,"column":43}},"376":{"start":{"line":900,"column":2},"end":{"line":906,"column":3}},"377":{"start":{"line":901,"column":4},"end":{"line":905,"column":5}},"378":{"start":{"line":902,"column":6},"end":{"line":902,"column":45}},"379":{"start":{"line":904,"column":6},"end":{"line":904,"column":37}},"380":{"start":{"line":910,"column":2},"end":{"line":986,"column":3}},"381":{"start":{"line":911,"column":4},"end":{"line":984,"column":5}},"382":{"start":{"line":920,"column":6},"end":{"line":983,"column":7}},"383":{"start":{"line":922,"column":10},"end":{"line":922,"column":38}},"384":{"start":{"line":923,"column":10},"end":{"line":925,"column":11}},"385":{"start":{"line":924,"column":12},"end":{"line":924,"column":46}},"386":{"start":{"line":926,"column":10},"end":{"line":926,"column":47}},"387":{"start":{"line":927,"column":10},"end":{"line":927,"column":16}},"388":{"start":{"line":929,"column":10},"end":{"line":929,"column":49}},"389":{"start":{"line":930,"column":10},"end":{"line":930,"column":68}},"390":{"start":{"line":931,"column":10},"end":{"line":931,"column":55}},"391":{"start":{"line":932,"column":10},"end":{"line":932,"column":86}},"392":{"start":{"line":933,"column":10},"end":{"line":933,"column":51}},"393":{"start":{"line":934,"column":10},"end":{"line":934,"column":79}},"394":{"start":{"line":935,"column":10},"end":{"line":935,"column":47}},"395":{"start":{"line":936,"column":10},"end":{"line":951,"column":11}},"396":{"start":{"line":942,"column":14},"end":{"line":942,"column":38}},"397":{"start":{"line":943,"column":14},"end":{"line":943,"column":20}},"398":{"start":{"line":946,"column":14},"end":{"line":946,"column":25}},"399":{"start":{"line":949,"column":14},"end":{"line":949,"column":56}},"400":{"start":{"line":950,"column":14},"end":{"line":950,"column":20}},"401":{"start":{"line":952,"column":10},"end":{"line":955,"column":12}},"402":{"start":{"line":956,"column":10},"end":{"line":968,"column":11}},"403":{"start":{"line":957,"column":12},"end":{"line":961,"column":14}},"404":{"start":{"line":963,"column":12},"end":{"line":967,"column":14}},"405":{"start":{"line":969,"column":10},"end":{"line":971,"column":11}},"406":{"start":{"line":970,"column":12},"end":{"line":970,"column":51}},"407":{"start":{"line":972,"column":10},"end":{"line":972,"column":16}},"408":{"start":{"line":975,"column":10},"end":{"line":980,"column":22}},"409":{"start":{"line":981,"column":10},"end":{"line":981,"column":30}},"410":{"start":{"line":982,"column":10},"end":{"line":982,"column":16}},"411":{"start":{"line":985,"column":4},"end":{"line":985,"column":18}},"412":{"start":{"line":989,"column":2},"end":{"line":1008,"column":3}},"413":{"start":{"line":990,"column":4},"end":{"line":1005,"column":5}},"414":{"start":{"line":997,"column":6},"end":{"line":997,"column":22}},"415":{"start":{"line":998,"column":6},"end":{"line":998,"column":22}},"416":{"start":{"line":999,"column":6},"end":{"line":1004,"column":8}},"417":{"start":{"line":1006,"column":4},"end":{"line":1006,"column":42}},"418":{"start":{"line":1007,"column":4},"end":{"line":1007,"column":19}},"419":{"start":{"line":1016,"column":2},"end":{"line":1023,"column":3}},"420":{"start":{"line":1017,"column":4},"end":{"line":1017,"column":19}},"421":{"start":{"line":1018,"column":4},"end":{"line":1018,"column":61}},"422":{"start":{"line":1019,"column":4},"end":{"line":1019,"column":50}},"423":{"start":{"line":1020,"column":4},"end":{"line":1020,"column":51}},"424":{"start":{"line":1021,"column":4},"end":{"line":1021,"column":34}},"425":{"start":{"line":1022,"column":4},"end":{"line":1022,"column":16}},"426":{"start":{"line":1028,"column":2},"end":{"line":1057,"column":3}},"427":{"start":{"line":1029,"column":4},"end":{"line":1029,"column":18}},"428":{"start":{"line":1030,"column":4},"end":{"line":1030,"column":19}},"429":{"start":{"line":1031,"column":4},"end":{"line":1048,"column":5}},"430":{"start":{"line":1034,"column":8},"end":{"line":1034,"column":26}},"431":{"start":{"line":1035,"column":8},"end":{"line":1035,"column":14}},"432":{"start":{"line":1037,"column":8},"end":{"line":1037,"column":37}},"433":{"start":{"line":1038,"column":8},"end":{"line":1041,"column":10}},"434":{"start":{"line":1042,"column":8},"end":{"line":1042,"column":14}},"435":{"start":{"line":1045,"column":8},"end":{"line":1045,"column":39}},"436":{"start":{"line":1046,"column":8},"end":{"line":1046,"column":46}},"437":{"start":{"line":1047,"column":8},"end":{"line":1047,"column":14}},"438":{"start":{"line":1049,"column":4},"end":{"line":1055,"column":5}},"439":{"start":{"line":1054,"column":6},"end":{"line":1054,"column":81}},"440":{"start":{"line":1056,"column":4},"end":{"line":1056,"column":16}},"441":{"start":{"line":1062,"column":2},"end":{"line":1080,"column":3}},"442":{"start":{"line":1063,"column":4},"end":{"line":1077,"column":5}},"443":{"start":{"line":1070,"column":6},"end":{"line":1070,"column":22}},"444":{"start":{"line":1071,"column":6},"end":{"line":1076,"column":8}},"445":{"start":{"line":1078,"column":4},"end":{"line":1078,"column":42}},"446":{"start":{"line":1079,"column":4},"end":{"line":1079,"column":19}},"447":{"start":{"line":1083,"column":2},"end":{"line":1087,"column":3}},"448":{"start":{"line":1084,"column":4},"end":{"line":1086,"column":5}},"449":{"start":{"line":1085,"column":6},"end":{"line":1085,"column":32}},"450":{"start":{"line":1091,"column":2},"end":{"line":1105,"column":3}},"451":{"start":{"line":1092,"column":4},"end":{"line":1092,"column":40}},"452":{"start":{"line":1092,"column":12},"end":{"line":1092,"column":40}},"453":{"start":{"line":1093,"column":4},"end":{"line":1093,"column":16}},"454":{"start":{"line":1094,"column":4},"end":{"line":1095,"column":52}},"455":{"start":{"line":1096,"column":4},"end":{"line":1103,"column":5}},"456":{"start":{"line":1097,"column":6},"end":{"line":1097,"column":46}},"457":{"start":{"line":1098,"column":6},"end":{"line":1098,"column":63}},"458":{"start":{"line":1099,"column":6},"end":{"line":1099,"column":28}},"459":{"start":{"line":1100,"column":6},"end":{"line":1100,"column":33}},"460":{"start":{"line":1102,"column":6},"end":{"line":1102,"column":70}},"461":{"start":{"line":1104,"column":4},"end":{"line":1104,"column":50}},"462":{"start":{"line":1112,"column":2},"end":{"line":1172,"column":3}},"463":{"start":{"line":1113,"column":4},"end":{"line":1113,"column":71}},"464":{"start":{"line":1115,"column":4},"end":{"line":1121,"column":5}},"465":{"start":{"line":1116,"column":6},"end":{"line":1116,"column":50}},"466":{"start":{"line":1117,"column":6},"end":{"line":1119,"column":17}},"467":{"start":{"line":1120,"column":6},"end":{"line":1120,"column":31}},"468":{"start":{"line":1123,"column":4},"end":{"line":1132,"column":5}},"469":{"start":{"line":1124,"column":6},"end":{"line":1130,"column":7}},"470":{"start":{"line":1125,"column":8},"end":{"line":1125,"column":22}},"471":{"start":{"line":1126,"column":8},"end":{"line":1128,"column":9}},"472":{"start":{"line":1127,"column":10},"end":{"line":1127,"column":66}},"473":{"start":{"line":1129,"column":8},"end":{"line":1129,"column":42}},"474":{"start":{"line":1131,"column":6},"end":{"line":1131,"column":21}},"475":{"start":{"line":1134,"column":4},"end":{"line":1171,"column":8}},"476":{"start":{"line":1136,"column":8},"end":{"line":1136,"column":29}},"477":{"start":{"line":1137,"column":8},"end":{"line":1137,"column":42}},"478":{"start":{"line":1137,"column":16},"end":{"line":1137,"column":42}},"479":{"start":{"line":1138,"column":8},"end":{"line":1159,"column":9}},"480":{"start":{"line":1139,"column":10},"end":{"line":1139,"column":23}},"481":{"start":{"line":1140,"column":10},"end":{"line":1140,"column":29}},"482":{"start":{"line":1141,"column":10},"end":{"line":1158,"column":12}},"483":{"start":{"line":1142,"column":12},"end":{"line":1155,"column":13}},"484":{"start":{"line":1143,"column":14},"end":{"line":1154,"column":15}},"485":{"start":{"line":1144,"column":16},"end":{"line":1144,"column":40}},"486":{"start":{"line":1145,"column":16},"end":{"line":1149,"column":18}},"487":{"start":{"line":1150,"column":16},"end":{"line":1150,"column":47}},"488":{"start":{"line":1152,"column":16},"end":{"line":1152,"column":66}},"489":{"start":{"line":1152,"column":53},"end":{"line":1152,"column":66}},"490":{"start":{"line":1153,"column":16},"end":{"line":1153,"column":49}},"491":{"start":{"line":1156,"column":12},"end":{"line":1156,"column":37}},"492":{"start":{"line":1157,"column":12},"end":{"line":1157,"column":27}},"493":{"start":{"line":1160,"column":8},"end":{"line":1160,"column":23}},"494":{"start":{"line":1163,"column":8},"end":{"line":1163,"column":42}},"495":{"start":{"line":1163,"column":16},"end":{"line":1163,"column":42}},"496":{"start":{"line":1164,"column":8},"end":{"line":1168,"column":9}},"497":{"start":{"line":1165,"column":10},"end":{"line":1165,"column":23}},"498":{"start":{"line":1166,"column":10},"end":{"line":1166,"column":29}},"499":{"start":{"line":1167,"column":10},"end":{"line":1167,"column":33}},"500":{"start":{"line":1169,"column":8},"end":{"line":1169,"column":38}},"501":{"start":{"line":1170,"column":8},"end":{"line":1170,"column":23}},"502":{"start":{"line":1175,"column":2},"end":{"line":1188,"column":3}},"503":{"start":{"line":1176,"column":4},"end":{"line":1176,"column":30}},"504":{"start":{"line":1177,"column":4},"end":{"line":1177,"column":30}},"505":{"start":{"line":1178,"column":4},"end":{"line":1178,"column":18}},"506":{"start":{"line":1179,"column":4},"end":{"line":1182,"column":5}},"507":{"start":{"line":1180,"column":6},"end":{"line":1180,"column":29}},"508":{"start":{"line":1181,"column":6},"end":{"line":1181,"column":40}},"509":{"start":{"line":1183,"column":4},"end":{"line":1186,"column":5}},"510":{"start":{"line":1184,"column":6},"end":{"line":1184,"column":16}},"511":{"start":{"line":1185,"column":6},"end":{"line":1185,"column":27}},"512":{"start":{"line":1187,"column":4},"end":{"line":1187,"column":54}},"513":{"start":{"line":1199,"column":2},"end":{"line":1199,"column":29}},"514":{"start":{"line":1204,"column":2},"end":{"line":1204,"column":15}},"515":{"start":{"line":1211,"column":2},"end":{"line":1217,"column":3}},"516":{"start":{"line":1221,"column":2},"end":{"line":1241,"column":3}},"517":{"start":{"line":1222,"column":4},"end":{"line":1226,"column":5}},"518":{"start":{"line":1227,"column":4},"end":{"line":1232,"column":5}},"519":{"start":{"line":1228,"column":6},"end":{"line":1230,"column":7}},"520":{"start":{"line":1229,"column":8},"end":{"line":1229,"column":60}},"521":{"start":{"line":1231,"column":6},"end":{"line":1231,"column":13}},"522":{"start":{"line":1233,"column":4},"end":{"line":1236,"column":5}},"523":{"start":{"line":1234,"column":6},"end":{"line":1234,"column":21}},"524":{"start":{"line":1235,"column":6},"end":{"line":1235,"column":13}},"525":{"start":{"line":1237,"column":4},"end":{"line":1240,"column":6}},"526":{"start":{"line":1246,"column":2},"end":{"line":1249,"column":4}},"527":{"start":{"line":1247,"column":4},"end":{"line":1247,"column":26}},"528":{"start":{"line":1248,"column":4},"end":{"line":1248,"column":33}},"529":{"start":{"line":1251,"column":2},"end":{"line":1251,"column":18}},"530":{"start":{"line":1256,"column":2},"end":{"line":1260,"column":3}},"531":{"start":{"line":1257,"column":4},"end":{"line":1257,"column":35}},"532":{"start":{"line":1258,"column":4},"end":{"line":1258,"column":25}},"533":{"start":{"line":1259,"column":4},"end":{"line":1259,"column":25}},"534":{"start":{"line":1266,"column":2},"end":{"line":1299,"column":3}},"535":{"start":{"line":1267,"column":4},"end":{"line":1267,"column":37}},"536":{"start":{"line":1268,"column":4},"end":{"line":1268,"column":33}},"537":{"start":{"line":1269,"column":4},"end":{"line":1269,"column":37}},"538":{"start":{"line":1270,"column":4},"end":{"line":1270,"column":14}},"539":{"start":{"line":1271,"column":4},"end":{"line":1271,"column":14}},"540":{"start":{"line":1272,"column":4},"end":{"line":1272,"column":14}},"541":{"start":{"line":1273,"column":4},"end":{"line":1273,"column":14}},"542":{"start":{"line":1274,"column":4},"end":{"line":1274,"column":17}},"543":{"start":{"line":1275,"column":4},"end":{"line":1275,"column":17}},"544":{"start":{"line":1276,"column":4},"end":{"line":1276,"column":22}},"545":{"start":{"line":1277,"column":4},"end":{"line":1277,"column":36}},"546":{"start":{"line":1278,"column":4},"end":{"line":1278,"column":16}},"547":{"start":{"line":1279,"column":4},"end":{"line":1279,"column":39}},"548":{"start":{"line":1279,"column":27},"end":{"line":1279,"column":39}},"549":{"start":{"line":1280,"column":4},"end":{"line":1297,"column":5}},"550":{"start":{"line":1281,"column":6},"end":{"line":1281,"column":16}},"551":{"start":{"line":1282,"column":6},"end":{"line":1282,"column":26}},"552":{"start":{"line":1283,"column":6},"end":{"line":1283,"column":26}},"553":{"start":{"line":1284,"column":6},"end":{"line":1284,"column":25}},"554":{"start":{"line":1285,"column":6},"end":{"line":1295,"column":7}},"555":{"start":{"line":1286,"column":8},"end":{"line":1286,"column":33}},"556":{"start":{"line":1287,"column":8},"end":{"line":1287,"column":33}},"557":{"start":{"line":1288,"column":8},"end":{"line":1288,"column":58}},"558":{"start":{"line":1289,"column":8},"end":{"line":1293,"column":39}},"559":{"start":{"line":1294,"column":8},"end":{"line":1294,"column":12}},"560":{"start":{"line":1296,"column":6},"end":{"line":1296,"column":10}},"561":{"start":{"line":1298,"column":4},"end":{"line":1298,"column":16}},"562":{"start":{"line":1302,"column":2},"end":{"line":1310,"column":3}},"563":{"start":{"line":1303,"column":4},"end":{"line":1309,"column":7}},"564":{"start":{"line":1313,"column":2},"end":{"line":1353,"column":3}},"565":{"start":{"line":1314,"column":4},"end":{"line":1322,"column":5}},"566":{"start":{"line":1323,"column":4},"end":{"line":1345,"column":5}},"567":{"start":{"line":1324,"column":6},"end":{"line":1324,"column":20}},"568":{"start":{"line":1325,"column":6},"end":{"line":1325,"column":26}},"569":{"start":{"line":1326,"column":6},"end":{"line":1326,"column":28}},"570":{"start":{"line":1327,"column":6},"end":{"line":1327,"column":27}},"571":{"start":{"line":1328,"column":6},"end":{"line":1328,"column":32}},"572":{"start":{"line":1329,"column":6},"end":{"line":1329,"column":36}},"573":{"start":{"line":1330,"column":6},"end":{"line":1344,"column":7}},"574":{"start":{"line":1331,"column":8},"end":{"line":1331,"column":12}},"575":{"start":{"line":1332,"column":8},"end":{"line":1332,"column":12}},"576":{"start":{"line":1333,"column":8},"end":{"line":1335,"column":9}},"577":{"start":{"line":1334,"column":10},"end":{"line":1334,"column":58}},"578":{"start":{"line":1337,"column":11},"end":{"line":1344,"column":7}},"579":{"start":{"line":1338,"column":8},"end":{"line":1338,"column":12}},"580":{"start":{"line":1339,"column":8},"end":{"line":1339,"column":52}},"581":{"start":{"line":1342,"column":8},"end":{"line":1342,"column":12}},"582":{"start":{"line":1343,"column":8},"end":{"line":1343,"column":48}},"583":{"start":{"line":1346,"column":4},"end":{"line":1348,"column":5}},"584":{"start":{"line":1347,"column":6},"end":{"line":1347,"column":50}},"585":{"start":{"line":1349,"column":4},"end":{"line":1351,"column":5}},"586":{"start":{"line":1350,"column":6},"end":{"line":1350,"column":46}},"587":{"start":{"line":1352,"column":4},"end":{"line":1352,"column":16}},"588":{"start":{"line":1356,"column":2},"end":{"line":1381,"column":3}},"589":{"start":{"line":1357,"column":4},"end":{"line":1362,"column":5}},"590":{"start":{"line":1363,"column":4},"end":{"line":1380,"column":5}},"591":{"start":{"line":1364,"column":6},"end":{"line":1364,"column":34}},"592":{"start":{"line":1365,"column":6},"end":{"line":1378,"column":7}},"593":{"start":{"line":1366,"column":8},"end":{"line":1366,"column":31}},"594":{"start":{"line":1367,"column":8},"end":{"line":1376,"column":9}},"595":{"start":{"line":1368,"column":10},"end":{"line":1368,"column":33}},"596":{"start":{"line":1369,"column":10},"end":{"line":1369,"column":49}},"597":{"start":{"line":1371,"column":10},"end":{"line":1371,"column":80}},"598":{"start":{"line":1372,"column":10},"end":{"line":1374,"column":29}},"599":{"start":{"line":1375,"column":10},"end":{"line":1375,"column":20}},"600":{"start":{"line":1377,"column":8},"end":{"line":1377,"column":20}},"601":{"start":{"line":1379,"column":6},"end":{"line":1379,"column":76}},"602":{"start":{"line":1384,"column":2},"end":{"line":1386,"column":3}},"603":{"start":{"line":1385,"column":4},"end":{"line":1385,"column":50}},"604":{"start":{"line":1403,"column":0},"end":{"line":1403,"column":49}},"605":{"start":{"line":1403,"column":6},"end":{"line":1403,"column":33}}},"branchMap":{"1":{"line":17,"type":"cond-expr","locations":[{"start":{"line":18,"column":7},"end":{"line":29,"column":9}},{"start":{"line":30,"column":6},"end":{"line":32,"column":30}}]},"2":{"line":18,"type":"cond-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":27}},{"start":{"line":20,"column":9},"end":{"line":28,"column":11}}]},"3":{"line":20,"type":"cond-expr","locations":[{"start":{"line":21,"column":10},"end":{"line":21,"column":26}},{"start":{"line":22,"column":11},"end":{"line":27,"column":13}}]},"4":{"line":22,"type":"cond-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":23,"column":37}},{"start":{"line":24,"column":13},"end":{"line":26,"column":38}}]},"5":{"line":24,"type":"cond-expr","locations":[{"start":{"line":25,"column":14},"end":{"line":25,"column":24}},{"start":{"line":26,"column":14},"end":{"line":26,"column":38}}]},"6":{"line":30,"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":27}},{"start":{"line":31,"column":30},"end":{"line":31,"column":34}}]},"7":{"line":66,"type":"cond-expr","locations":[{"start":{"line":67,"column":6},"end":{"line":67,"column":25}},{"start":{"line":68,"column":7},"end":{"line":70,"column":39}}]},"8":{"line":68,"type":"cond-expr","locations":[{"start":{"line":69,"column":8},"end":{"line":69,"column":35}},{"start":{"line":70,"column":8},"end":{"line":70,"column":39}}]},"9":{"line":69,"type":"binary-expr","locations":[{"start":{"line":69,"column":20},"end":{"line":69,"column":24}},{"start":{"line":69,"column":28},"end":{"line":69,"column":34}}]},"10":{"line":70,"type":"binary-expr","locations":[{"start":{"line":70,"column":24},"end":{"line":70,"column":28}},{"start":{"line":70,"column":32},"end":{"line":70,"column":38}}]},"11":{"line":88,"type":"binary-expr","locations":[{"start":{"line":88,"column":11},"end":{"line":88,"column":31}},{"start":{"line":88,"column":35},"end":{"line":88,"column":63}},{"start":{"line":89,"column":11},"end":{"line":89,"column":24}}]},"12":{"line":103,"type":"cond-expr","locations":[{"start":{"line":103,"column":51},"end":{"line":103,"column":75}},{"start":{"line":103,"column":78},"end":{"line":103,"column":83}}]},"13":{"line":156,"type":"binary-expr","locations":[{"start":{"line":156,"column":6},"end":{"line":156,"column":16}},{"start":{"line":156,"column":20},"end":{"line":156,"column":27}}]},"14":{"line":162,"type":"if","locations":[{"start":{"line":162,"column":4},"end":{"line":162,"column":4}},{"start":{"line":162,"column":4},"end":{"line":162,"column":4}}]},"15":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":6},"end":{"line":163,"column":6}},{"start":{"line":163,"column":6},"end":{"line":163,"column":6}}]},"16":{"line":171,"type":"binary-expr","locations":[{"start":{"line":171,"column":27},"end":{"line":171,"column":34}},{"start":{"line":171,"column":38},"end":{"line":171,"column":40}}]},"17":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":4},"end":{"line":183,"column":4}},{"start":{"line":183,"column":4},"end":{"line":183,"column":4}}]},"18":{"line":184,"type":"binary-expr","locations":[{"start":{"line":184,"column":6},"end":{"line":184,"column":12}},{"start":{"line":185,"column":6},"end":{"line":185,"column":59}}]},"19":{"line":185,"type":"cond-expr","locations":[{"start":{"line":185,"column":31},"end":{"line":185,"column":47}},{"start":{"line":185,"column":50},"end":{"line":185,"column":58}}]},"20":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":18},"end":{"line":202,"column":33}},{"start":{"line":203,"column":19},"end":{"line":203,"column":49}},{"start":{"line":204,"column":18},"end":{"line":204,"column":50}}]},"21":{"line":205,"type":"cond-expr","locations":[{"start":{"line":205,"column":23},"end":{"line":205,"column":36}},{"start":{"line":205,"column":39},"end":{"line":205,"column":41}}]},"22":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":16},"end":{"line":206,"column":23}},{"start":{"line":206,"column":27},"end":{"line":206,"column":36}}]},"23":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":4},"end":{"line":209,"column":4}},{"start":{"line":209,"column":4},"end":{"line":209,"column":4}}]},"24":{"line":209,"type":"binary-expr","locations":[{"start":{"line":209,"column":8},"end":{"line":209,"column":15}},{"start":{"line":209,"column":19},"end":{"line":209,"column":45}}]},"25":{"line":210,"type":"if","locations":[{"start":{"line":210,"column":4},"end":{"line":210,"column":4}},{"start":{"line":210,"column":4},"end":{"line":210,"column":4}}]},"26":{"line":211,"type":"cond-expr","locations":[{"start":{"line":212,"column":6},"end":{"line":218,"column":7}},{"start":{"line":219,"column":7},"end":{"line":261,"column":9}}]},"27":{"line":213,"type":"if","locations":[{"start":{"line":213,"column":8},"end":{"line":213,"column":8}},{"start":{"line":213,"column":8},"end":{"line":213,"column":8}}]},"28":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":10},"end":{"line":214,"column":10}},{"start":{"line":214,"column":10},"end":{"line":214,"column":10}}]},"29":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":10},"end":{"line":216,"column":10}},{"start":{"line":216,"column":10},"end":{"line":216,"column":10}}]},"30":{"line":219,"type":"cond-expr","locations":[{"start":{"line":220,"column":8},"end":{"line":239,"column":9}},{"start":{"line":240,"column":8},"end":{"line":261,"column":9}}]},"31":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":10},"end":{"line":221,"column":10}},{"start":{"line":221,"column":10},"end":{"line":221,"column":10}}]},"32":{"line":225,"type":"if","locations":[{"start":{"line":225,"column":12},"end":{"line":225,"column":12}},{"start":{"line":225,"column":12},"end":{"line":225,"column":12}}]},"33":{"line":229,"type":"if","locations":[{"start":{"line":229,"column":14},"end":{"line":229,"column":14}},{"start":{"line":229,"column":14},"end":{"line":229,"column":14}}]},"34":{"line":241,"type":"if","locations":[{"start":{"line":241,"column":10},"end":{"line":241,"column":10}},{"start":{"line":241,"column":10},"end":{"line":241,"column":10}}]},"35":{"line":245,"type":"if","locations":[{"start":{"line":245,"column":12},"end":{"line":245,"column":12}},{"start":{"line":245,"column":12},"end":{"line":245,"column":12}}]},"36":{"line":246,"type":"if","locations":[{"start":{"line":246,"column":14},"end":{"line":246,"column":14}},{"start":{"line":246,"column":14},"end":{"line":246,"column":14}}]},"37":{"line":247,"type":"if","locations":[{"start":{"line":247,"column":16},"end":{"line":247,"column":16}},{"start":{"line":247,"column":16},"end":{"line":247,"column":16}}]},"38":{"line":254,"type":"if","locations":[{"start":{"line":254,"column":16},"end":{"line":254,"column":16}},{"start":{"line":254,"column":16},"end":{"line":254,"column":16}}]},"39":{"line":269,"type":"if","locations":[{"start":{"line":269,"column":6},"end":{"line":269,"column":6}},{"start":{"line":269,"column":6},"end":{"line":269,"column":6}}]},"40":{"line":281,"type":"switch","locations":[{"start":{"line":282,"column":8},"end":{"line":282,"column":22}},{"start":{"line":283,"column":8},"end":{"line":283,"column":22}},{"start":{"line":284,"column":8},"end":{"line":305,"column":16}},{"start":{"line":306,"column":8},"end":{"line":308,"column":16}},{"start":{"line":309,"column":8},"end":{"line":309,"column":22}},{"start":{"line":310,"column":8},"end":{"line":317,"column":11}},{"start":{"line":318,"column":8},"end":{"line":384,"column":16}}]},"41":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":10},"end":{"line":286,"column":10}},{"start":{"line":286,"column":10},"end":{"line":286,"column":10}}]},"42":{"line":287,"type":"binary-expr","locations":[{"start":{"line":287,"column":12},"end":{"line":287,"column":24}},{"start":{"line":288,"column":12},"end":{"line":288,"column":48}}]},"43":{"line":290,"type":"if","locations":[{"start":{"line":290,"column":12},"end":{"line":290,"column":12}},{"start":{"line":290,"column":12},"end":{"line":290,"column":12}}]},"44":{"line":296,"type":"if","locations":[{"start":{"line":296,"column":12},"end":{"line":296,"column":12}},{"start":{"line":296,"column":12},"end":{"line":296,"column":12}}]},"45":{"line":311,"type":"if","locations":[{"start":{"line":311,"column":10},"end":{"line":311,"column":10}},{"start":{"line":311,"column":10},"end":{"line":311,"column":10}}]},"46":{"line":315,"type":"if","locations":[{"start":{"line":315,"column":17},"end":{"line":315,"column":17}},{"start":{"line":315,"column":17},"end":{"line":315,"column":17}}]},"47":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":10},"end":{"line":320,"column":10}},{"start":{"line":320,"column":10},"end":{"line":320,"column":10}}]},"48":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":12},"end":{"line":322,"column":12}},{"start":{"line":322,"column":12},"end":{"line":322,"column":12}}]},"49":{"line":325,"type":"switch","locations":[{"start":{"line":326,"column":16},"end":{"line":326,"column":30}},{"start":{"line":327,"column":16},"end":{"line":327,"column":30}},{"start":{"line":328,"column":16},"end":{"line":330,"column":24}},{"start":{"line":331,"column":16},"end":{"line":337,"column":24}},{"start":{"line":338,"column":16},"end":{"line":351,"column":19}},{"start":{"line":352,"column":16},"end":{"line":354,"column":24}}]},"50":{"line":339,"type":"if","locations":[{"start":{"line":339,"column":18},"end":{"line":339,"column":18}},{"start":{"line":339,"column":18},"end":{"line":339,"column":18}}]},"51":{"line":342,"type":"if","locations":[{"start":{"line":342,"column":18},"end":{"line":342,"column":18}},{"start":{"line":342,"column":18},"end":{"line":342,"column":18}}]},"52":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":22},"end":{"line":347,"column":22}},{"start":{"line":347,"column":22},"end":{"line":347,"column":22}}]},"53":{"line":357,"type":"if","locations":[{"start":{"line":357,"column":17},"end":{"line":357,"column":17}},{"start":{"line":357,"column":17},"end":{"line":357,"column":17}}]},"54":{"line":360,"type":"cond-expr","locations":[{"start":{"line":361,"column":16},"end":{"line":361,"column":44}},{"start":{"line":362,"column":16},"end":{"line":362,"column":23}}]},"55":{"line":365,"type":"if","locations":[{"start":{"line":365,"column":17},"end":{"line":365,"column":17}},{"start":{"line":365,"column":17},"end":{"line":365,"column":17}}]},"56":{"line":367,"type":"if","locations":[{"start":{"line":367,"column":17},"end":{"line":367,"column":17}},{"start":{"line":367,"column":17},"end":{"line":367,"column":17}}]},"57":{"line":369,"type":"if","locations":[{"start":{"line":369,"column":17},"end":{"line":369,"column":17}},{"start":{"line":369,"column":17},"end":{"line":369,"column":17}}]},"58":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":17},"end":{"line":371,"column":17}},{"start":{"line":371,"column":17},"end":{"line":371,"column":17}}]},"59":{"line":373,"type":"if","locations":[{"start":{"line":373,"column":17},"end":{"line":373,"column":17}},{"start":{"line":373,"column":17},"end":{"line":373,"column":17}}]},"60":{"line":379,"type":"if","locations":[{"start":{"line":379,"column":17},"end":{"line":379,"column":17}},{"start":{"line":379,"column":17},"end":{"line":379,"column":17}}]},"61":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":6},"end":{"line":404,"column":6}},{"start":{"line":404,"column":6},"end":{"line":404,"column":6}}]},"62":{"line":428,"type":"switch","locations":[{"start":{"line":429,"column":8},"end":{"line":432,"column":16}},{"start":{"line":433,"column":8},"end":{"line":438,"column":16}},{"start":{"line":439,"column":8},"end":{"line":447,"column":16}}]},"63":{"line":434,"type":"if","locations":[{"start":{"line":434,"column":10},"end":{"line":434,"column":10}},{"start":{"line":434,"column":10},"end":{"line":434,"column":10}}]},"64":{"line":440,"type":"if","locations":[{"start":{"line":440,"column":10},"end":{"line":440,"column":10}},{"start":{"line":440,"column":10},"end":{"line":440,"column":10}}]},"65":{"line":441,"type":"binary-expr","locations":[{"start":{"line":441,"column":12},"end":{"line":441,"column":52}},{"start":{"line":442,"column":12},"end":{"line":442,"column":49}}]},"66":{"line":460,"type":"binary-expr","locations":[{"start":{"line":460,"column":11},"end":{"line":460,"column":40}},{"start":{"line":461,"column":12},"end":{"line":461,"column":54}},{"start":{"line":462,"column":12},"end":{"line":462,"column":38}}]},"67":{"line":511,"type":"if","locations":[{"start":{"line":511,"column":6},"end":{"line":511,"column":6}},{"start":{"line":511,"column":6},"end":{"line":511,"column":6}}]},"68":{"line":512,"type":"binary-expr","locations":[{"start":{"line":512,"column":8},"end":{"line":512,"column":39}},{"start":{"line":513,"column":8},"end":{"line":513,"column":49}}]},"69":{"line":518,"type":"cond-expr","locations":[{"start":{"line":518,"column":34},"end":{"line":518,"column":44}},{"start":{"line":518,"column":47},"end":{"line":518,"column":54}}]},"70":{"line":530,"type":"cond-expr","locations":[{"start":{"line":531,"column":8},"end":{"line":531,"column":25}},{"start":{"line":532,"column":8},"end":{"line":532,"column":26}}]},"71":{"line":543,"type":"if","locations":[{"start":{"line":543,"column":4},"end":{"line":543,"column":4}},{"start":{"line":543,"column":4},"end":{"line":543,"column":4}}]},"72":{"line":554,"type":"if","locations":[{"start":{"line":554,"column":4},"end":{"line":554,"column":4}},{"start":{"line":554,"column":4},"end":{"line":554,"column":4}}]},"73":{"line":563,"type":"if","locations":[{"start":{"line":563,"column":6},"end":{"line":563,"column":6}},{"start":{"line":563,"column":6},"end":{"line":563,"column":6}}]},"74":{"line":576,"type":"if","locations":[{"start":{"line":576,"column":4},"end":{"line":576,"column":4}},{"start":{"line":576,"column":4},"end":{"line":576,"column":4}}]},"75":{"line":576,"type":"binary-expr","locations":[{"start":{"line":576,"column":8},"end":{"line":576,"column":10}},{"start":{"line":576,"column":14},"end":{"line":576,"column":16}}]},"76":{"line":597,"type":"binary-expr","locations":[{"start":{"line":597,"column":13},"end":{"line":597,"column":31}},{"start":{"line":597,"column":35},"end":{"line":597,"column":65}}]},"77":{"line":598,"type":"binary-expr","locations":[{"start":{"line":598,"column":11},"end":{"line":598,"column":13}},{"start":{"line":598,"column":17},"end":{"line":598,"column":52}}]},"78":{"line":605,"type":"if","locations":[{"start":{"line":605,"column":4},"end":{"line":605,"column":4}},{"start":{"line":605,"column":4},"end":{"line":605,"column":4}}]},"79":{"line":605,"type":"binary-expr","locations":[{"start":{"line":605,"column":8},"end":{"line":605,"column":14}},{"start":{"line":605,"column":18},"end":{"line":605,"column":41}}]},"80":{"line":607,"type":"if","locations":[{"start":{"line":607,"column":6},"end":{"line":607,"column":6}},{"start":{"line":607,"column":6},"end":{"line":607,"column":6}}]},"81":{"line":609,"type":"binary-expr","locations":[{"start":{"line":609,"column":11},"end":{"line":609,"column":17}},{"start":{"line":609,"column":21},"end":{"line":609,"column":33}}]},"82":{"line":615,"type":"if","locations":[{"start":{"line":615,"column":4},"end":{"line":615,"column":4}},{"start":{"line":615,"column":4},"end":{"line":615,"column":4}}]},"83":{"line":617,"type":"if","locations":[{"start":{"line":617,"column":11},"end":{"line":617,"column":11}},{"start":{"line":617,"column":11},"end":{"line":617,"column":11}}]},"84":{"line":619,"type":"if","locations":[{"start":{"line":619,"column":11},"end":{"line":619,"column":11}},{"start":{"line":619,"column":11},"end":{"line":619,"column":11}}]},"85":{"line":629,"type":"if","locations":[{"start":{"line":629,"column":6},"end":{"line":629,"column":6}},{"start":{"line":629,"column":6},"end":{"line":629,"column":6}}]},"86":{"line":642,"type":"binary-expr","locations":[{"start":{"line":642,"column":11},"end":{"line":642,"column":24}},{"start":{"line":642,"column":28},"end":{"line":642,"column":43}}]},"87":{"line":651,"type":"binary-expr","locations":[{"start":{"line":651,"column":15},"end":{"line":651,"column":27}},{"start":{"line":651,"column":32},"end":{"line":651,"column":64}}]},"88":{"line":669,"type":"switch","locations":[{"start":{"line":670,"column":6},"end":{"line":673,"column":14}},{"start":{"line":674,"column":6},"end":{"line":676,"column":14}},{"start":{"line":677,"column":6},"end":{"line":679,"column":14}}]},"89":{"line":694,"type":"cond-expr","locations":[{"start":{"line":695,"column":6},"end":{"line":705,"column":7}},{"start":{"line":706,"column":6},"end":{"line":706,"column":13}}]},"90":{"line":709,"type":"cond-expr","locations":[{"start":{"line":710,"column":6},"end":{"line":723,"column":7}},{"start":{"line":724,"column":6},"end":{"line":724,"column":9}}]},"91":{"line":729,"type":"binary-expr","locations":[{"start":{"line":729,"column":16},"end":{"line":729,"column":29}},{"start":{"line":730,"column":17},"end":{"line":738,"column":19}}]},"92":{"line":741,"type":"binary-expr","locations":[{"start":{"line":741,"column":13},"end":{"line":741,"column":25}},{"start":{"line":742,"column":14},"end":{"line":742,"column":68}}]},"93":{"line":756,"type":"if","locations":[{"start":{"line":756,"column":2},"end":{"line":756,"column":2}},{"start":{"line":756,"column":2},"end":{"line":756,"column":2}}]},"94":{"line":760,"type":"binary-expr","locations":[{"start":{"line":760,"column":13},"end":{"line":760,"column":33}},{"start":{"line":761,"column":13},"end":{"line":761,"column":44}}]},"95":{"line":766,"type":"cond-expr","locations":[{"start":{"line":767,"column":6},"end":{"line":769,"column":7}},{"start":{"line":770,"column":6},"end":{"line":778,"column":7}}]},"96":{"line":781,"type":"cond-expr","locations":[{"start":{"line":782,"column":6},"end":{"line":795,"column":7}},{"start":{"line":796,"column":6},"end":{"line":796,"column":47}}]},"97":{"line":781,"type":"binary-expr","locations":[{"start":{"line":781,"column":20},"end":{"line":781,"column":22}},{"start":{"line":781,"column":26},"end":{"line":781,"column":28}}]},"98":{"line":791,"type":"if","locations":[{"start":{"line":791,"column":10},"end":{"line":791,"column":10}},{"start":{"line":791,"column":10},"end":{"line":791,"column":10}}]},"99":{"line":800,"type":"cond-expr","locations":[{"start":{"line":801,"column":6},"end":{"line":814,"column":7}},{"start":{"line":815,"column":6},"end":{"line":820,"column":7}}]},"100":{"line":800,"type":"binary-expr","locations":[{"start":{"line":800,"column":16},"end":{"line":800,"column":18}},{"start":{"line":800,"column":22},"end":{"line":800,"column":24}}]},"101":{"line":804,"type":"switch","locations":[{"start":{"line":805,"column":12},"end":{"line":807,"column":20}},{"start":{"line":808,"column":12},"end":{"line":810,"column":20}}]},"102":{"line":830,"type":"binary-expr","locations":[{"start":{"line":830,"column":17},"end":{"line":830,"column":19}},{"start":{"line":830,"column":23},"end":{"line":830,"column":26}}]},"103":{"line":830,"type":"binary-expr","locations":[{"start":{"line":830,"column":37},"end":{"line":830,"column":39}},{"start":{"line":830,"column":43},"end":{"line":830,"column":46}}]},"104":{"line":850,"type":"cond-expr","locations":[{"start":{"line":851,"column":6},"end":{"line":861,"column":7}},{"start":{"line":862,"column":6},"end":{"line":864,"column":7}}]},"105":{"line":872,"type":"cond-expr","locations":[{"start":{"line":873,"column":4},"end":{"line":878,"column":5}},{"start":{"line":879,"column":4},"end":{"line":879,"column":55}}]},"106":{"line":875,"type":"if","locations":[{"start":{"line":875,"column":8},"end":{"line":875,"column":8}},{"start":{"line":875,"column":8},"end":{"line":875,"column":8}}]},"107":{"line":881,"type":"cond-expr","locations":[{"start":{"line":882,"column":4},"end":{"line":887,"column":5}},{"start":{"line":888,"column":4},"end":{"line":888,"column":59}}]},"108":{"line":884,"type":"if","locations":[{"start":{"line":884,"column":7},"end":{"line":884,"column":7}},{"start":{"line":884,"column":7},"end":{"line":884,"column":7}}]},"109":{"line":893,"type":"if","locations":[{"start":{"line":893,"column":4},"end":{"line":893,"column":4}},{"start":{"line":893,"column":4},"end":{"line":893,"column":4}}]},"110":{"line":893,"type":"binary-expr","locations":[{"start":{"line":893,"column":8},"end":{"line":893,"column":23}},{"start":{"line":893,"column":27},"end":{"line":893,"column":65}}]},"111":{"line":901,"type":"if","locations":[{"start":{"line":901,"column":4},"end":{"line":901,"column":4}},{"start":{"line":901,"column":4},"end":{"line":901,"column":4}}]},"112":{"line":920,"type":"switch","locations":[{"start":{"line":921,"column":8},"end":{"line":927,"column":16}},{"start":{"line":928,"column":8},"end":{"line":972,"column":16}},{"start":{"line":973,"column":8},"end":{"line":982,"column":16}}]},"113":{"line":923,"type":"if","locations":[{"start":{"line":923,"column":10},"end":{"line":923,"column":10}},{"start":{"line":923,"column":10},"end":{"line":923,"column":10}}]},"114":{"line":932,"type":"cond-expr","locations":[{"start":{"line":932,"column":33},"end":{"line":932,"column":79}},{"start":{"line":932,"column":83},"end":{"line":932,"column":85}}]},"115":{"line":934,"type":"cond-expr","locations":[{"start":{"line":934,"column":31},"end":{"line":934,"column":73}},{"start":{"line":934,"column":76},"end":{"line":934,"column":78}}]},"116":{"line":936,"type":"switch","locations":[{"start":{"line":941,"column":12},"end":{"line":943,"column":20}},{"start":{"line":945,"column":12},"end":{"line":946,"column":25}},{"start":{"line":948,"column":12},"end":{"line":950,"column":20}}]},"117":{"line":956,"type":"if","locations":[{"start":{"line":956,"column":10},"end":{"line":956,"column":10}},{"start":{"line":956,"column":10},"end":{"line":956,"column":10}}]},"118":{"line":969,"type":"if","locations":[{"start":{"line":969,"column":10},"end":{"line":969,"column":10}},{"start":{"line":969,"column":10},"end":{"line":969,"column":10}}]},"119":{"line":975,"type":"binary-expr","locations":[{"start":{"line":975,"column":19},"end":{"line":975,"column":51}},{"start":{"line":976,"column":20},"end":{"line":980,"column":21}}]},"120":{"line":1031,"type":"switch","locations":[{"start":{"line":1032,"column":6},"end":{"line":1032,"column":24}},{"start":{"line":1033,"column":6},"end":{"line":1035,"column":14}},{"start":{"line":1036,"column":6},"end":{"line":1042,"column":14}},{"start":{"line":1043,"column":6},"end":{"line":1043,"column":26}},{"start":{"line":1044,"column":6},"end":{"line":1047,"column":14}}]},"121":{"line":1092,"type":"if","locations":[{"start":{"line":1092,"column":4},"end":{"line":1092,"column":4}},{"start":{"line":1092,"column":4},"end":{"line":1092,"column":4}}]},"122":{"line":1094,"type":"binary-expr","locations":[{"start":{"line":1094,"column":16},"end":{"line":1094,"column":39}},{"start":{"line":1095,"column":16},"end":{"line":1095,"column":51}}]},"123":{"line":1096,"type":"if","locations":[{"start":{"line":1096,"column":4},"end":{"line":1096,"column":4}},{"start":{"line":1096,"column":4},"end":{"line":1096,"column":4}}]},"124":{"line":1117,"type":"cond-expr","locations":[{"start":{"line":1118,"column":8},"end":{"line":1118,"column":54}},{"start":{"line":1119,"column":8},"end":{"line":1119,"column":16}}]},"125":{"line":1124,"type":"if","locations":[{"start":{"line":1124,"column":6},"end":{"line":1124,"column":6}},{"start":{"line":1124,"column":6},"end":{"line":1124,"column":6}}]},"126":{"line":1126,"type":"if","locations":[{"start":{"line":1126,"column":8},"end":{"line":1126,"column":8}},{"start":{"line":1126,"column":8},"end":{"line":1126,"column":8}}]},"127":{"line":1134,"type":"cond-expr","locations":[{"start":{"line":1135,"column":6},"end":{"line":1161,"column":7}},{"start":{"line":1162,"column":6},"end":{"line":1171,"column":7}}]},"128":{"line":1137,"type":"if","locations":[{"start":{"line":1137,"column":8},"end":{"line":1137,"column":8}},{"start":{"line":1137,"column":8},"end":{"line":1137,"column":8}}]},"129":{"line":1138,"type":"if","locations":[{"start":{"line":1138,"column":8},"end":{"line":1138,"column":8}},{"start":{"line":1138,"column":8},"end":{"line":1138,"column":8}}]},"130":{"line":1142,"type":"if","locations":[{"start":{"line":1142,"column":12},"end":{"line":1142,"column":12}},{"start":{"line":1142,"column":12},"end":{"line":1142,"column":12}}]},"131":{"line":1143,"type":"if","locations":[{"start":{"line":1143,"column":14},"end":{"line":1143,"column":14}},{"start":{"line":1143,"column":14},"end":{"line":1143,"column":14}}]},"132":{"line":1152,"type":"if","locations":[{"start":{"line":1152,"column":16},"end":{"line":1152,"column":16}},{"start":{"line":1152,"column":16},"end":{"line":1152,"column":16}}]},"133":{"line":1163,"type":"if","locations":[{"start":{"line":1163,"column":8},"end":{"line":1163,"column":8}},{"start":{"line":1163,"column":8},"end":{"line":1163,"column":8}}]},"134":{"line":1164,"type":"if","locations":[{"start":{"line":1164,"column":8},"end":{"line":1164,"column":8}},{"start":{"line":1164,"column":8},"end":{"line":1164,"column":8}}]},"135":{"line":1179,"type":"if","locations":[{"start":{"line":1179,"column":4},"end":{"line":1179,"column":4}},{"start":{"line":1179,"column":4},"end":{"line":1179,"column":4}}]},"136":{"line":1181,"type":"binary-expr","locations":[{"start":{"line":1181,"column":13},"end":{"line":1181,"column":29}},{"start":{"line":1181,"column":33},"end":{"line":1181,"column":39}}]},"137":{"line":1183,"type":"if","locations":[{"start":{"line":1183,"column":4},"end":{"line":1183,"column":4}},{"start":{"line":1183,"column":4},"end":{"line":1183,"column":4}}]},"138":{"line":1187,"type":"binary-expr","locations":[{"start":{"line":1187,"column":11},"end":{"line":1187,"column":19}},{"start":{"line":1187,"column":24},"end":{"line":1187,"column":52}}]},"139":{"line":1216,"type":"cond-expr","locations":[{"start":{"line":1216,"column":48},"end":{"line":1216,"column":53}},{"start":{"line":1216,"column":56},"end":{"line":1216,"column":66}}]},"140":{"line":1225,"type":"binary-expr","locations":[{"start":{"line":1225,"column":18},"end":{"line":1225,"column":26}},{"start":{"line":1225,"column":30},"end":{"line":1225,"column":38}}]},"141":{"line":1227,"type":"if","locations":[{"start":{"line":1227,"column":4},"end":{"line":1227,"column":4}},{"start":{"line":1227,"column":4},"end":{"line":1227,"column":4}}]},"142":{"line":1227,"type":"binary-expr","locations":[{"start":{"line":1227,"column":8},"end":{"line":1227,"column":22}},{"start":{"line":1227,"column":26},"end":{"line":1227,"column":34}}]},"143":{"line":1228,"type":"if","locations":[{"start":{"line":1228,"column":6},"end":{"line":1228,"column":6}},{"start":{"line":1228,"column":6},"end":{"line":1228,"column":6}}]},"144":{"line":1228,"type":"binary-expr","locations":[{"start":{"line":1228,"column":10},"end":{"line":1228,"column":18}},{"start":{"line":1228,"column":22},"end":{"line":1228,"column":30}}]},"145":{"line":1233,"type":"if","locations":[{"start":{"line":1233,"column":4},"end":{"line":1233,"column":4}},{"start":{"line":1233,"column":4},"end":{"line":1233,"column":4}}]},"146":{"line":1288,"type":"cond-expr","locations":[{"start":{"line":1288,"column":51},"end":{"line":1288,"column":52}},{"start":{"line":1288,"column":55},"end":{"line":1288,"column":56}}]},"147":{"line":1289,"type":"cond-expr","locations":[{"start":{"line":1290,"column":27},"end":{"line":1291,"column":37}},{"start":{"line":1292,"column":27},"end":{"line":1293,"column":37}}]},"148":{"line":1290,"type":"cond-expr","locations":[{"start":{"line":1291,"column":28},"end":{"line":1291,"column":31}},{"start":{"line":1291,"column":34},"end":{"line":1291,"column":37}}]},"149":{"line":1292,"type":"cond-expr","locations":[{"start":{"line":1293,"column":28},"end":{"line":1293,"column":31}},{"start":{"line":1293,"column":34},"end":{"line":1293,"column":37}}]},"150":{"line":1323,"type":"binary-expr","locations":[{"start":{"line":1323,"column":11},"end":{"line":1323,"column":12}},{"start":{"line":1323,"column":16},"end":{"line":1323,"column":17}}]},"151":{"line":1330,"type":"if","locations":[{"start":{"line":1330,"column":6},"end":{"line":1330,"column":6}},{"start":{"line":1330,"column":6},"end":{"line":1330,"column":6}}]},"152":{"line":1330,"type":"binary-expr","locations":[{"start":{"line":1330,"column":10},"end":{"line":1330,"column":26}},{"start":{"line":1330,"column":30},"end":{"line":1330,"column":45}},{"start":{"line":1330,"column":49},"end":{"line":1330,"column":65}}]},"153":{"line":1333,"type":"if","locations":[{"start":{"line":1333,"column":8},"end":{"line":1333,"column":8}},{"start":{"line":1333,"column":8},"end":{"line":1333,"column":8}}]},"154":{"line":1337,"type":"if","locations":[{"start":{"line":1337,"column":11},"end":{"line":1337,"column":11}},{"start":{"line":1337,"column":11},"end":{"line":1337,"column":11}}]},"155":{"line":1337,"type":"binary-expr","locations":[{"start":{"line":1337,"column":15},"end":{"line":1337,"column":26}},{"start":{"line":1337,"column":30},"end":{"line":1337,"column":42}}]},"156":{"line":1363,"type":"if","locations":[{"start":{"line":1363,"column":4},"end":{"line":1363,"column":4}},{"start":{"line":1363,"column":4},"end":{"line":1363,"column":4}}]},"157":{"line":1367,"type":"if","locations":[{"start":{"line":1367,"column":8},"end":{"line":1367,"column":8}},{"start":{"line":1367,"column":8},"end":{"line":1367,"column":8}}]},"158":{"line":1367,"type":"binary-expr","locations":[{"start":{"line":1367,"column":12},"end":{"line":1367,"column":35}},{"start":{"line":1367,"column":39},"end":{"line":1367,"column":61}},{"start":{"line":1367,"column":65},"end":{"line":1367,"column":87}}]},"159":{"line":1372,"type":"cond-expr","locations":[{"start":{"line":1373,"column":12},"end":{"line":1373,"column":27}},{"start":{"line":1373,"column":31},"end":{"line":1374,"column":27}}]},"160":{"line":1373,"type":"cond-expr","locations":[{"start":{"line":1374,"column":14},"end":{"line":1374,"column":23}},{"start":{"line":1374,"column":26},"end":{"line":1374,"column":27}}]}}}} \ No newline at end of file diff --git a/coverage/lcov-report/hyperHTML/hyperhtml.js.html b/coverage/lcov-report/hyperHTML/hyperhtml.js.html index a84bcba6..20740aa1 100644 --- a/coverage/lcov-report/hyperHTML/hyperhtml.js.html +++ b/coverage/lcov-report/hyperHTML/hyperhtml.js.html @@ -20,24 +20,24 @@

- 100% + 98.95% Statements - 567/567 + 568/574
- 100% + 98.81% Branches - 332/332 + 332/336
- 100% + 98.92% Functions - 92/92 + 92/93
- 100% + 98.92% Lines - 548/548 + 549/555
@@ -1314,7 +1314,27 @@

1269 1270 1271 -1272 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292       @@ -1610,6 +1630,26 @@

      + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +      @@ -2585,7 +2625,7 @@

    - 
var hyperHTML = (function (globalDocument) {'use strict';
+ 
var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
  
   /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */
  
@@ -2880,6 +2920,26 @@ 

} ); } +  + function splice(start, deleteCount) { + for (var + tmp, + i = start, + cn = this._childNodes, + ph = this._placeholder, + pn = ph.parentNode, + length = cn.length, + end = deleteCount == null ? length : (start + deleteCount); + i < length && i < end; i++ + ) { + pn.removeChild(cn[i]); + } + tmp = cn[end] || ph; + for (i = 2, length = arguments.length; i < length; i++) { + pn.insertBefore(arguments[i], tmp); + } + return cn.splice.apply(cn, arguments); + }   // `<p>${'any'}</p>` // `<li>a</li>${'virtual'}<li>c</li>` @@ -3852,7 +3912,7 @@

// --------------------------------------------- return hyper;   -}(document)); +}(document/*!majinbuu*/));   // umd.KISS try { module.exports = hyperHTML; } catch(o_O) {} @@ -3862,7 +3922,7 @@

diff --git a/coverage/lcov-report/hyperHTML/index.html b/coverage/lcov-report/hyperHTML/index.html index d4e3319f..76f80067 100644 --- a/coverage/lcov-report/hyperHTML/index.html +++ b/coverage/lcov-report/hyperHTML/index.html @@ -22,22 +22,22 @@

100% Statements - 567/567 + 605/605
100% Branches - 332/332 + 341/341
100% Functions - 92/92 + 97/97
100% Lines - 548/548 + 590/590
@@ -59,16 +59,16 @@

- hyperhtml.js + index.js
100% - 567/567 + 605/605 100% - 332/332 + 341/341 100% - 92/92 + 97/97 100% - 548/548 + 590/590 @@ -77,7 +77,7 @@

diff --git a/coverage/lcov-report/hyperHTML/index.js.html b/coverage/lcov-report/hyperHTML/index.js.html new file mode 100644 index 00000000..7e1d2b05 --- /dev/null +++ b/coverage/lcov-report/hyperHTML/index.js.html @@ -0,0 +1,4274 @@ + + + + Code coverage report for hyperHTML/index.js + + + + + + + +
+
+

+ all files / hyperHTML/ index.js +

+
+
+ 100% + Statements + 605/605 +
+
+ 100% + Branches + 341/341 +
+
+ 100% + Functions + 97/97 +
+
+ 100% + Lines + 590/590 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +  +  +  +  +  +  +  +  +  + +  +  + +  + +20× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + +28× +32× +32× +32× +32× +  +  +  +  +  + +210× +  +  + + +  +  +  + + +  +  +  +  + + +62× +  +  +  +  +  +  +  +  +  +  +  + + + +  +  +  +  +  + + +  +  +  +  +  +  +  +  +  + +  + +  +  + + +11× + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + + + + +  +  + + +  + + + + +  +  +  +  +  + +104× +104× +104× +  +  + +88× +  +  +  +  +  +  +  +  +  +50× +  +88× +88× +88× +48× +34× +  +14× +14× +38× +  +  +48× +  +88× +  +  +  +  +  +  +  + +282× +282× +  +  +  +156× +156× +  +282× +282× +  +  +  +  +  +  + +48× +  +  +  +  +  +  +  +  +  +48× +48× +48× +  +30× +18× +18× +18× +  +  +  +  +20× +16× +  +  +16× +  +  +  +14× +  +  + + +  +10× +  +  +  +  +  +48× +36× +  +  +36× +34× + +  + + +  +  +30× +30× + + +  +  +  +  +  +  +  +  +  + + + + + + +  +  +  +  +  +  + +104× +104× +286× +  +  +  +114× +114× +  +  +  +46× +28× +28× +  +  +68× +68× + +  +66× +  +  +  +  +  +114× +  + + +  +  +168× + + + +162× + +  +  +162× +162× +78× +78× + +  +74× +  +  +  +24× +24× +  +10× +10× +12× +  +10× +10× +  +40× +12× +  +40× + + +  +36× +78× + +  +  +  +  +36× +36× +  +  +84× +24× +  +  +  +  +  +  +60× + +56× +10× +46× + +42× + +38× +28× +28× +28× +28× +28× +10× + +  + +  +162× +  +  +  +  +  +  +  +  +  + +118× +  +  +  +  +  +  +  +56× +56× +48× +48× +  +  +  +  +  +  +  +  +  +  +  +  +  + +228× +  +  +  +  +  +322× +322× +  +118× +118× +118× +  +66× +64× +64× +  +66× +  +138× +  +  +  + + +  +138× +  +  +  +  +  +  +  + +  +  +  +  + +  +  +  +  +  + + + + +  +  +  +  + +  +  +  +  +  +  + +  +  + +  +  +  +  +  +  + + +  +  +  + + +  +  +  + +62× +  +  +  +  +  +  +  +90× +90× +  +  +  +66× +  +  +62× +  +  +  + +142× +  +  +  +  + +138× +  +  +  +  +  +  +  + +136× +136× +136× +136× +136× +136× +  +64× +  +  +  +  +  +  +64× +  +136× +  +  +  + + + +  +135× +135× +72× +  +63× +  +  +136× +  +  +  + + + + + + + +  + + + +  + +  +  +  + +72× +  +  +  +  + + + + +  +  +  +  + +46× +46× + + +  +46× +  +  +  + +10× +10× + + + + + +  + +  +  +  +  + +10× +10× + +  +  +  +  +  + +84× +  +  +  + +100× +  +  +  +  + + + +  +42× +  +  +18× +  +  +  +  +  + +156× +24× +  +  +  +  + +156× +156× +  +  +104× +104× +  +48× +48× +  + + +  +156× +  +  +  + +116× +  +  +  +  +  +  +  + +  + +164× +  +90× +  +  +  +  +  +  +  +  +  + +  + + +  +78× +  +  +  +  +  +55× +  +  +  +  +  +  +  +  + +  + +  +  + + +101× +  +  +  +  + +21× +  +  +  +  +  +  + +  +  + +  +  + + + + +206× +206× +  +  +  +  +  + +  +69× +  +  + +  +  +  +  + +  +  +  +  + +  +162× +  +  +  +  +  +  +390× +390× +205× +  +162× +  +101× +  +  +  + +  +82× +137× +137× +  +61× +61× +  +76× +76× +  +  +82× +  +  +82× +137× +  +82× +  +  +  + + + +38× +  +  + +48× +  +  +  + +  +  + +  +  + +  +  + +  +  +  + + + + +  +206× +  +  +  +  +  +144× +  +206× +  +  +62× +  +  +  +  +  +  +  +  + +  +21× +15× +  +15× +  +21× +  + +  +18× +12× +  +14× +  +18× +  +  + +40× +40× +10× +10× +  +  +  +  + +36× +10× +  +26× +  +  +  +  +  + +46× +  +  +  +  +  +  +  +  +82× +  + + + +  + + +  +36× +36× +36× +36× +36× +36× +36× +36× +  +  +  +  +  +26× +26× +  +  + +  +  +10× +10× +  +36× +  +  +  +36× + +  +  +  +  +  +30× +  +  +  +  +  +36× +30× +  +36× +  +  +38× +  +  +  +  +  +38× +38× +  +  +46× +  +  +  + +32× +  +  +  +  +  +  +46× +46× +46× +  +  +  +  +  +  +32× +32× +  +  +  +  +  +  +  +  + +110× +110× +110× +110× +110× +110× +  +  +  +  +  + +116× +116× +116× +  +  + + +  +64× +64× +  +  +  +64× +  +  +48× +48× +48× +  +116× +  +  +  +  +92× +  +116× +  +  +  +  +  + +124× +  +  +  +  +  +  +110× +110× +  +  +  +  +  +  +124× +124× +  +  +  + +282× +300× +  +  +  +  +  + +156× +156× +156× +  +156× +124× +124× +124× +124× +  +32× +  +156× +  +  +  +  +  +  +  + +60× +  + +60× +60× +  +  +60× +  +  + +90× +62× +62× + +  +62× +  +90× +  +  +60× +  +14× +14× +14× +10× +10× +10× +14× +10× + + +  +  +  +  + +  + + +  +  +14× +14× +  +  +14× +  +  +76× +76× +52× +52× +52× +  +76× +76× +  +  +  +  + +46× +46× +46× +46× +12× +12× +  +46× +24× +24× +  +46× +  +  +  +  +  +  +  +  +  +  +  + +  +  +  +  + +  +  +  +  +  +  + +  +  +  +  +  +  +  +  +  + +60× +  +  +  +  +60× +26× +24× +  +26× +  +34× + + +  +30× +  +  +  +  +  +  +  +  + +104× +104× +  +  + +  +  +  +  + +104× +104× +104× +  +  +  +  +  +  + +30× +30× +30× +30× +30× +30× +30× +30× +30× +30× +30× +30× +50× +30× +46× +46× +46× +46× +46× +84× +84× +84× +84× +  +  +  +  +84× +  +46× +  +30× +  +  +  + +28× +  +  +  +  +  +  +  +  +  + +30× +  +  +  +  +  +  +  +  +30× +50× +50× +50× +50× +50× +50× +50× +42× +42× +42× +16× +  +  + + + +  +  + + +  +  +30× + +  +30× + +  +30× +  +  +  + +30× +  +  +  +  +  +30× +20× +20× + + + + +  + + +  +  + +  + +  +20× +  +  +  +  + +88× +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + 
var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
+ 
+  /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */
+ 
+  // ---------------------------------------------
+  // hyperHTML Public API
+  // ---------------------------------------------
+ 
+  // The document must be swap-able at runtime.
+  // Needed by both basicHTML and nativeHTML
+  hyper.document = globalDocument;
+ 
+  // friendly destructuring
+  hyper.hyper = hyper;
+ 
+  function hyper(HTML) {
+    return arguments.length < 2 ?
+      (HTML == null ?
+        wireContent('html') :
+        (typeof HTML === 'string' ?
+          wire(null, HTML) :
+          ('raw' in HTML ?
+            wireContent('html')(HTML) :
+            ('nodeType' in HTML ?
+              bind(HTML) :
+              wireWeakly(HTML, 'html')
+            )
+          )
+        )) :
+      ('raw' in HTML ?
+        wireContent('html') : wire
+      ).apply(null, arguments);
+  }
+ 
+  // hyper.adopt(el) 🐣
+  // import an already live DOM structure
+  // described as TL
+  hyper.adopt = function adopt(node) {
+    return function () {
+      notAdopting = false;
+      render.apply(node, arguments);
+      notAdopting = true;
+      return node;
+    };
+  };
+ 
+  // hyper.bind(el) ⚡️
+  // render TL inside a DOM node used as context
+  hyper.bind = bind;
+  function bind(context) { return render.bind(context); }
+ 
+  // hyper.define('transformer', callback) 🌀
+  hyper.define = function define(transformer, callback) {
+    transformers[transformer] = callback;
+  };
+ 
+  // hyper.escape('<html>') => '&lt;text&gt;' 🏃
+  hyper.escape = function escape(html) {
+    return html.replace(/[&<>'"]/g, fnEscape);
+  };
+ 
+  // hyper.wire(obj, 'type:ID') ➰
+  // relate a renderer to a generic object
+  hyper.wire = wire;
+  function wire(obj, type) {
+    return arguments.length < 1 ?
+      wireContent('html') :
+      (obj == null ?
+        wireContent(type || 'html') :
+        wireWeakly(obj, type || 'html')
+      );
+  }
+ 
+  // hyper.Component([initialState]) 🍻
+  // An overly-simplified Component class.
+  // For full Custom Elements support
+  // see HyperHTMLElement instead.
+  hyper.Component = Component;
+  function Component() {}
+  Object.defineProperties(
+    Component.prototype,
+    {
+      // same as HyperHTMLElement handleEvent
+      handleEvent: {value: function (e) {
+        // both IE < 11 and JSDOM lack dataset
+        var ct = e.currentTarget;
+        this[
+          ('getAttribute' in ct && ct.getAttribute('data-call')) ||
+          ('on' + e.type)
+        ](e);
+      }},
+      // returns its own HTML wire or create it once on comp.render()
+      html: lazyGetter('html', wireContent),
+      // returns its own SVG wire or create it once on comp.render()
+      svg: lazyGetter('svg', wireContent),
+      // same as HyperHTMLElement state
+      state: lazyGetter('state', function () { return this.defaultState; }),
+      // same as HyperHTMLElement get defaultState
+      defaultState: {get: function () { return {}; }},
+      // same as HyperHTMLElement setState
+      setState: {value: function (state) {
+        var target = this.state;
+        var source = typeof state === 'function' ? state.call(this, target) : state;
+        for (var key in source) target[key] = source[key];
+        this.render();
+      }}
+      // the render must be defined when extending hyper.Component
+      // the render **must** return either comp.html or comp.svg wire
+      // render() { return this.html`<p>that's it</p>`; }
+    }
+  );
+ 
+  // - - - - - - - - - - - - - - - - - - - - - - -
+ 
+  // ---------------------------------------------
+  // Constants
+  // ---------------------------------------------
+ 
+  // Node.CONSTANTS
+  // without assuming Node is globally available
+  // since this project is used on the backend too
+  var ELEMENT_NODE = 1;
+  var ATTRIBUTE_NODE = 2;
+  var TEXT_NODE = 3;
+  var COMMENT_NODE = 8;
+  var DOCUMENT_FRAGMENT_NODE = 11;
+ 
+  // SVG related
+  var OWNER_SVG_ELEMENT = 'ownerSVGElement';
+  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
+ 
+  var SHOULD_USE_ATTRIBUTE = /^style$/i;
+  var EXPANDO = '_hyper: ';
+  var UID = EXPANDO + ((Math.random() * new Date) | 0) + ';';
+  var UIDC = '<!--' + UID + '-->';
+ 
+  // ---------------------------------------------
+  // DOM Manipulation
+  // ---------------------------------------------
+ 
+  function Aura(node, childNodes) {
+    this.node = node;
+    this.childNodes = childNodes;
+    return majinbuu.aura(this, childNodes);
+  }
+ 
+  Aura.prototype.splice = function splice(start, deleteCount) {
+    for (var
+      tmp,
+      i = start,
+      ph = this.node,
+      cn = this.childNodes,
+      pn = ph.parentNode,
+      length = cn.length,
+      end = deleteCount == null ? length : (start + deleteCount);
+      i < length && i < end; i++
+    ) {
+      pn.removeChild(cn[i]);
+    }
+    i = 2;
+    length = arguments.length;
+    if (i < length) {
+      if ((length - i) === 1) {
+        tmp = arguments[i];
+      } else {
+        tmp = createDocumentFragment(pn.ownerDocument);
+        while (i < length) {
+          tmp.appendChild(arguments[i++]);
+        }
+      }
+      pn.insertBefore(tmp, cn[end] || ph);
+    }
+    return cn.splice.apply(cn, arguments);
+  };
+ 
+  // ---------------------------------------------
+  // hyperHTML Operations
+  // ---------------------------------------------
+ 
+  // entry point for all TL => DOM operations
+  function render(template) {
+    var hyper = hypers.get(this);
+    if (
+      !hyper ||
+      hyper.template !== (FF ? unique(template) : template)
+    ) {
+      hyper = upgrade.apply(this, arguments);
+      hypers.set(this, hyper);
+    }
+    update.apply(hyper.updates, arguments);
+    return this;
+  }
+ 
+  // `<div class="${'attr'}"></div>`
+  // `<div onclick="${function () {... }}"></div>`
+  // `<div onclick="${{handleEvent(){ ... }}}"></div>`
+  // `<div contenteditable="${true}"></div>`
+  function setAttribute(attribute, removeAttributes, name) {
+    var
+      node = attribute.ownerElement,
+      isEvent = /^on/.test(name),
+      isSpecial = name === 'data' ||
+                  (isSpecialAttribute(node, name) &&
+                  !SHOULD_USE_ATTRIBUTE.test(name)),
+      type = isEvent ? name.slice(2) : '',
+      noOwner = isEvent || isSpecial,
+      oldValue
+    ;
+    if (isEvent && name.toLowerCase() in node) type = type.toLowerCase();
+    if (noOwner) removeAttributes.push(node, name);
+    return isEvent ?
+      function eventAttr(newValue) {
+        if (oldValue !== newValue) {
+          if (oldValue) node.removeEventListener(type, oldValue, false);
+          oldValue = newValue;
+          if (newValue) node.addEventListener(type, newValue, false);
+        }
+      } :
+      (isSpecial ?
+        function specialAttr(newValue) {
+          if (oldValue !== newValue) {
+            oldValue = newValue;
+            // WebKit moves the cursor if input.value
+            // is set again, even if same value
+            if (node[name] !== newValue) {
+              // let the browser handle the case
+              // input.value = null;
+              // input.value; // ''
+              if (newValue == null) {
+                // reflect the null intent,
+                // do not pass undefined!
+                node[name] = null;
+                node.removeAttribute(name);
+              } else {
+                node[name] = newValue;
+              }
+            }
+          }
+        } :
+        function normalAttr(newValue) {
+          if (oldValue !== newValue) {
+            oldValue = newValue;
+            // avoid triggering again attributeChangeCallback
+            // if the value was identical
+            if (attribute.value !== newValue) {
+              if (newValue == null) {
+                if (!noOwner) {
+                  // TODO: should attribute.value = null here?
+                  noOwner = true;
+                  node.removeAttributeNode(attribute);
+                }
+              } else {
+                attribute.value = newValue;
+                if (noOwner) {
+                  noOwner = false;
+                  node.setAttributeNode(attribute);
+                }
+              }
+            }
+          }
+        }
+      );
+  }
+ 
+  // `<style>${'text'}</style>`
+  function setTextContent(node) {
+    var oldValue;
+    return function (value) {
+      if (value !== oldValue) {
+        oldValue = value;
+        node.textContent = value;
+      }
+    };
+  }
+ 
+  // `<p>${'any'}</p>`
+  // `<li>a</li>${'virtual'}<li>c</li>`
+  function setAnyContent(node, childNodes, aura) {
+    var oldValue;
+    return function anyContent(value) {
+      switch (typeof value) {
+        case 'string':
+        case 'number':
+        case 'boolean':
+          var length = childNodes.length;
+          if (
+            length === 1 &&
+            childNodes[0].nodeType === TEXT_NODE
+          ) {
+            if (oldValue !== value) {
+              oldValue = value;
+              childNodes[0].textContent = value;
+            }
+          } else {
+            oldValue = value;
+            if (length) {
+              aura.splice(0, length, createText(node, value));
+            } else {
+              childNodes[0] = node.parentNode.insertBefore(
+                createText(node, value),
+                node
+              );
+            }
+          }
+          break;
+        case 'function':
+          anyContent(value(node.parentNode, childNodes, 0));
+          break;
+        case 'object':
+        case 'undefined':
+          if (value == null) {
+            oldValue = value;
+            anyContent('');
+            break;
+          } else if (value instanceof Component) {
+            value = value.render();
+          }
+        default:
+          oldValue = value;
+          if (isArray(value)) {
+            var length = value.length;
+            if (length === 0) {
+              aura.splice(0);
+            } else {
+              switch (typeof value[0]) {
+                case 'string':
+                case 'number':
+                case 'boolean':
+                  anyContent({html: value});
+                  break;
+                case 'function':
+                  var parentNode = node.parentNode;
+                  for (var i = 0; i < length; i++) {
+                    value[i] = value[i](parentNode, childNodes, i);
+                  }
+                  anyContent(value.concat.apply([], value));
+                  break;
+                case 'object':
+                  if (isArray(value[0])) {
+                    value = value.concat.apply([], value);
+                  }
+                  if (isPromise_ish(value[0])) {
+                    Promise.all(value).then(anyContent);
+                    break;
+                  } else {
+                    for (var i = 0, length = value.length; i < length; i++) {
+                      if (value[i] instanceof Component) {
+                        value[i] = value[i].render();
+                      }
+                    }
+                  }
+                default:
+                  majinbuu(aura, value, hyper.MAX_LIST_SIZE);
+                  break;
+              }
+            }
+          } else if (isNode_ish(value)) {
+            majinbuu(
+              aura,
+              value.nodeType === DOCUMENT_FRAGMENT_NODE ?
+                slice.call(value.childNodes) :
+                [value],
+              hyper.MAX_LIST_SIZE
+            );
+          } else if (isPromise_ish(value)) {
+            value.then(anyContent);
+          } else if ('placeholder' in value) {
+            invokeAtDistance(anyContent, value);
+          } else if ('text' in value) {
+            anyContent(String(value.text));
+          } else if ('any' in value) {
+            anyContent(value.any);
+          } else if ('html' in value) {
+            var html = [].concat(value.html).join('');
+            aura.splice(0);
+            var fragment = createFragment(node, html);
+            childNodes.push.apply(childNodes, fragment.childNodes);
+            node.parentNode.insertBefore(fragment, node);
+          } else if ('length' in value) {
+            anyContent(slice.call(value));
+          } else {
+            anyContent(invokeTransformer(value));
+          }
+          break;
+      }
+    };
+  }
+ 
+  // ---------------------------------------------
+  // DOM Traversing
+  // ---------------------------------------------
+ 
+  // look for attributes that contains the comment text
+  function attributesSeeker(node, paths, parts) {
+    for (var
+      name,
+      attribute,
+      value = UID,
+      attributes = node.attributes,
+      i = 0, length = attributes.length;
+      i < length; i++
+    ) {
+      attribute = attributes[i];
+      if (attribute.value === value) {
+        name = parts.shift().replace(/^(?:|[\S\s]*?\s)(\S+?)=['"]?$/, '$1');
+        paths.push(
+          Path(
+            'attr',
+            // this is needed in both jsdom
+            // and in not-so-standard browsers/engines
+            node.attributes[name.toLowerCase()],
+            name
+          )
+        );
+      }
+    }
+  }
+ 
+  // walk the fragment tree in search of comments
+  function hyperSeeker(node, paths, parts) {
+    for (var
+      child,
+      childNodes = node.childNodes,
+      length = childNodes.length,
+      i = 0; i < length; i++
+    ) {
+      child = childNodes[i];
+      switch (child.nodeType) {
+        case ELEMENT_NODE:
+          attributesSeeker(child, paths, parts);
+          hyperSeeker(child, paths, parts);
+          break;
+        case COMMENT_NODE:
+          if (child.textContent === UID) {
+            parts.shift();
+            paths.push(Path('any', child));
+          }
+          break;
+        case TEXT_NODE:
+          if (
+            SHOULD_USE_ATTRIBUTE.test(node.nodeName) &&
+            trim.call(child.textContent) === UIDC
+          ) {
+            parts.shift();
+            paths.push(Path('text', node));
+          }
+          break;
+      }
+    }
+  }
+ 
+  // ---------------------------------------------
+  // Features detection / ugly UA sniffs
+  // ---------------------------------------------
+  var featureFragment = createDocumentFragment(globalDocument);
+ 
+  // Firefox < 55 has non standard template literals.
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=1108941
+  // TODO: is there any better way to feature detect this ?
+  var FF = typeof navigator === 'object' &&
+            /Firefox\/(\d+)/.test(navigator.userAgent) &&
+            parseFloat(RegExp.$1) < 55;
+ 
+  // If attributes order is shuffled, threat the browser differently
+  // Usually this is a well known IE only limitation but some older FF does the same.
+  var IE =  (function () {
+              var p  = globalDocument.createElement('p');
+              p.innerHTML = '<i data-i="" class=""></i>';
+              return /class/i.test(p.firstChild.attributes[0].name);
+            }());
+ 
+ 
+  // beside IE, old WebKit browsers don't have `children` in DocumentFragment
+  var WK = !('children' in featureFragment);
+ 
+  // ---------------------------------------------
+  // Helpers
+  // ---------------------------------------------
+ 
+  // used to convert childNodes to Array
+  var slice = [].slice;
+ 
+  // used to sanitize html
+  var oEscape = {
+    '&': '&amp;',
+    '<': '&lt;',
+    '>': '&gt;',
+    "'": '&#39;',
+    '"': '&quot;'
+  };
+  function fnEscape(m) {
+    return oEscape[m];
+  }
+ 
+  // return content as html
+  function asHTML(html) {
+    return {html: html};
+  }
+ 
+  // return a single node or an Array or nodes
+  function createContent(node) {
+    for (var
+      child,
+      content = [],
+      childNodes = node.childNodes,
+      i = 0,
+      length = childNodes.length;
+      i < length; i++
+    ) {
+      child = childNodes[i];
+      if (
+        child.nodeType === ELEMENT_NODE ||
+        trim.call(child.textContent).length !== 0
+      ) {
+        content.push(child);
+      }
+    }
+    return content.length === 1 ? content[0] : content;
+  }
+ 
+  // just a minifier friendly indirection
+  function createDocumentFragment(document) {
+    return document.createDocumentFragment();
+  }
+ 
+  // given a node, inject some html and return
+  // the resulting template document fragment
+  function createFragment(node, html) {
+    return (
+      OWNER_SVG_ELEMENT in node ?
+        createSVGFragment :
+        createHTMLFragment
+    )(node, html.replace(no, comments));
+  }
+ 
+  // create fragment for HTML
+  function createHTMLFragment(node, html) {
+    var fragment;
+    var document = node.ownerDocument;
+    var container = document.createElement('template');
+    var hasContent = 'content' in container;
+    var needsTableWrap = false;
+    if (!hasContent) {
+      // DO NOT MOVE THE FOLLOWING LINE ELSEWHERE
+      fragment = createDocumentFragment(document);
+      // (a jsdom + nodejs tests coverage gotcha)
+ 
+      // el.innerHTML = '<td></td>'; is not possible
+      // if the content is a partial internal table content
+      // it needs to be wrapped around once injected.
+      // HTMLTemplateElement does not suffer this issue.
+      needsTableWrap = /^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(html);
+    }
+    if (needsTableWrap) {
+      // secure the RegExp.$1 result ASAP to avoid issues
+      // in case a non-browser DOM library uses RegExp internally
+      // when HTML content is injected (basicHTML / jsdom / others...)
+      var selector = RegExp.$1;
+      container.innerHTML = '<table>' + html + '</table>';
+      appendNodes(fragment, slice.call(container.querySelectorAll(selector)));
+    } else {
+      container.innerHTML = html;
+      if (hasContent) {
+        fragment = container.content;
+      } else {
+        appendNodes(fragment, slice.call(container.childNodes));
+      }
+    }
+    return fragment;
+  }
+ 
+  // create a fragment for SVG
+  function createSVGFragment(node, html) {
+    var document = node.ownerDocument;
+    var fragment = createDocumentFragment(document);
+    if (IE || WK) {
+      var container = document.createElement('div');
+      container.innerHTML = '<svg xmlns="' + SVG_NAMESPACE + '">' + html + '</svg>';
+      appendNodes(fragment, slice.call(container.firstChild.childNodes));
+    } else {
+      var container = document.createElementNS(SVG_NAMESPACE, 'svg');
+      container.innerHTML = html;
+      appendNodes(fragment, slice.call(container.childNodes));
+    }
+    return fragment;
+  }
+ 
+  // given a node, it does what is says
+  function createText(node, text) {
+    return node.ownerDocument.createTextNode(text);
+  }
+ 
+  // returns current customElements reference
+  // compatible with basicHTML too
+  function getCEClass(node) {
+    var doc = hyper.document;
+    var ce = doc.customElements || doc.defaultView.customElements;
+    return ce && ce.get(node.nodeName.toLowerCase());
+  }
+ 
+  // verify that an attribute has
+  // a special meaning for the node
+  function isSpecialAttribute(node, name) {
+    var notSVG = !(OWNER_SVG_ELEMENT in node);
+    if (notSVG && /-/.test(node.nodeName)) {
+      var Class = getCEClass(node);
+      if (Class) node = Class.prototype;
+    }
+    return notSVG && name in node;
+  }
+ 
+  // use a placeholder and resolve with the right callback
+  function invokeAtDistance(callback, value) {
+    callback(value.placeholder);
+    if ('text' in value) {
+      Promise.resolve(value.text).then(String).then(callback);
+    } else if ('any' in value) {
+      Promise.resolve(value.any).then(callback);
+    } else if ('html' in value) {
+      Promise.resolve(value.html).then(asHTML).then(callback);
+    } else {
+      Promise.resolve(invokeTransformer(value)).then(callback);
+    }
+  }
+ 
+  // last attempt to transform content
+  function invokeTransformer(object) {
+    for (var key in transformers) {
+      if (object.hasOwnProperty(key)) {
+        return transformers[key](object[key]);
+      }
+    }
+  }
+ 
+  // quick and dirty Node check
+  function isNode_ish(value) {
+    return 'ELEMENT_NODE' in value;
+  }
+ 
+  // quick and dirty Promise check
+  function isPromise_ish(value) {
+    return value != null && 'then' in value;
+  }
+ 
+  // return a descriptor that lazily initialize a property
+  // unless it hasn't be previously set directly
+  function lazyGetter(type, fn) {
+    var secret = '_' + type + '$';
+    return {
+      get: function () {
+        return this[secret] || (this[type] = fn.call(this, type));
+      },
+      set: function (value) {
+        defineProperty(this, secret, {configurable: true, value: value});
+      }
+    };
+  }
+ 
+  // remove a list of [node, attribute]
+  function removeAttributeList(list) {
+    for (var i = 0, length = list.length; i < length; i++) {
+      list[i++].removeAttribute(list[i]);
+    }
+  }
+ 
+  // specify the content to update
+  function setContent(info, target, removeAttributes, childNodes) {
+    var update;
+    switch (info.type) {
+      case 'any':
+        // TODO: don't pass the target, it shouldn't be needed
+        update = setAnyContent(target, childNodes, new Aura(target, childNodes));
+        break;
+      case 'attr':
+        update = setAttribute(target, removeAttributes, info.name);
+        break;
+      case 'text':
+        update = setTextContent(target);
+        break;
+    }
+    return update;
+  }
+ 
+  // used for common path creation.
+  function Path(type, node, name) {
+    return {type: type, path: createPath(node), name: name};
+  }
+ 
+  // ---------------------------------------------
+  // Hybrid Shims
+  // ---------------------------------------------
+ 
+  // WeakMap with partial EXPANDO fallback
+  var $WeakMap = typeof WeakMap === typeof $WeakMap ?
+      function () {
+        return {
+          get: function (obj) { return obj[EXPANDO]; },
+          set: function (obj, value) {
+            Object.defineProperty(obj, EXPANDO, {
+              configurable: true,
+              value: value
+            });
+          }
+        };
+      } :
+      WeakMap;
+ 
+  // Map with partial double Array fallback
+  var $Map = typeof Map === typeof $Map ?
+      function () {
+        var k = [], v = [];
+        return {
+          get: function (obj) {
+            return v[k.indexOf(obj)];
+          },
+          // being used with unique template literals
+          // there is never a case when a value is overwritten
+          // no need to check upfront for the indexOf
+          set: function (obj, value) {
+            v[k.push(obj) - 1] = value;
+          }
+        };
+      } :
+      Map;
+ 
+  // TODO: which browser needs these partial polyfills here?
+ 
+  // BB7 and webOS need this
+  var isArray = Array.isArray ||
+                (function () {
+                  var toString = {}.toString;
+                  // I once had an engine returning [array Array]
+                  // and I've got scared since!
+                  var s = toString.call([]);
+                  return function (a) {
+                    return toString.call(a) === s;
+                  };
+                }());
+ 
+  // older WebKit need this
+  var trim = EXPANDO.trim ||
+              function () { return this.replace(/^\s+|\s+$/g, ''); };
+ 
+  // ---------------------------------------------
+  // Shared variables
+  // ---------------------------------------------
+ 
+  // recycled defineProperty shortcut
+  var defineProperty = Object.defineProperty;
+ 
+  // transformers registry
+  var transformers = {};
+ 
+  // normalize Firefox issue with template literals
+  var templateObjects, unique;
+  if (FF) {
+    templateObjects = {};
+    unique = function (template) {
+      var key = '_' + template.join(UIDC);
+      return templateObjects[key] ||
+            (templateObjects[key] = template);
+    };
+  }
+ 
+  // use native .append(...childNodes) where available
+  var appendNodes = 'append' in featureFragment ?
+      function (node, childNodes) {
+        node.append.apply(node, childNodes);
+      } :
+      function appendNodes(node, childNodes) {
+        for (var
+          i = 0,
+          length = childNodes.length;
+          i < length; i++
+        ) {
+          node.appendChild(childNodes[i]);
+        }
+      };
+ 
+  // returns children or retrieve them in IE/Edge
+  var getChildren = WK || IE ?
+      function (node) {
+        for (var
+          child,
+          children = [],
+          childNodes = node.childNodes,
+          j = 0, i = 0, length = childNodes.length;
+          i < length; i++
+        ) {
+          child = childNodes[i];
+          if (child.nodeType === ELEMENT_NODE)
+            children[j++] = child;
+        }
+        return children;
+      } :
+      function (node) { return node.children; };
+ 
+  // return the correct node walking through a path
+  // fixes IE/Edge issues with attributes and children (fixes old WebKit too)
+  var getNode = IE || WK ?
+      function (parentNode, path) {
+        for (var name, i = 0, length = path.length; i < length; i++) {
+          name = path[i++];
+          switch (name) {
+            case 'children':
+              parentNode = getChildren(parentNode)[path[i]];
+              break;
+            default:
+              parentNode = parentNode[name][path[i]];
+              break;
+          }
+        }
+        return parentNode;
+      } :
+      function (parentNode, path) {
+        for (var i = 0, length = path.length; i < length; i++) {
+          parentNode = parentNode[path[i++]][path[i]];
+        }
+        return parentNode;
+      };
+ 
+  // sanitizes interpolations as comments
+  var no = /(<[a-z]+[a-z0-9:_-]*)((?:[^\S]+[a-z0-9:_-]+(?:=(?:'.*?'|".*?"|<.+?>|\S+))?)+)([^\S]*\/?>)/gi;
+  var findAttributes = new RegExp('([^\\S][a-z]+[a-z0-9:_-]*=)([\'"]?)' + UIDC + '\\2', 'gi');
+  var comments = function ($0, $1, $2, $3) {
+    return $1 + $2.replace(findAttributes, replaceAttributes) + $3;
+  };
+ 
+  var replaceAttributes = function ($0, $1, $2) {
+    return $1 + ($2 || '"') + UID + ($2 || '"');
+  };
+ 
+  // [element] = {template, updates};
+  var hypers = new $WeakMap;
+ 
+  // [element] = {template, updates};
+  var wires = new $WeakMap;
+ 
+  // [template] = {fragment, paths};
+  var templates = new $Map;
+ 
+  // internal signal to switch adoption
+  var notAdopting = true;
+ 
+  // IE 11 has problems with cloning templates too
+  // it "forgets" empty childNodes
+  var cloneNode = (function () {
+    featureFragment.appendChild(createText(featureFragment, 'g'));
+    featureFragment.appendChild(createText(featureFragment, ''));
+    return featureFragment.cloneNode(true).childNodes.length === 1 ?
+      function (node) {
+        for (var
+          clone = node.cloneNode(),
+          childNodes = node.childNodes || [],
+          i = 0, length = childNodes.length;
+          i < length; i++
+        ) {
+          clone.appendChild(cloneNode(childNodes[i]));
+        }
+        return clone;
+      } :
+      function (fragment) {
+        return fragment.cloneNode(true);
+      };
+  }());
+ 
+  // ---------------------------------------------
+  // Adopting Nodes
+  // ---------------------------------------------
+ 
+  // IE/Edge gotcha with comment nodes
+  var nextElementSibling = IE ?
+    function (node) {
+      while (node = node.nextSibling) {
+        if (node.nodeType === ELEMENT_NODE) return node;
+      }
+      return undefined;
+    } :
+    function (node) { return node.nextElementSibling; };
+ 
+  var previousElementSibling = IE ?
+    function (node) {
+      while (node = node.previousSibling) {
+       if (node.nodeType === ELEMENT_NODE) return node;
+      }
+      return undefined;
+    } :
+    function (node) { return node.previousElementSibling; };
+ 
+  // remove all text nodes from a virtual space
+  function removePreviousText(parentNode, node) {
+    var previousSibling = node.previousSibling;
+    if (previousSibling && previousSibling.nodeType === TEXT_NODE) {
+      parentNode.removeChild(previousSibling);
+      removePreviousText(parentNode, node);
+    }
+  }
+ 
+  // avoid errors on obsolete platforms
+  function insertBefore(parentNode, target, after) {
+    if (after) {
+      parentNode.insertBefore(target, after);
+    } else {
+      parentNode.appendChild(target);
+    }
+  }
+ 
+  // given an info, tries to find out the best option
+  // to replace or update the content
+  function discoverNode(parentNode, virtual, info, childNodes) {
+    for (var
+      target = parentNode,
+      document = parentNode.ownerDocument,
+      path = info.path,
+      virtualNode = getNode(virtual, path),
+      i = 0,
+      length = path.length;
+      i < length; i++
+    ) {
+      switch (path[i++]) {
+        case 'attributes':
+          var name = virtualNode.name;
+          if (!parentNode.hasAttribute(name)) {
+            parentNode.setAttribute(name, '');
+          }
+          target = parentNode.attributes[name];
+          break;
+        case 'childNodes':
+          var children = getChildren(parentNode);
+          var virtualChildren = getChildren(virtualNode.parentNode);
+          target = previousElementSibling(virtualNode);
+          var before = target ? (path.indexOf.call(virtualChildren, target) + 1) : -1;
+          target = nextElementSibling(virtualNode);
+          var after = target ? path.indexOf.call(virtualChildren, target) : -1;
+          target = document.createComment(UID);
+          switch (true) {
+            // `${'virtual'}` is actually resolved as `${'any'}`
+            // case before < 0 && after < 0: before = 0;
+ 
+            // `</a>${'virtual'}`
+            case after < 0:
+              after = children.length;
+              break;
+            // `${'virtual'}<b>`
+            case before < 0:
+              before = 0;
+            // `</a>${'virtual'}<b>`
+            default:
+              after = -(virtualChildren.length - after);
+              break;
+          }
+          childNodes.push.apply(
+            childNodes,
+            slice.call(children, before, after)
+          );
+          if (childNodes.length) {
+            insertBefore(
+              parentNode,
+              target,
+              nextElementSibling(childNodes[childNodes.length - 1])
+            );
+          } else {
+            insertBefore(
+              parentNode,
+              target,
+              slice.call(children, after)[0]
+            );
+          }
+          if (childNodes.length === 0) {
+            removePreviousText(parentNode, target);
+          }
+          break;
+        default:
+          // if the node is not there, create it
+          target = getChildren(parentNode)[path[i]] ||
+                    parentNode.appendChild(
+                      parentNode.ownerDocument.createElement(
+                        getNode(virtual, path.slice(0, i + 1)).nodeName
+                      )
+                    );
+          parentNode = target;
+          break;
+      }
+    }
+    return target;
+  }
+ 
+  // like createUpdates but for nodes with already a content
+  function discoverUpdates(fragment, paths) {
+    for (var
+      info, childNodes,
+      updates = [],
+      removeAttributes = [],
+      i = 0, length = paths.length;
+      i < length; i++
+    ) {
+      childNodes = [];
+      info = paths[i];
+      updates[i] = setContent(
+        info,
+        discoverNode(this, fragment, info, childNodes),
+        removeAttributes,
+        childNodes
+      );
+    }
+    removeAttributeList(removeAttributes);
+    return updates;
+  }
+ 
+  // ---------------------------------------------
+  // Template related utilities
+  // ---------------------------------------------
+ 
+  // given a unique template object
+  // create, parse, and store retrieved info
+  function createTemplate(template) {
+    var paths = [];
+    var fragment = createFragment(this, template.join(UIDC));
+    var info = {fragment: fragment, paths: paths};
+    hyperSeeker(fragment, paths, template.slice());
+    templates.set(template, info);
+    return info;
+  }
+ 
+  // given a generic node, returns a path capable
+  // of retrieving such path back again.
+  // TODO: worth passing the index when available ?
+  function createPath(node) {
+    var path = [];
+    var parentNode;
+    switch(node.nodeType) {
+      case ELEMENT_NODE:
+      case DOCUMENT_FRAGMENT_NODE:
+        parentNode = node;
+        break;
+      case COMMENT_NODE:
+        parentNode = node.parentNode;
+        path.unshift(
+          'childNodes',
+          path.indexOf.call(parentNode.childNodes, node)
+        );
+        break;
+      case ATTRIBUTE_NODE:
+      default: // jsdom here does not provide a nodeType 2 ...
+        parentNode = node.ownerElement;
+        path.unshift('attributes', node.name);
+        break;
+    }
+    for (
+      node = parentNode;
+      parentNode = parentNode.parentNode;
+      node = parentNode
+    ) {
+      path.unshift('children', path.indexOf.call(getChildren(parentNode), node));
+    }
+    return path;
+  }
+ 
+  // given a root node and a list of paths
+  // creates an array of updates to invoke
+  // whenever the next interpolation happens
+  function createUpdates(fragment, paths) {
+    for (var
+      info,
+      updates = [],
+      removeAttributes = [],
+      i = 0, length = paths.length;
+      i < length; i++
+    ) {
+      info = paths[i];
+      updates[i] = setContent(
+        info,
+        getNode(fragment, info.path),
+        removeAttributes,
+        []
+      );
+    }
+    removeAttributeList(removeAttributes);
+    return updates;
+  }
+ 
+  // invokes each update function passing interpolated value
+  function update() {
+    for (var i = 1, length = arguments.length; i < length; i++) {
+      this[i - 1](arguments[i]);
+    }
+  }
+ 
+  // create a template, if unknown
+  // upgrade a node to use such template for future updates
+  function upgrade(template) {
+    if (FF) template = unique(template);
+    var updates;
+    var info =  templates.get(template) ||
+                createTemplate.call(this, template);
+    if (notAdopting) {
+      var fragment = cloneNode(info.fragment);
+      updates = createUpdates.call(this, fragment, info.paths);
+      this.textContent = '';
+      this.appendChild(fragment);
+    } else {
+      updates = discoverUpdates.call(this, info.fragment, info.paths);
+    }
+    return {template: template, updates: updates};
+  }
+ 
+  // ---------------------------------------------
+  // Wires
+  // ---------------------------------------------
+ 
+  // create a new wire for generic DOM content
+  function wireContent(type) {
+    var adopter, content, container, fragment, render, setup, template;
+ 
+    function before(document) {
+      fragment = createDocumentFragment(document);
+      container = type === 'svg' ?
+        document.createElementNS(SVG_NAMESPACE, 'svg') :
+        fragment;
+      render = bind(container);
+    }
+ 
+    function after() {
+      if (setup) {
+        setup = false;
+        if (type === 'svg') {
+          appendNodes(fragment, slice.call(container.childNodes));
+        }
+        content = createContent(fragment);
+      }
+      return content;
+    }
+ 
+    return type === 'adopt' ?
+      function adopt(statics) {
+        var args = arguments;
+        if (FF) statics = unique(statics);
+        if (template !== statics) {
+          setup = true;
+          template = statics;
+          adopter = function (parentNode, children, i) {
+            if (setup) {
+              if (i < children.length) {
+                container = children[i];
+                fragment = {
+                  ownerDocument: container.ownerDocument,
+                  childNodes: [container],
+                  children: [container]
+                };
+                render = hyper.adopt(fragment);
+              } else {
+                if (OWNER_SVG_ELEMENT in parentNode) type = 'svg';
+                before(parentNode.ownerDocument);
+              }
+            }
+            render.apply(null, args);
+            return after();
+          };
+        }
+        return adopter;
+      } :
+      function update(statics) {
+        if (FF) statics = unique(statics);
+        if (template !== statics) {
+          setup = true;
+          template = statics;
+          before(hyper.document);
+        }
+        render.apply(null, arguments);
+        return after();
+      };
+  }
+ 
+  // setup a weak reference if needed and return a wire by ID
+  function wireWeakly(obj, type) {
+    var wire = wires.get(obj);
+    var i = type.indexOf(':');
+    var id = type;
+    if (-1 < i) {
+      id = type.slice(i + 1);
+      type = type.slice(0, i) || 'html';
+    }
+    if (!wire) {
+      wire = {};
+      wires.set(obj, wire);
+    }
+    return wire[id] || (wire[id] = wireContent(type));
+  }
+ 
+  // avoid processing too many nodes
+  // this is about the algorithm used
+  // to calculate the least amount of DOM
+  // changes needed to show the a new list
+  // where there was another one.
+  // There is a limit, in terms of performance,
+  // on how bug can the optimal computation be,
+  // so if you change this value be sure your
+  // target hardware is good enough.
+  hyper.MAX_LIST_SIZE = 1000;
+ 
+  // ---------------------------------------------
+  // ⚡️ ️️The End ➰
+  // ---------------------------------------------
+  return hyper;
+ 
+}(document, function () {'use strict';
+ 
+  /*! Copyright (c) 2017, Andrea Giammarchi, @WebReflection */
+ 
+  // grid operations
+  var
+    DELETE = 'del',
+    INSERT = 'ins',
+    SUBSTITUTE = 'sub',
+    AuraPrototype = Aura.prototype,
+    TypedArray = /^u/.test(typeof Int32Array) ? Array : Int32Array
+  ;
+ 
+  // readapted from:
+  // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html
+  function majinbuu(from, to, MAX_SIZE) {
+    var
+      fromLength = from.length,
+      toLength = to.length,
+      TOO_MANY = (MAX_SIZE || Infinity) < Math.sqrt(fromLength * toLength)
+    ;
+    if (fromLength < 1 || TOO_MANY) {
+      if (toLength || TOO_MANY) {
+        from.splice.apply(from, [0, fromLength].concat(to));
+      }
+      return;
+    }
+    if (toLength < 1) {
+      from.splice(0);
+      return;
+    }
+    performOperations(
+      from,
+      getOperations(from, to, levenstein(from, to))
+    );
+  }
+ 
+  // given an object that would like to intercept
+  // all splice operations performed through a list,
+  // return a list "aura" that will delegate all splices
+  majinbuu.aura = function aura(interceptor, list) {
+    Aura.prototype = list;
+    return new Aura(interceptor);
+  };
+ 
+  return majinbuu;
+ 
+  // Helpers - - - - - - - - - - - - - - - - - - - - - -
+ 
+  // Aura instances are just Array bridges
+  function Aura(interceptor) {
+    Aura.prototype = AuraPrototype;
+    this._ = interceptor;
+    this.splice = splice;
+  }
+ 
+  // originally readapted from:
+  // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html
+  // then rewritten in C for Emscripten (see levenstein.c)
+  // then "screw you ASM" due no much gain but very bloated code
+  function levenstein(from, to) {
+    var fromLength = from.length + 1;
+    var toLength = to.length + 1;
+    var size = fromLength * toLength;
+    var x = 0;
+    var y = 0;
+    var X = 0;
+    var Y = 0;
+    var crow = 0;
+    var prow = 0;
+    var del, ins, sub;
+    var grid = new TypedArray(size);
+    grid[0] = 0;
+    while (++x < toLength) grid[x] = x;
+    while (++y < fromLength) {
+      X = x = 0;
+      crow = y * toLength;
+      prow = Y * toLength;
+      grid[crow + x] = y;
+      while (++x < toLength) {
+        del = grid[prow + x] + 1;
+        ins = grid[crow + X] + 1;
+        sub = grid[prow + X] + (from[Y] == to[X] ? 0 : 1);
+        grid[crow + x] = del < ins ?
+                          (del < sub ?
+                            del : sub) :
+                          (ins < sub ?
+                            ins : sub);
+        ++X;
+      };
+      ++Y;
+    }
+    return grid;
+  }
+ 
+  // add operations (in reversed order)
+  function addOperation(list, type, x, y, count, items) {
+    list.unshift({
+      type: type,
+      x: x,
+      y: y,
+      count: count,
+      items: items
+    });
+  }
+ 
+  // walk the Levenshtein grid bottom -> up
+  function getOperations(Y, X, grid) {
+    var
+      list = [],
+      YL = Y.length + 1,
+      XL = X.length + 1,
+      y = YL - 1,
+      x = XL - 1,
+      cell, top, left, diagonal,
+      crow, prow
+    ;
+    while (x && y) {
+      crow = y * XL;
+      prow = (y - 1) * XL;
+      cell = grid[crow + x];
+      top = grid[prow + x];
+      left = grid[crow + x - 1];
+      diagonal = grid[prow + x - 1];
+      if (diagonal <= left && diagonal <= top && diagonal <= cell) {
+        x--;
+        y--;
+        if (diagonal < cell) {
+          addOperation(list, SUBSTITUTE, x, y, 1, [X[x]]);
+        }
+      }
+      else if (left <= top && left <= cell) {
+        x--;
+        addOperation(list, INSERT, x, y, 0, [X[x]]);
+      }
+      else {
+        y--;
+        addOperation(list, DELETE, x, y, 1, []);
+      }
+    }
+    while (x--) {
+      addOperation(list, INSERT, x, y, 0, [X[x]]);
+    }
+    while (y--) {
+      addOperation(list, DELETE, x, y, 1, []);
+    }
+    return list;
+  }
+ 
+  /* grouped operations */
+  function performOperations(target, operations) {
+    var
+      diff = 0,
+      i = 1,
+      length = operations.length,
+      curr, prev, op
+    ;
+    if (length) {
+      op = (prev = operations[0]);
+      while (i < length) {
+        curr = operations[i++];
+        if (prev.type === curr.type && (curr.x - prev.x) <= 1 && (curr.y - prev.y) <= 1) {
+          op.count += curr.count;
+          op.items = op.items.concat(curr.items);
+        } else {
+          target.splice.apply(target, [op.y + diff, op.count].concat(op.items));
+          diff += op.type === INSERT ?
+            op.items.length : (op.type === DELETE ?
+              -op.count : 0);
+          op = curr;
+        }
+        prev = curr;
+      }
+      target.splice.apply(target, [op.y + diff, op.count].concat(op.items));
+    }
+  }
+ 
+  // delegate all splice operations through an aura
+  function splice() {
+    return this._.splice.apply(this._, arguments);
+  }
+ 
+  /* one-by-one operation (testing purpose)
+  function performOperations(target, operations) {
+    for (var op, diff = 0, i = 0, length = operations.length; i < length; i++) {
+      op = operations[i];
+      target.splice.apply(target, [op.y + diff, op.count].concat(op.items));
+      diff += op.type === INSERT ?
+                op.items.length : (op.type === DELETE ?
+                  -op.count : 0);
+    }
+  }
+  // */
+ 
+}()));
+ 
+// umd.KISS
+try { module.exports = hyperHTML; } catch(o_O) {}
+ 
+
+
+ + + + + + + diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html index 3d324ea5..3d65ed92 100644 --- a/coverage/lcov-report/index.html +++ b/coverage/lcov-report/index.html @@ -22,22 +22,22 @@

100% Statements - 567/567 + 605/605
100% Branches - 332/332 + 341/341
100% Functions - 92/92 + 97/97
100% Lines - 548/548 + 590/590
@@ -62,13 +62,13 @@

hyperHTML/
100% - 567/567 + 605/605 100% - 332/332 + 341/341 100% - 92/92 + 97/97 100% - 548/548 + 590/590 @@ -77,7 +77,7 @@

diff --git a/coverage/lcov.info b/coverage/lcov.info index d33348b2..13ca8ace 100644 --- a/coverage/lcov.info +++ b/coverage/lcov.info @@ -1,5 +1,5 @@ TN: -SF:/home/webreflection/code/hyperHTML/hyperhtml.js +SF:/home/webreflection/code/hyperHTML/index.js FN:1,(anonymous_1) FN:16,hyper FN:38,adopt @@ -13,92 +13,97 @@ FN:84,(anonymous_10) FN:97,(anonymous_11) FN:99,(anonymous_12) FN:101,(anonymous_13) -FN:143,indexOfDifferences -FN:159,populateNode -FN:181,removeNodeList -FN:190,resetAndPopulate -FN:196,updateViaArray -FN:213,render -FN:230,setAttribute -FN:244,eventAttr -FN:252,specialAttr -FN:272,normalAttr -FN:299,setVirtualContent -FN:302,anyVirtual -FN:434,attributesSeeker -FN:460,hyperSeeker -FN:514,(anonymous_28) -FN:539,fnEscape -FN:544,asHTML -FN:549,createContent -FN:570,createDocumentFragment -FN:576,createFragment -FN:585,createHTMLFragment -FN:621,createSVGFragment -FN:637,createText -FN:643,discoverNode -FN:723,getCEClass -FN:730,insertBefore -FN:740,isSpecialAttribute -FN:750,emptyFragment -FN:755,invokeAtDistance -FN:769,invokeTransformer -FN:778,isNode_ish -FN:783,isPromise_ish -FN:789,lazyGetter -FN:792,(anonymous_47) -FN:795,(anonymous_48) -FN:803,noContent -FN:813,removeAttributeList -FN:820,removePreviousText -FN:829,setContent -FN:847,updateVirtualNodes -FN:861,Path -FN:871,(anonymous_55) -FN:873,(anonymous_56) -FN:874,(anonymous_57) -FN:886,(anonymous_58) -FN:889,(anonymous_59) -FN:895,(anonymous_60) -FN:906,(anonymous_61) -FN:911,(anonymous_62) -FN:918,(anonymous_63) -FN:934,(anonymous_64) -FN:943,(anonymous_65) -FN:946,appendNodes -FN:958,(anonymous_67) -FN:972,(anonymous_68) -FN:977,(anonymous_69) -FN:991,(anonymous_70) -FN:1001,(anonymous_71) -FN:1005,(anonymous_72) -FN:1011,(anonymous_73) -FN:1017,(anonymous_74) -FN:1020,(anonymous_75) -FN:1026,(anonymous_76) -FN:1042,(anonymous_77) -FN:1046,(anonymous_78) -FN:1057,(anonymous_79) -FN:1068,createTemplate -FN:1080,createPath -FN:1114,createUpdates -FN:1135,discoverUpdates -FN:1157,update -FN:1165,upgrade -FN:1185,wireContent -FN:1188,before -FN:1196,after -FN:1208,adopt -FN:1214,(anonymous_90) -FN:1235,update -FN:1248,wireWeakly -FNF:92 -FNH:92 +FN:141,Aura +FN:147,splice +FN:181,render +FN:198,setAttribute +FN:212,eventAttr +FN:220,specialAttr +FN:240,normalAttr +FN:266,setTextContent +FN:268,(anonymous_22) +FN:278,setAnyContent +FN:280,anyContent +FN:394,attributesSeeker +FN:420,hyperSeeker +FN:466,(anonymous_27) +FN:491,fnEscape +FN:496,asHTML +FN:501,createContent +FN:522,createDocumentFragment +FN:528,createFragment +FN:537,createHTMLFragment +FN:573,createSVGFragment +FN:589,createText +FN:595,getCEClass +FN:603,isSpecialAttribute +FN:613,invokeAtDistance +FN:627,invokeTransformer +FN:636,isNode_ish +FN:641,isPromise_ish +FN:647,lazyGetter +FN:650,(anonymous_43) +FN:653,(anonymous_44) +FN:660,removeAttributeList +FN:667,setContent +FN:685,Path +FN:695,(anonymous_48) +FN:697,(anonymous_49) +FN:698,(anonymous_50) +FN:710,(anonymous_51) +FN:713,(anonymous_52) +FN:719,(anonymous_53) +FN:730,(anonymous_54) +FN:735,(anonymous_55) +FN:742,(anonymous_56) +FN:758,(anonymous_57) +FN:767,(anonymous_58) +FN:770,appendNodes +FN:782,(anonymous_60) +FN:796,(anonymous_61) +FN:801,(anonymous_62) +FN:815,(anonymous_63) +FN:825,(anonymous_64) +FN:829,(anonymous_65) +FN:847,(anonymous_66) +FN:851,(anonymous_67) +FN:862,(anonymous_68) +FN:873,(anonymous_69) +FN:879,(anonymous_70) +FN:882,(anonymous_71) +FN:888,(anonymous_72) +FN:891,removePreviousText +FN:900,insertBefore +FN:910,discoverNode +FN:989,discoverUpdates +FN:1016,createTemplate +FN:1028,createPath +FN:1062,createUpdates +FN:1083,update +FN:1091,upgrade +FN:1112,wireContent +FN:1115,before +FN:1123,after +FN:1135,adopt +FN:1141,(anonymous_86) +FN:1162,update +FN:1175,wireWeakly +FN:1206,(anonymous_89) +FN:1221,majinbuu +FN:1246,aura +FN:1256,Aura +FN:1266,levenstein +FN:1302,addOperation +FN:1313,getOperations +FN:1356,performOperations +FN:1384,splice +FNF:97 +FNH:97 FNDA:2,(anonymous_1) FNDA:20,hyper FNDA:28,adopt FNDA:32,(anonymous_4) -FNDA:208,bind +FNDA:210,bind FNDA:2,define FNDA:2,escape FNDA:62,wire @@ -107,85 +112,90 @@ FNDA:6,(anonymous_10) FNDA:6,(anonymous_11) FNDA:4,(anonymous_12) FNDA:6,(anonymous_13) -FNDA:48,indexOfDifferences -FNDA:16,populateNode -FNDA:88,removeNodeList -FNDA:148,resetAndPopulate -FNDA:18,updateViaArray -FNDA:278,render +FNDA:104,Aura +FNDA:88,splice +FNDA:282,render FNDA:48,setAttribute FNDA:30,eventAttr FNDA:20,specialAttr FNDA:48,normalAttr -FNDA:106,setVirtualContent -FNDA:288,anyVirtual +FNDA:4,setTextContent +FNDA:6,(anonymous_22) +FNDA:104,setAnyContent +FNDA:286,anyContent FNDA:118,attributesSeeker FNDA:228,hyperSeeker -FNDA:2,(anonymous_28) +FNDA:2,(anonymous_27) FNDA:4,fnEscape FNDA:2,asHTML FNDA:62,createContent -FNDA:150,createDocumentFragment -FNDA:120,createFragment -FNDA:118,createHTMLFragment +FNDA:142,createDocumentFragment +FNDA:138,createFragment +FNDA:136,createHTMLFragment FNDA:2,createSVGFragment -FNDA:46,createText -FNDA:46,discoverNode +FNDA:72,createText FNDA:4,getCEClass -FNDA:12,insertBefore FNDA:46,isSpecialAttribute -FNDA:30,emptyFragment FNDA:10,invokeAtDistance FNDA:10,invokeTransformer FNDA:84,isNode_ish -FNDA:96,isPromise_ish +FNDA:100,isPromise_ish FNDA:6,lazyGetter -FNDA:42,(anonymous_47) -FNDA:18,(anonymous_48) -FNDA:68,noContent -FNDA:154,removeAttributeList -FNDA:14,removePreviousText -FNDA:154,setContent -FNDA:16,updateVirtualNodes +FNDA:42,(anonymous_43) +FNDA:18,(anonymous_44) +FNDA:156,removeAttributeList +FNDA:156,setContent FNDA:116,Path -FNDA:2,(anonymous_55) -FNDA:162,(anonymous_56) -FNDA:89,(anonymous_57) -FNDA:1,(anonymous_58) -FNDA:77,(anonymous_59) -FNDA:55,(anonymous_60) -FNDA:1,(anonymous_61) -FNDA:97,(anonymous_62) -FNDA:41,(anonymous_63) -FNDA:203,(anonymous_64) -FNDA:76,(anonymous_65) -FNDA:20,appendNodes -FNDA:143,(anonymous_67) -FNDA:82,(anonymous_68) -FNDA:81,(anonymous_69) -FNDA:81,(anonymous_70) -FNDA:38,(anonymous_71) -FNDA:48,(anonymous_72) -FNDA:7,(anonymous_73) -FNDA:7,(anonymous_74) -FNDA:6,(anonymous_75) -FNDA:6,(anonymous_76) -FNDA:2,(anonymous_77) -FNDA:204,(anonymous_78) -FNDA:61,(anonymous_79) +FNDA:2,(anonymous_48) +FNDA:164,(anonymous_49) +FNDA:90,(anonymous_50) +FNDA:1,(anonymous_51) +FNDA:78,(anonymous_52) +FNDA:55,(anonymous_53) +FNDA:1,(anonymous_54) +FNDA:101,(anonymous_55) +FNDA:21,(anonymous_56) +FNDA:206,(anonymous_57) +FNDA:69,(anonymous_58) +FNDA:5,appendNodes +FNDA:162,(anonymous_60) +FNDA:101,(anonymous_61) +FNDA:82,(anonymous_62) +FNDA:82,(anonymous_63) +FNDA:38,(anonymous_64) +FNDA:48,(anonymous_65) +FNDA:2,(anonymous_66) +FNDA:206,(anonymous_67) +FNDA:62,(anonymous_68) +FNDA:21,(anonymous_69) +FNDA:21,(anonymous_70) +FNDA:18,(anonymous_71) +FNDA:18,(anonymous_72) +FNDA:40,removePreviousText +FNDA:36,insertBefore +FNDA:46,discoverNode +FNDA:32,discoverUpdates FNDA:110,createTemplate FNDA:116,createPath -FNDA:122,createUpdates -FNDA:32,discoverUpdates -FNDA:278,update -FNDA:154,upgrade +FNDA:124,createUpdates +FNDA:282,update +FNDA:156,upgrade FNDA:60,wireContent FNDA:60,before FNDA:90,after FNDA:14,adopt -FNDA:14,(anonymous_90) +FNDA:14,(anonymous_86) FNDA:76,update FNDA:46,wireWeakly +FNDA:2,(anonymous_89) +FNDA:60,majinbuu +FNDA:104,aura +FNDA:104,Aura +FNDA:30,levenstein +FNDA:28,addOperation +FNDA:30,getOperations +FNDA:30,performOperations +FNDA:88,splice DA:1,2 DA:11,2 DA:14,2 @@ -198,7 +208,7 @@ DA:41,32 DA:42,32 DA:43,32 DA:49,2 -DA:50,208 +DA:50,210 DA:53,2 DA:54,2 DA:58,2 @@ -228,514 +238,556 @@ DA:132,2 DA:133,2 DA:134,2 DA:135,2 -DA:143,1 -DA:144,48 -DA:149,48 -DA:150,34 -DA:151,12 -DA:153,36 -DA:159,1 -DA:160,16 -DA:162,8 -DA:163,8 -DA:164,2 -DA:165,2 -DA:167,6 -DA:168,6 -DA:170,6 -DA:171,4 -DA:173,6 -DA:175,2 -DA:176,2 +DA:141,1 +DA:142,104 +DA:143,104 +DA:144,104 +DA:147,2 +DA:148,88 +DA:158,50 +DA:160,88 +DA:161,88 +DA:162,88 +DA:163,48 +DA:164,34 +DA:166,14 +DA:167,14 +DA:168,38 +DA:171,48 +DA:173,88 DA:181,1 -DA:182,88 -DA:183,88 -DA:184,26 -DA:185,26 -DA:190,1 -DA:191,148 -DA:192,148 -DA:196,1 -DA:197,18 -DA:198,18 -DA:199,2 -DA:200,2 -DA:201,2 -DA:203,16 -DA:204,16 -DA:213,1 -DA:214,278 -DA:215,278 -DA:219,154 -DA:220,154 -DA:222,278 -DA:223,278 -DA:230,1 -DA:231,48 +DA:182,282 +DA:183,282 +DA:187,156 +DA:188,156 +DA:190,282 +DA:191,282 +DA:198,1 +DA:199,48 +DA:209,48 +DA:210,48 +DA:211,48 +DA:213,30 +DA:214,18 +DA:215,18 +DA:216,18 +DA:221,20 +DA:222,16 +DA:225,16 +DA:229,14 +DA:232,4 +DA:233,4 +DA:235,10 DA:241,48 -DA:242,48 -DA:243,48 -DA:245,30 -DA:246,18 -DA:247,18 -DA:248,18 -DA:253,20 -DA:254,16 -DA:257,16 -DA:261,14 -DA:264,4 -DA:265,4 -DA:267,10 -DA:273,48 -DA:274,36 -DA:277,36 -DA:278,34 -DA:279,4 -DA:281,2 -DA:282,2 -DA:285,30 -DA:286,30 -DA:287,2 -DA:288,2 -DA:299,1 -DA:300,106 -DA:301,106 -DA:302,106 -DA:303,288 -DA:307,120 -DA:308,56 -DA:309,50 -DA:310,50 -DA:312,64 -DA:316,22 -DA:317,8 -DA:318,8 -DA:321,42 -DA:322,42 -DA:323,42 -DA:324,42 -DA:326,120 -DA:328,4 -DA:329,2 -DA:331,2 -DA:333,4 -DA:336,164 -DA:337,6 -DA:338,6 -DA:339,6 -DA:340,158 -DA:341,2 -DA:344,158 -DA:345,158 -DA:346,74 -DA:347,74 -DA:348,2 -DA:349,2 -DA:351,72 -DA:355,24 -DA:356,24 -DA:358,10 -DA:359,10 -DA:361,10 -DA:362,12 -DA:364,10 -DA:365,10 -DA:366,10 -DA:368,36 -DA:369,8 -DA:371,36 +DA:242,36 +DA:245,36 +DA:246,34 +DA:247,4 +DA:249,2 +DA:250,2 +DA:253,30 +DA:254,30 +DA:255,2 +DA:256,2 +DA:266,1 +DA:267,4 +DA:268,4 +DA:269,6 +DA:270,4 +DA:271,4 +DA:278,1 +DA:279,104 +DA:280,104 +DA:281,286 +DA:285,114 +DA:286,114 +DA:290,46 +DA:291,28 +DA:292,28 +DA:295,68 +DA:296,68 +DA:297,2 +DA:299,66 +DA:305,114 +DA:307,4 +DA:308,4 +DA:311,168 +DA:312,6 +DA:313,6 +DA:314,6 +DA:315,162 +DA:316,2 +DA:319,162 +DA:320,162 +DA:321,78 +DA:322,78 +DA:323,4 +DA:325,74 +DA:329,24 +DA:330,24 +DA:332,10 +DA:333,10 +DA:334,12 +DA:336,10 +DA:337,10 +DA:339,40 +DA:340,12 +DA:342,40 +DA:343,4 +DA:344,4 +DA:346,36 +DA:347,78 +DA:348,4 +DA:353,36 +DA:354,36 +DA:357,84 +DA:358,24 +DA:365,60 +DA:366,4 +DA:367,56 +DA:368,10 +DA:369,46 +DA:370,4 +DA:371,42 DA:372,4 -DA:373,4 -DA:375,32 -DA:376,64 -DA:377,4 -DA:382,34 -DA:383,26 -DA:384,26 -DA:386,8 -DA:388,34 -DA:391,84 -DA:392,24 -DA:393,8 -DA:400,60 -DA:401,4 -DA:402,56 -DA:403,10 -DA:404,46 -DA:405,4 -DA:406,42 -DA:407,4 -DA:408,38 -DA:409,28 -DA:412,28 -DA:414,10 -DA:415,10 -DA:416,10 -DA:417,10 -DA:419,10 -DA:420,4 -DA:422,6 -DA:424,158 -DA:434,1 -DA:435,118 -DA:443,56 -DA:444,56 -DA:445,48 -DA:446,48 -DA:460,1 -DA:461,228 -DA:467,312 -DA:468,312 -DA:470,118 -DA:471,118 -DA:472,118 -DA:474,66 -DA:475,64 -DA:476,64 -DA:480,24 -DA:481,24 -DA:483,40 -DA:486,66 -DA:488,128 +DA:373,38 +DA:374,28 +DA:375,28 +DA:376,28 +DA:377,28 +DA:378,28 +DA:379,10 +DA:380,4 +DA:382,6 +DA:384,162 +DA:394,1 +DA:395,118 +DA:403,56 +DA:404,56 +DA:405,48 +DA:406,48 +DA:420,1 +DA:421,228 +DA:427,322 +DA:428,322 +DA:430,118 +DA:431,118 +DA:432,118 +DA:434,66 +DA:435,64 +DA:436,64 +DA:438,66 +DA:440,138 +DA:444,4 +DA:445,4 +DA:447,138 +DA:455,2 +DA:460,2 +DA:466,2 +DA:467,2 +DA:468,2 +DA:469,2 +DA:474,2 +DA:481,2 +DA:484,2 +DA:491,1 DA:492,4 -DA:493,4 -DA:495,128 -DA:503,2 -DA:508,2 -DA:514,2 -DA:515,2 -DA:516,2 -DA:517,2 -DA:522,2 -DA:529,2 -DA:532,2 -DA:539,1 -DA:540,4 -DA:544,1 -DA:545,2 -DA:549,1 -DA:550,62 -DA:558,90 -DA:559,90 -DA:563,66 -DA:566,62 -DA:570,1 -DA:571,150 -DA:576,1 -DA:577,120 -DA:585,1 -DA:586,118 -DA:587,118 -DA:588,118 -DA:589,118 -DA:590,118 -DA:591,118 -DA:593,56 -DA:600,56 -DA:602,118 -DA:606,1 -DA:607,1 -DA:608,1 -DA:610,117 -DA:611,117 -DA:612,62 -DA:614,55 -DA:617,118 -DA:621,1 -DA:622,2 -DA:623,2 -DA:624,2 -DA:625,1 -DA:626,1 +DA:496,1 +DA:497,2 +DA:501,1 +DA:502,62 +DA:510,90 +DA:511,90 +DA:515,66 +DA:518,62 +DA:522,1 +DA:523,142 +DA:528,1 +DA:529,138 +DA:537,1 +DA:538,136 +DA:539,136 +DA:540,136 +DA:541,136 +DA:542,136 +DA:543,136 +DA:545,64 +DA:552,64 +DA:554,136 +DA:558,1 +DA:559,1 +DA:560,1 +DA:562,135 +DA:563,135 +DA:564,72 +DA:566,63 +DA:569,136 +DA:573,1 +DA:574,2 +DA:575,2 +DA:576,2 +DA:577,1 +DA:578,1 +DA:579,1 +DA:581,1 +DA:582,1 +DA:583,1 +DA:585,2 +DA:589,1 +DA:590,72 +DA:595,1 +DA:596,4 +DA:597,4 +DA:598,4 +DA:603,1 +DA:604,46 +DA:605,46 +DA:606,4 +DA:607,4 +DA:609,46 +DA:613,1 +DA:614,10 +DA:615,10 +DA:616,2 +DA:617,8 +DA:618,2 +DA:619,6 +DA:620,2 +DA:622,4 DA:627,1 -DA:629,1 -DA:630,1 -DA:631,1 -DA:633,2 -DA:637,1 -DA:638,46 -DA:643,1 -DA:644,46 -DA:653,58 -DA:655,8 -DA:656,8 -DA:657,6 -DA:659,8 -DA:660,8 -DA:662,12 -DA:663,12 -DA:664,12 -DA:665,12 -DA:666,12 -DA:667,12 -DA:668,12 -DA:669,12 -DA:675,2 -DA:676,2 +DA:628,10 +DA:629,10 +DA:630,8 +DA:636,1 +DA:637,84 +DA:641,1 +DA:642,100 +DA:647,1 +DA:648,6 +DA:649,6 +DA:651,42 +DA:654,18 +DA:660,1 +DA:661,156 +DA:662,24 +DA:667,1 +DA:668,156 +DA:669,156 +DA:672,104 +DA:673,104 +DA:675,48 +DA:676,48 +DA:678,4 DA:679,4 -DA:682,10 -DA:683,10 -DA:685,12 -DA:689,12 -DA:690,2 -DA:696,10 -DA:702,12 -DA:703,10 -DA:705,12 -DA:708,38 -DA:714,38 -DA:715,38 -DA:718,46 -DA:723,1 -DA:724,4 -DA:725,4 -DA:726,4 -DA:730,1 -DA:731,12 -DA:732,10 -DA:734,2 -DA:740,1 -DA:741,46 -DA:742,46 -DA:743,4 -DA:744,4 -DA:746,46 -DA:750,1 -DA:751,30 -DA:755,1 -DA:756,10 -DA:757,10 -DA:758,2 -DA:759,8 -DA:760,2 -DA:761,6 -DA:762,2 -DA:764,4 -DA:769,1 -DA:770,10 -DA:771,10 -DA:772,8 -DA:778,1 -DA:779,84 -DA:783,1 -DA:784,96 -DA:789,1 -DA:790,6 -DA:791,6 -DA:793,42 -DA:796,18 -DA:803,1 -DA:804,68 -DA:809,68 -DA:813,1 -DA:814,154 -DA:815,24 -DA:820,1 -DA:821,14 -DA:822,14 -DA:823,4 -DA:824,4 -DA:829,1 -DA:830,154 -DA:831,154 -DA:833,54 -DA:834,54 -DA:836,48 -DA:837,48 -DA:839,52 -DA:840,52 -DA:842,154 -DA:847,1 -DA:848,16 -DA:849,16 -DA:850,12 -DA:851,12 -DA:852,12 -DA:853,12 -DA:854,12 -DA:855,12 -DA:856,12 -DA:861,1 -DA:862,116 -DA:870,2 +DA:681,156 +DA:685,1 +DA:686,116 +DA:694,2 +DA:696,2 +DA:697,164 +DA:699,90 +DA:709,2 +DA:711,1 +DA:712,1 +DA:714,78 +DA:720,55 +DA:729,2 +DA:731,1 +DA:734,1 +DA:735,1 +DA:736,101 +DA:741,2 +DA:742,21 +DA:749,2 +DA:752,2 +DA:755,2 +DA:756,2 +DA:757,1 +DA:758,1 +DA:759,206 +DA:760,206 +DA:766,2 +DA:768,69 +DA:771,5 +DA:776,6 +DA:781,2 +DA:783,162 +DA:790,390 +DA:791,390 +DA:792,205 +DA:794,162 +DA:796,101 +DA:800,2 +DA:802,82 +DA:803,137 +DA:804,137 +DA:806,61 +DA:807,61 +DA:809,76 +DA:810,76 +DA:813,82 +DA:816,82 +DA:817,137 +DA:819,82 +DA:823,2 +DA:824,2 +DA:825,2 +DA:826,38 +DA:829,2 +DA:830,48 +DA:834,2 +DA:837,2 +DA:840,2 +DA:843,2 +DA:847,2 +DA:848,2 +DA:849,2 +DA:850,2 +DA:852,206 +DA:858,144 +DA:860,206 +DA:863,62 DA:872,2 -DA:873,162 -DA:875,89 -DA:885,2 -DA:887,1 -DA:888,1 -DA:890,77 -DA:896,55 -DA:905,2 -DA:907,1 +DA:874,21 +DA:875,15 +DA:877,15 +DA:879,21 +DA:881,2 +DA:883,18 +DA:884,12 +DA:886,14 +DA:888,18 +DA:891,1 +DA:892,40 +DA:893,40 +DA:894,10 +DA:895,10 +DA:900,1 +DA:901,36 +DA:902,10 +DA:904,26 DA:910,1 -DA:911,1 -DA:912,97 -DA:917,2 -DA:918,41 -DA:925,2 -DA:928,2 -DA:931,2 -DA:932,2 -DA:933,1 -DA:934,1 -DA:935,203 -DA:936,203 -DA:942,2 -DA:944,76 -DA:947,20 -DA:952,30 -DA:957,2 -DA:959,143 -DA:966,363 -DA:967,363 -DA:968,205 -DA:970,143 -DA:972,82 -DA:976,2 -DA:978,81 -DA:979,111 -DA:980,111 -DA:982,61 -DA:983,61 -DA:985,50 -DA:986,50 -DA:989,81 -DA:992,81 -DA:993,111 -DA:995,81 -DA:999,2 -DA:1000,2 -DA:1001,2 -DA:1002,38 -DA:1005,2 -DA:1006,48 -DA:1010,2 -DA:1012,7 -DA:1013,8 -DA:1015,1 -DA:1017,7 -DA:1019,2 -DA:1021,6 -DA:1022,6 -DA:1024,2 -DA:1026,6 -DA:1029,2 -DA:1032,2 -DA:1035,2 -DA:1038,2 -DA:1042,2 -DA:1043,2 -DA:1044,2 -DA:1045,2 -DA:1047,204 -DA:1053,143 -DA:1055,204 -DA:1058,61 -DA:1068,1 -DA:1069,110 +DA:911,46 +DA:920,82 +DA:922,8 +DA:923,8 +DA:924,6 +DA:926,8 +DA:927,8 +DA:929,36 +DA:930,36 +DA:931,36 +DA:932,36 +DA:933,36 +DA:934,36 +DA:935,36 +DA:936,36 +DA:942,26 +DA:943,26 +DA:946,4 +DA:949,10 +DA:950,10 +DA:952,36 +DA:956,36 +DA:957,6 +DA:963,30 +DA:969,36 +DA:970,30 +DA:972,36 +DA:975,38 +DA:981,38 +DA:982,38 +DA:985,46 +DA:989,1 +DA:990,32 +DA:997,46 +DA:998,46 +DA:999,46 +DA:1006,32 +DA:1007,32 +DA:1016,1 +DA:1017,110 +DA:1018,110 +DA:1019,110 +DA:1020,110 +DA:1021,110 +DA:1022,110 +DA:1028,1 +DA:1029,116 +DA:1030,116 +DA:1031,116 +DA:1034,4 +DA:1035,4 +DA:1037,64 +DA:1038,64 +DA:1042,64 +DA:1045,48 +DA:1046,48 +DA:1047,48 +DA:1049,116 +DA:1054,92 +DA:1056,116 +DA:1062,1 +DA:1063,124 DA:1070,110 DA:1071,110 -DA:1072,110 -DA:1073,110 -DA:1074,110 -DA:1080,1 -DA:1081,116 -DA:1082,116 -DA:1083,116 -DA:1086,28 -DA:1087,28 -DA:1089,40 -DA:1090,40 -DA:1094,40 -DA:1097,48 -DA:1098,48 -DA:1099,48 -DA:1101,116 -DA:1106,92 -DA:1108,116 -DA:1114,1 -DA:1115,122 -DA:1122,108 -DA:1123,108 -DA:1124,108 -DA:1125,10 -DA:1126,10 -DA:1128,108 -DA:1130,122 -DA:1131,122 -DA:1135,1 -DA:1136,32 -DA:1143,46 -DA:1144,46 -DA:1145,46 -DA:1152,32 -DA:1153,32 -DA:1157,1 -DA:1158,278 -DA:1159,296 -DA:1165,1 -DA:1166,154 -DA:1167,154 -DA:1168,154 -DA:1170,154 -DA:1171,122 -DA:1172,122 -DA:1173,122 -DA:1175,32 -DA:1177,154 -DA:1185,1 -DA:1186,60 -DA:1188,1 -DA:1189,60 -DA:1190,60 -DA:1193,60 -DA:1196,1 -DA:1197,90 -DA:1198,62 -DA:1199,62 -DA:1200,8 -DA:1202,62 -DA:1204,90 -DA:1207,60 -DA:1209,14 -DA:1210,14 -DA:1211,14 -DA:1212,10 -DA:1213,10 -DA:1214,10 -DA:1215,14 -DA:1216,10 -DA:1217,2 -DA:1218,2 -DA:1223,2 -DA:1225,8 -DA:1226,8 -DA:1229,14 -DA:1230,14 -DA:1233,14 -DA:1236,76 -DA:1237,76 -DA:1238,52 -DA:1239,52 -DA:1240,52 -DA:1242,76 -DA:1243,76 -DA:1248,1 -DA:1249,46 -DA:1250,46 -DA:1251,46 -DA:1252,46 -DA:1253,12 -DA:1254,12 -DA:1256,46 -DA:1257,24 -DA:1258,24 -DA:1260,46 -DA:1266,2 -DA:1271,2 -LF:548 -LH:548 +DA:1078,124 +DA:1079,124 +DA:1083,1 +DA:1084,282 +DA:1085,300 +DA:1091,1 +DA:1092,156 +DA:1093,156 +DA:1094,156 +DA:1096,156 +DA:1097,124 +DA:1098,124 +DA:1099,124 +DA:1100,124 +DA:1102,32 +DA:1104,156 +DA:1112,1 +DA:1113,60 +DA:1115,1 +DA:1116,60 +DA:1117,60 +DA:1120,60 +DA:1123,1 +DA:1124,90 +DA:1125,62 +DA:1126,62 +DA:1127,8 +DA:1129,62 +DA:1131,90 +DA:1134,60 +DA:1136,14 +DA:1137,14 +DA:1138,14 +DA:1139,10 +DA:1140,10 +DA:1141,10 +DA:1142,14 +DA:1143,10 +DA:1144,2 +DA:1145,2 +DA:1150,2 +DA:1152,8 +DA:1153,8 +DA:1156,14 +DA:1157,14 +DA:1160,14 +DA:1163,76 +DA:1164,76 +DA:1165,52 +DA:1166,52 +DA:1167,52 +DA:1169,76 +DA:1170,76 +DA:1175,1 +DA:1176,46 +DA:1177,46 +DA:1178,46 +DA:1179,46 +DA:1180,12 +DA:1181,12 +DA:1183,46 +DA:1184,24 +DA:1185,24 +DA:1187,46 +DA:1199,2 +DA:1204,2 +DA:1211,2 +DA:1221,1 +DA:1222,60 +DA:1227,60 +DA:1228,26 +DA:1229,24 +DA:1231,26 +DA:1233,34 +DA:1234,4 +DA:1235,4 +DA:1237,30 +DA:1246,2 +DA:1247,104 +DA:1248,104 +DA:1251,2 +DA:1256,1 +DA:1257,104 +DA:1258,104 +DA:1259,104 +DA:1266,1 +DA:1267,30 +DA:1268,30 +DA:1269,30 +DA:1270,30 +DA:1271,30 +DA:1272,30 +DA:1273,30 +DA:1274,30 +DA:1275,30 +DA:1276,30 +DA:1277,30 +DA:1278,30 +DA:1279,50 +DA:1280,30 +DA:1281,46 +DA:1282,46 +DA:1283,46 +DA:1284,46 +DA:1285,46 +DA:1286,84 +DA:1287,84 +DA:1288,84 +DA:1289,84 +DA:1294,84 +DA:1296,46 +DA:1298,30 +DA:1302,1 +DA:1303,28 +DA:1313,1 +DA:1314,30 +DA:1323,30 +DA:1324,50 +DA:1325,50 +DA:1326,50 +DA:1327,50 +DA:1328,50 +DA:1329,50 +DA:1330,50 +DA:1331,42 +DA:1332,42 +DA:1333,42 +DA:1334,16 +DA:1337,8 +DA:1338,6 +DA:1339,6 +DA:1342,2 +DA:1343,2 +DA:1346,30 +DA:1347,2 +DA:1349,30 +DA:1350,2 +DA:1352,30 +DA:1356,1 +DA:1357,30 +DA:1363,30 +DA:1364,20 +DA:1365,20 +DA:1366,8 +DA:1367,8 +DA:1368,2 +DA:1369,2 +DA:1371,6 +DA:1372,6 +DA:1375,6 +DA:1377,8 +DA:1379,20 +DA:1384,1 +DA:1385,88 +DA:1403,2 +LF:590 +LH:590 BRDA:17,1,0,14 BRDA:17,1,1,6 BRDA:18,2,0,2 @@ -761,313 +813,322 @@ BRDA:88,11,1,4 BRDA:88,11,2,4 BRDA:103,12,0,2 BRDA:103,12,1,4 -BRDA:150,13,0,22 -BRDA:150,13,1,12 -BRDA:150,14,0,34 -BRDA:150,14,1,28 -BRDA:153,15,0,14 -BRDA:153,15,1,22 -BRDA:160,16,0,8 -BRDA:160,16,1,6 -BRDA:160,16,2,2 -BRDA:163,17,0,2 -BRDA:163,17,1,6 -BRDA:170,18,0,4 -BRDA:170,18,1,2 -BRDA:198,19,0,2 -BRDA:198,19,1,16 -BRDA:215,20,0,154 -BRDA:215,20,1,124 -BRDA:216,21,0,278 -BRDA:216,21,1,162 -BRDA:217,22,0,81 -BRDA:217,22,1,81 -BRDA:234,23,0,48 -BRDA:234,23,1,46 -BRDA:234,23,2,20 -BRDA:237,24,0,14 -BRDA:237,24,1,34 -BRDA:238,25,0,48 -BRDA:238,25,1,34 -BRDA:241,26,0,12 -BRDA:241,26,1,36 -BRDA:241,27,0,48 -BRDA:241,27,1,14 -BRDA:242,28,0,24 -BRDA:242,28,1,24 -BRDA:243,29,0,14 -BRDA:243,29,1,34 -BRDA:245,30,0,18 -BRDA:245,30,1,12 -BRDA:246,31,0,4 -BRDA:246,31,1,14 -BRDA:248,32,0,16 -BRDA:248,32,1,2 -BRDA:251,33,0,10 -BRDA:251,33,1,24 -BRDA:253,34,0,16 -BRDA:253,34,1,4 -BRDA:257,35,0,14 -BRDA:257,35,1,2 -BRDA:261,36,0,4 -BRDA:261,36,1,10 -BRDA:273,37,0,36 -BRDA:273,37,1,12 -BRDA:277,38,0,34 -BRDA:277,38,1,2 -BRDA:278,39,0,4 -BRDA:278,39,1,30 -BRDA:279,40,0,2 -BRDA:279,40,1,2 -BRDA:286,41,0,2 -BRDA:286,41,1,28 -BRDA:303,42,0,106 -BRDA:303,42,1,118 -BRDA:303,42,2,120 -BRDA:303,42,3,4 -BRDA:303,42,4,160 -BRDA:303,42,5,164 -BRDA:303,42,6,158 -BRDA:307,43,0,56 -BRDA:307,43,1,64 -BRDA:308,44,0,50 -BRDA:308,44,1,6 -BRDA:312,45,0,22 -BRDA:312,45,1,42 -BRDA:313,46,0,64 -BRDA:313,46,1,24 -BRDA:316,47,0,8 -BRDA:316,47,1,14 -BRDA:328,48,0,2 -BRDA:328,48,1,2 -BRDA:336,49,0,6 -BRDA:336,49,1,158 -BRDA:340,50,0,2 -BRDA:340,50,1,156 -BRDA:345,51,0,74 -BRDA:345,51,1,84 -BRDA:347,52,0,2 -BRDA:347,52,1,72 -BRDA:347,53,0,74 -BRDA:347,53,1,4 -BRDA:351,54,0,16 -BRDA:351,54,1,24 -BRDA:351,54,2,24 -BRDA:351,54,3,10 -BRDA:351,54,4,36 -BRDA:351,54,5,34 -BRDA:358,55,0,8 -BRDA:358,55,1,2 -BRDA:359,56,0,8 -BRDA:359,56,1,2 -BRDA:364,57,0,8 -BRDA:364,57,1,2 -BRDA:368,58,0,8 -BRDA:368,58,1,28 -BRDA:371,59,0,4 -BRDA:371,59,1,32 -BRDA:376,60,0,4 -BRDA:376,60,1,60 -BRDA:382,61,0,26 -BRDA:382,61,1,8 -BRDA:384,62,0,18 -BRDA:384,62,1,8 -BRDA:391,63,0,24 -BRDA:391,63,1,60 -BRDA:392,64,0,16 -BRDA:392,64,1,8 -BRDA:396,65,0,2 -BRDA:396,65,1,6 -BRDA:400,66,0,4 -BRDA:400,66,1,56 -BRDA:402,67,0,10 -BRDA:402,67,1,46 -BRDA:404,68,0,4 -BRDA:404,68,1,42 -BRDA:406,69,0,4 -BRDA:406,69,1,38 -BRDA:408,70,0,28 -BRDA:408,70,1,10 -BRDA:412,71,0,18 -BRDA:412,71,1,10 -BRDA:419,72,0,4 -BRDA:419,72,1,6 -BRDA:444,73,0,48 -BRDA:444,73,1,8 -BRDA:468,74,0,118 -BRDA:468,74,1,66 -BRDA:468,74,2,128 -BRDA:474,75,0,64 -BRDA:474,75,1,2 -BRDA:476,76,0,24 -BRDA:476,76,1,40 -BRDA:476,77,0,64 -BRDA:476,77,1,50 -BRDA:476,77,2,18 -BRDA:488,78,0,4 -BRDA:488,78,1,124 -BRDA:489,79,0,128 -BRDA:489,79,1,4 -BRDA:508,80,0,2 -BRDA:508,80,1,1 -BRDA:508,80,2,1 -BRDA:559,81,0,66 -BRDA:559,81,1,24 -BRDA:560,82,0,90 -BRDA:560,82,1,38 -BRDA:566,83,0,54 -BRDA:566,83,1,8 -BRDA:578,84,0,2 -BRDA:578,84,1,118 -BRDA:591,85,0,56 -BRDA:591,85,1,62 -BRDA:602,86,0,1 -BRDA:602,86,1,117 -BRDA:611,87,0,62 -BRDA:611,87,1,55 -BRDA:624,88,0,1 -BRDA:624,88,1,1 -BRDA:624,89,0,2 -BRDA:624,89,1,1 -BRDA:653,90,0,8 -BRDA:653,90,1,12 -BRDA:653,90,2,38 -BRDA:656,91,0,6 -BRDA:656,91,1,2 -BRDA:665,92,0,8 -BRDA:665,92,1,4 -BRDA:667,93,0,10 -BRDA:667,93,1,2 -BRDA:669,94,0,2 -BRDA:669,94,1,4 -BRDA:669,94,2,10 -BRDA:689,95,0,2 -BRDA:689,95,1,10 -BRDA:702,96,0,10 -BRDA:702,96,1,2 -BRDA:708,97,0,38 -BRDA:708,97,1,8 -BRDA:725,98,0,4 -BRDA:725,98,1,4 -BRDA:726,99,0,4 -BRDA:726,99,1,4 -BRDA:731,100,0,10 -BRDA:731,100,1,2 -BRDA:742,101,0,4 -BRDA:742,101,1,42 -BRDA:742,102,0,46 -BRDA:742,102,1,46 -BRDA:744,103,0,2 -BRDA:744,103,1,2 -BRDA:746,104,0,46 -BRDA:746,104,1,46 -BRDA:757,105,0,2 -BRDA:757,105,1,8 -BRDA:759,106,0,2 -BRDA:759,106,1,6 -BRDA:761,107,0,2 -BRDA:761,107,1,4 -BRDA:771,108,0,8 -BRDA:771,108,1,2 -BRDA:784,109,0,96 -BRDA:784,109,1,96 -BRDA:793,110,0,42 -BRDA:793,110,1,14 -BRDA:805,111,0,92 -BRDA:805,111,1,64 -BRDA:805,111,2,40 -BRDA:822,112,0,4 -BRDA:822,112,1,10 -BRDA:822,113,0,14 -BRDA:822,113,1,10 -BRDA:831,114,0,54 -BRDA:831,114,1,48 -BRDA:831,114,2,52 -BRDA:849,115,0,12 -BRDA:849,115,1,4 -BRDA:870,116,0,1 -BRDA:870,116,1,1 -BRDA:885,117,0,1 -BRDA:885,117,1,1 -BRDA:905,118,0,2 -BRDA:905,118,1,1 -BRDA:917,119,0,2 -BRDA:917,119,1,1 -BRDA:932,120,0,1 -BRDA:932,120,1,1 -BRDA:936,121,0,203 -BRDA:936,121,1,55 -BRDA:942,122,0,1 -BRDA:942,122,1,1 -BRDA:957,123,0,1 -BRDA:957,123,1,1 -BRDA:957,124,0,2 -BRDA:957,124,1,1 -BRDA:967,125,0,205 -BRDA:967,125,1,158 -BRDA:976,126,0,1 -BRDA:976,126,1,1 -BRDA:976,127,0,2 -BRDA:976,127,1,1 -BRDA:980,128,0,61 -BRDA:980,128,1,50 -BRDA:1006,129,0,48 -BRDA:1006,129,1,22 -BRDA:1006,130,0,48 -BRDA:1006,130,1,22 -BRDA:1010,131,0,1 -BRDA:1010,131,1,1 -BRDA:1013,132,0,6 -BRDA:1013,132,1,2 -BRDA:1019,133,0,1 -BRDA:1019,133,1,1 -BRDA:1022,134,0,4 -BRDA:1022,134,1,2 -BRDA:1045,135,0,1 -BRDA:1045,135,1,1 -BRDA:1083,136,0,26 -BRDA:1083,136,1,28 -BRDA:1083,136,2,40 -BRDA:1083,136,3,16 -BRDA:1083,136,4,48 -BRDA:1124,137,0,10 -BRDA:1124,137,1,98 -BRDA:1166,138,0,77 -BRDA:1166,138,1,77 -BRDA:1168,139,0,154 -BRDA:1168,139,1,110 -BRDA:1170,140,0,122 -BRDA:1170,140,1,32 -BRDA:1190,141,0,8 -BRDA:1190,141,1,52 -BRDA:1197,142,0,62 -BRDA:1197,142,1,28 -BRDA:1199,143,0,8 -BRDA:1199,143,1,54 -BRDA:1207,144,0,8 -BRDA:1207,144,1,52 -BRDA:1210,145,0,7 -BRDA:1210,145,1,7 -BRDA:1211,146,0,10 -BRDA:1211,146,1,4 -BRDA:1215,147,0,10 -BRDA:1215,147,1,4 -BRDA:1216,148,0,2 -BRDA:1216,148,1,8 -BRDA:1225,149,0,2 -BRDA:1225,149,1,6 -BRDA:1236,150,0,38 -BRDA:1236,150,1,38 -BRDA:1237,151,0,52 -BRDA:1237,151,1,24 -BRDA:1252,152,0,12 -BRDA:1252,152,1,34 -BRDA:1254,153,0,12 -BRDA:1254,153,1,12 -BRDA:1256,154,0,24 -BRDA:1256,154,1,22 -BRDA:1260,155,0,46 -BRDA:1260,155,1,26 -BRF:332 -BRH:332 +BRDA:156,13,0,138 +BRDA:156,13,1,56 +BRDA:162,14,0,48 +BRDA:162,14,1,40 +BRDA:163,15,0,34 +BRDA:163,15,1,14 +BRDA:171,16,0,48 +BRDA:171,16,1,44 +BRDA:183,17,0,156 +BRDA:183,17,1,126 +BRDA:184,18,0,282 +BRDA:184,18,1,166 +BRDA:185,19,0,83 +BRDA:185,19,1,83 +BRDA:202,20,0,48 +BRDA:202,20,1,46 +BRDA:202,20,2,20 +BRDA:205,21,0,14 +BRDA:205,21,1,34 +BRDA:206,22,0,48 +BRDA:206,22,1,34 +BRDA:209,23,0,12 +BRDA:209,23,1,36 +BRDA:209,24,0,48 +BRDA:209,24,1,14 +BRDA:210,25,0,24 +BRDA:210,25,1,24 +BRDA:211,26,0,14 +BRDA:211,26,1,34 +BRDA:213,27,0,18 +BRDA:213,27,1,12 +BRDA:214,28,0,4 +BRDA:214,28,1,14 +BRDA:216,29,0,16 +BRDA:216,29,1,2 +BRDA:219,30,0,10 +BRDA:219,30,1,24 +BRDA:221,31,0,16 +BRDA:221,31,1,4 +BRDA:225,32,0,14 +BRDA:225,32,1,2 +BRDA:229,33,0,4 +BRDA:229,33,1,10 +BRDA:241,34,0,36 +BRDA:241,34,1,12 +BRDA:245,35,0,34 +BRDA:245,35,1,2 +BRDA:246,36,0,4 +BRDA:246,36,1,30 +BRDA:247,37,0,2 +BRDA:247,37,1,2 +BRDA:254,38,0,2 +BRDA:254,38,1,28 +BRDA:269,39,0,4 +BRDA:269,39,1,2 +BRDA:281,40,0,100 +BRDA:281,40,1,112 +BRDA:281,40,2,114 +BRDA:281,40,3,4 +BRDA:281,40,4,164 +BRDA:281,40,5,168 +BRDA:281,40,6,162 +BRDA:286,41,0,46 +BRDA:286,41,1,68 +BRDA:287,42,0,114 +BRDA:287,42,1,48 +BRDA:290,43,0,28 +BRDA:290,43,1,18 +BRDA:296,44,0,2 +BRDA:296,44,1,66 +BRDA:311,45,0,6 +BRDA:311,45,1,162 +BRDA:315,46,0,2 +BRDA:315,46,1,160 +BRDA:320,47,0,78 +BRDA:320,47,1,84 +BRDA:322,48,0,4 +BRDA:322,48,1,74 +BRDA:325,49,0,16 +BRDA:325,49,1,24 +BRDA:325,49,2,24 +BRDA:325,49,3,10 +BRDA:325,49,4,40 +BRDA:325,49,5,36 +BRDA:339,50,0,12 +BRDA:339,50,1,28 +BRDA:342,51,0,4 +BRDA:342,51,1,36 +BRDA:347,52,0,4 +BRDA:347,52,1,74 +BRDA:357,53,0,24 +BRDA:357,53,1,60 +BRDA:360,54,0,8 +BRDA:360,54,1,16 +BRDA:365,55,0,4 +BRDA:365,55,1,56 +BRDA:367,56,0,10 +BRDA:367,56,1,46 +BRDA:369,57,0,4 +BRDA:369,57,1,42 +BRDA:371,58,0,4 +BRDA:371,58,1,38 +BRDA:373,59,0,28 +BRDA:373,59,1,10 +BRDA:379,60,0,4 +BRDA:379,60,1,6 +BRDA:404,61,0,48 +BRDA:404,61,1,8 +BRDA:428,62,0,118 +BRDA:428,62,1,66 +BRDA:428,62,2,138 +BRDA:434,63,0,64 +BRDA:434,63,1,2 +BRDA:440,64,0,4 +BRDA:440,64,1,134 +BRDA:441,65,0,138 +BRDA:441,65,1,4 +BRDA:460,66,0,2 +BRDA:460,66,1,1 +BRDA:460,66,2,1 +BRDA:511,67,0,66 +BRDA:511,67,1,24 +BRDA:512,68,0,90 +BRDA:512,68,1,38 +BRDA:518,69,0,54 +BRDA:518,69,1,8 +BRDA:530,70,0,2 +BRDA:530,70,1,136 +BRDA:543,71,0,64 +BRDA:543,71,1,72 +BRDA:554,72,0,1 +BRDA:554,72,1,135 +BRDA:563,73,0,72 +BRDA:563,73,1,63 +BRDA:576,74,0,1 +BRDA:576,74,1,1 +BRDA:576,75,0,2 +BRDA:576,75,1,1 +BRDA:597,76,0,4 +BRDA:597,76,1,4 +BRDA:598,77,0,4 +BRDA:598,77,1,4 +BRDA:605,78,0,4 +BRDA:605,78,1,42 +BRDA:605,79,0,46 +BRDA:605,79,1,46 +BRDA:607,80,0,2 +BRDA:607,80,1,2 +BRDA:609,81,0,46 +BRDA:609,81,1,46 +BRDA:615,82,0,2 +BRDA:615,82,1,8 +BRDA:617,83,0,2 +BRDA:617,83,1,6 +BRDA:619,84,0,2 +BRDA:619,84,1,4 +BRDA:629,85,0,8 +BRDA:629,85,1,2 +BRDA:642,86,0,100 +BRDA:642,86,1,100 +BRDA:651,87,0,42 +BRDA:651,87,1,14 +BRDA:669,88,0,104 +BRDA:669,88,1,48 +BRDA:669,88,2,4 +BRDA:694,89,0,1 +BRDA:694,89,1,1 +BRDA:709,90,0,1 +BRDA:709,90,1,1 +BRDA:729,91,0,2 +BRDA:729,91,1,1 +BRDA:741,92,0,2 +BRDA:741,92,1,1 +BRDA:756,93,0,1 +BRDA:756,93,1,1 +BRDA:760,94,0,206 +BRDA:760,94,1,55 +BRDA:766,95,0,1 +BRDA:766,95,1,1 +BRDA:781,96,0,1 +BRDA:781,96,1,1 +BRDA:781,97,0,2 +BRDA:781,97,1,1 +BRDA:791,98,0,205 +BRDA:791,98,1,185 +BRDA:800,99,0,1 +BRDA:800,99,1,1 +BRDA:800,100,0,2 +BRDA:800,100,1,1 +BRDA:804,101,0,61 +BRDA:804,101,1,76 +BRDA:830,102,0,48 +BRDA:830,102,1,22 +BRDA:830,103,0,48 +BRDA:830,103,1,22 +BRDA:850,104,0,1 +BRDA:850,104,1,1 +BRDA:872,105,0,1 +BRDA:872,105,1,1 +BRDA:875,106,0,6 +BRDA:875,106,1,9 +BRDA:881,107,0,1 +BRDA:881,107,1,1 +BRDA:884,108,0,4 +BRDA:884,108,1,8 +BRDA:893,109,0,10 +BRDA:893,109,1,30 +BRDA:893,110,0,40 +BRDA:893,110,1,16 +BRDA:901,111,0,10 +BRDA:901,111,1,26 +BRDA:920,112,0,8 +BRDA:920,112,1,36 +BRDA:920,112,2,38 +BRDA:923,113,0,6 +BRDA:923,113,1,2 +BRDA:932,114,0,8 +BRDA:932,114,1,28 +BRDA:934,115,0,10 +BRDA:934,115,1,26 +BRDA:936,116,0,26 +BRDA:936,116,1,4 +BRDA:936,116,2,10 +BRDA:956,117,0,6 +BRDA:956,117,1,30 +BRDA:969,118,0,30 +BRDA:969,118,1,6 +BRDA:975,119,0,38 +BRDA:975,119,1,8 +BRDA:1031,120,0,4 +BRDA:1031,120,1,4 +BRDA:1031,120,2,64 +BRDA:1031,120,3,16 +BRDA:1031,120,4,48 +BRDA:1092,121,0,78 +BRDA:1092,121,1,78 +BRDA:1094,122,0,156 +BRDA:1094,122,1,110 +BRDA:1096,123,0,124 +BRDA:1096,123,1,32 +BRDA:1117,124,0,8 +BRDA:1117,124,1,52 +BRDA:1124,125,0,62 +BRDA:1124,125,1,28 +BRDA:1126,126,0,8 +BRDA:1126,126,1,54 +BRDA:1134,127,0,8 +BRDA:1134,127,1,52 +BRDA:1137,128,0,7 +BRDA:1137,128,1,7 +BRDA:1138,129,0,10 +BRDA:1138,129,1,4 +BRDA:1142,130,0,10 +BRDA:1142,130,1,4 +BRDA:1143,131,0,2 +BRDA:1143,131,1,8 +BRDA:1152,132,0,2 +BRDA:1152,132,1,6 +BRDA:1163,133,0,38 +BRDA:1163,133,1,38 +BRDA:1164,134,0,52 +BRDA:1164,134,1,24 +BRDA:1179,135,0,12 +BRDA:1179,135,1,34 +BRDA:1181,136,0,12 +BRDA:1181,136,1,12 +BRDA:1183,137,0,24 +BRDA:1183,137,1,22 +BRDA:1187,138,0,46 +BRDA:1187,138,1,26 +BRDA:1216,139,0,1 +BRDA:1216,139,1,1 +BRDA:1225,140,0,60 +BRDA:1225,140,1,34 +BRDA:1227,141,0,26 +BRDA:1227,141,1,34 +BRDA:1227,142,0,60 +BRDA:1227,142,1,34 +BRDA:1228,143,0,24 +BRDA:1228,143,1,2 +BRDA:1228,144,0,26 +BRDA:1228,144,1,2 +BRDA:1233,145,0,4 +BRDA:1233,145,1,30 +BRDA:1288,146,0,30 +BRDA:1288,146,1,54 +BRDA:1289,147,0,18 +BRDA:1289,147,1,66 +BRDA:1290,148,0,10 +BRDA:1290,148,1,8 +BRDA:1292,149,0,16 +BRDA:1292,149,1,50 +BRDA:1323,150,0,80 +BRDA:1323,150,1,52 +BRDA:1330,151,0,42 +BRDA:1330,151,1,8 +BRDA:1330,152,0,50 +BRDA:1330,152,1,44 +BRDA:1330,152,2,42 +BRDA:1333,153,0,16 +BRDA:1333,153,1,26 +BRDA:1337,154,0,6 +BRDA:1337,154,1,2 +BRDA:1337,155,0,8 +BRDA:1337,155,1,6 +BRDA:1363,156,0,20 +BRDA:1363,156,1,10 +BRDA:1367,157,0,2 +BRDA:1367,157,1,6 +BRDA:1367,158,0,8 +BRDA:1367,158,1,4 +BRDA:1367,158,2,2 +BRDA:1372,159,0,2 +BRDA:1372,159,1,4 +BRDA:1373,160,0,2 +BRDA:1373,160,1,2 +BRF:341 +BRH:341 end_of_record diff --git a/hyperhtml.js b/hyperhtml.js index 0c6ae255..e4fb817b 100644 --- a/hyperhtml.js +++ b/hyperhtml.js @@ -1,4 +1,4 @@ -var hyperHTML = (function (globalDocument) {'use strict'; +var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */ @@ -130,7 +130,7 @@ var hyperHTML = (function (globalDocument) {'use strict'; var SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; var SHOULD_USE_ATTRIBUTE = /^style$/i; - var EXPANDO = '_hyper_html: '; + var EXPANDO = '_hyper: '; var UID = EXPANDO + ((Math.random() * new Date) | 0) + ';'; var UIDC = ''; @@ -138,72 +138,40 @@ var hyperHTML = (function (globalDocument) {'use strict'; // DOM Manipulation // --------------------------------------------- - // return -1 if no differences are found - // the index where differences starts otherwise - function indexOfDifferences(a, b) { - var - i = 0, - aLength = a.length, - bLength = b.length - ; - while (i < aLength) { - if (i < bLength && a[i] === b[i]) i++; - else return i; - } - return i === bLength ? -1 : i; + function Aura(node, childNodes) { + this.node = node; + this.childNodes = childNodes; + return majinbuu.aura(this, childNodes); } - // accordingly with the content type - // it replace the content of a node - // with the give child - function populateNode(parent, child) { - switch (child.nodeType) { - case ELEMENT_NODE: - var childNodes = parent.childNodes; - if (childNodes[0] === child) { - removeNodeList(childNodes, 1); - break; - } - resetAndPopulate(parent, child); - break; - case DOCUMENT_FRAGMENT_NODE: - if (indexOfDifferences(parent.childNodes, child.childNodes) !== -1) { - resetAndPopulate(parent, child); - } - break; - case TEXT_NODE: - parent.textContent = child.textContent; - break; - } - } - - // remove a list of nodes from startIndex to list.length - function removeNodeList(list, startIndex) { - var length = list.length, child; - while (startIndex < length--) { - child = list[length]; - child.parentNode.removeChild(child); + Aura.prototype.splice = function splice(start, deleteCount) { + for (var + tmp, + i = start, + ph = this.node, + cn = this.childNodes, + pn = ph.parentNode, + length = cn.length, + end = deleteCount == null ? length : (start + deleteCount); + i < length && i < end; i++ + ) { + pn.removeChild(cn[i]); } - } - - // erase a node content and populate it - function resetAndPopulate(parent, child) { - parent.textContent = ''; - parent.appendChild(child); - } - - // append childNodes to a node from a specific index - function updateViaArray(node, childNodes, i) { - var fragment = emptyFragment(node); - if (i !== 0) { - removeNodeList(node.childNodes, i); - appendNodes(fragment, childNodes.slice(i)); - node.appendChild(fragment); - } else { - appendNodes(fragment, childNodes); - resetAndPopulate(node, fragment); + i = 2; + length = arguments.length; + if (i < length) { + if ((length - i) === 1) { + tmp = arguments[i]; + } else { + tmp = createDocumentFragment(pn.ownerDocument); + while (i < length) { + tmp.appendChild(arguments[i++]); + } + } + pn.insertBefore(tmp, cn[end] || ph); } - } + return cn.splice.apply(cn, arguments); + }; // --------------------------------------------- // hyperHTML Operations @@ -294,23 +262,29 @@ var hyperHTML = (function (globalDocument) {'use strict'; ); } + // `` + function setTextContent(node) { + var oldValue; + return function (value) { + if (value !== oldValue) { + oldValue = value; + node.textContent = value; + } + }; + } + // `

${'any'}

` // `
  • a
  • ${'virtual'}
  • c
  • ` - function setVirtualContent(node, childNodes) { + function setAnyContent(node, childNodes, aura) { var oldValue; - var justContent = !childNodes; - return function anyVirtual(value) { + return function anyContent(value) { switch (typeof value) { case 'string': case 'number': case 'boolean': - if (justContent) { - if (oldValue !== value) { - oldValue = value; - node.textContent = value; - } - } else if ( - childNodes.length === 1 && + var length = childNodes.length; + if ( + length === 1 && childNodes[0].nodeType === TEXT_NODE ) { if (oldValue !== value) { @@ -319,23 +293,24 @@ var hyperHTML = (function (globalDocument) {'use strict'; } } else { oldValue = value; - removeNodeList(childNodes, 0); - childNodes = [createText(node, value)]; - node.parentNode.insertBefore(childNodes[0], node); + if (length) { + aura.splice(0, length, createText(node, value)); + } else { + childNodes[0] = node.parentNode.insertBefore( + createText(node, value), + node + ); + } } break; case 'function': - if (justContent) { - anyVirtual(value(node, getChildren(node), 0)); - } else { - anyVirtual(value(node.parentNode, childNodes, 0)); - } + anyContent(value(node.parentNode, childNodes, 0)); break; case 'object': case 'undefined': if (value == null) { oldValue = value; - anyVirtual(''); + anyContent(''); break; } else if (value instanceof Component) { value = value.render(); @@ -344,32 +319,28 @@ var hyperHTML = (function (globalDocument) {'use strict'; oldValue = value; if (isArray(value)) { var length = value.length; - if (length === 0 && !justContent) { - removeNodeList(childNodes, 0); - childNodes = []; + if (length === 0) { + aura.splice(0); } else { switch (typeof value[0]) { case 'string': case 'number': case 'boolean': - anyVirtual({html: value}); + anyContent({html: value}); break; case 'function': - var parentNode = justContent ? node : node.parentNode; - var children = justContent ? - slice.call(getChildren(node)) : childNodes; + var parentNode = node.parentNode; for (var i = 0; i < length; i++) { - value[i] = value[i](parentNode, children, i); + value[i] = value[i](parentNode, childNodes, i); } - if (justContent) removeNodeList(children, i); - anyVirtual(value.concat.apply([], value)); + anyContent(value.concat.apply([], value)); break; case 'object': if (isArray(value[0])) { value = value.concat.apply([], value); } if (isPromise_ish(value[0])) { - Promise.all(value).then(anyVirtual); + Promise.all(value).then(anyContent); break; } else { for (var i = 0, length = value.length; i < length; i++) { @@ -379,47 +350,36 @@ var hyperHTML = (function (globalDocument) {'use strict'; } } default: - if (justContent) { - var i = indexOfDifferences(node.childNodes, value); - if (i !== -1) updateViaArray(node, value, i); - } else { - updateVirtualNodes(node, childNodes, value); - } + majinbuu(aura, value, hyper.MAX_LIST_SIZE); break; } } } else if (isNode_ish(value)) { - if (justContent) populateNode(node, value); - else updateVirtualNodes( - node, - childNodes, + majinbuu( + aura, value.nodeType === DOCUMENT_FRAGMENT_NODE ? slice.call(value.childNodes) : - [value] + [value], + hyper.MAX_LIST_SIZE ); } else if (isPromise_ish(value)) { - value.then(anyVirtual); + value.then(anyContent); } else if ('placeholder' in value) { - invokeAtDistance(anyVirtual, value); + invokeAtDistance(anyContent, value); } else if ('text' in value) { - anyVirtual(String(value.text)); + anyContent(String(value.text)); } else if ('any' in value) { - anyVirtual(value.any); + anyContent(value.any); } else if ('html' in value) { var html = [].concat(value.html).join(''); - // TODO: should it trash the layout each time? - // should it use oldValue instead? - if (justContent) node.innerHTML = html; - else { - removeNodeList(childNodes, 0); - var fragment = createFragment(node, html); - childNodes = slice.call(fragment.childNodes); - node.parentNode.insertBefore(fragment, node); - } + aura.splice(0); + var fragment = createFragment(node, html); + childNodes.push.apply(childNodes, fragment.childNodes); + node.parentNode.insertBefore(fragment, node); } else if ('length' in value) { - anyVirtual(slice.call(value)); + anyContent(slice.call(value)); } else { - anyVirtual(invokeTransformer(value)); + anyContent(invokeTransformer(value)); } break; } @@ -473,15 +433,7 @@ var hyperHTML = (function (globalDocument) {'use strict'; case COMMENT_NODE: if (child.textContent === UID) { parts.shift(); - if (length === 1 || ( - noContent(child, 'previous') && - noContent(child, 'next') - )) { - paths.push(Path('any', node)); - i = length; - } else { - paths.push(Path('virtual', child)); - } + paths.push(Path('any', child)); } break; case TEXT_NODE: @@ -490,7 +442,7 @@ var hyperHTML = (function (globalDocument) {'use strict'; trim.call(child.textContent) === UIDC ) { parts.shift(); - paths.push(Path('any', node)); + paths.push(Path('text', node)); } break; } @@ -638,86 +590,6 @@ var hyperHTML = (function (globalDocument) {'use strict'; return node.ownerDocument.createTextNode(text); } - // given an info, tries to find out the best option - // to replace or update the content - function discoverNode(parentNode, virtual, info, childNodes) { - for (var - target = parentNode, - document = parentNode.ownerDocument, - path = info.path, - virtualNode = getNode(virtual, path), - i = 0, - length = path.length; - i < length; i++ - ) { - switch (path[i++]) { - case 'attributes': - var name = virtualNode.name; - if (!parentNode.hasAttribute(name)) { - parentNode.setAttribute(name, ''); - } - target = parentNode.attributes[name]; - break; - case 'childNodes': - var children = getChildren(parentNode); - var virtualChildren = getChildren(virtualNode.parentNode); - target = previousElementSibling(virtualNode); - var before = target ? (path.indexOf.call(virtualChildren, target) + 1) : -1; - target = nextElementSibling(virtualNode); - var after = target ? path.indexOf.call(virtualChildren, target) : -1; - target = document.createComment(UID); - switch (true) { - // `${'virtual'}` is actually resolved as `${'any'}` - // case before < 0 && after < 0: before = 0; - - // `${'virtual'}` - case after < 0: - after = children.length; - break; - // `${'virtual'}` - case before < 0: - before = 0; - // `${'virtual'}` - default: - after = -(virtualChildren.length - after); - break; - } - childNodes.push.apply( - childNodes, - slice.call(children, before, after) - ); - if (childNodes.length) { - insertBefore( - parentNode, - target, - nextElementSibling(childNodes[childNodes.length - 1]) - ); - } else { - insertBefore( - parentNode, - target, - slice.call(children, after)[0] - ); - } - if (childNodes.length === 0) { - removePreviousText(parentNode, target); - } - break; - default: - // if the node is not there, create it - target = getChildren(parentNode)[path[i]] || - parentNode.appendChild( - parentNode.ownerDocument.createElement( - getNode(virtual, path.slice(0, i + 1)).nodeName - ) - ); - parentNode = target; - break; - } - } - return target; - } - // returns current customElements reference // compatible with basicHTML too function getCEClass(node) { @@ -726,15 +598,6 @@ var hyperHTML = (function (globalDocument) {'use strict'; return ce && ce.get(node.nodeName.toLowerCase()); } - // avoid errors on obsolete platforms - function insertBefore(parentNode, target, after) { - if (after) { - parentNode.insertBefore(target, after); - } else { - parentNode.appendChild(target); - } - } - // verify that an attribute has // a special meaning for the node function isSpecialAttribute(node, name) { @@ -746,11 +609,6 @@ var hyperHTML = (function (globalDocument) {'use strict'; return notSVG && name in node; } - // create an empty fragment from a generic node - function emptyFragment(node) { - return createDocumentFragment(node.ownerDocument); - } - // use a placeholder and resolve with the right callback function invokeAtDistance(callback, value) { callback(value.placeholder); @@ -798,17 +656,6 @@ var hyperHTML = (function (globalDocument) {'use strict'; }; } - // given a node and a direction - // returns true if there's no content - function noContent(node, direction) { - while ( - ((node = node[direction + 'Sibling']) != null) && - node.nodeType === TEXT_NODE && - trim.call(node.textContent).length < 1 - ); - return node == null; - } - // remove a list of [node, attribute] function removeAttributeList(list) { for (var i = 0, length = list.length; i < length; i++) { @@ -816,47 +663,24 @@ var hyperHTML = (function (globalDocument) {'use strict'; } } - // remove all text nodes from a virtual space - function removePreviousText(parentNode, node) { - var previousSibling = node.previousSibling; - if (previousSibling && previousSibling.nodeType === TEXT_NODE) { - parentNode.removeChild(previousSibling); - removePreviousText(parentNode, node); - } - } - // specify the content to update function setContent(info, target, removeAttributes, childNodes) { var update; switch (info.type) { case 'any': - update = setVirtualContent(target, null); + // TODO: don't pass the target, it shouldn't be needed + update = setAnyContent(target, childNodes, new Aura(target, childNodes)); break; case 'attr': update = setAttribute(target, removeAttributes, info.name); break; - case 'virtual': - update = setVirtualContent(target, childNodes); + case 'text': + update = setTextContent(target); break; } return update; } - // update partially or fully the list of virtual nodes - // it modifies in place the childNodes list if necessary - function updateVirtualNodes(node, childNodes, value) { - var i = indexOfDifferences(childNodes, value); - if (i !== -1) { - var fragment = emptyFragment(node); - removeNodeList(childNodes, i); - childNodes.splice(i); - value = value.slice(i); - appendNodes(fragment, value); - node.parentNode.insertBefore(fragment, node); - childNodes.push.apply(childNodes, value); - } - } - // used for common path creation. function Path(type, node, name) { return {type: type, path: createPath(node), name: name}; @@ -1006,25 +830,6 @@ var hyperHTML = (function (globalDocument) {'use strict'; return $1 + ($2 || '"') + UID + ($2 || '"'); }; - // IE/Edge gotcha with comment nodes - var nextElementSibling = IE ? - function (node) { - while (node = node.nextSibling) { - if (node.nodeType === ELEMENT_NODE) return node; - } - return undefined; - } : - function (node) { return node.nextElementSibling; }; - - var previousElementSibling = IE ? - function (node) { - while (node = node.previousSibling) { - if (node.nodeType === ELEMENT_NODE) return node; - } - return undefined; - } : - function (node) { return node.previousElementSibling; }; - // [element] = {template, updates}; var hypers = new $WeakMap; @@ -1059,6 +864,149 @@ var hyperHTML = (function (globalDocument) {'use strict'; }; }()); + // --------------------------------------------- + // Adopting Nodes + // --------------------------------------------- + + // IE/Edge gotcha with comment nodes + var nextElementSibling = IE ? + function (node) { + while (node = node.nextSibling) { + if (node.nodeType === ELEMENT_NODE) return node; + } + return undefined; + } : + function (node) { return node.nextElementSibling; }; + + var previousElementSibling = IE ? + function (node) { + while (node = node.previousSibling) { + if (node.nodeType === ELEMENT_NODE) return node; + } + return undefined; + } : + function (node) { return node.previousElementSibling; }; + + // remove all text nodes from a virtual space + function removePreviousText(parentNode, node) { + var previousSibling = node.previousSibling; + if (previousSibling && previousSibling.nodeType === TEXT_NODE) { + parentNode.removeChild(previousSibling); + removePreviousText(parentNode, node); + } + } + + // avoid errors on obsolete platforms + function insertBefore(parentNode, target, after) { + if (after) { + parentNode.insertBefore(target, after); + } else { + parentNode.appendChild(target); + } + } + + // given an info, tries to find out the best option + // to replace or update the content + function discoverNode(parentNode, virtual, info, childNodes) { + for (var + target = parentNode, + document = parentNode.ownerDocument, + path = info.path, + virtualNode = getNode(virtual, path), + i = 0, + length = path.length; + i < length; i++ + ) { + switch (path[i++]) { + case 'attributes': + var name = virtualNode.name; + if (!parentNode.hasAttribute(name)) { + parentNode.setAttribute(name, ''); + } + target = parentNode.attributes[name]; + break; + case 'childNodes': + var children = getChildren(parentNode); + var virtualChildren = getChildren(virtualNode.parentNode); + target = previousElementSibling(virtualNode); + var before = target ? (path.indexOf.call(virtualChildren, target) + 1) : -1; + target = nextElementSibling(virtualNode); + var after = target ? path.indexOf.call(virtualChildren, target) : -1; + target = document.createComment(UID); + switch (true) { + // `${'virtual'}` is actually resolved as `${'any'}` + // case before < 0 && after < 0: before = 0; + + // `${'virtual'}` + case after < 0: + after = children.length; + break; + // `${'virtual'}` + case before < 0: + before = 0; + // `${'virtual'}` + default: + after = -(virtualChildren.length - after); + break; + } + childNodes.push.apply( + childNodes, + slice.call(children, before, after) + ); + if (childNodes.length) { + insertBefore( + parentNode, + target, + nextElementSibling(childNodes[childNodes.length - 1]) + ); + } else { + insertBefore( + parentNode, + target, + slice.call(children, after)[0] + ); + } + if (childNodes.length === 0) { + removePreviousText(parentNode, target); + } + break; + default: + // if the node is not there, create it + target = getChildren(parentNode)[path[i]] || + parentNode.appendChild( + parentNode.ownerDocument.createElement( + getNode(virtual, path.slice(0, i + 1)).nodeName + ) + ); + parentNode = target; + break; + } + } + return target; + } + + // like createUpdates but for nodes with already a content + function discoverUpdates(fragment, paths) { + for (var + info, childNodes, + updates = [], + removeAttributes = [], + i = 0, length = paths.length; + i < length; i++ + ) { + childNodes = []; + info = paths[i]; + updates[i] = setContent( + info, + discoverNode(this, fragment, info, childNodes), + removeAttributes, + childNodes + ); + } + removeAttributeList(removeAttributes); + return updates; + } + // --------------------------------------------- // Template related utilities // --------------------------------------------- @@ -1113,40 +1061,18 @@ var hyperHTML = (function (globalDocument) {'use strict'; // whenever the next interpolation happens function createUpdates(fragment, paths) { for (var - info, target, + info, updates = [], removeAttributes = [], i = 0, length = paths.length; i < length; i++ ) { - info = paths[i]; - target = getNode(fragment, info.path); - if (target.nodeType === DOCUMENT_FRAGMENT_NODE) { - removeNodeList(target.childNodes, 0); - target = this; - } - updates[i] = setContent(info, target, removeAttributes, []); - } - removeAttributeList(removeAttributes); - return updates; - } - - // like createUpdates but for nodes with already a content - function discoverUpdates(fragment, paths) { - for (var - info, childNodes, - updates = [], - removeAttributes = [], - i = 0, length = paths.length; - i < length; i++ - ) { - childNodes = []; info = paths[i]; updates[i] = setContent( info, - discoverNode(this, fragment, info, childNodes), + getNode(fragment, info.path), removeAttributes, - childNodes + [] ); } removeAttributeList(removeAttributes); @@ -1170,7 +1096,8 @@ var hyperHTML = (function (globalDocument) {'use strict'; if (notAdopting) { var fragment = cloneNode(info.fragment); updates = createUpdates.call(this, fragment, info.paths); - resetAndPopulate(this, fragment); + this.textContent = ''; + this.appendChild(fragment); } else { updates = discoverUpdates.call(this, info.fragment, info.paths); } @@ -1260,12 +1187,23 @@ var hyperHTML = (function (globalDocument) {'use strict'; return wire[id] || (wire[id] = wireContent(type)); } + // avoid processing too many nodes + // this is about the algorithm used + // to calculate the least amount of DOM + // changes needed to show the a new list + // where there was another one. + // There is a limit, in terms of performance, + // on how bug can the optimal computation be, + // so if you change this value be sure your + // target hardware is good enough. + hyper.MAX_LIST_SIZE = 1000; + // --------------------------------------------- // ⚡️ ️️The End ➰ // --------------------------------------------- return hyper; -}(document)); +}(document/*!majinbuu*/)); // umd.KISS try { module.exports = hyperHTML; } catch(o_O) {} diff --git a/index.js b/index.js new file mode 100644 index 00000000..0ec336d5 --- /dev/null +++ b/index.js @@ -0,0 +1,1403 @@ +var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; + + /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */ + + // --------------------------------------------- + // hyperHTML Public API + // --------------------------------------------- + + // The document must be swap-able at runtime. + // Needed by both basicHTML and nativeHTML + hyper.document = globalDocument; + + // friendly destructuring + hyper.hyper = hyper; + + function hyper(HTML) { + return arguments.length < 2 ? + (HTML == null ? + wireContent('html') : + (typeof HTML === 'string' ? + wire(null, HTML) : + ('raw' in HTML ? + wireContent('html')(HTML) : + ('nodeType' in HTML ? + bind(HTML) : + wireWeakly(HTML, 'html') + ) + ) + )) : + ('raw' in HTML ? + wireContent('html') : wire + ).apply(null, arguments); + } + + // hyper.adopt(el) 🐣 + // import an already live DOM structure + // described as TL + hyper.adopt = function adopt(node) { + return function () { + notAdopting = false; + render.apply(node, arguments); + notAdopting = true; + return node; + }; + }; + + // hyper.bind(el) ⚡️ + // render TL inside a DOM node used as context + hyper.bind = bind; + function bind(context) { return render.bind(context); } + + // hyper.define('transformer', callback) 🌀 + hyper.define = function define(transformer, callback) { + transformers[transformer] = callback; + }; + + // hyper.escape('') => '<text>' 🏃 + hyper.escape = function escape(html) { + return html.replace(/[&<>'"]/g, fnEscape); + }; + + // hyper.wire(obj, 'type:ID') ➰ + // relate a renderer to a generic object + hyper.wire = wire; + function wire(obj, type) { + return arguments.length < 1 ? + wireContent('html') : + (obj == null ? + wireContent(type || 'html') : + wireWeakly(obj, type || 'html') + ); + } + + // hyper.Component([initialState]) 🍻 + // An overly-simplified Component class. + // For full Custom Elements support + // see HyperHTMLElement instead. + hyper.Component = Component; + function Component() {} + Object.defineProperties( + Component.prototype, + { + // same as HyperHTMLElement handleEvent + handleEvent: {value: function (e) { + // both IE < 11 and JSDOM lack dataset + var ct = e.currentTarget; + this[ + ('getAttribute' in ct && ct.getAttribute('data-call')) || + ('on' + e.type) + ](e); + }}, + // returns its own HTML wire or create it once on comp.render() + html: lazyGetter('html', wireContent), + // returns its own SVG wire or create it once on comp.render() + svg: lazyGetter('svg', wireContent), + // same as HyperHTMLElement state + state: lazyGetter('state', function () { return this.defaultState; }), + // same as HyperHTMLElement get defaultState + defaultState: {get: function () { return {}; }}, + // same as HyperHTMLElement setState + setState: {value: function (state) { + var target = this.state; + var source = typeof state === 'function' ? state.call(this, target) : state; + for (var key in source) target[key] = source[key]; + this.render(); + }} + // the render must be defined when extending hyper.Component + // the render **must** return either comp.html or comp.svg wire + // render() { return this.html`

    that's it

    `; } + } + ); + + // - - - - - - - - - - - - - - - - - - - - - - - + + // --------------------------------------------- + // Constants + // --------------------------------------------- + + // Node.CONSTANTS + // without assuming Node is globally available + // since this project is used on the backend too + var ELEMENT_NODE = 1; + var ATTRIBUTE_NODE = 2; + var TEXT_NODE = 3; + var COMMENT_NODE = 8; + var DOCUMENT_FRAGMENT_NODE = 11; + + // SVG related + var OWNER_SVG_ELEMENT = 'ownerSVGElement'; + var SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; + + var SHOULD_USE_ATTRIBUTE = /^style$/i; + var EXPANDO = '_hyper: '; + var UID = EXPANDO + ((Math.random() * new Date) | 0) + ';'; + var UIDC = ''; + + // --------------------------------------------- + // DOM Manipulation + // --------------------------------------------- + + function Aura(node, childNodes) { + this.node = node; + this.childNodes = childNodes; + return majinbuu.aura(this, childNodes); + } + + Aura.prototype.splice = function splice(start, deleteCount) { + for (var + tmp, + i = start, + ph = this.node, + cn = this.childNodes, + pn = ph.parentNode, + length = cn.length, + end = deleteCount == null ? length : (start + deleteCount); + i < length && i < end; i++ + ) { + pn.removeChild(cn[i]); + } + i = 2; + length = arguments.length; + if (i < length) { + if ((length - i) === 1) { + tmp = arguments[i]; + } else { + tmp = createDocumentFragment(pn.ownerDocument); + while (i < length) { + tmp.appendChild(arguments[i++]); + } + } + pn.insertBefore(tmp, cn[end] || ph); + } + return cn.splice.apply(cn, arguments); + }; + + // --------------------------------------------- + // hyperHTML Operations + // --------------------------------------------- + + // entry point for all TL => DOM operations + function render(template) { + var hyper = hypers.get(this); + if ( + !hyper || + hyper.template !== (FF ? unique(template) : template) + ) { + hyper = upgrade.apply(this, arguments); + hypers.set(this, hyper); + } + update.apply(hyper.updates, arguments); + return this; + } + + // `
    ` + // `
    ` + // `
    ` + // `
    ` + function setAttribute(attribute, removeAttributes, name) { + var + node = attribute.ownerElement, + isEvent = /^on/.test(name), + isSpecial = name === 'data' || + (isSpecialAttribute(node, name) && + !SHOULD_USE_ATTRIBUTE.test(name)), + type = isEvent ? name.slice(2) : '', + noOwner = isEvent || isSpecial, + oldValue + ; + if (isEvent && name.toLowerCase() in node) type = type.toLowerCase(); + if (noOwner) removeAttributes.push(node, name); + return isEvent ? + function eventAttr(newValue) { + if (oldValue !== newValue) { + if (oldValue) node.removeEventListener(type, oldValue, false); + oldValue = newValue; + if (newValue) node.addEventListener(type, newValue, false); + } + } : + (isSpecial ? + function specialAttr(newValue) { + if (oldValue !== newValue) { + oldValue = newValue; + // WebKit moves the cursor if input.value + // is set again, even if same value + if (node[name] !== newValue) { + // let the browser handle the case + // input.value = null; + // input.value; // '' + if (newValue == null) { + // reflect the null intent, + // do not pass undefined! + node[name] = null; + node.removeAttribute(name); + } else { + node[name] = newValue; + } + } + } + } : + function normalAttr(newValue) { + if (oldValue !== newValue) { + oldValue = newValue; + // avoid triggering again attributeChangeCallback + // if the value was identical + if (attribute.value !== newValue) { + if (newValue == null) { + if (!noOwner) { + // TODO: should attribute.value = null here? + noOwner = true; + node.removeAttributeNode(attribute); + } + } else { + attribute.value = newValue; + if (noOwner) { + noOwner = false; + node.setAttributeNode(attribute); + } + } + } + } + } + ); + } + + // `` + function setTextContent(node) { + var oldValue; + return function (value) { + if (value !== oldValue) { + oldValue = value; + node.textContent = value; + } + }; + } + + // `

    ${'any'}

    ` + // `
  • a
  • ${'virtual'}
  • c
  • ` + function setAnyContent(node, childNodes, aura) { + var oldValue; + return function anyContent(value) { + switch (typeof value) { + case 'string': + case 'number': + case 'boolean': + var length = childNodes.length; + if ( + length === 1 && + childNodes[0].nodeType === TEXT_NODE + ) { + if (oldValue !== value) { + oldValue = value; + childNodes[0].textContent = value; + } + } else { + oldValue = value; + if (length) { + aura.splice(0, length, createText(node, value)); + } else { + childNodes[0] = node.parentNode.insertBefore( + createText(node, value), + node + ); + } + } + break; + case 'function': + anyContent(value(node.parentNode, childNodes, 0)); + break; + case 'object': + case 'undefined': + if (value == null) { + oldValue = value; + anyContent(''); + break; + } else if (value instanceof Component) { + value = value.render(); + } + default: + oldValue = value; + if (isArray(value)) { + var length = value.length; + if (length === 0) { + aura.splice(0); + } else { + switch (typeof value[0]) { + case 'string': + case 'number': + case 'boolean': + anyContent({html: value}); + break; + case 'function': + var parentNode = node.parentNode; + for (var i = 0; i < length; i++) { + value[i] = value[i](parentNode, childNodes, i); + } + anyContent(value.concat.apply([], value)); + break; + case 'object': + if (isArray(value[0])) { + value = value.concat.apply([], value); + } + if (isPromise_ish(value[0])) { + Promise.all(value).then(anyContent); + break; + } else { + for (var i = 0, length = value.length; i < length; i++) { + if (value[i] instanceof Component) { + value[i] = value[i].render(); + } + } + } + default: + majinbuu(aura, value, hyper.MAX_LIST_SIZE); + break; + } + } + } else if (isNode_ish(value)) { + majinbuu( + aura, + value.nodeType === DOCUMENT_FRAGMENT_NODE ? + slice.call(value.childNodes) : + [value], + hyper.MAX_LIST_SIZE + ); + } else if (isPromise_ish(value)) { + value.then(anyContent); + } else if ('placeholder' in value) { + invokeAtDistance(anyContent, value); + } else if ('text' in value) { + anyContent(String(value.text)); + } else if ('any' in value) { + anyContent(value.any); + } else if ('html' in value) { + var html = [].concat(value.html).join(''); + aura.splice(0); + var fragment = createFragment(node, html); + childNodes.push.apply(childNodes, fragment.childNodes); + node.parentNode.insertBefore(fragment, node); + } else if ('length' in value) { + anyContent(slice.call(value)); + } else { + anyContent(invokeTransformer(value)); + } + break; + } + }; + } + + // --------------------------------------------- + // DOM Traversing + // --------------------------------------------- + + // look for attributes that contains the comment text + function attributesSeeker(node, paths, parts) { + for (var + name, + attribute, + value = UID, + attributes = node.attributes, + i = 0, length = attributes.length; + i < length; i++ + ) { + attribute = attributes[i]; + if (attribute.value === value) { + name = parts.shift().replace(/^(?:|[\S\s]*?\s)(\S+?)=['"]?$/, '$1'); + paths.push( + Path( + 'attr', + // this is needed in both jsdom + // and in not-so-standard browsers/engines + node.attributes[name.toLowerCase()], + name + ) + ); + } + } + } + + // walk the fragment tree in search of comments + function hyperSeeker(node, paths, parts) { + for (var + child, + childNodes = node.childNodes, + length = childNodes.length, + i = 0; i < length; i++ + ) { + child = childNodes[i]; + switch (child.nodeType) { + case ELEMENT_NODE: + attributesSeeker(child, paths, parts); + hyperSeeker(child, paths, parts); + break; + case COMMENT_NODE: + if (child.textContent === UID) { + parts.shift(); + paths.push(Path('any', child)); + } + break; + case TEXT_NODE: + if ( + SHOULD_USE_ATTRIBUTE.test(node.nodeName) && + trim.call(child.textContent) === UIDC + ) { + parts.shift(); + paths.push(Path('text', node)); + } + break; + } + } + } + + // --------------------------------------------- + // Features detection / ugly UA sniffs + // --------------------------------------------- + var featureFragment = createDocumentFragment(globalDocument); + + // Firefox < 55 has non standard template literals. + // https://bugzilla.mozilla.org/show_bug.cgi?id=1108941 + // TODO: is there any better way to feature detect this ? + var FF = typeof navigator === 'object' && + /Firefox\/(\d+)/.test(navigator.userAgent) && + parseFloat(RegExp.$1) < 55; + + // If attributes order is shuffled, threat the browser differently + // Usually this is a well known IE only limitation but some older FF does the same. + var IE = (function () { + var p = globalDocument.createElement('p'); + p.innerHTML = ''; + return /class/i.test(p.firstChild.attributes[0].name); + }()); + + + // beside IE, old WebKit browsers don't have `children` in DocumentFragment + var WK = !('children' in featureFragment); + + // --------------------------------------------- + // Helpers + // --------------------------------------------- + + // used to convert childNodes to Array + var slice = [].slice; + + // used to sanitize html + var oEscape = { + '&': '&', + '<': '<', + '>': '>', + "'": ''', + '"': '"' + }; + function fnEscape(m) { + return oEscape[m]; + } + + // return content as html + function asHTML(html) { + return {html: html}; + } + + // return a single node or an Array or nodes + function createContent(node) { + for (var + child, + content = [], + childNodes = node.childNodes, + i = 0, + length = childNodes.length; + i < length; i++ + ) { + child = childNodes[i]; + if ( + child.nodeType === ELEMENT_NODE || + trim.call(child.textContent).length !== 0 + ) { + content.push(child); + } + } + return content.length === 1 ? content[0] : content; + } + + // just a minifier friendly indirection + function createDocumentFragment(document) { + return document.createDocumentFragment(); + } + + // given a node, inject some html and return + // the resulting template document fragment + function createFragment(node, html) { + return ( + OWNER_SVG_ELEMENT in node ? + createSVGFragment : + createHTMLFragment + )(node, html.replace(no, comments)); + } + + // create fragment for HTML + function createHTMLFragment(node, html) { + var fragment; + var document = node.ownerDocument; + var container = document.createElement('template'); + var hasContent = 'content' in container; + var needsTableWrap = false; + if (!hasContent) { + // DO NOT MOVE THE FOLLOWING LINE ELSEWHERE + fragment = createDocumentFragment(document); + // (a jsdom + nodejs tests coverage gotcha) + + // el.innerHTML = ''; is not possible + // if the content is a partial internal table content + // it needs to be wrapped around once injected. + // HTMLTemplateElement does not suffer this issue. + needsTableWrap = /^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(html); + } + if (needsTableWrap) { + // secure the RegExp.$1 result ASAP to avoid issues + // in case a non-browser DOM library uses RegExp internally + // when HTML content is injected (basicHTML / jsdom / others...) + var selector = RegExp.$1; + container.innerHTML = '' + html + '
    '; + appendNodes(fragment, slice.call(container.querySelectorAll(selector))); + } else { + container.innerHTML = html; + if (hasContent) { + fragment = container.content; + } else { + appendNodes(fragment, slice.call(container.childNodes)); + } + } + return fragment; + } + + // create a fragment for SVG + function createSVGFragment(node, html) { + var document = node.ownerDocument; + var fragment = createDocumentFragment(document); + if (IE || WK) { + var container = document.createElement('div'); + container.innerHTML = '' + html + ''; + appendNodes(fragment, slice.call(container.firstChild.childNodes)); + } else { + var container = document.createElementNS(SVG_NAMESPACE, 'svg'); + container.innerHTML = html; + appendNodes(fragment, slice.call(container.childNodes)); + } + return fragment; + } + + // given a node, it does what is says + function createText(node, text) { + return node.ownerDocument.createTextNode(text); + } + + // returns current customElements reference + // compatible with basicHTML too + function getCEClass(node) { + var doc = hyper.document; + var ce = doc.customElements || doc.defaultView.customElements; + return ce && ce.get(node.nodeName.toLowerCase()); + } + + // verify that an attribute has + // a special meaning for the node + function isSpecialAttribute(node, name) { + var notSVG = !(OWNER_SVG_ELEMENT in node); + if (notSVG && /-/.test(node.nodeName)) { + var Class = getCEClass(node); + if (Class) node = Class.prototype; + } + return notSVG && name in node; + } + + // use a placeholder and resolve with the right callback + function invokeAtDistance(callback, value) { + callback(value.placeholder); + if ('text' in value) { + Promise.resolve(value.text).then(String).then(callback); + } else if ('any' in value) { + Promise.resolve(value.any).then(callback); + } else if ('html' in value) { + Promise.resolve(value.html).then(asHTML).then(callback); + } else { + Promise.resolve(invokeTransformer(value)).then(callback); + } + } + + // last attempt to transform content + function invokeTransformer(object) { + for (var key in transformers) { + if (object.hasOwnProperty(key)) { + return transformers[key](object[key]); + } + } + } + + // quick and dirty Node check + function isNode_ish(value) { + return 'ELEMENT_NODE' in value; + } + + // quick and dirty Promise check + function isPromise_ish(value) { + return value != null && 'then' in value; + } + + // return a descriptor that lazily initialize a property + // unless it hasn't be previously set directly + function lazyGetter(type, fn) { + var secret = '_' + type + '$'; + return { + get: function () { + return this[secret] || (this[type] = fn.call(this, type)); + }, + set: function (value) { + defineProperty(this, secret, {configurable: true, value: value}); + } + }; + } + + // remove a list of [node, attribute] + function removeAttributeList(list) { + for (var i = 0, length = list.length; i < length; i++) { + list[i++].removeAttribute(list[i]); + } + } + + // specify the content to update + function setContent(info, target, removeAttributes, childNodes) { + var update; + switch (info.type) { + case 'any': + // TODO: don't pass the target, it shouldn't be needed + update = setAnyContent(target, childNodes, new Aura(target, childNodes)); + break; + case 'attr': + update = setAttribute(target, removeAttributes, info.name); + break; + case 'text': + update = setTextContent(target); + break; + } + return update; + } + + // used for common path creation. + function Path(type, node, name) { + return {type: type, path: createPath(node), name: name}; + } + + // --------------------------------------------- + // Hybrid Shims + // --------------------------------------------- + + // WeakMap with partial EXPANDO fallback + var $WeakMap = typeof WeakMap === typeof $WeakMap ? + function () { + return { + get: function (obj) { return obj[EXPANDO]; }, + set: function (obj, value) { + Object.defineProperty(obj, EXPANDO, { + configurable: true, + value: value + }); + } + }; + } : + WeakMap; + + // Map with partial double Array fallback + var $Map = typeof Map === typeof $Map ? + function () { + var k = [], v = []; + return { + get: function (obj) { + return v[k.indexOf(obj)]; + }, + // being used with unique template literals + // there is never a case when a value is overwritten + // no need to check upfront for the indexOf + set: function (obj, value) { + v[k.push(obj) - 1] = value; + } + }; + } : + Map; + + // TODO: which browser needs these partial polyfills here? + + // BB7 and webOS need this + var isArray = Array.isArray || + (function () { + var toString = {}.toString; + // I once had an engine returning [array Array] + // and I've got scared since! + var s = toString.call([]); + return function (a) { + return toString.call(a) === s; + }; + }()); + + // older WebKit need this + var trim = EXPANDO.trim || + function () { return this.replace(/^\s+|\s+$/g, ''); }; + + // --------------------------------------------- + // Shared variables + // --------------------------------------------- + + // recycled defineProperty shortcut + var defineProperty = Object.defineProperty; + + // transformers registry + var transformers = {}; + + // normalize Firefox issue with template literals + var templateObjects, unique; + if (FF) { + templateObjects = {}; + unique = function (template) { + var key = '_' + template.join(UIDC); + return templateObjects[key] || + (templateObjects[key] = template); + }; + } + + // use native .append(...childNodes) where available + var appendNodes = 'append' in featureFragment ? + function (node, childNodes) { + node.append.apply(node, childNodes); + } : + function appendNodes(node, childNodes) { + for (var + i = 0, + length = childNodes.length; + i < length; i++ + ) { + node.appendChild(childNodes[i]); + } + }; + + // returns children or retrieve them in IE/Edge + var getChildren = WK || IE ? + function (node) { + for (var + child, + children = [], + childNodes = node.childNodes, + j = 0, i = 0, length = childNodes.length; + i < length; i++ + ) { + child = childNodes[i]; + if (child.nodeType === ELEMENT_NODE) + children[j++] = child; + } + return children; + } : + function (node) { return node.children; }; + + // return the correct node walking through a path + // fixes IE/Edge issues with attributes and children (fixes old WebKit too) + var getNode = IE || WK ? + function (parentNode, path) { + for (var name, i = 0, length = path.length; i < length; i++) { + name = path[i++]; + switch (name) { + case 'children': + parentNode = getChildren(parentNode)[path[i]]; + break; + default: + parentNode = parentNode[name][path[i]]; + break; + } + } + return parentNode; + } : + function (parentNode, path) { + for (var i = 0, length = path.length; i < length; i++) { + parentNode = parentNode[path[i++]][path[i]]; + } + return parentNode; + }; + + // sanitizes interpolations as comments + var no = /(<[a-z]+[a-z0-9:_-]*)((?:[^\S]+[a-z0-9:_-]+(?:=(?:'.*?'|".*?"|<.+?>|\S+))?)+)([^\S]*\/?>)/gi; + var findAttributes = new RegExp('([^\\S][a-z]+[a-z0-9:_-]*=)([\'"]?)' + UIDC + '\\2', 'gi'); + var comments = function ($0, $1, $2, $3) { + return $1 + $2.replace(findAttributes, replaceAttributes) + $3; + }; + + var replaceAttributes = function ($0, $1, $2) { + return $1 + ($2 || '"') + UID + ($2 || '"'); + }; + + // [element] = {template, updates}; + var hypers = new $WeakMap; + + // [element] = {template, updates}; + var wires = new $WeakMap; + + // [template] = {fragment, paths}; + var templates = new $Map; + + // internal signal to switch adoption + var notAdopting = true; + + // IE 11 has problems with cloning templates too + // it "forgets" empty childNodes + var cloneNode = (function () { + featureFragment.appendChild(createText(featureFragment, 'g')); + featureFragment.appendChild(createText(featureFragment, '')); + return featureFragment.cloneNode(true).childNodes.length === 1 ? + function (node) { + for (var + clone = node.cloneNode(), + childNodes = node.childNodes || [], + i = 0, length = childNodes.length; + i < length; i++ + ) { + clone.appendChild(cloneNode(childNodes[i])); + } + return clone; + } : + function (fragment) { + return fragment.cloneNode(true); + }; + }()); + + // --------------------------------------------- + // Adopting Nodes + // --------------------------------------------- + + // IE/Edge gotcha with comment nodes + var nextElementSibling = IE ? + function (node) { + while (node = node.nextSibling) { + if (node.nodeType === ELEMENT_NODE) return node; + } + return undefined; + } : + function (node) { return node.nextElementSibling; }; + + var previousElementSibling = IE ? + function (node) { + while (node = node.previousSibling) { + if (node.nodeType === ELEMENT_NODE) return node; + } + return undefined; + } : + function (node) { return node.previousElementSibling; }; + + // remove all text nodes from a virtual space + function removePreviousText(parentNode, node) { + var previousSibling = node.previousSibling; + if (previousSibling && previousSibling.nodeType === TEXT_NODE) { + parentNode.removeChild(previousSibling); + removePreviousText(parentNode, node); + } + } + + // avoid errors on obsolete platforms + function insertBefore(parentNode, target, after) { + if (after) { + parentNode.insertBefore(target, after); + } else { + parentNode.appendChild(target); + } + } + + // given an info, tries to find out the best option + // to replace or update the content + function discoverNode(parentNode, virtual, info, childNodes) { + for (var + target = parentNode, + document = parentNode.ownerDocument, + path = info.path, + virtualNode = getNode(virtual, path), + i = 0, + length = path.length; + i < length; i++ + ) { + switch (path[i++]) { + case 'attributes': + var name = virtualNode.name; + if (!parentNode.hasAttribute(name)) { + parentNode.setAttribute(name, ''); + } + target = parentNode.attributes[name]; + break; + case 'childNodes': + var children = getChildren(parentNode); + var virtualChildren = getChildren(virtualNode.parentNode); + target = previousElementSibling(virtualNode); + var before = target ? (path.indexOf.call(virtualChildren, target) + 1) : -1; + target = nextElementSibling(virtualNode); + var after = target ? path.indexOf.call(virtualChildren, target) : -1; + target = document.createComment(UID); + switch (true) { + // `${'virtual'}` is actually resolved as `${'any'}` + // case before < 0 && after < 0: before = 0; + + // `${'virtual'}` + case after < 0: + after = children.length; + break; + // `${'virtual'}` + case before < 0: + before = 0; + // `${'virtual'}` + default: + after = -(virtualChildren.length - after); + break; + } + childNodes.push.apply( + childNodes, + slice.call(children, before, after) + ); + if (childNodes.length) { + insertBefore( + parentNode, + target, + nextElementSibling(childNodes[childNodes.length - 1]) + ); + } else { + insertBefore( + parentNode, + target, + slice.call(children, after)[0] + ); + } + if (childNodes.length === 0) { + removePreviousText(parentNode, target); + } + break; + default: + // if the node is not there, create it + target = getChildren(parentNode)[path[i]] || + parentNode.appendChild( + parentNode.ownerDocument.createElement( + getNode(virtual, path.slice(0, i + 1)).nodeName + ) + ); + parentNode = target; + break; + } + } + return target; + } + + // like createUpdates but for nodes with already a content + function discoverUpdates(fragment, paths) { + for (var + info, childNodes, + updates = [], + removeAttributes = [], + i = 0, length = paths.length; + i < length; i++ + ) { + childNodes = []; + info = paths[i]; + updates[i] = setContent( + info, + discoverNode(this, fragment, info, childNodes), + removeAttributes, + childNodes + ); + } + removeAttributeList(removeAttributes); + return updates; + } + + // --------------------------------------------- + // Template related utilities + // --------------------------------------------- + + // given a unique template object + // create, parse, and store retrieved info + function createTemplate(template) { + var paths = []; + var fragment = createFragment(this, template.join(UIDC)); + var info = {fragment: fragment, paths: paths}; + hyperSeeker(fragment, paths, template.slice()); + templates.set(template, info); + return info; + } + + // given a generic node, returns a path capable + // of retrieving such path back again. + // TODO: worth passing the index when available ? + function createPath(node) { + var path = []; + var parentNode; + switch(node.nodeType) { + case ELEMENT_NODE: + case DOCUMENT_FRAGMENT_NODE: + parentNode = node; + break; + case COMMENT_NODE: + parentNode = node.parentNode; + path.unshift( + 'childNodes', + path.indexOf.call(parentNode.childNodes, node) + ); + break; + case ATTRIBUTE_NODE: + default: // jsdom here does not provide a nodeType 2 ... + parentNode = node.ownerElement; + path.unshift('attributes', node.name); + break; + } + for ( + node = parentNode; + parentNode = parentNode.parentNode; + node = parentNode + ) { + path.unshift('children', path.indexOf.call(getChildren(parentNode), node)); + } + return path; + } + + // given a root node and a list of paths + // creates an array of updates to invoke + // whenever the next interpolation happens + function createUpdates(fragment, paths) { + for (var + info, + updates = [], + removeAttributes = [], + i = 0, length = paths.length; + i < length; i++ + ) { + info = paths[i]; + updates[i] = setContent( + info, + getNode(fragment, info.path), + removeAttributes, + [] + ); + } + removeAttributeList(removeAttributes); + return updates; + } + + // invokes each update function passing interpolated value + function update() { + for (var i = 1, length = arguments.length; i < length; i++) { + this[i - 1](arguments[i]); + } + } + + // create a template, if unknown + // upgrade a node to use such template for future updates + function upgrade(template) { + if (FF) template = unique(template); + var updates; + var info = templates.get(template) || + createTemplate.call(this, template); + if (notAdopting) { + var fragment = cloneNode(info.fragment); + updates = createUpdates.call(this, fragment, info.paths); + this.textContent = ''; + this.appendChild(fragment); + } else { + updates = discoverUpdates.call(this, info.fragment, info.paths); + } + return {template: template, updates: updates}; + } + + // --------------------------------------------- + // Wires + // --------------------------------------------- + + // create a new wire for generic DOM content + function wireContent(type) { + var adopter, content, container, fragment, render, setup, template; + + function before(document) { + fragment = createDocumentFragment(document); + container = type === 'svg' ? + document.createElementNS(SVG_NAMESPACE, 'svg') : + fragment; + render = bind(container); + } + + function after() { + if (setup) { + setup = false; + if (type === 'svg') { + appendNodes(fragment, slice.call(container.childNodes)); + } + content = createContent(fragment); + } + return content; + } + + return type === 'adopt' ? + function adopt(statics) { + var args = arguments; + if (FF) statics = unique(statics); + if (template !== statics) { + setup = true; + template = statics; + adopter = function (parentNode, children, i) { + if (setup) { + if (i < children.length) { + container = children[i]; + fragment = { + ownerDocument: container.ownerDocument, + childNodes: [container], + children: [container] + }; + render = hyper.adopt(fragment); + } else { + if (OWNER_SVG_ELEMENT in parentNode) type = 'svg'; + before(parentNode.ownerDocument); + } + } + render.apply(null, args); + return after(); + }; + } + return adopter; + } : + function update(statics) { + if (FF) statics = unique(statics); + if (template !== statics) { + setup = true; + template = statics; + before(hyper.document); + } + render.apply(null, arguments); + return after(); + }; + } + + // setup a weak reference if needed and return a wire by ID + function wireWeakly(obj, type) { + var wire = wires.get(obj); + var i = type.indexOf(':'); + var id = type; + if (-1 < i) { + id = type.slice(i + 1); + type = type.slice(0, i) || 'html'; + } + if (!wire) { + wire = {}; + wires.set(obj, wire); + } + return wire[id] || (wire[id] = wireContent(type)); + } + + // avoid processing too many nodes + // this is about the algorithm used + // to calculate the least amount of DOM + // changes needed to show the a new list + // where there was another one. + // There is a limit, in terms of performance, + // on how bug can the optimal computation be, + // so if you change this value be sure your + // target hardware is good enough. + hyper.MAX_LIST_SIZE = 1000; + + // --------------------------------------------- + // ⚡️ ️️The End ➰ + // --------------------------------------------- + return hyper; + +}(document, function () {'use strict'; + + /*! Copyright (c) 2017, Andrea Giammarchi, @WebReflection */ + + // grid operations + var + DELETE = 'del', + INSERT = 'ins', + SUBSTITUTE = 'sub', + AuraPrototype = Aura.prototype, + TypedArray = /^u/.test(typeof Int32Array) ? Array : Int32Array + ; + + // readapted from: + // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html + function majinbuu(from, to, MAX_SIZE) { + var + fromLength = from.length, + toLength = to.length, + TOO_MANY = (MAX_SIZE || Infinity) < Math.sqrt(fromLength * toLength) + ; + if (fromLength < 1 || TOO_MANY) { + if (toLength || TOO_MANY) { + from.splice.apply(from, [0, fromLength].concat(to)); + } + return; + } + if (toLength < 1) { + from.splice(0); + return; + } + performOperations( + from, + getOperations(from, to, levenstein(from, to)) + ); + } + + // given an object that would like to intercept + // all splice operations performed through a list, + // return a list "aura" that will delegate all splices + majinbuu.aura = function aura(interceptor, list) { + Aura.prototype = list; + return new Aura(interceptor); + }; + + return majinbuu; + + // Helpers - - - - - - - - - - - - - - - - - - - - - - + + // Aura instances are just Array bridges + function Aura(interceptor) { + Aura.prototype = AuraPrototype; + this._ = interceptor; + this.splice = splice; + } + + // originally readapted from: + // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html + // then rewritten in C for Emscripten (see levenstein.c) + // then "screw you ASM" due no much gain but very bloated code + function levenstein(from, to) { + var fromLength = from.length + 1; + var toLength = to.length + 1; + var size = fromLength * toLength; + var x = 0; + var y = 0; + var X = 0; + var Y = 0; + var crow = 0; + var prow = 0; + var del, ins, sub; + var grid = new TypedArray(size); + grid[0] = 0; + while (++x < toLength) grid[x] = x; + while (++y < fromLength) { + X = x = 0; + crow = y * toLength; + prow = Y * toLength; + grid[crow + x] = y; + while (++x < toLength) { + del = grid[prow + x] + 1; + ins = grid[crow + X] + 1; + sub = grid[prow + X] + (from[Y] == to[X] ? 0 : 1); + grid[crow + x] = del < ins ? + (del < sub ? + del : sub) : + (ins < sub ? + ins : sub); + ++X; + }; + ++Y; + } + return grid; + } + + // add operations (in reversed order) + function addOperation(list, type, x, y, count, items) { + list.unshift({ + type: type, + x: x, + y: y, + count: count, + items: items + }); + } + + // walk the Levenshtein grid bottom -> up + function getOperations(Y, X, grid) { + var + list = [], + YL = Y.length + 1, + XL = X.length + 1, + y = YL - 1, + x = XL - 1, + cell, top, left, diagonal, + crow, prow + ; + while (x && y) { + crow = y * XL; + prow = (y - 1) * XL; + cell = grid[crow + x]; + top = grid[prow + x]; + left = grid[crow + x - 1]; + diagonal = grid[prow + x - 1]; + if (diagonal <= left && diagonal <= top && diagonal <= cell) { + x--; + y--; + if (diagonal < cell) { + addOperation(list, SUBSTITUTE, x, y, 1, [X[x]]); + } + } + else if (left <= top && left <= cell) { + x--; + addOperation(list, INSERT, x, y, 0, [X[x]]); + } + else { + y--; + addOperation(list, DELETE, x, y, 1, []); + } + } + while (x--) { + addOperation(list, INSERT, x, y, 0, [X[x]]); + } + while (y--) { + addOperation(list, DELETE, x, y, 1, []); + } + return list; + } + + /* grouped operations */ + function performOperations(target, operations) { + var + diff = 0, + i = 1, + length = operations.length, + curr, prev, op + ; + if (length) { + op = (prev = operations[0]); + while (i < length) { + curr = operations[i++]; + if (prev.type === curr.type && (curr.x - prev.x) <= 1 && (curr.y - prev.y) <= 1) { + op.count += curr.count; + op.items = op.items.concat(curr.items); + } else { + target.splice.apply(target, [op.y + diff, op.count].concat(op.items)); + diff += op.type === INSERT ? + op.items.length : (op.type === DELETE ? + -op.count : 0); + op = curr; + } + prev = curr; + } + target.splice.apply(target, [op.y + diff, op.count].concat(op.items)); + } + } + + // delegate all splice operations through an aura + function splice() { + return this._.splice.apply(this._, arguments); + } + + /* one-by-one operation (testing purpose) + function performOperations(target, operations) { + for (var op, diff = 0, i = 0, length = operations.length; i < length; i++) { + op = operations[i]; + target.splice.apply(target, [op.y + diff, op.count].concat(op.items)); + diff += op.type === INSERT ? + op.items.length : (op.type === DELETE ? + -op.count : 0); + } + } + // */ + +}())); + +// umd.KISS +try { module.exports = hyperHTML; } catch(o_O) {} diff --git a/majinbuu.js b/majinbuu.js new file mode 100644 index 00000000..725e7e41 --- /dev/null +++ b/majinbuu.js @@ -0,0 +1,12 @@ +var fs = require('fs'); +fs.writeFileSync( + 'index.js', + fs.readFileSync('hyperhtml.js') + .toString() + .replace(/\/\*!([a-z-]+)\*\//g, function ($0, $1) { + return fs.readFileSync(require.resolve($1)) + .toString() + .replace(/^.+?(function\s*\()/, ', $1') + .replace(/(}\(\));[\s\S]*$/, '$1'); + }) +); \ No newline at end of file diff --git a/min.js b/min.js index 03b77806..1b3ca8fa 100644 --- a/min.js +++ b/min.js @@ -1,2 +1,3 @@ -var hyperHTML=function(e){"use strict";function t(e){return arguments.length<2?null==e?G("html"):"string"==typeof e?r(null,e):"raw"in e?G("html")(e):"nodeType"in e?n(e):I(e,"html"):("raw"in e?G("html"):r).apply(null,arguments)}function n(e){return s.bind(e)}function r(e,t){return arguments.length<1?G("html"):null==e?G(t||"html"):I(e,t||"html")}function i(){}function a(e,t){for(var n=0,r=e.length,i=t.length;n"+t+"",ye(n,se.call(i.querySelectorAll(l)))}else i.innerHTML=t,a?n=i.content:ye(n,se.call(i.childNodes));return n}function w(e,t){var n=e.ownerDocument,r=y(n);if(ce||ue){var i=n.createElement("div");i.innerHTML=''+t+"",ye(r,se.call(i.firstChild.childNodes))}else{var i=n.createElementNS(te,"svg");i.innerHTML=t,ye(r,se.call(i.childNodes))}return r}function x(e,t){return e.ownerDocument.createTextNode(t)}function C(e,t,n,r){for(var i=e,a=e.ownerDocument,o=n.path,l=Ne(t,o),c=0,u=o.length;c'"]/g,v)},t.wire=r,t.Component=i,Object.defineProperties(i.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this["getAttribute"in t&&t.getAttribute("data-call")||"on"+e.type](e)}},html:O("html",G),svg:O("svg",G),state:O("state",function(){return this.defaultState}),defaultState:{get:function(){return{}}},setState:{value:function(e){var t=this.state,n="function"==typeof e?e.call(this,t):e;for(var r in n)t[r]=n[r];this.render()}}});var J,K,Q=1,U=2,X=3,Y=8,Z=11,ee="ownerSVGElement",te="http://www.w3.org/2000/svg",ne=/^style$/i,re="_hyper_html: ",ie=re+(Math.random()*new Date|0)+";",ae="\x3c!--"+ie+"--\x3e",oe=y(e),le="object"==typeof navigator&&/Firefox\/(\d+)/.test(navigator.userAgent)&&parseFloat(RegExp.$1)<55,ce=function(){var t=e.createElement("p");return t.innerHTML='',/class/i.test(t.firstChild.attributes[0].name)}(),ue=!("children"in oe),se=[].slice,fe={"&":"&","<":"<",">":">","'":"'",'"':"""},he=typeof WeakMap==typeof he?function(){return{get:function(e){return e[re]},set:function(e,t){Object.defineProperty(e,re,{configurable:!0,value:t})}}}:WeakMap,de=typeof Map==typeof de?function(){var e=[],t=[];return{get:function(n){return t[e.indexOf(n)]},set:function(n,r){t[e.push(n)-1]=r}}}:Map,pe=Array.isArray||function(){var e={}.toString,t=e.call([]);return function(n){return e.call(n)===t}}(),ve=re.trim||function(){return this.replace(/^\s+|\s+$/g,"")},ge=Object.defineProperty,me={};le&&(J={},K=function(e){var t="_"+e.join(ae);return J[t]||(J[t]=e)});var ye="append"in oe?function(e,t){e.append.apply(e,t)}:function(e,t){for(var n=0,r=t.length;n|\S+))?)+)([^\S]*\/?>)/gi,xe=new RegExp("([^\\S][a-z]+[a-z0-9:_-]*=)(['\"]?)"+ae+"\\2","gi"),Ce=function(e,t,n,r){return t+n.replace(xe,Te)+r},Te=function(e,t,n){return t+(n||'"')+ie+(n||'"')},Ee=ce?function(e){for(;e=e.nextSibling;)if(e.nodeType===Q)return e}:function(e){return e.nextElementSibling},Se=ce?function(e){for(;e=e.previousSibling;)if(e.nodeType===Q)return e}:function(e){return e.previousElementSibling},ke=new he,Le=new he,Me=new de,Ae=!0,De=function(){return oe.appendChild(x(oe,"g")),oe.appendChild(x(oe,"")),1===oe.cloneNode(!0).childNodes.length?function(e){for(var t=e.cloneNode(),n=e.childNodes||[],r=0,i=n.length;r"+t+"",he(n,ie.call(i.querySelectorAll(l)))}else i.innerHTML=t,o?n=i.content:he(n,ie.call(i.childNodes));return n}function b(e,t){var n=e.ownerDocument,r=g(n);if(ne||re){var i=n.createElement("div");i.innerHTML=''+t+"",he(r,ie.call(i.firstChild.childNodes))}else{var i=n.createElementNS(G,"svg");i.innerHTML=t,he(r,ie.call(i.childNodes))}return r}function w(e,t){return e.ownerDocument.createTextNode(t)}function N(e){var t=n.document,r=t.customElements||t.defaultView.customElements;return r&&r.get(e.nodeName.toLowerCase())}function x(e,t){var n=!(W in e);if(n&&/-/.test(e.nodeName)){var r=N(e);r&&(e=r.prototype)}return n&&t in e}function S(e,t){e(t.placeholder),"text"in t?Promise.resolve(t.text).then(String).then(e):"any"in t?Promise.resolve(t.any).then(e):"html"in t?Promise.resolve(t.html).then(d).then(e):Promise.resolve(E(t)).then(e)}function E(e){for(var t in fe)if(e.hasOwnProperty(t))return fe[t](e[t])}function C(e){return"ELEMENT_NODE"in e}function T(e){return null!=e&&"then"in e}function _(e,t){var n="_"+e+"$";return{get:function(){return this[n]||(this[e]=t.call(this,e))},set:function(e){se(this,n,{configurable:!0,value:e})}}}function k(e){for(var t=0,n=e.length;t'"]/g,p)},n.wire=i,n.Component=o,Object.defineProperties(o.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this["getAttribute"in t&&t.getAttribute("data-call")||"on"+e.type](e)}},html:_("html",B),svg:_("svg",B),state:_("state",function(){return this.defaultState}),defaultState:{get:function(){return{}}},setState:{value:function(e){var t=this.state,n="function"==typeof e?e.call(this,t):e;for(var r in n)t[r]=n[r];this.render()}}});var F=1,R=2,X=3,Z=8,V=11,W="ownerSVGElement",G="http://www.w3.org/2000/svg",J=/^style$/i,K="_hyper: "+(Math.random()*new Date|0)+";",Q="\x3c!--"+K+"--\x3e";a.prototype.splice=function(e,t){for(var n,r=e,i=this.node,o=this.childNodes,a=i.parentNode,l=o.length,c=null==t?l:e+t;r":">","'":"'",'"':"""},ae=typeof WeakMap==typeof ae?function(){return{get:function(e){return e["_hyper: "]},set:function(e,t){Object.defineProperty(e,"_hyper: ",{configurable:!0,value:t})}}}:WeakMap,le=typeof Map==typeof le?function(){var e=[],t=[];return{get:function(n){return t[e.indexOf(n)]},set:function(n,r){t[e.push(n)-1]=r}}}:Map,ce=Array.isArray||function(){var e={}.toString,t=e.call([]);return function(n){return e.call(n)===t}}(),ue="_hyper: ".trim||function(){return this.replace(/^\s+|\s+$/g,"")},se=Object.defineProperty,fe={};te&&(U={},Y=function(e){var t="_"+e.join(Q);return U[t]||(U[t]=e)});var he="append"in ee?function(e,t){e.append.apply(e,t)}:function(e,t){for(var n=0,r=t.length;n|\S+))?)+)([^\S]*\/?>)/gi,ge=new RegExp("([^\\S][a-z]+[a-z0-9:_-]*=)(['\"]?)"+Q+"\\2","gi"),me=function(e,t,n,r){return t+n.replace(ge,ye)+r},ye=function(e,t,n){return t+(n||'"')+K+(n||'"')},be=new ae,we=new ae,Ne=new le,xe=!0,Se=function(){return ee.appendChild(w(ee,"g")),ee.appendChild(w(ee,"")),1===ee.cloneNode(!0).childNodes.length?function(e){for(var t=e.cloneNode(),n=e.childNodes||[],r=0,i=n.length;r + src="../index.js">
    before diff --git a/test/basic.html b/test/basic.html index 9f98ee22..b5bd75e4 100644 --- a/test/basic.html +++ b/test/basic.html @@ -7,7 +7,7 @@ document.write(' - + + - +
    diff --git a/test/ie/index.html b/test/ie/index.html index 9daf942d..ea692584 100644 --- a/test/ie/index.html +++ b/test/ie/index.html @@ -50,6 +50,6 @@

    results in console

    if (!window.Promise) window.Promise = ES6Promise; - + \ No newline at end of file diff --git a/test/ie/test/test.js b/test/ie/test/test.js index d49f677a..d3bb702c 100644 --- a/test/ie/test/test.js +++ b/test/ie/test/test.js @@ -76,7 +76,7 @@ tressa.title('HyperHTML'); tressa.assert(typeof hyperHTML === 'function', 'hyperHTML is a function'); try { - tressa.log(1); + tressa.log(''); } catch (e) { tressa.log = console.log.bind(console); } @@ -91,35 +91,42 @@ tressa.async(function (done) { }) */ tressa.async(function (done) { - tressa.log('## injecting text and attributes'); - var i = 0; - var div = document.body.appendChild(document.createElement('div')); - var render = hyperHTML.bind(div); - function update(i) { - return render(_templateObject, i, - // IE Edge mobile did something funny here - // as template string returned xxx.xxxx - // but as innerHTML returned xxx.xx - (Math.random() * new Date()).toFixed(2)); - } - function compare(html) { - return (/^\s*

    \s*Time: \d+\.\d+<[^>]+?>\s*<\/p>\s*$/i.test(html) - ); - } - var html = update(i++).innerHTML; - var p = div.querySelector('p'); - var attr = p.attributes[0]; - tressa.assert(compare(html), 'correct HTML'); - tressa.assert(html === div.innerHTML, 'correctly returned'); - setTimeout(function () { - tressa.log('## updating same nodes'); + try { + var update = function update(i) { + return render(_templateObject, i, + // IE Edge mobile did something funny here + // as template string returned xxx.xxxx + // but as innerHTML returned xxx.xx + (Math.random() * new Date()).toFixed(2)); + }; + + var compare = function compare(html) { + return (/^\s*

    \s*Time: \d+\.\d+<[^>]+?>\s*<\/p>\s*$/i.test(html) + ); + }; + + tressa.log('## injecting text and attributes'); + var i = 0; + var div = document.body.appendChild(document.createElement('div')); + var render = hyperHTML.bind(div); + var html = update(i++).innerHTML; - tressa.assert(compare(html), 'correct HTML update'); - tressa.assert(html === div.innerHTML, 'update applied'); - tressa.assert(p === div.querySelector('p'), 'no node was changed'); - tressa.assert(attr === p.attributes[0], 'no attribute was changed'); - done(); - }); + var p = div.querySelector('p'); + var attr = p.attributes[0]; + tressa.assert(compare(html), 'correct HTML'); + tressa.assert(html === div.innerHTML, 'correctly returned'); + setTimeout(function () { + tressa.log('## updating same nodes'); + var html = update(i++).innerHTML; + tressa.assert(compare(html), 'correct HTML update'); + tressa.assert(html === div.innerHTML, 'update applied'); + tressa.assert(p === div.querySelector('p'), 'no node was changed'); + tressa.assert(attr === p.attributes[0], 'no attribute was changed'); + done(); + }); + } catch (e) { + console.error(e); + } }).then(function () { return tressa.async(function (done) { tressa.log('## perf: same virtual text twice'); @@ -142,7 +149,7 @@ tressa.async(function (done) { return render(_templateObject3, ['' + text + '']); } function compare(html) { - return (/^

    \w+<\/strong><\/p>$/i.test(html) + return (/^

    \w+<\/strong><\/p>$/i.test(html) ); } tressa.assert(compare(html), 'HTML injected'); @@ -189,7 +196,7 @@ tressa.async(function (done) { return render(_templateObject3, { any: ['' + text + ''] }); } function compare(html) { - return (/^

    \w+<\/em><\/p>$/i.test(html) + return (/^

    \w+<\/em><\/p>$/i.test(html) ); } tressa.assert(compare(html), 'new HTML injected'); @@ -237,7 +244,7 @@ tressa.async(function (done) { render = hyperHTML.bind(div); render(_templateObject8, node); same = div.childNodes; - tressa.assert(node.length === same.length && node[0] && node.every(function (n, i) { + tressa.assert(node[0] && node.every(function (n, i) { return same[i] === n; }), 'same list applied'); @@ -334,6 +341,7 @@ tressa.async(function (done) { tressa.assert(div.firstChild.firstChild === br, 'one child is added'); hyperHTML.bind(div)(_templateObject14, hr); tressa.assert(div.firstChild.firstChild === hr, 'one child is changed'); + debugger; hyperHTML.bind(div)(_templateObject14, [hr, br]); tressa.assert(div.firstChild.childNodes[0] === hr && div.firstChild.childNodes[1] === br, 'more children are added'); hyperHTML.bind(div)(_templateObject14, [br, hr]); @@ -341,7 +349,7 @@ tressa.async(function (done) { hyperHTML.bind(div)(_templateObject14, br); tressa.assert(div.firstChild.firstChild === br, 'one child is kept'); hyperHTML.bind(div)(_templateObject14, []); - tressa.assert(div.firstChild.childNodes.length === 0, 'dropped all children'); + tressa.assert(/

    <\/div>/.test(div.innerHTML), 'dropped all children'); }).then(function () { tressa.log('## wire by id'); var ref = {}; @@ -389,16 +397,18 @@ tressa.async(function (done) { }), model.inBetween); } }).then(function () { + if (SKIP_ADOPT) return; tressa.log('## weird .adopt(node) cases'); var wrap = document.createElement('div'); wrap.innerHTML = '
    text
    '; hyperHTML.adopt(wrap)(_templateObject14, ' right'); - tressa.assert(wrap.innerHTML === '
    right
    ', 'right text OK'); + tressa.assert(/
    right<\/div>/.test(wrap.innerHTML), 'right text OK'); + wrap.innerHTML = '
    text
    '; hyperHTML.adopt(wrap)(_templateObject18, 'left '); - tressa.assert(wrap.innerHTML === '
    left
    ', 'left text OK'); + tressa.assert(/
    left <\/div>/.test(wrap.innerHTML), 'left text OK'); wrap.innerHTML = ''; hyperHTML.adopt(wrap)(_templateObject8, 'any'); - tressa.assert(wrap.innerHTML === 'any', '`${\'virtual\'}` is like `${\'any\'}`'); + tressa.assert(/any/.test(wrap.innerHTML), '`${\'virtual\'}` is like `${\'any\'}`'); wrap.innerHTML = '
    '; hyperHTML.adopt(wrap)(_templateObject19, 'virtual'); if (SKIP_ADOPT) return; @@ -420,19 +430,19 @@ tressa.async(function (done) { return hyperHTML.wire(item, 'adopt')(_templateObject23, item.text); })); var list = wrap.querySelectorAll('li'); - tressa.assert(list.length === 1 && list[0] === li && result.innerHTML === '
    • first
    ', 'one element can be adopted'); + tressa.assert(list.length === 1 && list[0] === li && /
    • first<\/li><\/ul>/.test(result.innerHTML), 'one element can be adopted'); result = hyperHTML.adopt(wrap)(_templateObject22, items.map(function (item) { return hyperHTML.wire(item, 'adopt')(_templateObject23, item.text); })); list = wrap.querySelectorAll('li'); - tressa.assert(list.length === 1 && list[0] === li && result.innerHTML === '
      • first
      ', 'even after multiple passes'); + tressa.assert(list.length === 1 && list[0] === li && /
      • first<\/li><\/ul>/.test(result.innerHTML), 'even after multiple passes'); wrap = document.createElement('div'); wrap.innerHTML = '
          '; result = hyperHTML.adopt(wrap)(_templateObject22, [{ text: 'new' }, { text: 'nodes' }].map(function (item) { return hyperHTML.wire(item, 'adopt')(_templateObject23, item.text); })); list = wrap.querySelectorAll('li'); - tressa.assert(list.length === 2 && result.innerHTML === '
          • new
          • nodes
          ', 'if not there, elements get created'); + tressa.assert(list.length === 2 && /
          • new<\/li>
          • nodes<\/li><\/ul>/.test(result.innerHTML), 'if not there, elements get created'); wrap = document.createElement('div'); wrap.innerHTML = '


            '; @@ -449,7 +459,7 @@ tressa.async(function (done) { result = hyperHTML.adopt(wrap)(_templateObject26, [{ x: 1, y: 2 }].map(function (item) { return hyperHTML.wire(item, 'adopt')(_templateObject27, item.x, item.y); })); - tressa.assert(/]+?)?>\s*\s*<\/rect>\s*<\/svg>/.test(result.innerHTML) && result.querySelector('rect').getAttribute('x') == 1 && result.querySelector('rect').getAttribute('y') == 2, 'svg content can be adopted too'); + tressa.assert(/]+?)?>\s*\s*<\/rect>\s*<\/svg>/.test(result.innerHTML) && result.querySelector('rect').getAttribute('x') == 1 && result.querySelector('rect').getAttribute('y') == 2, 'svg content can be adopted too'); }).then(function () { return tressa.async(function (done) { tressa.log('## Promises instead of nodes'); @@ -471,13 +481,23 @@ tressa.async(function (done) { var result = wrap.innerHTML; setTimeout(function () { tressa.assert(result !== wrap.innerHTML, 'promises fullfilled'); - tressa.assert(/^

            any<\/p>virtual


            12<\/div>34$/.test(wrap.innerHTML), 'both any and virtual content correct'); + tressa.assert(/^

            any<\/p>virtual


            12<\/div>34$/.test(wrap.innerHTML), 'both any and virtual content correct'); done(); }, 100); }); }).then(function () { tressa.log('## for code coverage sake'); + hyperHTML.MAX_LIST_SIZE = 0; var wrap = document.createElement('div'); + var text = [document.createTextNode('a'), document.createTextNode('b'), document.createTextNode('c')]; + var testingMajinBuu = hyperHTML.bind(wrap); + testingMajinBuu(_templateObject8, [text]); + tressa.assert(wrap.textContent === 'abc'); + text[0] = document.createTextNode('c'); + text[2] = document.createTextNode('a'); + testingMajinBuu(_templateObject8, [text]); + tressa.assert(wrap.textContent === 'cba'); + var result = hyperHTML.wire()(_templateObject29); tressa.assert(result.nodeType === 8, 'it is a comment'); tressa.assert(result.textContent === 'not hyprHTML', 'correct content'); @@ -573,13 +593,13 @@ tressa.async(function (done) { tressa.log('## any content extras'); var div = document.createElement('div'); hyperHTML.bind(div)(_templateObject3, undefined); - tressa.assert(div.innerHTML === '

            ', 'expected layout'); + tressa.assert(/

            <\/p>/.test(div.innerHTML), 'expected layout'); hyperHTML.bind(div)(_templateObject3, { text: '' }); - tressa.assert(div.innerHTML === '

            <img>

            ', 'expected text'); + tressa.assert(/

            <img><\/p>/.test(div.innerHTML), 'expected text'); hyperHTML.bind(div)(_templateObject3, function () { return ''; }); - tressa.assert(div.innerHTML === '

            <b>

            ', 'expected callback'); + tressa.assert(/

            <b><\/p>/.test(div.innerHTML), 'expected callback'); }).then(function () { tressa.log('## virtual content extras'); var div = document.createElement('div'); @@ -600,7 +620,7 @@ tressa.async(function (done) { hyperHTML.bind(div)(_templateObject32, { eUC: 'b c' }); tressa.assert(/a=b%20c<[^>]+?>/.test(div.innerHTML), 'expected virtual layout'); hyperHTML.bind(div)(_templateObject3, { eUC: 'b c' }); - tressa.assert(/

            b%20c<\/p>/.test(div.innerHTML), 'expected layout'); + tressa.assert(/

            b%20c<\/p>/.test(div.innerHTML), 'expected layout'); }).then(function () { tressa.log('## attributes with null values'); var div = document.createElement('div'); @@ -627,20 +647,20 @@ tressa.async(function (done) { var vdiv = document.createElement('div'); hyperHTML.bind(div)(_templateObject3, { eUC: 'b c', placeholder: 'z' }); hyperHTML.bind(vdiv)(_templateObject32, { eUC: 'b c', placeholder: 'z' }); - tressa.assert(/

            z<\/p>/.test(div.innerHTML), 'expected inner placeholder layout'); + tressa.assert(/

            z<\/p>/.test(div.innerHTML), 'expected inner placeholder layout'); tressa.assert(/a=z<[^>]+?>/.test(vdiv.innerHTML), 'expected virtual placeholder layout'); setTimeout(function () { - tressa.assert(/

            b%20c<\/p>/.test(div.innerHTML), 'expected inner resolved layout'); + tressa.assert(/

            b%20c<\/p>/.test(div.innerHTML), 'expected inner resolved layout'); tressa.assert(/a=b%20c<[^>]+?>/.test(vdiv.innerHTML), 'expected virtual resolved layout'); hyperHTML.bind(div)(_templateObject3, { text: 1, placeholder: '9' }); setTimeout(function () { - tressa.assert(/

            1<\/p>/.test(div.innerHTML), 'placeholder with text'); + tressa.assert(/

            1<\/p>/.test(div.innerHTML), 'placeholder with text'); hyperHTML.bind(div)(_templateObject3, { any: [1, 2], placeholder: '9' }); setTimeout(function () { - tressa.assert(/

            12<\/p>/.test(div.innerHTML), 'placeholder with any'); + tressa.assert(/

            12<\/p>/.test(div.innerHTML), 'placeholder with any'); hyperHTML.bind(div)(_templateObject3, { html: '3', placeholder: '9' }); setTimeout(function () { - tressa.assert(/

            3<\/b><\/p>/.test(div.innerHTML), 'placeholder with html'); + tressa.assert(/

            3<\/b><\/p>/.test(div.innerHTML), 'placeholder with html'); done(); }, 10); }, 10); diff --git a/test/index.html b/test/index.html index 1a2ab05d..b8f1eb6a 100644 --- a/test/index.html +++ b/test/index.html @@ -17,6 +17,6 @@

            results in console

            - + \ No newline at end of file diff --git a/test/lib.html b/test/lib.html index 38a39c81..9229b6a4 100644 --- a/test/lib.html +++ b/test/lib.html @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/test/many-rows-adopted.html b/test/many-rows-adopted.html index 6c5694b5..24c31867 100644 --- a/test/many-rows-adopted.html +++ b/test/many-rows-adopted.html @@ -3,7 +3,7 @@ - +

            Boot speed:

            diff --git a/test/many-rows.html b/test/many-rows.html index b45cb3ae..d60a1381 100644 --- a/test/many-rows.html +++ b/test/many-rows.html @@ -3,7 +3,7 @@ - +

            Boot speed:

            diff --git a/test/my-button.html b/test/my-button.html index cf481b54..9f9d8b31 100644 --- a/test/my-button.html +++ b/test/my-button.html @@ -4,7 +4,7 @@ Custom Elements meet hyperHTML - + diff --git a/test/runner.js b/test/runner.js index eda2ef13..0c276c5d 100644 --- a/test/runner.js +++ b/test/runner.js @@ -14,7 +14,10 @@ require('jsdom').env( //*/ global.document = window.document; global.tressa = require('tressa'); - global.hyperHTML = require('../hyperhtml.js'); + var Int32Array = global.Int32Array; + global.Int32Array = void 0; + global.hyperHTML = require('../index.js'); + global.Int32Array = Int32Array; require('./test.js'); setTimeout(function () { var proto = global.document.createDocumentFragment(); @@ -32,7 +35,7 @@ require('jsdom').env( var $Map = global.Map; // var $CustomEvent = global.CustomEvent; global.String.prototype.trim = global.WeakMap = global.Map = void 0; - delete require.cache[require.resolve('../hyperhtml.js')]; + delete require.cache[require.resolve('../index.js')]; delete require.cache[require.resolve('./test.js')]; // fake initial feature detection var createElement = global.document.createElement; @@ -64,7 +67,9 @@ require('jsdom').env( }; var bind = Function.prototype.bind; delete Function.prototype.bind; - global.hyperHTML = require('../hyperhtml.js'); + + global.hyperHTML = require('../index.js'); + Function.prototype.bind = bind; Array.isArray = isArray; diff --git a/test/test.js b/test/test.js index 32bf833b..3cac6534 100644 --- a/test/test.js +++ b/test/test.js @@ -3,7 +3,7 @@ var SKIP_ADOPT = typeof location !== typeof SKIP_ADOPT && -1 < location.search.i tressa.title('HyperHTML'); tressa.assert(typeof hyperHTML === 'function', 'hyperHTML is a function'); -try { tressa.log(1); } catch(e) { tressa.log = console.log.bind(console); } +try { tressa.log(''); } catch(e) { tressa.log = console.log.bind(console); } /* tressa.async(function (done) { @@ -15,6 +15,7 @@ tressa.async(function (done) { }) */ tressa.async(function (done) { + try { tressa.log('## injecting text and attributes'); var i = 0; var div = document.body.appendChild(document.createElement('div')); @@ -48,6 +49,7 @@ tressa.async(function (done) { tressa.assert(attr === p.attributes[0], 'no attribute was changed'); done(); }); + } catch(e) { console.error(e); } }) .then(function () { return tressa.async(function (done) { @@ -76,7 +78,7 @@ tressa.async(function (done) { return render`

            ${['' + text + '']}

            `; } function compare(html) { - return /^

            \w+<\/strong><\/p>$/i.test(html); + return /^

            \w+<\/strong><\/p>$/i.test(html); } tressa.assert(compare(html), 'HTML injected'); tressa.assert(html === div.innerHTML, 'HTML returned'); @@ -124,7 +126,7 @@ tressa.async(function (done) { return render`

            ${{any: ['' + text + '']}}

            `; } function compare(html) { - return /^

            \w+<\/em><\/p>$/i.test(html); + return /^

            \w+<\/em><\/p>$/i.test(html); } tressa.assert(compare(html), 'new HTML injected'); tressa.assert(html === div.innerHTML, 'new HTML returned'); @@ -184,7 +186,6 @@ tressa.async(function (done) { render`${node}`; same = div.childNodes; tressa.assert( - node.length === same.length && node[0] && node.every(function (n, i) { return same[i] === n; }), 'same list applied' @@ -301,6 +302,7 @@ tressa.async(function (done) { tressa.assert(div.firstChild.firstChild === br, 'one child is added'); hyperHTML.bind(div)`

            ${hr}
            `; tressa.assert(div.firstChild.firstChild === hr, 'one child is changed'); + debugger; hyperHTML.bind(div)`
            ${[hr, br]}
            `; tressa.assert( div.firstChild.childNodes[0] === hr && @@ -316,7 +318,7 @@ tressa.async(function (done) { hyperHTML.bind(div)`
            ${br}
            `; tressa.assert(div.firstChild.firstChild === br, 'one child is kept'); hyperHTML.bind(div)`
            ${[]}
            `; - tressa.assert(div.firstChild.childNodes.length === 0, 'dropped all children'); + tressa.assert(/
            <\/div>/.test(div.innerHTML), 'dropped all children'); }) .then(function () { tressa.log('## wire by id'); @@ -379,16 +381,18 @@ tressa.async(function (done) { } }) .then(function () { + if (SKIP_ADOPT) return; tressa.log('## weird .adopt(node) cases'); let wrap = document.createElement('div'); wrap.innerHTML = '
            text
            '; hyperHTML.adopt(wrap)`
            ${' right'}
            `; - tressa.assert(wrap.innerHTML === '
            right
            ', 'right text OK'); + tressa.assert(/
            right<\/div>/.test(wrap.innerHTML), 'right text OK'); + wrap.innerHTML = '
            text
            '; hyperHTML.adopt(wrap)`
            ${'left '}
            `; - tressa.assert(wrap.innerHTML === '
            left
            ', 'left text OK'); + tressa.assert(/
            left <\/div>/.test(wrap.innerHTML), 'left text OK'); wrap.innerHTML = ''; hyperHTML.adopt(wrap)`${'any'}`; - tressa.assert(wrap.innerHTML === 'any', '`${\'virtual\'}` is like `${\'any\'}`'); + tressa.assert(/any/.test(wrap.innerHTML), '`${\'virtual\'}` is like `${\'any\'}`'); wrap.innerHTML = '
            '; hyperHTML.adopt(wrap)`
            ${'virtual'}`; if (SKIP_ADOPT) return; @@ -416,7 +420,7 @@ tressa.async(function (done) { tressa.assert( list.length === 1 && list[0] === li && - result.innerHTML === '
            • first
            ', + /
            • first<\/li><\/ul>/.test(result.innerHTML), 'one element can be adopted' ); result = hyperHTML.adopt(wrap)`
                ${ @@ -428,7 +432,7 @@ tressa.async(function (done) { tressa.assert( list.length === 1 && list[0] === li && - result.innerHTML === '
                • first
                ', + /
                • first<\/li><\/ul>/.test(result.innerHTML), 'even after multiple passes' ); wrap = document.createElement('div'); @@ -441,7 +445,7 @@ tressa.async(function (done) { list = wrap.querySelectorAll('li'); tressa.assert( list.length === 2 && - result.innerHTML === '
                  • new
                  • nodes
                  ', + /
                  • new<\/li>
                  • nodes<\/li><\/ul>/.test(result.innerHTML), 'if not there, elements get created' ); @@ -469,7 +473,7 @@ tressa.async(function (done) { `) }`; tressa.assert( - /]+?)?>\s*\s*<\/rect>\s*<\/svg>/.test(result.innerHTML) && + /]+?)?>\s*\s*<\/rect>\s*<\/svg>/.test(result.innerHTML) && result.querySelector('rect').getAttribute('x') == 1 && result.querySelector('rect').getAttribute('y') == 2, 'svg content can be adopted too' @@ -496,7 +500,7 @@ tressa.async(function (done) { setTimeout(function () { tressa.assert(result !== wrap.innerHTML, 'promises fullfilled'); tressa.assert( - /^

                    any<\/p>virtual


                    12<\/div>34$/.test(wrap.innerHTML), + /^

                    any<\/p>virtual


                    12<\/div>34$/.test(wrap.innerHTML), 'both any and virtual content correct' ); done(); @@ -505,7 +509,17 @@ tressa.async(function (done) { }) .then(function () { tressa.log('## for code coverage sake'); + hyperHTML.MAX_LIST_SIZE = 0; let wrap = document.createElement('div'); + let text = [document.createTextNode('a'), document.createTextNode('b'), document.createTextNode('c')]; + let testingMajinBuu = hyperHTML.bind(wrap); + testingMajinBuu`${[text]}`; + tressa.assert(wrap.textContent === 'abc'); + text[0] = document.createTextNode('c'); + text[2] = document.createTextNode('a'); + testingMajinBuu`${[text]}`; + tressa.assert(wrap.textContent === 'cba'); + let result = hyperHTML.wire()``; tressa.assert(result.nodeType === 8, 'it is a comment'); tressa.assert(result.textContent === 'not hyprHTML', 'correct content'); @@ -619,11 +633,11 @@ tressa.async(function (done) { tressa.log('## any content extras'); var div = document.createElement('div'); hyperHTML.bind(div)`

                    ${undefined}

                    `; - tressa.assert(div.innerHTML === '

                    ', 'expected layout'); + tressa.assert(/

                    <\/p>/.test(div.innerHTML), 'expected layout'); hyperHTML.bind(div)`

                    ${{text: ''}}

                    `; - tressa.assert(div.innerHTML === '

                    <img>

                    ', 'expected text'); + tressa.assert(/

                    <img><\/p>/.test(div.innerHTML), 'expected text'); hyperHTML.bind(div)`

                    ${function () { return ''; }}

                    `; - tressa.assert(div.innerHTML === '

                    <b>

                    ', 'expected callback'); + tressa.assert(/

                    <b><\/p>/.test(div.innerHTML), 'expected callback'); }) .then(function () { tressa.log('## virtual content extras'); @@ -646,7 +660,7 @@ tressa.async(function (done) { hyperHTML.bind(div)`a=${{eUC: 'b c'}}`; tressa.assert(/a=b%20c<[^>]+?>/.test(div.innerHTML), 'expected virtual layout'); hyperHTML.bind(div)`

                    ${{eUC: 'b c'}}

                    `; - tressa.assert(/

                    b%20c<\/p>/.test(div.innerHTML), 'expected layout'); + tressa.assert(/

                    b%20c<\/p>/.test(div.innerHTML), 'expected layout'); }) .then(function () { tressa.log('## attributes with null values'); @@ -706,20 +720,20 @@ tressa.async(function (done) { var vdiv = document.createElement('div'); hyperHTML.bind(div)`

                    ${{eUC: 'b c', placeholder: 'z'}}

                    `; hyperHTML.bind(vdiv)`a=${{eUC: 'b c', placeholder: 'z'}}`; - tressa.assert(/

                    z<\/p>/.test(div.innerHTML), 'expected inner placeholder layout'); + tressa.assert(/

                    z<\/p>/.test(div.innerHTML), 'expected inner placeholder layout'); tressa.assert(/a=z<[^>]+?>/.test(vdiv.innerHTML), 'expected virtual placeholder layout'); setTimeout(function () { - tressa.assert(/

                    b%20c<\/p>/.test(div.innerHTML), 'expected inner resolved layout'); + tressa.assert(/

                    b%20c<\/p>/.test(div.innerHTML), 'expected inner resolved layout'); tressa.assert(/a=b%20c<[^>]+?>/.test(vdiv.innerHTML), 'expected virtual resolved layout'); hyperHTML.bind(div)`

                    ${{text: 1, placeholder: '9'}}

                    `; setTimeout(function () { - tressa.assert(/

                    1<\/p>/.test(div.innerHTML), 'placeholder with text'); + tressa.assert(/

                    1<\/p>/.test(div.innerHTML), 'placeholder with text'); hyperHTML.bind(div)`

                    ${{any: [1, 2], placeholder: '9'}}

                    `; setTimeout(function () { - tressa.assert(/

                    12<\/p>/.test(div.innerHTML), 'placeholder with any'); + tressa.assert(/

                    12<\/p>/.test(div.innerHTML), 'placeholder with any'); hyperHTML.bind(div)`

                    ${{html: '3', placeholder: '9'}}

                    `; setTimeout(function () { - tressa.assert(/

                    3<\/b><\/p>/.test(div.innerHTML), 'placeholder with html'); + tressa.assert(/

                    3<\/b><\/p>/.test(div.innerHTML), 'placeholder with html'); done(); }, 10); }, 10); diff --git a/test/value.html b/test/value.html index b3a4c6ef..d2bb3a40 100644 --- a/test/value.html +++ b/test/value.html @@ -1,7 +1,7 @@ - + + + + + + + +

                    + + \ No newline at end of file From 9cf4ad8d55e074c1217aca86eed723312b018274 Mon Sep 17 00:00:00 2001 From: Andrea Giammarchi Date: Thu, 7 Sep 2017 10:49:38 +0100 Subject: [PATCH 3/4] after merge latest majinbuu --- coverage/coverage.json | 1 + coverage/lcov-report/hyperHTML/index.html | 93 ++ coverage/lcov-report/hyperHTML/index.js.html | 113 +- coverage/lcov-report/index.html | 93 ++ coverage/lcov.info | 1131 ++++++++++++++++++ index.js | 64 +- min.js | 3 + package-lock.json | 8 +- package.json | 2 +- 9 files changed, 1417 insertions(+), 91 deletions(-) diff --git a/coverage/coverage.json b/coverage/coverage.json index e69de29b..18fb0191 100644 --- a/coverage/coverage.json +++ b/coverage/coverage.json @@ -0,0 +1 @@ +{"/home/webreflection/code/hyperHTML/index.js":{"path":"/home/webreflection/code/hyperHTML/index.js","s":{"1":2,"2":2,"3":2,"4":1,"5":20,"6":2,"7":28,"8":32,"9":32,"10":32,"11":32,"12":2,"13":1,"14":210,"15":2,"16":2,"17":2,"18":2,"19":2,"20":1,"21":62,"22":2,"23":1,"24":2,"25":6,"26":6,"27":6,"28":4,"29":6,"30":6,"31":6,"32":11,"33":6,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":1,"46":104,"47":104,"48":104,"49":2,"50":88,"51":50,"52":88,"53":88,"54":88,"55":48,"56":34,"57":14,"58":14,"59":38,"60":48,"61":88,"62":1,"63":282,"64":282,"65":156,"66":156,"67":282,"68":282,"69":1,"70":48,"71":48,"72":12,"73":48,"74":24,"75":48,"76":30,"77":18,"78":4,"79":18,"80":18,"81":16,"82":20,"83":16,"84":16,"85":14,"86":4,"87":4,"88":10,"89":48,"90":36,"91":36,"92":34,"93":4,"94":2,"95":2,"96":30,"97":30,"98":2,"99":2,"100":1,"101":4,"102":4,"103":6,"104":4,"105":4,"106":1,"107":104,"108":104,"109":286,"110":114,"111":114,"112":46,"113":28,"114":28,"115":68,"116":68,"117":2,"118":66,"119":114,"120":4,"121":4,"122":168,"123":6,"124":6,"125":6,"126":162,"127":2,"128":162,"129":162,"130":78,"131":78,"132":4,"133":74,"134":24,"135":24,"136":10,"137":10,"138":12,"139":10,"140":10,"141":40,"142":12,"143":40,"144":4,"145":4,"146":36,"147":78,"148":4,"149":36,"150":36,"151":84,"152":24,"153":60,"154":4,"155":56,"156":10,"157":46,"158":4,"159":42,"160":4,"161":38,"162":28,"163":28,"164":28,"165":28,"166":28,"167":10,"168":4,"169":6,"170":162,"171":1,"172":118,"173":56,"174":56,"175":48,"176":48,"177":1,"178":228,"179":322,"180":322,"181":118,"182":118,"183":118,"184":66,"185":64,"186":64,"187":66,"188":138,"189":4,"190":4,"191":138,"192":2,"193":2,"194":2,"195":2,"196":2,"197":2,"198":2,"199":2,"200":2,"201":1,"202":1,"203":206,"204":2,"205":2,"206":2,"207":1,"208":4,"209":1,"210":2,"211":1,"212":62,"213":90,"214":90,"215":66,"216":62,"217":1,"218":142,"219":1,"220":138,"221":1,"222":136,"223":136,"224":136,"225":136,"226":136,"227":136,"228":64,"229":64,"230":136,"231":1,"232":1,"233":1,"234":135,"235":135,"236":72,"237":63,"238":136,"239":1,"240":2,"241":2,"242":2,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":2,"250":1,"251":72,"252":1,"253":4,"254":4,"255":4,"256":1,"257":46,"258":46,"259":4,"260":4,"261":2,"262":46,"263":1,"264":10,"265":10,"266":2,"267":8,"268":2,"269":6,"270":2,"271":4,"272":1,"273":10,"274":10,"275":8,"276":1,"277":84,"278":1,"279":100,"280":1,"281":6,"282":6,"283":42,"284":18,"285":1,"286":156,"287":24,"288":1,"289":156,"290":156,"291":104,"292":104,"293":48,"294":48,"295":4,"296":4,"297":156,"298":1,"299":116,"300":2,"301":2,"302":164,"303":90,"304":2,"305":1,"306":1,"307":78,"308":55,"309":2,"310":1,"311":1,"312":1,"313":101,"314":2,"315":21,"316":2,"317":2,"318":2,"319":1,"320":206,"321":206,"322":2,"323":69,"324":5,"325":6,"326":2,"327":162,"328":390,"329":390,"330":205,"331":162,"332":101,"333":2,"334":82,"335":137,"336":137,"337":61,"338":61,"339":76,"340":76,"341":82,"342":82,"343":137,"344":82,"345":2,"346":2,"347":2,"348":38,"349":2,"350":48,"351":2,"352":2,"353":2,"354":2,"355":2,"356":2,"357":2,"358":2,"359":206,"360":144,"361":206,"362":62,"363":2,"364":21,"365":15,"366":6,"367":15,"368":21,"369":2,"370":18,"371":12,"372":4,"373":14,"374":18,"375":1,"376":40,"377":40,"378":10,"379":10,"380":1,"381":36,"382":10,"383":26,"384":1,"385":46,"386":82,"387":8,"388":8,"389":6,"390":8,"391":8,"392":36,"393":36,"394":36,"395":36,"396":36,"397":36,"398":36,"399":36,"400":26,"401":26,"402":4,"403":10,"404":10,"405":36,"406":36,"407":6,"408":30,"409":36,"410":30,"411":36,"412":38,"413":38,"414":38,"415":46,"416":1,"417":32,"418":46,"419":46,"420":46,"421":32,"422":32,"423":1,"424":110,"425":110,"426":110,"427":110,"428":110,"429":110,"430":1,"431":116,"432":116,"433":116,"434":4,"435":4,"436":64,"437":64,"438":64,"439":48,"440":48,"441":48,"442":116,"443":92,"444":116,"445":1,"446":124,"447":110,"448":110,"449":124,"450":124,"451":1,"452":282,"453":300,"454":1,"455":156,"456":156,"457":156,"458":156,"459":124,"460":124,"461":124,"462":124,"463":32,"464":156,"465":1,"466":60,"467":1,"468":60,"469":60,"470":60,"471":1,"472":90,"473":62,"474":62,"475":8,"476":62,"477":90,"478":60,"479":14,"480":14,"481":14,"482":10,"483":10,"484":10,"485":14,"486":10,"487":2,"488":2,"489":2,"490":8,"491":2,"492":8,"493":14,"494":14,"495":14,"496":76,"497":76,"498":52,"499":52,"500":52,"501":76,"502":76,"503":1,"504":46,"505":46,"506":46,"507":46,"508":12,"509":12,"510":46,"511":24,"512":24,"513":46,"514":2,"515":2,"516":2,"517":1,"518":60,"519":60,"520":26,"521":24,"522":26,"523":34,"524":4,"525":4,"526":30,"527":2,"528":104,"529":104,"530":88,"531":88,"532":88,"533":88,"534":104,"535":2,"536":1,"537":30,"538":30,"539":30,"540":30,"541":30,"542":30,"543":30,"544":30,"545":30,"546":30,"547":30,"548":30,"549":30,"550":50,"551":30,"552":46,"553":46,"554":46,"555":46,"556":46,"557":84,"558":84,"559":84,"560":84,"561":84,"562":46,"563":30,"564":1,"565":28,"566":1,"567":30,"568":30,"569":50,"570":50,"571":50,"572":50,"573":50,"574":50,"575":50,"576":42,"577":42,"578":42,"579":16,"580":8,"581":6,"582":6,"583":2,"584":2,"585":30,"586":2,"587":30,"588":2,"589":30,"590":1,"591":30,"592":30,"593":20,"594":20,"595":8,"596":8,"597":2,"598":2,"599":6,"600":6,"601":6,"602":8,"603":20,"604":2,"605":2},"b":{"1":[14,6],"2":[2,12],"3":[2,10],"4":[2,8],"5":[4,4],"6":[2,4],"7":[14,48],"8":[6,42],"9":[6,2],"10":[42,16],"11":[6,4,4],"12":[2,4],"13":[138,56],"14":[48,40],"15":[34,14],"16":[48,44],"17":[156,126],"18":[282,166],"19":[48,46,20],"20":[14,34],"21":[48,34],"22":[12,36],"23":[48,14],"24":[24,24],"25":[14,34],"26":[18,12],"27":[4,14],"28":[16,2],"29":[10,24],"30":[16,4],"31":[14,2],"32":[4,10],"33":[36,12],"34":[34,2],"35":[4,30],"36":[2,2],"37":[2,28],"38":[4,2],"39":[100,112,114,4,164,168,162],"40":[46,68],"41":[114,48],"42":[28,18],"43":[2,66],"44":[6,162],"45":[2,160],"46":[78,84],"47":[4,74],"48":[16,24,24,10,40,36],"49":[12,28],"50":[4,36],"51":[4,74],"52":[24,60],"53":[8,16],"54":[4,56],"55":[10,46],"56":[4,42],"57":[4,38],"58":[28,10],"59":[4,6],"60":[48,8],"61":[118,66,138],"62":[64,2],"63":[4,134],"64":[138,4],"65":[2,1,1],"66":[1,1],"67":[2,2],"68":[66,24],"69":[90,38],"70":[54,8],"71":[2,136],"72":[64,72],"73":[1,135],"74":[72,63],"75":[1,1],"76":[2,1],"77":[4,4],"78":[4,4],"79":[4,42],"80":[46,46],"81":[2,2],"82":[46,46],"83":[2,8],"84":[2,6],"85":[2,4],"86":[8,2],"87":[100,100],"88":[42,14],"89":[104,48,4],"90":[1,1],"91":[1,1],"92":[2,1],"93":[2,1],"94":[206,55],"95":[1,1],"96":[1,1],"97":[2,1],"98":[205,185],"99":[1,1],"100":[2,1],"101":[61,76],"102":[48,22],"103":[48,22],"104":[1,1],"105":[1,1],"106":[6,9],"107":[1,1],"108":[4,8],"109":[10,30],"110":[40,16],"111":[10,26],"112":[8,36,38],"113":[6,2],"114":[8,28],"115":[10,26],"116":[26,4,10],"117":[6,30],"118":[30,6],"119":[38,8],"120":[4,4,64,16,48],"121":[156,110],"122":[124,32],"123":[8,52],"124":[62,28],"125":[8,54],"126":[8,52],"127":[10,4],"128":[10,4],"129":[2,8],"130":[2,6],"131":[52,24],"132":[12,34],"133":[12,12],"134":[24,22],"135":[46,26],"136":[1,1],"137":[60,34],"138":[26,34],"139":[60,34],"140":[24,2],"141":[26,2],"142":[4,30],"143":[30,54],"144":[18,66],"145":[10,8],"146":[16,50],"147":[80,52],"148":[42,8],"149":[50,44,42],"150":[16,26],"151":[6,2],"152":[8,6],"153":[20,10],"154":[2,6],"155":[8,4,2],"156":[2,4],"157":[2,2]},"f":{"1":2,"2":20,"3":28,"4":32,"5":210,"6":2,"7":2,"8":62,"9":14,"10":6,"11":6,"12":4,"13":6,"14":104,"15":88,"16":282,"17":48,"18":30,"19":20,"20":48,"21":4,"22":6,"23":104,"24":286,"25":118,"26":228,"27":2,"28":2,"29":206,"30":4,"31":2,"32":62,"33":142,"34":138,"35":136,"36":2,"37":72,"38":4,"39":46,"40":10,"41":10,"42":84,"43":100,"44":6,"45":42,"46":18,"47":156,"48":156,"49":116,"50":2,"51":164,"52":90,"53":1,"54":78,"55":55,"56":1,"57":101,"58":21,"59":206,"60":69,"61":5,"62":162,"63":101,"64":82,"65":82,"66":38,"67":48,"68":2,"69":206,"70":62,"71":21,"72":21,"73":18,"74":18,"75":40,"76":36,"77":46,"78":32,"79":110,"80":116,"81":124,"82":282,"83":156,"84":60,"85":60,"86":90,"87":14,"88":14,"89":76,"90":46,"91":2,"92":60,"93":104,"94":88,"95":30,"96":28,"97":30,"98":30},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":53}}},"2":{"name":"hyper","line":16,"loc":{"start":{"line":16,"column":2},"end":{"line":16,"column":23}}},"3":{"name":"adopt","line":38,"loc":{"start":{"line":38,"column":16},"end":{"line":38,"column":37}}},"4":{"name":"(anonymous_4)","line":39,"loc":{"start":{"line":39,"column":11},"end":{"line":39,"column":23}}},"5":{"name":"bind","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":25}}},"6":{"name":"define","line":53,"loc":{"start":{"line":53,"column":17},"end":{"line":53,"column":56}}},"7":{"name":"escape","line":58,"loc":{"start":{"line":58,"column":17},"end":{"line":58,"column":39}}},"8":{"name":"wire","line":65,"loc":{"start":{"line":65,"column":2},"end":{"line":65,"column":27}}},"9":{"name":"Component","line":79,"loc":{"start":{"line":79,"column":2},"end":{"line":79,"column":23}}},"10":{"name":"(anonymous_10)","line":84,"loc":{"start":{"line":84,"column":27},"end":{"line":84,"column":40}}},"11":{"name":"(anonymous_11)","line":97,"loc":{"start":{"line":97,"column":33},"end":{"line":97,"column":45}}},"12":{"name":"(anonymous_12)","line":99,"loc":{"start":{"line":99,"column":26},"end":{"line":99,"column":38}}},"13":{"name":"(anonymous_13)","line":101,"loc":{"start":{"line":101,"column":24},"end":{"line":101,"column":41}}},"14":{"name":"Aura","line":141,"loc":{"start":{"line":141,"column":2},"end":{"line":141,"column":34}}},"15":{"name":"splice","line":147,"loc":{"start":{"line":147,"column":26},"end":{"line":147,"column":62}}},"16":{"name":"render","line":181,"loc":{"start":{"line":181,"column":2},"end":{"line":181,"column":28}}},"17":{"name":"setAttribute","line":198,"loc":{"start":{"line":198,"column":2},"end":{"line":198,"column":59}}},"18":{"name":"eventAttr","line":212,"loc":{"start":{"line":212,"column":6},"end":{"line":212,"column":35}}},"19":{"name":"specialAttr","line":220,"loc":{"start":{"line":220,"column":8},"end":{"line":220,"column":39}}},"20":{"name":"normalAttr","line":240,"loc":{"start":{"line":240,"column":8},"end":{"line":240,"column":38}}},"21":{"name":"setTextContent","line":266,"loc":{"start":{"line":266,"column":2},"end":{"line":266,"column":32}}},"22":{"name":"(anonymous_22)","line":268,"loc":{"start":{"line":268,"column":11},"end":{"line":268,"column":28}}},"23":{"name":"setAnyContent","line":278,"loc":{"start":{"line":278,"column":2},"end":{"line":278,"column":49}}},"24":{"name":"anyContent","line":280,"loc":{"start":{"line":280,"column":11},"end":{"line":280,"column":38}}},"25":{"name":"attributesSeeker","line":394,"loc":{"start":{"line":394,"column":2},"end":{"line":394,"column":48}}},"26":{"name":"hyperSeeker","line":420,"loc":{"start":{"line":420,"column":2},"end":{"line":420,"column":43}}},"27":{"name":"(anonymous_27)","line":466,"loc":{"start":{"line":466,"column":13},"end":{"line":466,"column":25}}},"28":{"name":"(anonymous_28)","line":479,"loc":{"start":{"line":479,"column":11},"end":{"line":479,"column":31}}},"29":{"name":"(anonymous_29)","line":481,"loc":{"start":{"line":481,"column":14},"end":{"line":481,"column":27}}},"30":{"name":"fnEscape","line":500,"loc":{"start":{"line":500,"column":2},"end":{"line":500,"column":23}}},"31":{"name":"asHTML","line":505,"loc":{"start":{"line":505,"column":2},"end":{"line":505,"column":24}}},"32":{"name":"createContent","line":510,"loc":{"start":{"line":510,"column":2},"end":{"line":510,"column":31}}},"33":{"name":"createDocumentFragment","line":531,"loc":{"start":{"line":531,"column":2},"end":{"line":531,"column":44}}},"34":{"name":"createFragment","line":537,"loc":{"start":{"line":537,"column":2},"end":{"line":537,"column":38}}},"35":{"name":"createHTMLFragment","line":546,"loc":{"start":{"line":546,"column":2},"end":{"line":546,"column":42}}},"36":{"name":"createSVGFragment","line":582,"loc":{"start":{"line":582,"column":2},"end":{"line":582,"column":41}}},"37":{"name":"createText","line":598,"loc":{"start":{"line":598,"column":2},"end":{"line":598,"column":34}}},"38":{"name":"getCEClass","line":604,"loc":{"start":{"line":604,"column":2},"end":{"line":604,"column":28}}},"39":{"name":"isSpecialAttribute","line":612,"loc":{"start":{"line":612,"column":2},"end":{"line":612,"column":42}}},"40":{"name":"invokeAtDistance","line":622,"loc":{"start":{"line":622,"column":2},"end":{"line":622,"column":45}}},"41":{"name":"invokeTransformer","line":636,"loc":{"start":{"line":636,"column":2},"end":{"line":636,"column":37}}},"42":{"name":"isNode_ish","line":645,"loc":{"start":{"line":645,"column":2},"end":{"line":645,"column":29}}},"43":{"name":"isPromise_ish","line":650,"loc":{"start":{"line":650,"column":2},"end":{"line":650,"column":32}}},"44":{"name":"lazyGetter","line":656,"loc":{"start":{"line":656,"column":2},"end":{"line":656,"column":32}}},"45":{"name":"(anonymous_45)","line":659,"loc":{"start":{"line":659,"column":11},"end":{"line":659,"column":23}}},"46":{"name":"(anonymous_46)","line":662,"loc":{"start":{"line":662,"column":11},"end":{"line":662,"column":28}}},"47":{"name":"removeAttributeList","line":669,"loc":{"start":{"line":669,"column":2},"end":{"line":669,"column":37}}},"48":{"name":"setContent","line":676,"loc":{"start":{"line":676,"column":2},"end":{"line":676,"column":66}}},"49":{"name":"Path","line":694,"loc":{"start":{"line":694,"column":2},"end":{"line":694,"column":34}}},"50":{"name":"(anonymous_50)","line":704,"loc":{"start":{"line":704,"column":6},"end":{"line":704,"column":18}}},"51":{"name":"(anonymous_51)","line":706,"loc":{"start":{"line":706,"column":15},"end":{"line":706,"column":30}}},"52":{"name":"(anonymous_52)","line":707,"loc":{"start":{"line":707,"column":15},"end":{"line":707,"column":37}}},"53":{"name":"(anonymous_53)","line":719,"loc":{"start":{"line":719,"column":6},"end":{"line":719,"column":18}}},"54":{"name":"(anonymous_54)","line":722,"loc":{"start":{"line":722,"column":15},"end":{"line":722,"column":30}}},"55":{"name":"(anonymous_55)","line":728,"loc":{"start":{"line":728,"column":15},"end":{"line":728,"column":37}}},"56":{"name":"(anonymous_56)","line":739,"loc":{"start":{"line":739,"column":17},"end":{"line":739,"column":29}}},"57":{"name":"(anonymous_57)","line":744,"loc":{"start":{"line":744,"column":25},"end":{"line":744,"column":38}}},"58":{"name":"(anonymous_58)","line":751,"loc":{"start":{"line":751,"column":14},"end":{"line":751,"column":26}}},"59":{"name":"unique","line":765,"loc":{"start":{"line":765,"column":2},"end":{"line":765,"column":28}}},"60":{"name":"(anonymous_60)","line":773,"loc":{"start":{"line":773,"column":6},"end":{"line":773,"column":34}}},"61":{"name":"appendNodes","line":776,"loc":{"start":{"line":776,"column":6},"end":{"line":776,"column":45}}},"62":{"name":"(anonymous_62)","line":788,"loc":{"start":{"line":788,"column":6},"end":{"line":788,"column":22}}},"63":{"name":"(anonymous_63)","line":802,"loc":{"start":{"line":802,"column":6},"end":{"line":802,"column":22}}},"64":{"name":"(anonymous_64)","line":807,"loc":{"start":{"line":807,"column":6},"end":{"line":807,"column":34}}},"65":{"name":"(anonymous_65)","line":821,"loc":{"start":{"line":821,"column":6},"end":{"line":821,"column":34}}},"66":{"name":"(anonymous_66)","line":831,"loc":{"start":{"line":831,"column":17},"end":{"line":831,"column":43}}},"67":{"name":"(anonymous_67)","line":835,"loc":{"start":{"line":835,"column":26},"end":{"line":835,"column":48}}},"68":{"name":"(anonymous_68)","line":853,"loc":{"start":{"line":853,"column":19},"end":{"line":853,"column":31}}},"69":{"name":"(anonymous_69)","line":857,"loc":{"start":{"line":857,"column":6},"end":{"line":857,"column":22}}},"70":{"name":"(anonymous_70)","line":868,"loc":{"start":{"line":868,"column":6},"end":{"line":868,"column":26}}},"71":{"name":"(anonymous_71)","line":879,"loc":{"start":{"line":879,"column":4},"end":{"line":879,"column":20}}},"72":{"name":"(anonymous_72)","line":885,"loc":{"start":{"line":885,"column":4},"end":{"line":885,"column":20}}},"73":{"name":"(anonymous_73)","line":888,"loc":{"start":{"line":888,"column":4},"end":{"line":888,"column":20}}},"74":{"name":"(anonymous_74)","line":894,"loc":{"start":{"line":894,"column":4},"end":{"line":894,"column":20}}},"75":{"name":"removePreviousText","line":897,"loc":{"start":{"line":897,"column":2},"end":{"line":897,"column":48}}},"76":{"name":"insertBefore","line":906,"loc":{"start":{"line":906,"column":2},"end":{"line":906,"column":51}}},"77":{"name":"discoverNode","line":916,"loc":{"start":{"line":916,"column":2},"end":{"line":916,"column":63}}},"78":{"name":"discoverUpdates","line":995,"loc":{"start":{"line":995,"column":2},"end":{"line":995,"column":44}}},"79":{"name":"createTemplate","line":1022,"loc":{"start":{"line":1022,"column":2},"end":{"line":1022,"column":36}}},"80":{"name":"createPath","line":1034,"loc":{"start":{"line":1034,"column":2},"end":{"line":1034,"column":28}}},"81":{"name":"createUpdates","line":1068,"loc":{"start":{"line":1068,"column":2},"end":{"line":1068,"column":42}}},"82":{"name":"update","line":1089,"loc":{"start":{"line":1089,"column":2},"end":{"line":1089,"column":20}}},"83":{"name":"upgrade","line":1097,"loc":{"start":{"line":1097,"column":2},"end":{"line":1097,"column":29}}},"84":{"name":"wireContent","line":1118,"loc":{"start":{"line":1118,"column":2},"end":{"line":1118,"column":29}}},"85":{"name":"before","line":1121,"loc":{"start":{"line":1121,"column":4},"end":{"line":1121,"column":30}}},"86":{"name":"after","line":1129,"loc":{"start":{"line":1129,"column":4},"end":{"line":1129,"column":21}}},"87":{"name":"adopt","line":1141,"loc":{"start":{"line":1141,"column":6},"end":{"line":1141,"column":30}}},"88":{"name":"(anonymous_88)","line":1147,"loc":{"start":{"line":1147,"column":20},"end":{"line":1147,"column":55}}},"89":{"name":"update","line":1168,"loc":{"start":{"line":1168,"column":6},"end":{"line":1168,"column":31}}},"90":{"name":"wireWeakly","line":1181,"loc":{"start":{"line":1181,"column":2},"end":{"line":1181,"column":33}}},"91":{"name":"(anonymous_91)","line":1212,"loc":{"start":{"line":1212,"column":12},"end":{"line":1212,"column":24}}},"92":{"name":"majinbuu","line":1226,"loc":{"start":{"line":1226,"column":2},"end":{"line":1226,"column":40}}},"93":{"name":"aura","line":1254,"loc":{"start":{"line":1254,"column":18},"end":{"line":1254,"column":47}}},"94":{"name":"hodor","line":1256,"loc":{"start":{"line":1256,"column":18},"end":{"line":1256,"column":35}}},"95":{"name":"levenstein","line":1273,"loc":{"start":{"line":1273,"column":2},"end":{"line":1273,"column":32}}},"96":{"name":"addOperation","line":1309,"loc":{"start":{"line":1309,"column":2},"end":{"line":1309,"column":56}}},"97":{"name":"getOperations","line":1320,"loc":{"start":{"line":1320,"column":2},"end":{"line":1320,"column":37}}},"98":{"name":"performOperations","line":1363,"loc":{"start":{"line":1363,"column":2},"end":{"line":1363,"column":49}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":1402,"column":6}},"2":{"start":{"line":11,"column":2},"end":{"line":11,"column":34}},"3":{"start":{"line":14,"column":2},"end":{"line":14,"column":22}},"4":{"start":{"line":16,"column":2},"end":{"line":33,"column":3}},"5":{"start":{"line":17,"column":4},"end":{"line":32,"column":31}},"6":{"start":{"line":38,"column":2},"end":{"line":45,"column":4}},"7":{"start":{"line":39,"column":4},"end":{"line":44,"column":6}},"8":{"start":{"line":40,"column":6},"end":{"line":40,"column":26}},"9":{"start":{"line":41,"column":6},"end":{"line":41,"column":36}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":25}},"11":{"start":{"line":43,"column":6},"end":{"line":43,"column":18}},"12":{"start":{"line":49,"column":2},"end":{"line":49,"column":20}},"13":{"start":{"line":50,"column":2},"end":{"line":50,"column":57}},"14":{"start":{"line":50,"column":27},"end":{"line":50,"column":55}},"15":{"start":{"line":53,"column":2},"end":{"line":55,"column":4}},"16":{"start":{"line":54,"column":4},"end":{"line":54,"column":41}},"17":{"start":{"line":58,"column":2},"end":{"line":60,"column":4}},"18":{"start":{"line":59,"column":4},"end":{"line":59,"column":46}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":20}},"20":{"start":{"line":65,"column":2},"end":{"line":72,"column":3}},"21":{"start":{"line":66,"column":4},"end":{"line":71,"column":8}},"22":{"start":{"line":78,"column":2},"end":{"line":78,"column":30}},"23":{"start":{"line":79,"column":2},"end":{"line":79,"column":25}},"24":{"start":{"line":80,"column":2},"end":{"line":111,"column":4}},"25":{"start":{"line":86,"column":8},"end":{"line":86,"column":33}},"26":{"start":{"line":87,"column":8},"end":{"line":90,"column":13}},"27":{"start":{"line":97,"column":47},"end":{"line":97,"column":72}},"28":{"start":{"line":99,"column":40},"end":{"line":99,"column":50}},"29":{"start":{"line":102,"column":8},"end":{"line":102,"column":32}},"30":{"start":{"line":103,"column":8},"end":{"line":103,"column":84}},"31":{"start":{"line":104,"column":8},"end":{"line":104,"column":58}},"32":{"start":{"line":104,"column":32},"end":{"line":104,"column":58}},"33":{"start":{"line":105,"column":8},"end":{"line":105,"column":22}},"34":{"start":{"line":122,"column":2},"end":{"line":122,"column":23}},"35":{"start":{"line":123,"column":2},"end":{"line":123,"column":25}},"36":{"start":{"line":124,"column":2},"end":{"line":124,"column":20}},"37":{"start":{"line":125,"column":2},"end":{"line":125,"column":23}},"38":{"start":{"line":126,"column":2},"end":{"line":126,"column":34}},"39":{"start":{"line":129,"column":2},"end":{"line":129,"column":44}},"40":{"start":{"line":130,"column":2},"end":{"line":130,"column":51}},"41":{"start":{"line":132,"column":2},"end":{"line":132,"column":40}},"42":{"start":{"line":133,"column":2},"end":{"line":133,"column":27}},"43":{"start":{"line":134,"column":2},"end":{"line":134,"column":61}},"44":{"start":{"line":135,"column":2},"end":{"line":135,"column":34}},"45":{"start":{"line":141,"column":2},"end":{"line":145,"column":3}},"46":{"start":{"line":142,"column":4},"end":{"line":142,"column":21}},"47":{"start":{"line":143,"column":4},"end":{"line":143,"column":33}},"48":{"start":{"line":144,"column":4},"end":{"line":144,"column":43}},"49":{"start":{"line":147,"column":2},"end":{"line":174,"column":4}},"50":{"start":{"line":148,"column":4},"end":{"line":159,"column":5}},"51":{"start":{"line":158,"column":6},"end":{"line":158,"column":28}},"52":{"start":{"line":160,"column":4},"end":{"line":160,"column":10}},"53":{"start":{"line":161,"column":4},"end":{"line":161,"column":30}},"54":{"start":{"line":162,"column":4},"end":{"line":172,"column":5}},"55":{"start":{"line":163,"column":6},"end":{"line":170,"column":7}},"56":{"start":{"line":164,"column":8},"end":{"line":164,"column":27}},"57":{"start":{"line":166,"column":8},"end":{"line":166,"column":55}},"58":{"start":{"line":167,"column":8},"end":{"line":169,"column":9}},"59":{"start":{"line":168,"column":10},"end":{"line":168,"column":42}},"60":{"start":{"line":171,"column":6},"end":{"line":171,"column":42}},"61":{"start":{"line":173,"column":4},"end":{"line":173,"column":42}},"62":{"start":{"line":181,"column":2},"end":{"line":192,"column":3}},"63":{"start":{"line":182,"column":4},"end":{"line":182,"column":33}},"64":{"start":{"line":183,"column":4},"end":{"line":189,"column":5}},"65":{"start":{"line":187,"column":6},"end":{"line":187,"column":45}},"66":{"start":{"line":188,"column":6},"end":{"line":188,"column":30}},"67":{"start":{"line":190,"column":4},"end":{"line":190,"column":43}},"68":{"start":{"line":191,"column":4},"end":{"line":191,"column":16}},"69":{"start":{"line":198,"column":2},"end":{"line":263,"column":3}},"70":{"start":{"line":199,"column":4},"end":{"line":208,"column":5}},"71":{"start":{"line":209,"column":4},"end":{"line":209,"column":73}},"72":{"start":{"line":209,"column":47},"end":{"line":209,"column":73}},"73":{"start":{"line":210,"column":4},"end":{"line":210,"column":51}},"74":{"start":{"line":210,"column":17},"end":{"line":210,"column":51}},"75":{"start":{"line":211,"column":4},"end":{"line":262,"column":8}},"76":{"start":{"line":213,"column":8},"end":{"line":217,"column":9}},"77":{"start":{"line":214,"column":10},"end":{"line":214,"column":72}},"78":{"start":{"line":214,"column":24},"end":{"line":214,"column":72}},"79":{"start":{"line":215,"column":10},"end":{"line":215,"column":30}},"80":{"start":{"line":216,"column":10},"end":{"line":216,"column":69}},"81":{"start":{"line":216,"column":24},"end":{"line":216,"column":69}},"82":{"start":{"line":221,"column":10},"end":{"line":238,"column":11}},"83":{"start":{"line":222,"column":12},"end":{"line":222,"column":32}},"84":{"start":{"line":225,"column":12},"end":{"line":237,"column":13}},"85":{"start":{"line":229,"column":14},"end":{"line":236,"column":15}},"86":{"start":{"line":232,"column":16},"end":{"line":232,"column":34}},"87":{"start":{"line":233,"column":16},"end":{"line":233,"column":43}},"88":{"start":{"line":235,"column":16},"end":{"line":235,"column":38}},"89":{"start":{"line":241,"column":10},"end":{"line":260,"column":11}},"90":{"start":{"line":242,"column":12},"end":{"line":242,"column":32}},"91":{"start":{"line":245,"column":12},"end":{"line":259,"column":13}},"92":{"start":{"line":246,"column":14},"end":{"line":258,"column":15}},"93":{"start":{"line":247,"column":16},"end":{"line":251,"column":17}},"94":{"start":{"line":249,"column":18},"end":{"line":249,"column":33}},"95":{"start":{"line":250,"column":18},"end":{"line":250,"column":54}},"96":{"start":{"line":253,"column":16},"end":{"line":253,"column":43}},"97":{"start":{"line":254,"column":16},"end":{"line":257,"column":17}},"98":{"start":{"line":255,"column":18},"end":{"line":255,"column":34}},"99":{"start":{"line":256,"column":18},"end":{"line":256,"column":51}},"100":{"start":{"line":266,"column":2},"end":{"line":274,"column":3}},"101":{"start":{"line":267,"column":4},"end":{"line":267,"column":17}},"102":{"start":{"line":268,"column":4},"end":{"line":273,"column":6}},"103":{"start":{"line":269,"column":6},"end":{"line":272,"column":7}},"104":{"start":{"line":270,"column":8},"end":{"line":270,"column":25}},"105":{"start":{"line":271,"column":8},"end":{"line":271,"column":33}},"106":{"start":{"line":278,"column":2},"end":{"line":387,"column":3}},"107":{"start":{"line":279,"column":4},"end":{"line":279,"column":17}},"108":{"start":{"line":280,"column":4},"end":{"line":386,"column":6}},"109":{"start":{"line":281,"column":6},"end":{"line":385,"column":7}},"110":{"start":{"line":285,"column":10},"end":{"line":285,"column":41}},"111":{"start":{"line":286,"column":10},"end":{"line":304,"column":11}},"112":{"start":{"line":290,"column":12},"end":{"line":293,"column":13}},"113":{"start":{"line":291,"column":14},"end":{"line":291,"column":31}},"114":{"start":{"line":292,"column":14},"end":{"line":292,"column":48}},"115":{"start":{"line":295,"column":12},"end":{"line":295,"column":29}},"116":{"start":{"line":296,"column":12},"end":{"line":303,"column":13}},"117":{"start":{"line":297,"column":14},"end":{"line":297,"column":62}},"118":{"start":{"line":299,"column":14},"end":{"line":302,"column":16}},"119":{"start":{"line":305,"column":10},"end":{"line":305,"column":16}},"120":{"start":{"line":307,"column":10},"end":{"line":307,"column":60}},"121":{"start":{"line":308,"column":10},"end":{"line":308,"column":16}},"122":{"start":{"line":311,"column":10},"end":{"line":317,"column":11}},"123":{"start":{"line":312,"column":12},"end":{"line":312,"column":29}},"124":{"start":{"line":313,"column":12},"end":{"line":313,"column":27}},"125":{"start":{"line":314,"column":12},"end":{"line":314,"column":18}},"126":{"start":{"line":315,"column":17},"end":{"line":317,"column":11}},"127":{"start":{"line":316,"column":12},"end":{"line":316,"column":35}},"128":{"start":{"line":319,"column":10},"end":{"line":319,"column":27}},"129":{"start":{"line":320,"column":10},"end":{"line":383,"column":11}},"130":{"start":{"line":321,"column":12},"end":{"line":321,"column":38}},"131":{"start":{"line":322,"column":12},"end":{"line":356,"column":13}},"132":{"start":{"line":323,"column":14},"end":{"line":323,"column":29}},"133":{"start":{"line":325,"column":14},"end":{"line":355,"column":15}},"134":{"start":{"line":329,"column":18},"end":{"line":329,"column":44}},"135":{"start":{"line":330,"column":18},"end":{"line":330,"column":24}},"136":{"start":{"line":332,"column":18},"end":{"line":332,"column":51}},"137":{"start":{"line":333,"column":18},"end":{"line":335,"column":19}},"138":{"start":{"line":334,"column":20},"end":{"line":334,"column":67}},"139":{"start":{"line":336,"column":18},"end":{"line":336,"column":60}},"140":{"start":{"line":337,"column":18},"end":{"line":337,"column":24}},"141":{"start":{"line":339,"column":18},"end":{"line":341,"column":19}},"142":{"start":{"line":340,"column":20},"end":{"line":340,"column":58}},"143":{"start":{"line":342,"column":18},"end":{"line":351,"column":19}},"144":{"start":{"line":343,"column":20},"end":{"line":343,"column":56}},"145":{"start":{"line":344,"column":20},"end":{"line":344,"column":26}},"146":{"start":{"line":346,"column":20},"end":{"line":350,"column":21}},"147":{"start":{"line":347,"column":22},"end":{"line":349,"column":23}},"148":{"start":{"line":348,"column":24},"end":{"line":348,"column":53}},"149":{"start":{"line":353,"column":18},"end":{"line":353,"column":61}},"150":{"start":{"line":354,"column":18},"end":{"line":354,"column":24}},"151":{"start":{"line":357,"column":17},"end":{"line":383,"column":11}},"152":{"start":{"line":358,"column":12},"end":{"line":364,"column":14}},"153":{"start":{"line":365,"column":17},"end":{"line":383,"column":11}},"154":{"start":{"line":366,"column":12},"end":{"line":366,"column":35}},"155":{"start":{"line":367,"column":17},"end":{"line":383,"column":11}},"156":{"start":{"line":368,"column":12},"end":{"line":368,"column":48}},"157":{"start":{"line":369,"column":17},"end":{"line":383,"column":11}},"158":{"start":{"line":370,"column":12},"end":{"line":370,"column":43}},"159":{"start":{"line":371,"column":17},"end":{"line":383,"column":11}},"160":{"start":{"line":372,"column":12},"end":{"line":372,"column":34}},"161":{"start":{"line":373,"column":17},"end":{"line":383,"column":11}},"162":{"start":{"line":374,"column":12},"end":{"line":374,"column":54}},"163":{"start":{"line":375,"column":12},"end":{"line":375,"column":27}},"164":{"start":{"line":376,"column":12},"end":{"line":376,"column":54}},"165":{"start":{"line":377,"column":12},"end":{"line":377,"column":67}},"166":{"start":{"line":378,"column":12},"end":{"line":378,"column":57}},"167":{"start":{"line":379,"column":17},"end":{"line":383,"column":11}},"168":{"start":{"line":380,"column":12},"end":{"line":380,"column":42}},"169":{"start":{"line":382,"column":12},"end":{"line":382,"column":49}},"170":{"start":{"line":384,"column":10},"end":{"line":384,"column":16}},"171":{"start":{"line":394,"column":2},"end":{"line":417,"column":3}},"172":{"start":{"line":395,"column":4},"end":{"line":416,"column":5}},"173":{"start":{"line":403,"column":6},"end":{"line":403,"column":32}},"174":{"start":{"line":404,"column":6},"end":{"line":415,"column":7}},"175":{"start":{"line":405,"column":8},"end":{"line":405,"column":76}},"176":{"start":{"line":406,"column":8},"end":{"line":414,"column":10}},"177":{"start":{"line":420,"column":2},"end":{"line":450,"column":3}},"178":{"start":{"line":421,"column":4},"end":{"line":449,"column":5}},"179":{"start":{"line":427,"column":6},"end":{"line":427,"column":28}},"180":{"start":{"line":428,"column":6},"end":{"line":448,"column":7}},"181":{"start":{"line":430,"column":10},"end":{"line":430,"column":48}},"182":{"start":{"line":431,"column":10},"end":{"line":431,"column":43}},"183":{"start":{"line":432,"column":10},"end":{"line":432,"column":16}},"184":{"start":{"line":434,"column":10},"end":{"line":437,"column":11}},"185":{"start":{"line":435,"column":12},"end":{"line":435,"column":26}},"186":{"start":{"line":436,"column":12},"end":{"line":436,"column":43}},"187":{"start":{"line":438,"column":10},"end":{"line":438,"column":16}},"188":{"start":{"line":440,"column":10},"end":{"line":446,"column":11}},"189":{"start":{"line":444,"column":12},"end":{"line":444,"column":26}},"190":{"start":{"line":445,"column":12},"end":{"line":445,"column":43}},"191":{"start":{"line":447,"column":10},"end":{"line":447,"column":16}},"192":{"start":{"line":455,"column":2},"end":{"line":455,"column":63}},"193":{"start":{"line":460,"column":2},"end":{"line":462,"column":39}},"194":{"start":{"line":466,"column":2},"end":{"line":470,"column":17}},"195":{"start":{"line":467,"column":14},"end":{"line":467,"column":57}},"196":{"start":{"line":468,"column":14},"end":{"line":468,"column":57}},"197":{"start":{"line":469,"column":14},"end":{"line":469,"column":68}},"198":{"start":{"line":474,"column":2},"end":{"line":474,"column":44}},"199":{"start":{"line":479,"column":2},"end":{"line":483,"column":4}},"200":{"start":{"line":480,"column":4},"end":{"line":481,"column":41}},"201":{"start":{"line":480,"column":52},"end":{"line":480,"column":64}},"202":{"start":{"line":481,"column":9},"end":{"line":481,"column":41}},"203":{"start":{"line":481,"column":29},"end":{"line":481,"column":38}},"204":{"start":{"line":482,"column":4},"end":{"line":482,"column":24}},"205":{"start":{"line":490,"column":2},"end":{"line":490,"column":23}},"206":{"start":{"line":493,"column":2},"end":{"line":499,"column":4}},"207":{"start":{"line":500,"column":2},"end":{"line":502,"column":3}},"208":{"start":{"line":501,"column":4},"end":{"line":501,"column":22}},"209":{"start":{"line":505,"column":2},"end":{"line":507,"column":3}},"210":{"start":{"line":506,"column":4},"end":{"line":506,"column":24}},"211":{"start":{"line":510,"column":2},"end":{"line":528,"column":3}},"212":{"start":{"line":511,"column":4},"end":{"line":526,"column":5}},"213":{"start":{"line":519,"column":6},"end":{"line":519,"column":28}},"214":{"start":{"line":520,"column":6},"end":{"line":525,"column":7}},"215":{"start":{"line":524,"column":8},"end":{"line":524,"column":28}},"216":{"start":{"line":527,"column":4},"end":{"line":527,"column":55}},"217":{"start":{"line":531,"column":2},"end":{"line":533,"column":3}},"218":{"start":{"line":532,"column":4},"end":{"line":532,"column":45}},"219":{"start":{"line":537,"column":2},"end":{"line":543,"column":3}},"220":{"start":{"line":538,"column":4},"end":{"line":542,"column":40}},"221":{"start":{"line":546,"column":2},"end":{"line":579,"column":3}},"222":{"start":{"line":547,"column":4},"end":{"line":547,"column":17}},"223":{"start":{"line":548,"column":4},"end":{"line":548,"column":38}},"224":{"start":{"line":549,"column":4},"end":{"line":549,"column":55}},"225":{"start":{"line":550,"column":4},"end":{"line":550,"column":44}},"226":{"start":{"line":551,"column":4},"end":{"line":551,"column":31}},"227":{"start":{"line":552,"column":4},"end":{"line":562,"column":5}},"228":{"start":{"line":554,"column":6},"end":{"line":554,"column":50}},"229":{"start":{"line":561,"column":6},"end":{"line":561,"column":88}},"230":{"start":{"line":563,"column":4},"end":{"line":577,"column":5}},"231":{"start":{"line":567,"column":6},"end":{"line":567,"column":31}},"232":{"start":{"line":568,"column":6},"end":{"line":568,"column":58}},"233":{"start":{"line":569,"column":6},"end":{"line":569,"column":78}},"234":{"start":{"line":571,"column":6},"end":{"line":571,"column":33}},"235":{"start":{"line":572,"column":6},"end":{"line":576,"column":7}},"236":{"start":{"line":573,"column":8},"end":{"line":573,"column":37}},"237":{"start":{"line":575,"column":8},"end":{"line":575,"column":64}},"238":{"start":{"line":578,"column":4},"end":{"line":578,"column":20}},"239":{"start":{"line":582,"column":2},"end":{"line":595,"column":3}},"240":{"start":{"line":583,"column":4},"end":{"line":583,"column":38}},"241":{"start":{"line":584,"column":4},"end":{"line":584,"column":52}},"242":{"start":{"line":585,"column":4},"end":{"line":593,"column":5}},"243":{"start":{"line":586,"column":6},"end":{"line":586,"column":52}},"244":{"start":{"line":587,"column":6},"end":{"line":587,"column":84}},"245":{"start":{"line":588,"column":6},"end":{"line":588,"column":73}},"246":{"start":{"line":590,"column":6},"end":{"line":590,"column":69}},"247":{"start":{"line":591,"column":6},"end":{"line":591,"column":33}},"248":{"start":{"line":592,"column":6},"end":{"line":592,"column":62}},"249":{"start":{"line":594,"column":4},"end":{"line":594,"column":20}},"250":{"start":{"line":598,"column":2},"end":{"line":600,"column":3}},"251":{"start":{"line":599,"column":4},"end":{"line":599,"column":51}},"252":{"start":{"line":604,"column":2},"end":{"line":608,"column":3}},"253":{"start":{"line":605,"column":4},"end":{"line":605,"column":29}},"254":{"start":{"line":606,"column":4},"end":{"line":606,"column":66}},"255":{"start":{"line":607,"column":4},"end":{"line":607,"column":53}},"256":{"start":{"line":612,"column":2},"end":{"line":619,"column":3}},"257":{"start":{"line":613,"column":4},"end":{"line":613,"column":46}},"258":{"start":{"line":614,"column":4},"end":{"line":617,"column":5}},"259":{"start":{"line":615,"column":6},"end":{"line":615,"column":35}},"260":{"start":{"line":616,"column":6},"end":{"line":616,"column":40}},"261":{"start":{"line":616,"column":17},"end":{"line":616,"column":40}},"262":{"start":{"line":618,"column":4},"end":{"line":618,"column":34}},"263":{"start":{"line":622,"column":2},"end":{"line":633,"column":3}},"264":{"start":{"line":623,"column":4},"end":{"line":623,"column":32}},"265":{"start":{"line":624,"column":4},"end":{"line":632,"column":5}},"266":{"start":{"line":625,"column":6},"end":{"line":625,"column":62}},"267":{"start":{"line":626,"column":11},"end":{"line":632,"column":5}},"268":{"start":{"line":627,"column":6},"end":{"line":627,"column":48}},"269":{"start":{"line":628,"column":11},"end":{"line":632,"column":5}},"270":{"start":{"line":629,"column":6},"end":{"line":629,"column":62}},"271":{"start":{"line":631,"column":6},"end":{"line":631,"column":63}},"272":{"start":{"line":636,"column":2},"end":{"line":642,"column":3}},"273":{"start":{"line":637,"column":4},"end":{"line":641,"column":5}},"274":{"start":{"line":638,"column":6},"end":{"line":640,"column":7}},"275":{"start":{"line":639,"column":8},"end":{"line":639,"column":46}},"276":{"start":{"line":645,"column":2},"end":{"line":647,"column":3}},"277":{"start":{"line":646,"column":4},"end":{"line":646,"column":35}},"278":{"start":{"line":650,"column":2},"end":{"line":652,"column":3}},"279":{"start":{"line":651,"column":4},"end":{"line":651,"column":44}},"280":{"start":{"line":656,"column":2},"end":{"line":666,"column":3}},"281":{"start":{"line":657,"column":4},"end":{"line":657,"column":34}},"282":{"start":{"line":658,"column":4},"end":{"line":665,"column":6}},"283":{"start":{"line":660,"column":8},"end":{"line":660,"column":66}},"284":{"start":{"line":663,"column":8},"end":{"line":663,"column":73}},"285":{"start":{"line":669,"column":2},"end":{"line":673,"column":3}},"286":{"start":{"line":670,"column":4},"end":{"line":672,"column":5}},"287":{"start":{"line":671,"column":6},"end":{"line":671,"column":41}},"288":{"start":{"line":676,"column":2},"end":{"line":691,"column":3}},"289":{"start":{"line":677,"column":4},"end":{"line":677,"column":15}},"290":{"start":{"line":678,"column":4},"end":{"line":689,"column":5}},"291":{"start":{"line":681,"column":8},"end":{"line":681,"column":81}},"292":{"start":{"line":682,"column":8},"end":{"line":682,"column":14}},"293":{"start":{"line":684,"column":8},"end":{"line":684,"column":67}},"294":{"start":{"line":685,"column":8},"end":{"line":685,"column":14}},"295":{"start":{"line":687,"column":8},"end":{"line":687,"column":40}},"296":{"start":{"line":688,"column":8},"end":{"line":688,"column":14}},"297":{"start":{"line":690,"column":4},"end":{"line":690,"column":18}},"298":{"start":{"line":694,"column":2},"end":{"line":696,"column":3}},"299":{"start":{"line":695,"column":4},"end":{"line":695,"column":60}},"300":{"start":{"line":703,"column":2},"end":{"line":715,"column":14}},"301":{"start":{"line":705,"column":8},"end":{"line":713,"column":10}},"302":{"start":{"line":706,"column":32},"end":{"line":706,"column":52}},"303":{"start":{"line":708,"column":12},"end":{"line":711,"column":15}},"304":{"start":{"line":718,"column":2},"end":{"line":733,"column":10}},"305":{"start":{"line":720,"column":8},"end":{"line":720,"column":27}},"306":{"start":{"line":721,"column":8},"end":{"line":731,"column":10}},"307":{"start":{"line":723,"column":12},"end":{"line":723,"column":37}},"308":{"start":{"line":729,"column":12},"end":{"line":729,"column":39}},"309":{"start":{"line":738,"column":2},"end":{"line":747,"column":21}},"310":{"start":{"line":740,"column":18},"end":{"line":740,"column":45}},"311":{"start":{"line":743,"column":18},"end":{"line":743,"column":44}},"312":{"start":{"line":744,"column":18},"end":{"line":746,"column":20}},"313":{"start":{"line":745,"column":20},"end":{"line":745,"column":50}},"314":{"start":{"line":750,"column":2},"end":{"line":751,"column":69}},"315":{"start":{"line":751,"column":28},"end":{"line":751,"column":66}},"316":{"start":{"line":758,"column":2},"end":{"line":758,"column":45}},"317":{"start":{"line":761,"column":2},"end":{"line":761,"column":24}},"318":{"start":{"line":764,"column":2},"end":{"line":764,"column":35}},"319":{"start":{"line":765,"column":2},"end":{"line":769,"column":3}},"320":{"start":{"line":766,"column":4},"end":{"line":766,"column":40}},"321":{"start":{"line":767,"column":4},"end":{"line":768,"column":44}},"322":{"start":{"line":772,"column":2},"end":{"line":784,"column":8}},"323":{"start":{"line":774,"column":8},"end":{"line":774,"column":44}},"324":{"start":{"line":777,"column":8},"end":{"line":783,"column":9}},"325":{"start":{"line":782,"column":10},"end":{"line":782,"column":42}},"326":{"start":{"line":787,"column":2},"end":{"line":802,"column":48}},"327":{"start":{"line":789,"column":8},"end":{"line":799,"column":9}},"328":{"start":{"line":796,"column":10},"end":{"line":796,"column":32}},"329":{"start":{"line":797,"column":10},"end":{"line":798,"column":34}},"330":{"start":{"line":798,"column":12},"end":{"line":798,"column":34}},"331":{"start":{"line":800,"column":8},"end":{"line":800,"column":24}},"332":{"start":{"line":802,"column":24},"end":{"line":802,"column":45}},"333":{"start":{"line":806,"column":2},"end":{"line":826,"column":8}},"334":{"start":{"line":808,"column":8},"end":{"line":818,"column":9}},"335":{"start":{"line":809,"column":10},"end":{"line":809,"column":27}},"336":{"start":{"line":810,"column":10},"end":{"line":817,"column":11}},"337":{"start":{"line":812,"column":14},"end":{"line":812,"column":60}},"338":{"start":{"line":813,"column":14},"end":{"line":813,"column":20}},"339":{"start":{"line":815,"column":14},"end":{"line":815,"column":53}},"340":{"start":{"line":816,"column":14},"end":{"line":816,"column":20}},"341":{"start":{"line":819,"column":8},"end":{"line":819,"column":26}},"342":{"start":{"line":822,"column":8},"end":{"line":824,"column":9}},"343":{"start":{"line":823,"column":10},"end":{"line":823,"column":54}},"344":{"start":{"line":825,"column":8},"end":{"line":825,"column":26}},"345":{"start":{"line":829,"column":2},"end":{"line":829,"column":105}},"346":{"start":{"line":830,"column":2},"end":{"line":830,"column":94}},"347":{"start":{"line":831,"column":2},"end":{"line":833,"column":4}},"348":{"start":{"line":832,"column":4},"end":{"line":832,"column":67}},"349":{"start":{"line":835,"column":2},"end":{"line":837,"column":4}},"350":{"start":{"line":836,"column":4},"end":{"line":836,"column":48}},"351":{"start":{"line":840,"column":2},"end":{"line":840,"column":28}},"352":{"start":{"line":843,"column":2},"end":{"line":843,"column":27}},"353":{"start":{"line":846,"column":2},"end":{"line":846,"column":27}},"354":{"start":{"line":849,"column":2},"end":{"line":849,"column":25}},"355":{"start":{"line":853,"column":2},"end":{"line":871,"column":7}},"356":{"start":{"line":854,"column":4},"end":{"line":854,"column":66}},"357":{"start":{"line":855,"column":4},"end":{"line":855,"column":65}},"358":{"start":{"line":856,"column":4},"end":{"line":870,"column":8}},"359":{"start":{"line":858,"column":8},"end":{"line":865,"column":9}},"360":{"start":{"line":864,"column":10},"end":{"line":864,"column":54}},"361":{"start":{"line":866,"column":8},"end":{"line":866,"column":21}},"362":{"start":{"line":869,"column":8},"end":{"line":869,"column":40}},"363":{"start":{"line":878,"column":2},"end":{"line":885,"column":56}},"364":{"start":{"line":880,"column":6},"end":{"line":882,"column":7}},"365":{"start":{"line":881,"column":8},"end":{"line":881,"column":56}},"366":{"start":{"line":881,"column":44},"end":{"line":881,"column":56}},"367":{"start":{"line":883,"column":6},"end":{"line":883,"column":23}},"368":{"start":{"line":885,"column":22},"end":{"line":885,"column":53}},"369":{"start":{"line":887,"column":2},"end":{"line":894,"column":60}},"370":{"start":{"line":889,"column":6},"end":{"line":891,"column":7}},"371":{"start":{"line":890,"column":7},"end":{"line":890,"column":55}},"372":{"start":{"line":890,"column":43},"end":{"line":890,"column":55}},"373":{"start":{"line":892,"column":6},"end":{"line":892,"column":23}},"374":{"start":{"line":894,"column":22},"end":{"line":894,"column":57}},"375":{"start":{"line":897,"column":2},"end":{"line":903,"column":3}},"376":{"start":{"line":898,"column":4},"end":{"line":898,"column":47}},"377":{"start":{"line":899,"column":4},"end":{"line":902,"column":5}},"378":{"start":{"line":900,"column":6},"end":{"line":900,"column":46}},"379":{"start":{"line":901,"column":6},"end":{"line":901,"column":43}},"380":{"start":{"line":906,"column":2},"end":{"line":912,"column":3}},"381":{"start":{"line":907,"column":4},"end":{"line":911,"column":5}},"382":{"start":{"line":908,"column":6},"end":{"line":908,"column":45}},"383":{"start":{"line":910,"column":6},"end":{"line":910,"column":37}},"384":{"start":{"line":916,"column":2},"end":{"line":992,"column":3}},"385":{"start":{"line":917,"column":4},"end":{"line":990,"column":5}},"386":{"start":{"line":926,"column":6},"end":{"line":989,"column":7}},"387":{"start":{"line":928,"column":10},"end":{"line":928,"column":38}},"388":{"start":{"line":929,"column":10},"end":{"line":931,"column":11}},"389":{"start":{"line":930,"column":12},"end":{"line":930,"column":46}},"390":{"start":{"line":932,"column":10},"end":{"line":932,"column":47}},"391":{"start":{"line":933,"column":10},"end":{"line":933,"column":16}},"392":{"start":{"line":935,"column":10},"end":{"line":935,"column":49}},"393":{"start":{"line":936,"column":10},"end":{"line":936,"column":68}},"394":{"start":{"line":937,"column":10},"end":{"line":937,"column":55}},"395":{"start":{"line":938,"column":10},"end":{"line":938,"column":86}},"396":{"start":{"line":939,"column":10},"end":{"line":939,"column":51}},"397":{"start":{"line":940,"column":10},"end":{"line":940,"column":79}},"398":{"start":{"line":941,"column":10},"end":{"line":941,"column":47}},"399":{"start":{"line":942,"column":10},"end":{"line":957,"column":11}},"400":{"start":{"line":948,"column":14},"end":{"line":948,"column":38}},"401":{"start":{"line":949,"column":14},"end":{"line":949,"column":20}},"402":{"start":{"line":952,"column":14},"end":{"line":952,"column":25}},"403":{"start":{"line":955,"column":14},"end":{"line":955,"column":56}},"404":{"start":{"line":956,"column":14},"end":{"line":956,"column":20}},"405":{"start":{"line":958,"column":10},"end":{"line":961,"column":12}},"406":{"start":{"line":962,"column":10},"end":{"line":974,"column":11}},"407":{"start":{"line":963,"column":12},"end":{"line":967,"column":14}},"408":{"start":{"line":969,"column":12},"end":{"line":973,"column":14}},"409":{"start":{"line":975,"column":10},"end":{"line":977,"column":11}},"410":{"start":{"line":976,"column":12},"end":{"line":976,"column":51}},"411":{"start":{"line":978,"column":10},"end":{"line":978,"column":16}},"412":{"start":{"line":981,"column":10},"end":{"line":986,"column":22}},"413":{"start":{"line":987,"column":10},"end":{"line":987,"column":30}},"414":{"start":{"line":988,"column":10},"end":{"line":988,"column":16}},"415":{"start":{"line":991,"column":4},"end":{"line":991,"column":18}},"416":{"start":{"line":995,"column":2},"end":{"line":1014,"column":3}},"417":{"start":{"line":996,"column":4},"end":{"line":1011,"column":5}},"418":{"start":{"line":1003,"column":6},"end":{"line":1003,"column":22}},"419":{"start":{"line":1004,"column":6},"end":{"line":1004,"column":22}},"420":{"start":{"line":1005,"column":6},"end":{"line":1010,"column":8}},"421":{"start":{"line":1012,"column":4},"end":{"line":1012,"column":42}},"422":{"start":{"line":1013,"column":4},"end":{"line":1013,"column":19}},"423":{"start":{"line":1022,"column":2},"end":{"line":1029,"column":3}},"424":{"start":{"line":1023,"column":4},"end":{"line":1023,"column":19}},"425":{"start":{"line":1024,"column":4},"end":{"line":1024,"column":61}},"426":{"start":{"line":1025,"column":4},"end":{"line":1025,"column":50}},"427":{"start":{"line":1026,"column":4},"end":{"line":1026,"column":51}},"428":{"start":{"line":1027,"column":4},"end":{"line":1027,"column":34}},"429":{"start":{"line":1028,"column":4},"end":{"line":1028,"column":16}},"430":{"start":{"line":1034,"column":2},"end":{"line":1063,"column":3}},"431":{"start":{"line":1035,"column":4},"end":{"line":1035,"column":18}},"432":{"start":{"line":1036,"column":4},"end":{"line":1036,"column":19}},"433":{"start":{"line":1037,"column":4},"end":{"line":1054,"column":5}},"434":{"start":{"line":1040,"column":8},"end":{"line":1040,"column":26}},"435":{"start":{"line":1041,"column":8},"end":{"line":1041,"column":14}},"436":{"start":{"line":1043,"column":8},"end":{"line":1043,"column":37}},"437":{"start":{"line":1044,"column":8},"end":{"line":1047,"column":10}},"438":{"start":{"line":1048,"column":8},"end":{"line":1048,"column":14}},"439":{"start":{"line":1051,"column":8},"end":{"line":1051,"column":39}},"440":{"start":{"line":1052,"column":8},"end":{"line":1052,"column":46}},"441":{"start":{"line":1053,"column":8},"end":{"line":1053,"column":14}},"442":{"start":{"line":1055,"column":4},"end":{"line":1061,"column":5}},"443":{"start":{"line":1060,"column":6},"end":{"line":1060,"column":81}},"444":{"start":{"line":1062,"column":4},"end":{"line":1062,"column":16}},"445":{"start":{"line":1068,"column":2},"end":{"line":1086,"column":3}},"446":{"start":{"line":1069,"column":4},"end":{"line":1083,"column":5}},"447":{"start":{"line":1076,"column":6},"end":{"line":1076,"column":22}},"448":{"start":{"line":1077,"column":6},"end":{"line":1082,"column":8}},"449":{"start":{"line":1084,"column":4},"end":{"line":1084,"column":42}},"450":{"start":{"line":1085,"column":4},"end":{"line":1085,"column":19}},"451":{"start":{"line":1089,"column":2},"end":{"line":1093,"column":3}},"452":{"start":{"line":1090,"column":4},"end":{"line":1092,"column":5}},"453":{"start":{"line":1091,"column":6},"end":{"line":1091,"column":32}},"454":{"start":{"line":1097,"column":2},"end":{"line":1111,"column":3}},"455":{"start":{"line":1098,"column":4},"end":{"line":1098,"column":28}},"456":{"start":{"line":1099,"column":4},"end":{"line":1099,"column":16}},"457":{"start":{"line":1100,"column":4},"end":{"line":1101,"column":52}},"458":{"start":{"line":1102,"column":4},"end":{"line":1109,"column":5}},"459":{"start":{"line":1103,"column":6},"end":{"line":1103,"column":46}},"460":{"start":{"line":1104,"column":6},"end":{"line":1104,"column":63}},"461":{"start":{"line":1105,"column":6},"end":{"line":1105,"column":28}},"462":{"start":{"line":1106,"column":6},"end":{"line":1106,"column":33}},"463":{"start":{"line":1108,"column":6},"end":{"line":1108,"column":70}},"464":{"start":{"line":1110,"column":4},"end":{"line":1110,"column":50}},"465":{"start":{"line":1118,"column":2},"end":{"line":1178,"column":3}},"466":{"start":{"line":1119,"column":4},"end":{"line":1119,"column":71}},"467":{"start":{"line":1121,"column":4},"end":{"line":1127,"column":5}},"468":{"start":{"line":1122,"column":6},"end":{"line":1122,"column":50}},"469":{"start":{"line":1123,"column":6},"end":{"line":1125,"column":17}},"470":{"start":{"line":1126,"column":6},"end":{"line":1126,"column":31}},"471":{"start":{"line":1129,"column":4},"end":{"line":1138,"column":5}},"472":{"start":{"line":1130,"column":6},"end":{"line":1136,"column":7}},"473":{"start":{"line":1131,"column":8},"end":{"line":1131,"column":22}},"474":{"start":{"line":1132,"column":8},"end":{"line":1134,"column":9}},"475":{"start":{"line":1133,"column":10},"end":{"line":1133,"column":66}},"476":{"start":{"line":1135,"column":8},"end":{"line":1135,"column":42}},"477":{"start":{"line":1137,"column":6},"end":{"line":1137,"column":21}},"478":{"start":{"line":1140,"column":4},"end":{"line":1177,"column":8}},"479":{"start":{"line":1142,"column":8},"end":{"line":1142,"column":29}},"480":{"start":{"line":1143,"column":8},"end":{"line":1143,"column":30}},"481":{"start":{"line":1144,"column":8},"end":{"line":1165,"column":9}},"482":{"start":{"line":1145,"column":10},"end":{"line":1145,"column":23}},"483":{"start":{"line":1146,"column":10},"end":{"line":1146,"column":29}},"484":{"start":{"line":1147,"column":10},"end":{"line":1164,"column":12}},"485":{"start":{"line":1148,"column":12},"end":{"line":1161,"column":13}},"486":{"start":{"line":1149,"column":14},"end":{"line":1160,"column":15}},"487":{"start":{"line":1150,"column":16},"end":{"line":1150,"column":40}},"488":{"start":{"line":1151,"column":16},"end":{"line":1155,"column":18}},"489":{"start":{"line":1156,"column":16},"end":{"line":1156,"column":47}},"490":{"start":{"line":1158,"column":16},"end":{"line":1158,"column":66}},"491":{"start":{"line":1158,"column":53},"end":{"line":1158,"column":66}},"492":{"start":{"line":1159,"column":16},"end":{"line":1159,"column":49}},"493":{"start":{"line":1162,"column":12},"end":{"line":1162,"column":37}},"494":{"start":{"line":1163,"column":12},"end":{"line":1163,"column":27}},"495":{"start":{"line":1166,"column":8},"end":{"line":1166,"column":23}},"496":{"start":{"line":1169,"column":8},"end":{"line":1169,"column":30}},"497":{"start":{"line":1170,"column":8},"end":{"line":1174,"column":9}},"498":{"start":{"line":1171,"column":10},"end":{"line":1171,"column":23}},"499":{"start":{"line":1172,"column":10},"end":{"line":1172,"column":29}},"500":{"start":{"line":1173,"column":10},"end":{"line":1173,"column":33}},"501":{"start":{"line":1175,"column":8},"end":{"line":1175,"column":38}},"502":{"start":{"line":1176,"column":8},"end":{"line":1176,"column":23}},"503":{"start":{"line":1181,"column":2},"end":{"line":1194,"column":3}},"504":{"start":{"line":1182,"column":4},"end":{"line":1182,"column":30}},"505":{"start":{"line":1183,"column":4},"end":{"line":1183,"column":30}},"506":{"start":{"line":1184,"column":4},"end":{"line":1184,"column":18}},"507":{"start":{"line":1185,"column":4},"end":{"line":1188,"column":5}},"508":{"start":{"line":1186,"column":6},"end":{"line":1186,"column":29}},"509":{"start":{"line":1187,"column":6},"end":{"line":1187,"column":40}},"510":{"start":{"line":1189,"column":4},"end":{"line":1192,"column":5}},"511":{"start":{"line":1190,"column":6},"end":{"line":1190,"column":16}},"512":{"start":{"line":1191,"column":6},"end":{"line":1191,"column":27}},"513":{"start":{"line":1193,"column":4},"end":{"line":1193,"column":54}},"514":{"start":{"line":1205,"column":2},"end":{"line":1205,"column":29}},"515":{"start":{"line":1210,"column":2},"end":{"line":1210,"column":15}},"516":{"start":{"line":1217,"column":2},"end":{"line":1222,"column":3}},"517":{"start":{"line":1226,"column":2},"end":{"line":1246,"column":3}},"518":{"start":{"line":1227,"column":4},"end":{"line":1231,"column":5}},"519":{"start":{"line":1232,"column":4},"end":{"line":1237,"column":5}},"520":{"start":{"line":1233,"column":6},"end":{"line":1235,"column":7}},"521":{"start":{"line":1234,"column":8},"end":{"line":1234,"column":60}},"522":{"start":{"line":1236,"column":6},"end":{"line":1236,"column":13}},"523":{"start":{"line":1238,"column":4},"end":{"line":1241,"column":5}},"524":{"start":{"line":1239,"column":6},"end":{"line":1239,"column":21}},"525":{"start":{"line":1240,"column":6},"end":{"line":1240,"column":13}},"526":{"start":{"line":1242,"column":4},"end":{"line":1245,"column":6}},"527":{"start":{"line":1254,"column":2},"end":{"line":1263,"column":4}},"528":{"start":{"line":1255,"column":4},"end":{"line":1255,"column":29}},"529":{"start":{"line":1256,"column":4},"end":{"line":1261,"column":6}},"530":{"start":{"line":1257,"column":6},"end":{"line":1257,"column":27}},"531":{"start":{"line":1258,"column":6},"end":{"line":1258,"column":60}},"532":{"start":{"line":1259,"column":6},"end":{"line":1259,"column":26}},"533":{"start":{"line":1260,"column":6},"end":{"line":1260,"column":20}},"534":{"start":{"line":1262,"column":4},"end":{"line":1262,"column":16}},"535":{"start":{"line":1265,"column":2},"end":{"line":1265,"column":18}},"536":{"start":{"line":1273,"column":2},"end":{"line":1306,"column":3}},"537":{"start":{"line":1274,"column":4},"end":{"line":1274,"column":37}},"538":{"start":{"line":1275,"column":4},"end":{"line":1275,"column":33}},"539":{"start":{"line":1276,"column":4},"end":{"line":1276,"column":37}},"540":{"start":{"line":1277,"column":4},"end":{"line":1277,"column":14}},"541":{"start":{"line":1278,"column":4},"end":{"line":1278,"column":14}},"542":{"start":{"line":1279,"column":4},"end":{"line":1279,"column":14}},"543":{"start":{"line":1280,"column":4},"end":{"line":1280,"column":14}},"544":{"start":{"line":1281,"column":4},"end":{"line":1281,"column":17}},"545":{"start":{"line":1282,"column":4},"end":{"line":1282,"column":17}},"546":{"start":{"line":1283,"column":4},"end":{"line":1283,"column":22}},"547":{"start":{"line":1284,"column":4},"end":{"line":1284,"column":36}},"548":{"start":{"line":1285,"column":4},"end":{"line":1285,"column":16}},"549":{"start":{"line":1286,"column":4},"end":{"line":1286,"column":39}},"550":{"start":{"line":1286,"column":27},"end":{"line":1286,"column":39}},"551":{"start":{"line":1287,"column":4},"end":{"line":1304,"column":5}},"552":{"start":{"line":1288,"column":6},"end":{"line":1288,"column":16}},"553":{"start":{"line":1289,"column":6},"end":{"line":1289,"column":26}},"554":{"start":{"line":1290,"column":6},"end":{"line":1290,"column":26}},"555":{"start":{"line":1291,"column":6},"end":{"line":1291,"column":25}},"556":{"start":{"line":1292,"column":6},"end":{"line":1302,"column":7}},"557":{"start":{"line":1293,"column":8},"end":{"line":1293,"column":33}},"558":{"start":{"line":1294,"column":8},"end":{"line":1294,"column":33}},"559":{"start":{"line":1295,"column":8},"end":{"line":1295,"column":58}},"560":{"start":{"line":1296,"column":8},"end":{"line":1300,"column":39}},"561":{"start":{"line":1301,"column":8},"end":{"line":1301,"column":12}},"562":{"start":{"line":1303,"column":6},"end":{"line":1303,"column":10}},"563":{"start":{"line":1305,"column":4},"end":{"line":1305,"column":16}},"564":{"start":{"line":1309,"column":2},"end":{"line":1317,"column":3}},"565":{"start":{"line":1310,"column":4},"end":{"line":1316,"column":7}},"566":{"start":{"line":1320,"column":2},"end":{"line":1360,"column":3}},"567":{"start":{"line":1321,"column":4},"end":{"line":1329,"column":5}},"568":{"start":{"line":1330,"column":4},"end":{"line":1352,"column":5}},"569":{"start":{"line":1331,"column":6},"end":{"line":1331,"column":20}},"570":{"start":{"line":1332,"column":6},"end":{"line":1332,"column":26}},"571":{"start":{"line":1333,"column":6},"end":{"line":1333,"column":28}},"572":{"start":{"line":1334,"column":6},"end":{"line":1334,"column":27}},"573":{"start":{"line":1335,"column":6},"end":{"line":1335,"column":32}},"574":{"start":{"line":1336,"column":6},"end":{"line":1336,"column":36}},"575":{"start":{"line":1337,"column":6},"end":{"line":1351,"column":7}},"576":{"start":{"line":1338,"column":8},"end":{"line":1338,"column":12}},"577":{"start":{"line":1339,"column":8},"end":{"line":1339,"column":12}},"578":{"start":{"line":1340,"column":8},"end":{"line":1342,"column":9}},"579":{"start":{"line":1341,"column":10},"end":{"line":1341,"column":58}},"580":{"start":{"line":1344,"column":11},"end":{"line":1351,"column":7}},"581":{"start":{"line":1345,"column":8},"end":{"line":1345,"column":12}},"582":{"start":{"line":1346,"column":8},"end":{"line":1346,"column":52}},"583":{"start":{"line":1349,"column":8},"end":{"line":1349,"column":12}},"584":{"start":{"line":1350,"column":8},"end":{"line":1350,"column":48}},"585":{"start":{"line":1353,"column":4},"end":{"line":1355,"column":5}},"586":{"start":{"line":1354,"column":6},"end":{"line":1354,"column":50}},"587":{"start":{"line":1356,"column":4},"end":{"line":1358,"column":5}},"588":{"start":{"line":1357,"column":6},"end":{"line":1357,"column":46}},"589":{"start":{"line":1359,"column":4},"end":{"line":1359,"column":16}},"590":{"start":{"line":1363,"column":2},"end":{"line":1388,"column":3}},"591":{"start":{"line":1364,"column":4},"end":{"line":1369,"column":5}},"592":{"start":{"line":1370,"column":4},"end":{"line":1387,"column":5}},"593":{"start":{"line":1371,"column":6},"end":{"line":1371,"column":34}},"594":{"start":{"line":1372,"column":6},"end":{"line":1385,"column":7}},"595":{"start":{"line":1373,"column":8},"end":{"line":1373,"column":31}},"596":{"start":{"line":1374,"column":8},"end":{"line":1383,"column":9}},"597":{"start":{"line":1375,"column":10},"end":{"line":1375,"column":33}},"598":{"start":{"line":1376,"column":10},"end":{"line":1376,"column":49}},"599":{"start":{"line":1378,"column":10},"end":{"line":1378,"column":80}},"600":{"start":{"line":1379,"column":10},"end":{"line":1381,"column":29}},"601":{"start":{"line":1382,"column":10},"end":{"line":1382,"column":20}},"602":{"start":{"line":1384,"column":8},"end":{"line":1384,"column":20}},"603":{"start":{"line":1386,"column":6},"end":{"line":1386,"column":76}},"604":{"start":{"line":1405,"column":0},"end":{"line":1405,"column":49}},"605":{"start":{"line":1405,"column":6},"end":{"line":1405,"column":33}}},"branchMap":{"1":{"line":17,"type":"cond-expr","locations":[{"start":{"line":18,"column":7},"end":{"line":29,"column":9}},{"start":{"line":30,"column":6},"end":{"line":32,"column":30}}]},"2":{"line":18,"type":"cond-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":27}},{"start":{"line":20,"column":9},"end":{"line":28,"column":11}}]},"3":{"line":20,"type":"cond-expr","locations":[{"start":{"line":21,"column":10},"end":{"line":21,"column":26}},{"start":{"line":22,"column":11},"end":{"line":27,"column":13}}]},"4":{"line":22,"type":"cond-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":23,"column":37}},{"start":{"line":24,"column":13},"end":{"line":26,"column":38}}]},"5":{"line":24,"type":"cond-expr","locations":[{"start":{"line":25,"column":14},"end":{"line":25,"column":24}},{"start":{"line":26,"column":14},"end":{"line":26,"column":38}}]},"6":{"line":30,"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":27}},{"start":{"line":31,"column":30},"end":{"line":31,"column":34}}]},"7":{"line":66,"type":"cond-expr","locations":[{"start":{"line":67,"column":6},"end":{"line":67,"column":25}},{"start":{"line":68,"column":7},"end":{"line":70,"column":39}}]},"8":{"line":68,"type":"cond-expr","locations":[{"start":{"line":69,"column":8},"end":{"line":69,"column":35}},{"start":{"line":70,"column":8},"end":{"line":70,"column":39}}]},"9":{"line":69,"type":"binary-expr","locations":[{"start":{"line":69,"column":20},"end":{"line":69,"column":24}},{"start":{"line":69,"column":28},"end":{"line":69,"column":34}}]},"10":{"line":70,"type":"binary-expr","locations":[{"start":{"line":70,"column":24},"end":{"line":70,"column":28}},{"start":{"line":70,"column":32},"end":{"line":70,"column":38}}]},"11":{"line":88,"type":"binary-expr","locations":[{"start":{"line":88,"column":11},"end":{"line":88,"column":31}},{"start":{"line":88,"column":35},"end":{"line":88,"column":63}},{"start":{"line":89,"column":11},"end":{"line":89,"column":24}}]},"12":{"line":103,"type":"cond-expr","locations":[{"start":{"line":103,"column":51},"end":{"line":103,"column":75}},{"start":{"line":103,"column":78},"end":{"line":103,"column":83}}]},"13":{"line":156,"type":"binary-expr","locations":[{"start":{"line":156,"column":6},"end":{"line":156,"column":16}},{"start":{"line":156,"column":20},"end":{"line":156,"column":27}}]},"14":{"line":162,"type":"if","locations":[{"start":{"line":162,"column":4},"end":{"line":162,"column":4}},{"start":{"line":162,"column":4},"end":{"line":162,"column":4}}]},"15":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":6},"end":{"line":163,"column":6}},{"start":{"line":163,"column":6},"end":{"line":163,"column":6}}]},"16":{"line":171,"type":"binary-expr","locations":[{"start":{"line":171,"column":27},"end":{"line":171,"column":34}},{"start":{"line":171,"column":38},"end":{"line":171,"column":40}}]},"17":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":4},"end":{"line":183,"column":4}},{"start":{"line":183,"column":4},"end":{"line":183,"column":4}}]},"18":{"line":184,"type":"binary-expr","locations":[{"start":{"line":184,"column":6},"end":{"line":184,"column":12}},{"start":{"line":185,"column":6},"end":{"line":185,"column":37}}]},"19":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":18},"end":{"line":202,"column":33}},{"start":{"line":203,"column":19},"end":{"line":203,"column":49}},{"start":{"line":204,"column":18},"end":{"line":204,"column":50}}]},"20":{"line":205,"type":"cond-expr","locations":[{"start":{"line":205,"column":23},"end":{"line":205,"column":36}},{"start":{"line":205,"column":39},"end":{"line":205,"column":41}}]},"21":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":16},"end":{"line":206,"column":23}},{"start":{"line":206,"column":27},"end":{"line":206,"column":36}}]},"22":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":4},"end":{"line":209,"column":4}},{"start":{"line":209,"column":4},"end":{"line":209,"column":4}}]},"23":{"line":209,"type":"binary-expr","locations":[{"start":{"line":209,"column":8},"end":{"line":209,"column":15}},{"start":{"line":209,"column":19},"end":{"line":209,"column":45}}]},"24":{"line":210,"type":"if","locations":[{"start":{"line":210,"column":4},"end":{"line":210,"column":4}},{"start":{"line":210,"column":4},"end":{"line":210,"column":4}}]},"25":{"line":211,"type":"cond-expr","locations":[{"start":{"line":212,"column":6},"end":{"line":218,"column":7}},{"start":{"line":219,"column":7},"end":{"line":261,"column":9}}]},"26":{"line":213,"type":"if","locations":[{"start":{"line":213,"column":8},"end":{"line":213,"column":8}},{"start":{"line":213,"column":8},"end":{"line":213,"column":8}}]},"27":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":10},"end":{"line":214,"column":10}},{"start":{"line":214,"column":10},"end":{"line":214,"column":10}}]},"28":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":10},"end":{"line":216,"column":10}},{"start":{"line":216,"column":10},"end":{"line":216,"column":10}}]},"29":{"line":219,"type":"cond-expr","locations":[{"start":{"line":220,"column":8},"end":{"line":239,"column":9}},{"start":{"line":240,"column":8},"end":{"line":261,"column":9}}]},"30":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":10},"end":{"line":221,"column":10}},{"start":{"line":221,"column":10},"end":{"line":221,"column":10}}]},"31":{"line":225,"type":"if","locations":[{"start":{"line":225,"column":12},"end":{"line":225,"column":12}},{"start":{"line":225,"column":12},"end":{"line":225,"column":12}}]},"32":{"line":229,"type":"if","locations":[{"start":{"line":229,"column":14},"end":{"line":229,"column":14}},{"start":{"line":229,"column":14},"end":{"line":229,"column":14}}]},"33":{"line":241,"type":"if","locations":[{"start":{"line":241,"column":10},"end":{"line":241,"column":10}},{"start":{"line":241,"column":10},"end":{"line":241,"column":10}}]},"34":{"line":245,"type":"if","locations":[{"start":{"line":245,"column":12},"end":{"line":245,"column":12}},{"start":{"line":245,"column":12},"end":{"line":245,"column":12}}]},"35":{"line":246,"type":"if","locations":[{"start":{"line":246,"column":14},"end":{"line":246,"column":14}},{"start":{"line":246,"column":14},"end":{"line":246,"column":14}}]},"36":{"line":247,"type":"if","locations":[{"start":{"line":247,"column":16},"end":{"line":247,"column":16}},{"start":{"line":247,"column":16},"end":{"line":247,"column":16}}]},"37":{"line":254,"type":"if","locations":[{"start":{"line":254,"column":16},"end":{"line":254,"column":16}},{"start":{"line":254,"column":16},"end":{"line":254,"column":16}}]},"38":{"line":269,"type":"if","locations":[{"start":{"line":269,"column":6},"end":{"line":269,"column":6}},{"start":{"line":269,"column":6},"end":{"line":269,"column":6}}]},"39":{"line":281,"type":"switch","locations":[{"start":{"line":282,"column":8},"end":{"line":282,"column":22}},{"start":{"line":283,"column":8},"end":{"line":283,"column":22}},{"start":{"line":284,"column":8},"end":{"line":305,"column":16}},{"start":{"line":306,"column":8},"end":{"line":308,"column":16}},{"start":{"line":309,"column":8},"end":{"line":309,"column":22}},{"start":{"line":310,"column":8},"end":{"line":317,"column":11}},{"start":{"line":318,"column":8},"end":{"line":384,"column":16}}]},"40":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":10},"end":{"line":286,"column":10}},{"start":{"line":286,"column":10},"end":{"line":286,"column":10}}]},"41":{"line":287,"type":"binary-expr","locations":[{"start":{"line":287,"column":12},"end":{"line":287,"column":24}},{"start":{"line":288,"column":12},"end":{"line":288,"column":48}}]},"42":{"line":290,"type":"if","locations":[{"start":{"line":290,"column":12},"end":{"line":290,"column":12}},{"start":{"line":290,"column":12},"end":{"line":290,"column":12}}]},"43":{"line":296,"type":"if","locations":[{"start":{"line":296,"column":12},"end":{"line":296,"column":12}},{"start":{"line":296,"column":12},"end":{"line":296,"column":12}}]},"44":{"line":311,"type":"if","locations":[{"start":{"line":311,"column":10},"end":{"line":311,"column":10}},{"start":{"line":311,"column":10},"end":{"line":311,"column":10}}]},"45":{"line":315,"type":"if","locations":[{"start":{"line":315,"column":17},"end":{"line":315,"column":17}},{"start":{"line":315,"column":17},"end":{"line":315,"column":17}}]},"46":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":10},"end":{"line":320,"column":10}},{"start":{"line":320,"column":10},"end":{"line":320,"column":10}}]},"47":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":12},"end":{"line":322,"column":12}},{"start":{"line":322,"column":12},"end":{"line":322,"column":12}}]},"48":{"line":325,"type":"switch","locations":[{"start":{"line":326,"column":16},"end":{"line":326,"column":30}},{"start":{"line":327,"column":16},"end":{"line":327,"column":30}},{"start":{"line":328,"column":16},"end":{"line":330,"column":24}},{"start":{"line":331,"column":16},"end":{"line":337,"column":24}},{"start":{"line":338,"column":16},"end":{"line":351,"column":19}},{"start":{"line":352,"column":16},"end":{"line":354,"column":24}}]},"49":{"line":339,"type":"if","locations":[{"start":{"line":339,"column":18},"end":{"line":339,"column":18}},{"start":{"line":339,"column":18},"end":{"line":339,"column":18}}]},"50":{"line":342,"type":"if","locations":[{"start":{"line":342,"column":18},"end":{"line":342,"column":18}},{"start":{"line":342,"column":18},"end":{"line":342,"column":18}}]},"51":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":22},"end":{"line":347,"column":22}},{"start":{"line":347,"column":22},"end":{"line":347,"column":22}}]},"52":{"line":357,"type":"if","locations":[{"start":{"line":357,"column":17},"end":{"line":357,"column":17}},{"start":{"line":357,"column":17},"end":{"line":357,"column":17}}]},"53":{"line":360,"type":"cond-expr","locations":[{"start":{"line":361,"column":16},"end":{"line":361,"column":44}},{"start":{"line":362,"column":16},"end":{"line":362,"column":23}}]},"54":{"line":365,"type":"if","locations":[{"start":{"line":365,"column":17},"end":{"line":365,"column":17}},{"start":{"line":365,"column":17},"end":{"line":365,"column":17}}]},"55":{"line":367,"type":"if","locations":[{"start":{"line":367,"column":17},"end":{"line":367,"column":17}},{"start":{"line":367,"column":17},"end":{"line":367,"column":17}}]},"56":{"line":369,"type":"if","locations":[{"start":{"line":369,"column":17},"end":{"line":369,"column":17}},{"start":{"line":369,"column":17},"end":{"line":369,"column":17}}]},"57":{"line":371,"type":"if","locations":[{"start":{"line":371,"column":17},"end":{"line":371,"column":17}},{"start":{"line":371,"column":17},"end":{"line":371,"column":17}}]},"58":{"line":373,"type":"if","locations":[{"start":{"line":373,"column":17},"end":{"line":373,"column":17}},{"start":{"line":373,"column":17},"end":{"line":373,"column":17}}]},"59":{"line":379,"type":"if","locations":[{"start":{"line":379,"column":17},"end":{"line":379,"column":17}},{"start":{"line":379,"column":17},"end":{"line":379,"column":17}}]},"60":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":6},"end":{"line":404,"column":6}},{"start":{"line":404,"column":6},"end":{"line":404,"column":6}}]},"61":{"line":428,"type":"switch","locations":[{"start":{"line":429,"column":8},"end":{"line":432,"column":16}},{"start":{"line":433,"column":8},"end":{"line":438,"column":16}},{"start":{"line":439,"column":8},"end":{"line":447,"column":16}}]},"62":{"line":434,"type":"if","locations":[{"start":{"line":434,"column":10},"end":{"line":434,"column":10}},{"start":{"line":434,"column":10},"end":{"line":434,"column":10}}]},"63":{"line":440,"type":"if","locations":[{"start":{"line":440,"column":10},"end":{"line":440,"column":10}},{"start":{"line":440,"column":10},"end":{"line":440,"column":10}}]},"64":{"line":441,"type":"binary-expr","locations":[{"start":{"line":441,"column":12},"end":{"line":441,"column":52}},{"start":{"line":442,"column":12},"end":{"line":442,"column":49}}]},"65":{"line":460,"type":"binary-expr","locations":[{"start":{"line":460,"column":11},"end":{"line":460,"column":40}},{"start":{"line":461,"column":12},"end":{"line":461,"column":54}},{"start":{"line":462,"column":12},"end":{"line":462,"column":38}}]},"66":{"line":480,"type":"if","locations":[{"start":{"line":480,"column":4},"end":{"line":480,"column":4}},{"start":{"line":480,"column":4},"end":{"line":480,"column":4}}]},"67":{"line":480,"type":"binary-expr","locations":[{"start":{"line":480,"column":8},"end":{"line":480,"column":44}},{"start":{"line":480,"column":48},"end":{"line":480,"column":50}}]},"68":{"line":520,"type":"if","locations":[{"start":{"line":520,"column":6},"end":{"line":520,"column":6}},{"start":{"line":520,"column":6},"end":{"line":520,"column":6}}]},"69":{"line":521,"type":"binary-expr","locations":[{"start":{"line":521,"column":8},"end":{"line":521,"column":39}},{"start":{"line":522,"column":8},"end":{"line":522,"column":49}}]},"70":{"line":527,"type":"cond-expr","locations":[{"start":{"line":527,"column":34},"end":{"line":527,"column":44}},{"start":{"line":527,"column":47},"end":{"line":527,"column":54}}]},"71":{"line":539,"type":"cond-expr","locations":[{"start":{"line":540,"column":8},"end":{"line":540,"column":25}},{"start":{"line":541,"column":8},"end":{"line":541,"column":26}}]},"72":{"line":552,"type":"if","locations":[{"start":{"line":552,"column":4},"end":{"line":552,"column":4}},{"start":{"line":552,"column":4},"end":{"line":552,"column":4}}]},"73":{"line":563,"type":"if","locations":[{"start":{"line":563,"column":4},"end":{"line":563,"column":4}},{"start":{"line":563,"column":4},"end":{"line":563,"column":4}}]},"74":{"line":572,"type":"if","locations":[{"start":{"line":572,"column":6},"end":{"line":572,"column":6}},{"start":{"line":572,"column":6},"end":{"line":572,"column":6}}]},"75":{"line":585,"type":"if","locations":[{"start":{"line":585,"column":4},"end":{"line":585,"column":4}},{"start":{"line":585,"column":4},"end":{"line":585,"column":4}}]},"76":{"line":585,"type":"binary-expr","locations":[{"start":{"line":585,"column":8},"end":{"line":585,"column":10}},{"start":{"line":585,"column":14},"end":{"line":585,"column":16}}]},"77":{"line":606,"type":"binary-expr","locations":[{"start":{"line":606,"column":13},"end":{"line":606,"column":31}},{"start":{"line":606,"column":35},"end":{"line":606,"column":65}}]},"78":{"line":607,"type":"binary-expr","locations":[{"start":{"line":607,"column":11},"end":{"line":607,"column":13}},{"start":{"line":607,"column":17},"end":{"line":607,"column":52}}]},"79":{"line":614,"type":"if","locations":[{"start":{"line":614,"column":4},"end":{"line":614,"column":4}},{"start":{"line":614,"column":4},"end":{"line":614,"column":4}}]},"80":{"line":614,"type":"binary-expr","locations":[{"start":{"line":614,"column":8},"end":{"line":614,"column":14}},{"start":{"line":614,"column":18},"end":{"line":614,"column":41}}]},"81":{"line":616,"type":"if","locations":[{"start":{"line":616,"column":6},"end":{"line":616,"column":6}},{"start":{"line":616,"column":6},"end":{"line":616,"column":6}}]},"82":{"line":618,"type":"binary-expr","locations":[{"start":{"line":618,"column":11},"end":{"line":618,"column":17}},{"start":{"line":618,"column":21},"end":{"line":618,"column":33}}]},"83":{"line":624,"type":"if","locations":[{"start":{"line":624,"column":4},"end":{"line":624,"column":4}},{"start":{"line":624,"column":4},"end":{"line":624,"column":4}}]},"84":{"line":626,"type":"if","locations":[{"start":{"line":626,"column":11},"end":{"line":626,"column":11}},{"start":{"line":626,"column":11},"end":{"line":626,"column":11}}]},"85":{"line":628,"type":"if","locations":[{"start":{"line":628,"column":11},"end":{"line":628,"column":11}},{"start":{"line":628,"column":11},"end":{"line":628,"column":11}}]},"86":{"line":638,"type":"if","locations":[{"start":{"line":638,"column":6},"end":{"line":638,"column":6}},{"start":{"line":638,"column":6},"end":{"line":638,"column":6}}]},"87":{"line":651,"type":"binary-expr","locations":[{"start":{"line":651,"column":11},"end":{"line":651,"column":24}},{"start":{"line":651,"column":28},"end":{"line":651,"column":43}}]},"88":{"line":660,"type":"binary-expr","locations":[{"start":{"line":660,"column":15},"end":{"line":660,"column":27}},{"start":{"line":660,"column":32},"end":{"line":660,"column":64}}]},"89":{"line":678,"type":"switch","locations":[{"start":{"line":679,"column":6},"end":{"line":682,"column":14}},{"start":{"line":683,"column":6},"end":{"line":685,"column":14}},{"start":{"line":686,"column":6},"end":{"line":688,"column":14}}]},"90":{"line":703,"type":"cond-expr","locations":[{"start":{"line":704,"column":6},"end":{"line":714,"column":7}},{"start":{"line":715,"column":6},"end":{"line":715,"column":13}}]},"91":{"line":718,"type":"cond-expr","locations":[{"start":{"line":719,"column":6},"end":{"line":732,"column":7}},{"start":{"line":733,"column":6},"end":{"line":733,"column":9}}]},"92":{"line":738,"type":"binary-expr","locations":[{"start":{"line":738,"column":16},"end":{"line":738,"column":29}},{"start":{"line":739,"column":17},"end":{"line":747,"column":19}}]},"93":{"line":750,"type":"binary-expr","locations":[{"start":{"line":750,"column":13},"end":{"line":750,"column":25}},{"start":{"line":751,"column":14},"end":{"line":751,"column":68}}]},"94":{"line":767,"type":"binary-expr","locations":[{"start":{"line":767,"column":11},"end":{"line":767,"column":31}},{"start":{"line":768,"column":11},"end":{"line":768,"column":42}}]},"95":{"line":772,"type":"cond-expr","locations":[{"start":{"line":773,"column":6},"end":{"line":775,"column":7}},{"start":{"line":776,"column":6},"end":{"line":784,"column":7}}]},"96":{"line":787,"type":"cond-expr","locations":[{"start":{"line":788,"column":6},"end":{"line":801,"column":7}},{"start":{"line":802,"column":6},"end":{"line":802,"column":47}}]},"97":{"line":787,"type":"binary-expr","locations":[{"start":{"line":787,"column":20},"end":{"line":787,"column":22}},{"start":{"line":787,"column":26},"end":{"line":787,"column":28}}]},"98":{"line":797,"type":"if","locations":[{"start":{"line":797,"column":10},"end":{"line":797,"column":10}},{"start":{"line":797,"column":10},"end":{"line":797,"column":10}}]},"99":{"line":806,"type":"cond-expr","locations":[{"start":{"line":807,"column":6},"end":{"line":820,"column":7}},{"start":{"line":821,"column":6},"end":{"line":826,"column":7}}]},"100":{"line":806,"type":"binary-expr","locations":[{"start":{"line":806,"column":16},"end":{"line":806,"column":18}},{"start":{"line":806,"column":22},"end":{"line":806,"column":24}}]},"101":{"line":810,"type":"switch","locations":[{"start":{"line":811,"column":12},"end":{"line":813,"column":20}},{"start":{"line":814,"column":12},"end":{"line":816,"column":20}}]},"102":{"line":836,"type":"binary-expr","locations":[{"start":{"line":836,"column":17},"end":{"line":836,"column":19}},{"start":{"line":836,"column":23},"end":{"line":836,"column":26}}]},"103":{"line":836,"type":"binary-expr","locations":[{"start":{"line":836,"column":37},"end":{"line":836,"column":39}},{"start":{"line":836,"column":43},"end":{"line":836,"column":46}}]},"104":{"line":856,"type":"cond-expr","locations":[{"start":{"line":857,"column":6},"end":{"line":867,"column":7}},{"start":{"line":868,"column":6},"end":{"line":870,"column":7}}]},"105":{"line":878,"type":"cond-expr","locations":[{"start":{"line":879,"column":4},"end":{"line":884,"column":5}},{"start":{"line":885,"column":4},"end":{"line":885,"column":55}}]},"106":{"line":881,"type":"if","locations":[{"start":{"line":881,"column":8},"end":{"line":881,"column":8}},{"start":{"line":881,"column":8},"end":{"line":881,"column":8}}]},"107":{"line":887,"type":"cond-expr","locations":[{"start":{"line":888,"column":4},"end":{"line":893,"column":5}},{"start":{"line":894,"column":4},"end":{"line":894,"column":59}}]},"108":{"line":890,"type":"if","locations":[{"start":{"line":890,"column":7},"end":{"line":890,"column":7}},{"start":{"line":890,"column":7},"end":{"line":890,"column":7}}]},"109":{"line":899,"type":"if","locations":[{"start":{"line":899,"column":4},"end":{"line":899,"column":4}},{"start":{"line":899,"column":4},"end":{"line":899,"column":4}}]},"110":{"line":899,"type":"binary-expr","locations":[{"start":{"line":899,"column":8},"end":{"line":899,"column":23}},{"start":{"line":899,"column":27},"end":{"line":899,"column":65}}]},"111":{"line":907,"type":"if","locations":[{"start":{"line":907,"column":4},"end":{"line":907,"column":4}},{"start":{"line":907,"column":4},"end":{"line":907,"column":4}}]},"112":{"line":926,"type":"switch","locations":[{"start":{"line":927,"column":8},"end":{"line":933,"column":16}},{"start":{"line":934,"column":8},"end":{"line":978,"column":16}},{"start":{"line":979,"column":8},"end":{"line":988,"column":16}}]},"113":{"line":929,"type":"if","locations":[{"start":{"line":929,"column":10},"end":{"line":929,"column":10}},{"start":{"line":929,"column":10},"end":{"line":929,"column":10}}]},"114":{"line":938,"type":"cond-expr","locations":[{"start":{"line":938,"column":33},"end":{"line":938,"column":79}},{"start":{"line":938,"column":83},"end":{"line":938,"column":85}}]},"115":{"line":940,"type":"cond-expr","locations":[{"start":{"line":940,"column":31},"end":{"line":940,"column":73}},{"start":{"line":940,"column":76},"end":{"line":940,"column":78}}]},"116":{"line":942,"type":"switch","locations":[{"start":{"line":947,"column":12},"end":{"line":949,"column":20}},{"start":{"line":951,"column":12},"end":{"line":952,"column":25}},{"start":{"line":954,"column":12},"end":{"line":956,"column":20}}]},"117":{"line":962,"type":"if","locations":[{"start":{"line":962,"column":10},"end":{"line":962,"column":10}},{"start":{"line":962,"column":10},"end":{"line":962,"column":10}}]},"118":{"line":975,"type":"if","locations":[{"start":{"line":975,"column":10},"end":{"line":975,"column":10}},{"start":{"line":975,"column":10},"end":{"line":975,"column":10}}]},"119":{"line":981,"type":"binary-expr","locations":[{"start":{"line":981,"column":19},"end":{"line":981,"column":51}},{"start":{"line":982,"column":20},"end":{"line":986,"column":21}}]},"120":{"line":1037,"type":"switch","locations":[{"start":{"line":1038,"column":6},"end":{"line":1038,"column":24}},{"start":{"line":1039,"column":6},"end":{"line":1041,"column":14}},{"start":{"line":1042,"column":6},"end":{"line":1048,"column":14}},{"start":{"line":1049,"column":6},"end":{"line":1049,"column":26}},{"start":{"line":1050,"column":6},"end":{"line":1053,"column":14}}]},"121":{"line":1100,"type":"binary-expr","locations":[{"start":{"line":1100,"column":16},"end":{"line":1100,"column":39}},{"start":{"line":1101,"column":16},"end":{"line":1101,"column":51}}]},"122":{"line":1102,"type":"if","locations":[{"start":{"line":1102,"column":4},"end":{"line":1102,"column":4}},{"start":{"line":1102,"column":4},"end":{"line":1102,"column":4}}]},"123":{"line":1123,"type":"cond-expr","locations":[{"start":{"line":1124,"column":8},"end":{"line":1124,"column":54}},{"start":{"line":1125,"column":8},"end":{"line":1125,"column":16}}]},"124":{"line":1130,"type":"if","locations":[{"start":{"line":1130,"column":6},"end":{"line":1130,"column":6}},{"start":{"line":1130,"column":6},"end":{"line":1130,"column":6}}]},"125":{"line":1132,"type":"if","locations":[{"start":{"line":1132,"column":8},"end":{"line":1132,"column":8}},{"start":{"line":1132,"column":8},"end":{"line":1132,"column":8}}]},"126":{"line":1140,"type":"cond-expr","locations":[{"start":{"line":1141,"column":6},"end":{"line":1167,"column":7}},{"start":{"line":1168,"column":6},"end":{"line":1177,"column":7}}]},"127":{"line":1144,"type":"if","locations":[{"start":{"line":1144,"column":8},"end":{"line":1144,"column":8}},{"start":{"line":1144,"column":8},"end":{"line":1144,"column":8}}]},"128":{"line":1148,"type":"if","locations":[{"start":{"line":1148,"column":12},"end":{"line":1148,"column":12}},{"start":{"line":1148,"column":12},"end":{"line":1148,"column":12}}]},"129":{"line":1149,"type":"if","locations":[{"start":{"line":1149,"column":14},"end":{"line":1149,"column":14}},{"start":{"line":1149,"column":14},"end":{"line":1149,"column":14}}]},"130":{"line":1158,"type":"if","locations":[{"start":{"line":1158,"column":16},"end":{"line":1158,"column":16}},{"start":{"line":1158,"column":16},"end":{"line":1158,"column":16}}]},"131":{"line":1170,"type":"if","locations":[{"start":{"line":1170,"column":8},"end":{"line":1170,"column":8}},{"start":{"line":1170,"column":8},"end":{"line":1170,"column":8}}]},"132":{"line":1185,"type":"if","locations":[{"start":{"line":1185,"column":4},"end":{"line":1185,"column":4}},{"start":{"line":1185,"column":4},"end":{"line":1185,"column":4}}]},"133":{"line":1187,"type":"binary-expr","locations":[{"start":{"line":1187,"column":13},"end":{"line":1187,"column":29}},{"start":{"line":1187,"column":33},"end":{"line":1187,"column":39}}]},"134":{"line":1189,"type":"if","locations":[{"start":{"line":1189,"column":4},"end":{"line":1189,"column":4}},{"start":{"line":1189,"column":4},"end":{"line":1189,"column":4}}]},"135":{"line":1193,"type":"binary-expr","locations":[{"start":{"line":1193,"column":11},"end":{"line":1193,"column":19}},{"start":{"line":1193,"column":24},"end":{"line":1193,"column":52}}]},"136":{"line":1221,"type":"cond-expr","locations":[{"start":{"line":1221,"column":48},"end":{"line":1221,"column":53}},{"start":{"line":1221,"column":56},"end":{"line":1221,"column":66}}]},"137":{"line":1230,"type":"binary-expr","locations":[{"start":{"line":1230,"column":18},"end":{"line":1230,"column":26}},{"start":{"line":1230,"column":30},"end":{"line":1230,"column":38}}]},"138":{"line":1232,"type":"if","locations":[{"start":{"line":1232,"column":4},"end":{"line":1232,"column":4}},{"start":{"line":1232,"column":4},"end":{"line":1232,"column":4}}]},"139":{"line":1232,"type":"binary-expr","locations":[{"start":{"line":1232,"column":8},"end":{"line":1232,"column":22}},{"start":{"line":1232,"column":26},"end":{"line":1232,"column":34}}]},"140":{"line":1233,"type":"if","locations":[{"start":{"line":1233,"column":6},"end":{"line":1233,"column":6}},{"start":{"line":1233,"column":6},"end":{"line":1233,"column":6}}]},"141":{"line":1233,"type":"binary-expr","locations":[{"start":{"line":1233,"column":10},"end":{"line":1233,"column":18}},{"start":{"line":1233,"column":22},"end":{"line":1233,"column":30}}]},"142":{"line":1238,"type":"if","locations":[{"start":{"line":1238,"column":4},"end":{"line":1238,"column":4}},{"start":{"line":1238,"column":4},"end":{"line":1238,"column":4}}]},"143":{"line":1295,"type":"cond-expr","locations":[{"start":{"line":1295,"column":51},"end":{"line":1295,"column":52}},{"start":{"line":1295,"column":55},"end":{"line":1295,"column":56}}]},"144":{"line":1296,"type":"cond-expr","locations":[{"start":{"line":1297,"column":27},"end":{"line":1298,"column":37}},{"start":{"line":1299,"column":27},"end":{"line":1300,"column":37}}]},"145":{"line":1297,"type":"cond-expr","locations":[{"start":{"line":1298,"column":28},"end":{"line":1298,"column":31}},{"start":{"line":1298,"column":34},"end":{"line":1298,"column":37}}]},"146":{"line":1299,"type":"cond-expr","locations":[{"start":{"line":1300,"column":28},"end":{"line":1300,"column":31}},{"start":{"line":1300,"column":34},"end":{"line":1300,"column":37}}]},"147":{"line":1330,"type":"binary-expr","locations":[{"start":{"line":1330,"column":11},"end":{"line":1330,"column":12}},{"start":{"line":1330,"column":16},"end":{"line":1330,"column":17}}]},"148":{"line":1337,"type":"if","locations":[{"start":{"line":1337,"column":6},"end":{"line":1337,"column":6}},{"start":{"line":1337,"column":6},"end":{"line":1337,"column":6}}]},"149":{"line":1337,"type":"binary-expr","locations":[{"start":{"line":1337,"column":10},"end":{"line":1337,"column":26}},{"start":{"line":1337,"column":30},"end":{"line":1337,"column":45}},{"start":{"line":1337,"column":49},"end":{"line":1337,"column":65}}]},"150":{"line":1340,"type":"if","locations":[{"start":{"line":1340,"column":8},"end":{"line":1340,"column":8}},{"start":{"line":1340,"column":8},"end":{"line":1340,"column":8}}]},"151":{"line":1344,"type":"if","locations":[{"start":{"line":1344,"column":11},"end":{"line":1344,"column":11}},{"start":{"line":1344,"column":11},"end":{"line":1344,"column":11}}]},"152":{"line":1344,"type":"binary-expr","locations":[{"start":{"line":1344,"column":15},"end":{"line":1344,"column":26}},{"start":{"line":1344,"column":30},"end":{"line":1344,"column":42}}]},"153":{"line":1370,"type":"if","locations":[{"start":{"line":1370,"column":4},"end":{"line":1370,"column":4}},{"start":{"line":1370,"column":4},"end":{"line":1370,"column":4}}]},"154":{"line":1374,"type":"if","locations":[{"start":{"line":1374,"column":8},"end":{"line":1374,"column":8}},{"start":{"line":1374,"column":8},"end":{"line":1374,"column":8}}]},"155":{"line":1374,"type":"binary-expr","locations":[{"start":{"line":1374,"column":12},"end":{"line":1374,"column":35}},{"start":{"line":1374,"column":39},"end":{"line":1374,"column":61}},{"start":{"line":1374,"column":65},"end":{"line":1374,"column":87}}]},"156":{"line":1379,"type":"cond-expr","locations":[{"start":{"line":1380,"column":12},"end":{"line":1380,"column":27}},{"start":{"line":1380,"column":31},"end":{"line":1381,"column":27}}]},"157":{"line":1380,"type":"cond-expr","locations":[{"start":{"line":1381,"column":14},"end":{"line":1381,"column":23}},{"start":{"line":1381,"column":26},"end":{"line":1381,"column":27}}]}}}} \ No newline at end of file diff --git a/coverage/lcov-report/hyperHTML/index.html b/coverage/lcov-report/hyperHTML/index.html index e69de29b..747a2964 100644 --- a/coverage/lcov-report/hyperHTML/index.html +++ b/coverage/lcov-report/hyperHTML/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for hyperHTML/ + + + + + + + +
                    +
                    +

                    + all files hyperHTML/ +

                    +
                    +
                    + 100% + Statements + 605/605 +
                    +
                    + 100% + Branches + 335/335 +
                    +
                    + 100% + Functions + 98/98 +
                    +
                    + 100% + Lines + 591/591 +
                    +
                    +
                    +
                    +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    FileStatementsBranchesFunctionsLines
                    index.js
                    100%605/605100%335/335100%98/98100%591/591
                    +
                    +
                    + +
                    + + + + + diff --git a/coverage/lcov-report/hyperHTML/index.js.html b/coverage/lcov-report/hyperHTML/index.js.html index 7e1d2b05..763c051d 100644 --- a/coverage/lcov-report/hyperHTML/index.js.html +++ b/coverage/lcov-report/hyperHTML/index.js.html @@ -27,17 +27,17 @@

                    100% Branches - 341/341 + 335/335
                    100% Functions - 97/97 + 98/98
                    100% Lines - 590/590 + 591/591

            @@ -1446,7 +1446,8 @@

            1401 1402 1403 -1404 +1404 +1405       @@ -1924,6 +1925,15 @@

                  + + +206× + +  +  +  +  +      @@ -2201,8 +2211,6 @@

                - - 206× 206× @@ -2210,7 +2218,6 @@

                  -    69× @@ -2665,7 +2672,6 @@

                  -  60×   @@ -2691,20 +2697,22 @@

                  - -104× -104× +      +104× +104× +88× +88× +88× +88×   +104×     +   - -104× -104× -104×       @@ -2829,11 +2837,6 @@

                  - -88× -  -  -        @@ -2848,8 +2851,7 @@

                  - - 
            var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
            +
            var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
              
               /*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */
              
            @@ -3033,7 +3035,7 @@ 

            var hyper = hypers.get(this); if ( !hyper || - hyper.template !== (FF ? unique(template) : template) + hyper.template !== TL(template) ) { hyper = upgrade.apply(this, arguments); hypers.set(this, hyper); @@ -3323,6 +3325,15 @@

              // beside IE, old WebKit browsers don't have `children` in DocumentFragment var WK = !('children' in featureFragment); +  + // both Firefox < 55 and TypeScript have issues with template literals + // this lazy defined callback should spot issues right away + // and in the best case scenario become a no-op + var TL = function (template) { + if (template.propertyIsEnumerable('raw') || FF) TL = unique; + else TL = function (t) { return t; }; + return TL(template); + };   // --------------------------------------------- // Helpers @@ -3603,14 +3614,11 @@

            var transformers = {};   // normalize Firefox issue with template literals - var templateObjects, unique; - if (FF) { - templateObjects = {}; - unique = function (template) { - var key = '_' + template.join(UIDC); - return templateObjects[key] || - (templateObjects[key] = template); - }; + var templateObjects = {}, unique; + function unique(template) { + var key = '_' + template.join(UIDC); + return templateObjects[key] || + (templateObjects[key] = template); }   // use native .append(...childNodes) where available @@ -3940,7 +3948,7 @@

            // create a template, if unknown // upgrade a node to use such template for future updates function upgrade(template) { - if (FF) template = unique(template); + template = TL(template); var updates; var info = templates.get(template) || createTemplate.call(this, template); @@ -3985,7 +3993,7 @@

            return type === 'adopt' ? function adopt(statics) { var args = arguments; - if (FF) statics = unique(statics); + statics = TL(statics); if (template !== statics) { setup = true; template = statics; @@ -4011,7 +4019,7 @@

            return adopter; } : function update(statics) { - if (FF) statics = unique(statics); + statics = TL(statics); if (template !== statics) { setup = true; template = statics; @@ -4044,7 +4052,7 @@

            // changes needed to show the a new list // where there was another one. // There is a limit, in terms of performance, - // on how bug can the optimal computation be, + // on how big can the optimal computation be, // so if you change this value be sure your // target hardware is good enough. hyper.MAX_LIST_SIZE = 1000; @@ -4063,7 +4071,6 @@

            DELETE = 'del', INSERT = 'ins', SUBSTITUTE = 'sub', - AuraPrototype = Aura.prototype, TypedArray = /^u/.test(typeof Int32Array) ? Array : Int32Array ;   @@ -4093,22 +4100,24 @@

              // given an object that would like to intercept // all splice operations performed through a list, - // return a list "aura" that will delegate all splices - majinbuu.aura = function aura(interceptor, list) { - Aura.prototype = list; - return new Aura(interceptor); + // wraps the list.splice method to delegate such object + // and it puts back original splice right before + // every invocation. + // Note: do not use the same list in two different aura + majinbuu.aura = function aura(splicer, list) { + var splice = list.splice; + list.splice = function hodor() { + list.splice = splice; + var result = splicer.splice.apply(splicer, arguments); + list.splice = hodor; + return result; + }; + return list; };   return majinbuu;   // Helpers - - - - - - - - - - - - - - - - - - - - - - -  - // Aura instances are just Array bridges - function Aura(interceptor) { - Aura.prototype = AuraPrototype; - this._ = interceptor; - this.splice = splice; - }   // originally readapted from: // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html @@ -4230,11 +4239,6 @@

            target.splice.apply(target, [op.y + diff, op.count].concat(op.items)); } } -  - // delegate all splice operations through an aura - function splice() { - return this._.splice.apply(this._, arguments); - }   /* one-by-one operation (testing purpose) function performOperations(target, operations) { @@ -4251,14 +4255,13 @@

            }()));   // umd.KISS -try { module.exports = hyperHTML; } catch(o_O) {} - 

            +try { module.exports = hyperHTML; } catch(o_O) {}

      diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html index e69de29b..fbb81161 100644 --- a/coverage/lcov-report/index.html +++ b/coverage/lcov-report/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for All files + + + + + + + +
      +
      +

      + / +

      +
      +
      + 100% + Statements + 605/605 +
      +
      + 100% + Branches + 335/335 +
      +
      + 100% + Functions + 98/98 +
      +
      + 100% + Lines + 591/591 +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      FileStatementsBranchesFunctionsLines
      hyperHTML/
      100%605/605100%335/335100%98/98100%591/591
      +
      +
      + + + + + + + diff --git a/coverage/lcov.info b/coverage/lcov.info index e69de29b..3634dfbb 100644 --- a/coverage/lcov.info +++ b/coverage/lcov.info @@ -0,0 +1,1131 @@ +TN: +SF:/home/webreflection/code/hyperHTML/index.js +FN:1,(anonymous_1) +FN:16,hyper +FN:38,adopt +FN:39,(anonymous_4) +FN:50,bind +FN:53,define +FN:58,escape +FN:65,wire +FN:79,Component +FN:84,(anonymous_10) +FN:97,(anonymous_11) +FN:99,(anonymous_12) +FN:101,(anonymous_13) +FN:141,Aura +FN:147,splice +FN:181,render +FN:198,setAttribute +FN:212,eventAttr +FN:220,specialAttr +FN:240,normalAttr +FN:266,setTextContent +FN:268,(anonymous_22) +FN:278,setAnyContent +FN:280,anyContent +FN:394,attributesSeeker +FN:420,hyperSeeker +FN:466,(anonymous_27) +FN:479,(anonymous_28) +FN:481,(anonymous_29) +FN:500,fnEscape +FN:505,asHTML +FN:510,createContent +FN:531,createDocumentFragment +FN:537,createFragment +FN:546,createHTMLFragment +FN:582,createSVGFragment +FN:598,createText +FN:604,getCEClass +FN:612,isSpecialAttribute +FN:622,invokeAtDistance +FN:636,invokeTransformer +FN:645,isNode_ish +FN:650,isPromise_ish +FN:656,lazyGetter +FN:659,(anonymous_45) +FN:662,(anonymous_46) +FN:669,removeAttributeList +FN:676,setContent +FN:694,Path +FN:704,(anonymous_50) +FN:706,(anonymous_51) +FN:707,(anonymous_52) +FN:719,(anonymous_53) +FN:722,(anonymous_54) +FN:728,(anonymous_55) +FN:739,(anonymous_56) +FN:744,(anonymous_57) +FN:751,(anonymous_58) +FN:765,unique +FN:773,(anonymous_60) +FN:776,appendNodes +FN:788,(anonymous_62) +FN:802,(anonymous_63) +FN:807,(anonymous_64) +FN:821,(anonymous_65) +FN:831,(anonymous_66) +FN:835,(anonymous_67) +FN:853,(anonymous_68) +FN:857,(anonymous_69) +FN:868,(anonymous_70) +FN:879,(anonymous_71) +FN:885,(anonymous_72) +FN:888,(anonymous_73) +FN:894,(anonymous_74) +FN:897,removePreviousText +FN:906,insertBefore +FN:916,discoverNode +FN:995,discoverUpdates +FN:1022,createTemplate +FN:1034,createPath +FN:1068,createUpdates +FN:1089,update +FN:1097,upgrade +FN:1118,wireContent +FN:1121,before +FN:1129,after +FN:1141,adopt +FN:1147,(anonymous_88) +FN:1168,update +FN:1181,wireWeakly +FN:1212,(anonymous_91) +FN:1226,majinbuu +FN:1254,aura +FN:1256,hodor +FN:1273,levenstein +FN:1309,addOperation +FN:1320,getOperations +FN:1363,performOperations +FNF:98 +FNH:98 +FNDA:2,(anonymous_1) +FNDA:20,hyper +FNDA:28,adopt +FNDA:32,(anonymous_4) +FNDA:210,bind +FNDA:2,define +FNDA:2,escape +FNDA:62,wire +FNDA:14,Component +FNDA:6,(anonymous_10) +FNDA:6,(anonymous_11) +FNDA:4,(anonymous_12) +FNDA:6,(anonymous_13) +FNDA:104,Aura +FNDA:88,splice +FNDA:282,render +FNDA:48,setAttribute +FNDA:30,eventAttr +FNDA:20,specialAttr +FNDA:48,normalAttr +FNDA:4,setTextContent +FNDA:6,(anonymous_22) +FNDA:104,setAnyContent +FNDA:286,anyContent +FNDA:118,attributesSeeker +FNDA:228,hyperSeeker +FNDA:2,(anonymous_27) +FNDA:2,(anonymous_28) +FNDA:206,(anonymous_29) +FNDA:4,fnEscape +FNDA:2,asHTML +FNDA:62,createContent +FNDA:142,createDocumentFragment +FNDA:138,createFragment +FNDA:136,createHTMLFragment +FNDA:2,createSVGFragment +FNDA:72,createText +FNDA:4,getCEClass +FNDA:46,isSpecialAttribute +FNDA:10,invokeAtDistance +FNDA:10,invokeTransformer +FNDA:84,isNode_ish +FNDA:100,isPromise_ish +FNDA:6,lazyGetter +FNDA:42,(anonymous_45) +FNDA:18,(anonymous_46) +FNDA:156,removeAttributeList +FNDA:156,setContent +FNDA:116,Path +FNDA:2,(anonymous_50) +FNDA:164,(anonymous_51) +FNDA:90,(anonymous_52) +FNDA:1,(anonymous_53) +FNDA:78,(anonymous_54) +FNDA:55,(anonymous_55) +FNDA:1,(anonymous_56) +FNDA:101,(anonymous_57) +FNDA:21,(anonymous_58) +FNDA:206,unique +FNDA:69,(anonymous_60) +FNDA:5,appendNodes +FNDA:162,(anonymous_62) +FNDA:101,(anonymous_63) +FNDA:82,(anonymous_64) +FNDA:82,(anonymous_65) +FNDA:38,(anonymous_66) +FNDA:48,(anonymous_67) +FNDA:2,(anonymous_68) +FNDA:206,(anonymous_69) +FNDA:62,(anonymous_70) +FNDA:21,(anonymous_71) +FNDA:21,(anonymous_72) +FNDA:18,(anonymous_73) +FNDA:18,(anonymous_74) +FNDA:40,removePreviousText +FNDA:36,insertBefore +FNDA:46,discoverNode +FNDA:32,discoverUpdates +FNDA:110,createTemplate +FNDA:116,createPath +FNDA:124,createUpdates +FNDA:282,update +FNDA:156,upgrade +FNDA:60,wireContent +FNDA:60,before +FNDA:90,after +FNDA:14,adopt +FNDA:14,(anonymous_88) +FNDA:76,update +FNDA:46,wireWeakly +FNDA:2,(anonymous_91) +FNDA:60,majinbuu +FNDA:104,aura +FNDA:88,hodor +FNDA:30,levenstein +FNDA:28,addOperation +FNDA:30,getOperations +FNDA:30,performOperations +DA:1,2 +DA:11,2 +DA:14,2 +DA:16,1 +DA:17,20 +DA:38,2 +DA:39,28 +DA:40,32 +DA:41,32 +DA:42,32 +DA:43,32 +DA:49,2 +DA:50,210 +DA:53,2 +DA:54,2 +DA:58,2 +DA:59,2 +DA:64,2 +DA:65,1 +DA:66,62 +DA:78,2 +DA:79,1 +DA:80,2 +DA:86,6 +DA:87,6 +DA:97,6 +DA:99,4 +DA:102,6 +DA:103,6 +DA:104,11 +DA:105,6 +DA:122,2 +DA:123,2 +DA:124,2 +DA:125,2 +DA:126,2 +DA:129,2 +DA:130,2 +DA:132,2 +DA:133,2 +DA:134,2 +DA:135,2 +DA:141,1 +DA:142,104 +DA:143,104 +DA:144,104 +DA:147,2 +DA:148,88 +DA:158,50 +DA:160,88 +DA:161,88 +DA:162,88 +DA:163,48 +DA:164,34 +DA:166,14 +DA:167,14 +DA:168,38 +DA:171,48 +DA:173,88 +DA:181,1 +DA:182,282 +DA:183,282 +DA:187,156 +DA:188,156 +DA:190,282 +DA:191,282 +DA:198,1 +DA:199,48 +DA:209,48 +DA:210,48 +DA:211,48 +DA:213,30 +DA:214,18 +DA:215,18 +DA:216,18 +DA:221,20 +DA:222,16 +DA:225,16 +DA:229,14 +DA:232,4 +DA:233,4 +DA:235,10 +DA:241,48 +DA:242,36 +DA:245,36 +DA:246,34 +DA:247,4 +DA:249,2 +DA:250,2 +DA:253,30 +DA:254,30 +DA:255,2 +DA:256,2 +DA:266,1 +DA:267,4 +DA:268,4 +DA:269,6 +DA:270,4 +DA:271,4 +DA:278,1 +DA:279,104 +DA:280,104 +DA:281,286 +DA:285,114 +DA:286,114 +DA:290,46 +DA:291,28 +DA:292,28 +DA:295,68 +DA:296,68 +DA:297,2 +DA:299,66 +DA:305,114 +DA:307,4 +DA:308,4 +DA:311,168 +DA:312,6 +DA:313,6 +DA:314,6 +DA:315,162 +DA:316,2 +DA:319,162 +DA:320,162 +DA:321,78 +DA:322,78 +DA:323,4 +DA:325,74 +DA:329,24 +DA:330,24 +DA:332,10 +DA:333,10 +DA:334,12 +DA:336,10 +DA:337,10 +DA:339,40 +DA:340,12 +DA:342,40 +DA:343,4 +DA:344,4 +DA:346,36 +DA:347,78 +DA:348,4 +DA:353,36 +DA:354,36 +DA:357,84 +DA:358,24 +DA:365,60 +DA:366,4 +DA:367,56 +DA:368,10 +DA:369,46 +DA:370,4 +DA:371,42 +DA:372,4 +DA:373,38 +DA:374,28 +DA:375,28 +DA:376,28 +DA:377,28 +DA:378,28 +DA:379,10 +DA:380,4 +DA:382,6 +DA:384,162 +DA:394,1 +DA:395,118 +DA:403,56 +DA:404,56 +DA:405,48 +DA:406,48 +DA:420,1 +DA:421,228 +DA:427,322 +DA:428,322 +DA:430,118 +DA:431,118 +DA:432,118 +DA:434,66 +DA:435,64 +DA:436,64 +DA:438,66 +DA:440,138 +DA:444,4 +DA:445,4 +DA:447,138 +DA:455,2 +DA:460,2 +DA:466,2 +DA:467,2 +DA:468,2 +DA:469,2 +DA:474,2 +DA:479,2 +DA:480,2 +DA:481,206 +DA:482,2 +DA:490,2 +DA:493,2 +DA:500,1 +DA:501,4 +DA:505,1 +DA:506,2 +DA:510,1 +DA:511,62 +DA:519,90 +DA:520,90 +DA:524,66 +DA:527,62 +DA:531,1 +DA:532,142 +DA:537,1 +DA:538,138 +DA:546,1 +DA:547,136 +DA:548,136 +DA:549,136 +DA:550,136 +DA:551,136 +DA:552,136 +DA:554,64 +DA:561,64 +DA:563,136 +DA:567,1 +DA:568,1 +DA:569,1 +DA:571,135 +DA:572,135 +DA:573,72 +DA:575,63 +DA:578,136 +DA:582,1 +DA:583,2 +DA:584,2 +DA:585,2 +DA:586,1 +DA:587,1 +DA:588,1 +DA:590,1 +DA:591,1 +DA:592,1 +DA:594,2 +DA:598,1 +DA:599,72 +DA:604,1 +DA:605,4 +DA:606,4 +DA:607,4 +DA:612,1 +DA:613,46 +DA:614,46 +DA:615,4 +DA:616,4 +DA:618,46 +DA:622,1 +DA:623,10 +DA:624,10 +DA:625,2 +DA:626,8 +DA:627,2 +DA:628,6 +DA:629,2 +DA:631,4 +DA:636,1 +DA:637,10 +DA:638,10 +DA:639,8 +DA:645,1 +DA:646,84 +DA:650,1 +DA:651,100 +DA:656,1 +DA:657,6 +DA:658,6 +DA:660,42 +DA:663,18 +DA:669,1 +DA:670,156 +DA:671,24 +DA:676,1 +DA:677,156 +DA:678,156 +DA:681,104 +DA:682,104 +DA:684,48 +DA:685,48 +DA:687,4 +DA:688,4 +DA:690,156 +DA:694,1 +DA:695,116 +DA:703,2 +DA:705,2 +DA:706,164 +DA:708,90 +DA:718,2 +DA:720,1 +DA:721,1 +DA:723,78 +DA:729,55 +DA:738,2 +DA:740,1 +DA:743,1 +DA:744,1 +DA:745,101 +DA:750,2 +DA:751,21 +DA:758,2 +DA:761,2 +DA:764,2 +DA:765,1 +DA:766,206 +DA:767,206 +DA:772,2 +DA:774,69 +DA:777,5 +DA:782,6 +DA:787,2 +DA:789,162 +DA:796,390 +DA:797,390 +DA:798,205 +DA:800,162 +DA:802,101 +DA:806,2 +DA:808,82 +DA:809,137 +DA:810,137 +DA:812,61 +DA:813,61 +DA:815,76 +DA:816,76 +DA:819,82 +DA:822,82 +DA:823,137 +DA:825,82 +DA:829,2 +DA:830,2 +DA:831,2 +DA:832,38 +DA:835,2 +DA:836,48 +DA:840,2 +DA:843,2 +DA:846,2 +DA:849,2 +DA:853,2 +DA:854,2 +DA:855,2 +DA:856,2 +DA:858,206 +DA:864,144 +DA:866,206 +DA:869,62 +DA:878,2 +DA:880,21 +DA:881,15 +DA:883,15 +DA:885,21 +DA:887,2 +DA:889,18 +DA:890,12 +DA:892,14 +DA:894,18 +DA:897,1 +DA:898,40 +DA:899,40 +DA:900,10 +DA:901,10 +DA:906,1 +DA:907,36 +DA:908,10 +DA:910,26 +DA:916,1 +DA:917,46 +DA:926,82 +DA:928,8 +DA:929,8 +DA:930,6 +DA:932,8 +DA:933,8 +DA:935,36 +DA:936,36 +DA:937,36 +DA:938,36 +DA:939,36 +DA:940,36 +DA:941,36 +DA:942,36 +DA:948,26 +DA:949,26 +DA:952,4 +DA:955,10 +DA:956,10 +DA:958,36 +DA:962,36 +DA:963,6 +DA:969,30 +DA:975,36 +DA:976,30 +DA:978,36 +DA:981,38 +DA:987,38 +DA:988,38 +DA:991,46 +DA:995,1 +DA:996,32 +DA:1003,46 +DA:1004,46 +DA:1005,46 +DA:1012,32 +DA:1013,32 +DA:1022,1 +DA:1023,110 +DA:1024,110 +DA:1025,110 +DA:1026,110 +DA:1027,110 +DA:1028,110 +DA:1034,1 +DA:1035,116 +DA:1036,116 +DA:1037,116 +DA:1040,4 +DA:1041,4 +DA:1043,64 +DA:1044,64 +DA:1048,64 +DA:1051,48 +DA:1052,48 +DA:1053,48 +DA:1055,116 +DA:1060,92 +DA:1062,116 +DA:1068,1 +DA:1069,124 +DA:1076,110 +DA:1077,110 +DA:1084,124 +DA:1085,124 +DA:1089,1 +DA:1090,282 +DA:1091,300 +DA:1097,1 +DA:1098,156 +DA:1099,156 +DA:1100,156 +DA:1102,156 +DA:1103,124 +DA:1104,124 +DA:1105,124 +DA:1106,124 +DA:1108,32 +DA:1110,156 +DA:1118,1 +DA:1119,60 +DA:1121,1 +DA:1122,60 +DA:1123,60 +DA:1126,60 +DA:1129,1 +DA:1130,90 +DA:1131,62 +DA:1132,62 +DA:1133,8 +DA:1135,62 +DA:1137,90 +DA:1140,60 +DA:1142,14 +DA:1143,14 +DA:1144,14 +DA:1145,10 +DA:1146,10 +DA:1147,10 +DA:1148,14 +DA:1149,10 +DA:1150,2 +DA:1151,2 +DA:1156,2 +DA:1158,8 +DA:1159,8 +DA:1162,14 +DA:1163,14 +DA:1166,14 +DA:1169,76 +DA:1170,76 +DA:1171,52 +DA:1172,52 +DA:1173,52 +DA:1175,76 +DA:1176,76 +DA:1181,1 +DA:1182,46 +DA:1183,46 +DA:1184,46 +DA:1185,46 +DA:1186,12 +DA:1187,12 +DA:1189,46 +DA:1190,24 +DA:1191,24 +DA:1193,46 +DA:1205,2 +DA:1210,2 +DA:1217,2 +DA:1226,1 +DA:1227,60 +DA:1232,60 +DA:1233,26 +DA:1234,24 +DA:1236,26 +DA:1238,34 +DA:1239,4 +DA:1240,4 +DA:1242,30 +DA:1254,2 +DA:1255,104 +DA:1256,104 +DA:1257,88 +DA:1258,88 +DA:1259,88 +DA:1260,88 +DA:1262,104 +DA:1265,2 +DA:1273,1 +DA:1274,30 +DA:1275,30 +DA:1276,30 +DA:1277,30 +DA:1278,30 +DA:1279,30 +DA:1280,30 +DA:1281,30 +DA:1282,30 +DA:1283,30 +DA:1284,30 +DA:1285,30 +DA:1286,50 +DA:1287,30 +DA:1288,46 +DA:1289,46 +DA:1290,46 +DA:1291,46 +DA:1292,46 +DA:1293,84 +DA:1294,84 +DA:1295,84 +DA:1296,84 +DA:1301,84 +DA:1303,46 +DA:1305,30 +DA:1309,1 +DA:1310,28 +DA:1320,1 +DA:1321,30 +DA:1330,30 +DA:1331,50 +DA:1332,50 +DA:1333,50 +DA:1334,50 +DA:1335,50 +DA:1336,50 +DA:1337,50 +DA:1338,42 +DA:1339,42 +DA:1340,42 +DA:1341,16 +DA:1344,8 +DA:1345,6 +DA:1346,6 +DA:1349,2 +DA:1350,2 +DA:1353,30 +DA:1354,2 +DA:1356,30 +DA:1357,2 +DA:1359,30 +DA:1363,1 +DA:1364,30 +DA:1370,30 +DA:1371,20 +DA:1372,20 +DA:1373,8 +DA:1374,8 +DA:1375,2 +DA:1376,2 +DA:1378,6 +DA:1379,6 +DA:1382,6 +DA:1384,8 +DA:1386,20 +DA:1405,2 +LF:591 +LH:591 +BRDA:17,1,0,14 +BRDA:17,1,1,6 +BRDA:18,2,0,2 +BRDA:18,2,1,12 +BRDA:20,3,0,2 +BRDA:20,3,1,10 +BRDA:22,4,0,2 +BRDA:22,4,1,8 +BRDA:24,5,0,4 +BRDA:24,5,1,4 +BRDA:30,6,0,2 +BRDA:30,6,1,4 +BRDA:66,7,0,14 +BRDA:66,7,1,48 +BRDA:68,8,0,6 +BRDA:68,8,1,42 +BRDA:69,9,0,6 +BRDA:69,9,1,2 +BRDA:70,10,0,42 +BRDA:70,10,1,16 +BRDA:88,11,0,6 +BRDA:88,11,1,4 +BRDA:88,11,2,4 +BRDA:103,12,0,2 +BRDA:103,12,1,4 +BRDA:156,13,0,138 +BRDA:156,13,1,56 +BRDA:162,14,0,48 +BRDA:162,14,1,40 +BRDA:163,15,0,34 +BRDA:163,15,1,14 +BRDA:171,16,0,48 +BRDA:171,16,1,44 +BRDA:183,17,0,156 +BRDA:183,17,1,126 +BRDA:184,18,0,282 +BRDA:184,18,1,166 +BRDA:202,19,0,48 +BRDA:202,19,1,46 +BRDA:202,19,2,20 +BRDA:205,20,0,14 +BRDA:205,20,1,34 +BRDA:206,21,0,48 +BRDA:206,21,1,34 +BRDA:209,22,0,12 +BRDA:209,22,1,36 +BRDA:209,23,0,48 +BRDA:209,23,1,14 +BRDA:210,24,0,24 +BRDA:210,24,1,24 +BRDA:211,25,0,14 +BRDA:211,25,1,34 +BRDA:213,26,0,18 +BRDA:213,26,1,12 +BRDA:214,27,0,4 +BRDA:214,27,1,14 +BRDA:216,28,0,16 +BRDA:216,28,1,2 +BRDA:219,29,0,10 +BRDA:219,29,1,24 +BRDA:221,30,0,16 +BRDA:221,30,1,4 +BRDA:225,31,0,14 +BRDA:225,31,1,2 +BRDA:229,32,0,4 +BRDA:229,32,1,10 +BRDA:241,33,0,36 +BRDA:241,33,1,12 +BRDA:245,34,0,34 +BRDA:245,34,1,2 +BRDA:246,35,0,4 +BRDA:246,35,1,30 +BRDA:247,36,0,2 +BRDA:247,36,1,2 +BRDA:254,37,0,2 +BRDA:254,37,1,28 +BRDA:269,38,0,4 +BRDA:269,38,1,2 +BRDA:281,39,0,100 +BRDA:281,39,1,112 +BRDA:281,39,2,114 +BRDA:281,39,3,4 +BRDA:281,39,4,164 +BRDA:281,39,5,168 +BRDA:281,39,6,162 +BRDA:286,40,0,46 +BRDA:286,40,1,68 +BRDA:287,41,0,114 +BRDA:287,41,1,48 +BRDA:290,42,0,28 +BRDA:290,42,1,18 +BRDA:296,43,0,2 +BRDA:296,43,1,66 +BRDA:311,44,0,6 +BRDA:311,44,1,162 +BRDA:315,45,0,2 +BRDA:315,45,1,160 +BRDA:320,46,0,78 +BRDA:320,46,1,84 +BRDA:322,47,0,4 +BRDA:322,47,1,74 +BRDA:325,48,0,16 +BRDA:325,48,1,24 +BRDA:325,48,2,24 +BRDA:325,48,3,10 +BRDA:325,48,4,40 +BRDA:325,48,5,36 +BRDA:339,49,0,12 +BRDA:339,49,1,28 +BRDA:342,50,0,4 +BRDA:342,50,1,36 +BRDA:347,51,0,4 +BRDA:347,51,1,74 +BRDA:357,52,0,24 +BRDA:357,52,1,60 +BRDA:360,53,0,8 +BRDA:360,53,1,16 +BRDA:365,54,0,4 +BRDA:365,54,1,56 +BRDA:367,55,0,10 +BRDA:367,55,1,46 +BRDA:369,56,0,4 +BRDA:369,56,1,42 +BRDA:371,57,0,4 +BRDA:371,57,1,38 +BRDA:373,58,0,28 +BRDA:373,58,1,10 +BRDA:379,59,0,4 +BRDA:379,59,1,6 +BRDA:404,60,0,48 +BRDA:404,60,1,8 +BRDA:428,61,0,118 +BRDA:428,61,1,66 +BRDA:428,61,2,138 +BRDA:434,62,0,64 +BRDA:434,62,1,2 +BRDA:440,63,0,4 +BRDA:440,63,1,134 +BRDA:441,64,0,138 +BRDA:441,64,1,4 +BRDA:460,65,0,2 +BRDA:460,65,1,1 +BRDA:460,65,2,1 +BRDA:480,66,0,1 +BRDA:480,66,1,1 +BRDA:480,67,0,2 +BRDA:480,67,1,2 +BRDA:520,68,0,66 +BRDA:520,68,1,24 +BRDA:521,69,0,90 +BRDA:521,69,1,38 +BRDA:527,70,0,54 +BRDA:527,70,1,8 +BRDA:539,71,0,2 +BRDA:539,71,1,136 +BRDA:552,72,0,64 +BRDA:552,72,1,72 +BRDA:563,73,0,1 +BRDA:563,73,1,135 +BRDA:572,74,0,72 +BRDA:572,74,1,63 +BRDA:585,75,0,1 +BRDA:585,75,1,1 +BRDA:585,76,0,2 +BRDA:585,76,1,1 +BRDA:606,77,0,4 +BRDA:606,77,1,4 +BRDA:607,78,0,4 +BRDA:607,78,1,4 +BRDA:614,79,0,4 +BRDA:614,79,1,42 +BRDA:614,80,0,46 +BRDA:614,80,1,46 +BRDA:616,81,0,2 +BRDA:616,81,1,2 +BRDA:618,82,0,46 +BRDA:618,82,1,46 +BRDA:624,83,0,2 +BRDA:624,83,1,8 +BRDA:626,84,0,2 +BRDA:626,84,1,6 +BRDA:628,85,0,2 +BRDA:628,85,1,4 +BRDA:638,86,0,8 +BRDA:638,86,1,2 +BRDA:651,87,0,100 +BRDA:651,87,1,100 +BRDA:660,88,0,42 +BRDA:660,88,1,14 +BRDA:678,89,0,104 +BRDA:678,89,1,48 +BRDA:678,89,2,4 +BRDA:703,90,0,1 +BRDA:703,90,1,1 +BRDA:718,91,0,1 +BRDA:718,91,1,1 +BRDA:738,92,0,2 +BRDA:738,92,1,1 +BRDA:750,93,0,2 +BRDA:750,93,1,1 +BRDA:767,94,0,206 +BRDA:767,94,1,55 +BRDA:772,95,0,1 +BRDA:772,95,1,1 +BRDA:787,96,0,1 +BRDA:787,96,1,1 +BRDA:787,97,0,2 +BRDA:787,97,1,1 +BRDA:797,98,0,205 +BRDA:797,98,1,185 +BRDA:806,99,0,1 +BRDA:806,99,1,1 +BRDA:806,100,0,2 +BRDA:806,100,1,1 +BRDA:810,101,0,61 +BRDA:810,101,1,76 +BRDA:836,102,0,48 +BRDA:836,102,1,22 +BRDA:836,103,0,48 +BRDA:836,103,1,22 +BRDA:856,104,0,1 +BRDA:856,104,1,1 +BRDA:878,105,0,1 +BRDA:878,105,1,1 +BRDA:881,106,0,6 +BRDA:881,106,1,9 +BRDA:887,107,0,1 +BRDA:887,107,1,1 +BRDA:890,108,0,4 +BRDA:890,108,1,8 +BRDA:899,109,0,10 +BRDA:899,109,1,30 +BRDA:899,110,0,40 +BRDA:899,110,1,16 +BRDA:907,111,0,10 +BRDA:907,111,1,26 +BRDA:926,112,0,8 +BRDA:926,112,1,36 +BRDA:926,112,2,38 +BRDA:929,113,0,6 +BRDA:929,113,1,2 +BRDA:938,114,0,8 +BRDA:938,114,1,28 +BRDA:940,115,0,10 +BRDA:940,115,1,26 +BRDA:942,116,0,26 +BRDA:942,116,1,4 +BRDA:942,116,2,10 +BRDA:962,117,0,6 +BRDA:962,117,1,30 +BRDA:975,118,0,30 +BRDA:975,118,1,6 +BRDA:981,119,0,38 +BRDA:981,119,1,8 +BRDA:1037,120,0,4 +BRDA:1037,120,1,4 +BRDA:1037,120,2,64 +BRDA:1037,120,3,16 +BRDA:1037,120,4,48 +BRDA:1100,121,0,156 +BRDA:1100,121,1,110 +BRDA:1102,122,0,124 +BRDA:1102,122,1,32 +BRDA:1123,123,0,8 +BRDA:1123,123,1,52 +BRDA:1130,124,0,62 +BRDA:1130,124,1,28 +BRDA:1132,125,0,8 +BRDA:1132,125,1,54 +BRDA:1140,126,0,8 +BRDA:1140,126,1,52 +BRDA:1144,127,0,10 +BRDA:1144,127,1,4 +BRDA:1148,128,0,10 +BRDA:1148,128,1,4 +BRDA:1149,129,0,2 +BRDA:1149,129,1,8 +BRDA:1158,130,0,2 +BRDA:1158,130,1,6 +BRDA:1170,131,0,52 +BRDA:1170,131,1,24 +BRDA:1185,132,0,12 +BRDA:1185,132,1,34 +BRDA:1187,133,0,12 +BRDA:1187,133,1,12 +BRDA:1189,134,0,24 +BRDA:1189,134,1,22 +BRDA:1193,135,0,46 +BRDA:1193,135,1,26 +BRDA:1221,136,0,1 +BRDA:1221,136,1,1 +BRDA:1230,137,0,60 +BRDA:1230,137,1,34 +BRDA:1232,138,0,26 +BRDA:1232,138,1,34 +BRDA:1232,139,0,60 +BRDA:1232,139,1,34 +BRDA:1233,140,0,24 +BRDA:1233,140,1,2 +BRDA:1233,141,0,26 +BRDA:1233,141,1,2 +BRDA:1238,142,0,4 +BRDA:1238,142,1,30 +BRDA:1295,143,0,30 +BRDA:1295,143,1,54 +BRDA:1296,144,0,18 +BRDA:1296,144,1,66 +BRDA:1297,145,0,10 +BRDA:1297,145,1,8 +BRDA:1299,146,0,16 +BRDA:1299,146,1,50 +BRDA:1330,147,0,80 +BRDA:1330,147,1,52 +BRDA:1337,148,0,42 +BRDA:1337,148,1,8 +BRDA:1337,149,0,50 +BRDA:1337,149,1,44 +BRDA:1337,149,2,42 +BRDA:1340,150,0,16 +BRDA:1340,150,1,26 +BRDA:1344,151,0,6 +BRDA:1344,151,1,2 +BRDA:1344,152,0,8 +BRDA:1344,152,1,6 +BRDA:1370,153,0,20 +BRDA:1370,153,1,10 +BRDA:1374,154,0,2 +BRDA:1374,154,1,6 +BRDA:1374,155,0,8 +BRDA:1374,155,1,4 +BRDA:1374,155,2,2 +BRDA:1379,156,0,2 +BRDA:1379,156,1,4 +BRDA:1380,157,0,2 +BRDA:1380,157,1,2 +BRF:335 +BRH:335 +end_of_record diff --git a/index.js b/index.js index 0ec336d5..102f3b71 100644 --- a/index.js +++ b/index.js @@ -182,7 +182,7 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; var hyper = hypers.get(this); if ( !hyper || - hyper.template !== (FF ? unique(template) : template) + hyper.template !== TL(template) ) { hyper = upgrade.apply(this, arguments); hypers.set(this, hyper); @@ -473,6 +473,15 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; // beside IE, old WebKit browsers don't have `children` in DocumentFragment var WK = !('children' in featureFragment); + // both Firefox < 55 and TypeScript have issues with template literals + // this lazy defined callback should spot issues right away + // and in the best case scenario become a no-op + var TL = function (template) { + if (template.propertyIsEnumerable('raw') || FF) TL = unique; + else TL = function (t) { return t; }; + return TL(template); + }; + // --------------------------------------------- // Helpers // --------------------------------------------- @@ -752,14 +761,11 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; var transformers = {}; // normalize Firefox issue with template literals - var templateObjects, unique; - if (FF) { - templateObjects = {}; - unique = function (template) { - var key = '_' + template.join(UIDC); - return templateObjects[key] || - (templateObjects[key] = template); - }; + var templateObjects = {}, unique; + function unique(template) { + var key = '_' + template.join(UIDC); + return templateObjects[key] || + (templateObjects[key] = template); } // use native .append(...childNodes) where available @@ -1089,7 +1095,7 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; // create a template, if unknown // upgrade a node to use such template for future updates function upgrade(template) { - if (FF) template = unique(template); + template = TL(template); var updates; var info = templates.get(template) || createTemplate.call(this, template); @@ -1134,7 +1140,7 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; return type === 'adopt' ? function adopt(statics) { var args = arguments; - if (FF) statics = unique(statics); + statics = TL(statics); if (template !== statics) { setup = true; template = statics; @@ -1160,7 +1166,7 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; return adopter; } : function update(statics) { - if (FF) statics = unique(statics); + statics = TL(statics); if (template !== statics) { setup = true; template = statics; @@ -1193,7 +1199,7 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; // changes needed to show the a new list // where there was another one. // There is a limit, in terms of performance, - // on how bug can the optimal computation be, + // on how big can the optimal computation be, // so if you change this value be sure your // target hardware is good enough. hyper.MAX_LIST_SIZE = 1000; @@ -1212,7 +1218,6 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; DELETE = 'del', INSERT = 'ins', SUBSTITUTE = 'sub', - AuraPrototype = Aura.prototype, TypedArray = /^u/.test(typeof Int32Array) ? Array : Int32Array ; @@ -1242,23 +1247,25 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; // given an object that would like to intercept // all splice operations performed through a list, - // return a list "aura" that will delegate all splices - majinbuu.aura = function aura(interceptor, list) { - Aura.prototype = list; - return new Aura(interceptor); + // wraps the list.splice method to delegate such object + // and it puts back original splice right before + // every invocation. + // Note: do not use the same list in two different aura + majinbuu.aura = function aura(splicer, list) { + var splice = list.splice; + list.splice = function hodor() { + list.splice = splice; + var result = splicer.splice.apply(splicer, arguments); + list.splice = hodor; + return result; + }; + return list; }; return majinbuu; // Helpers - - - - - - - - - - - - - - - - - - - - - - - // Aura instances are just Array bridges - function Aura(interceptor) { - Aura.prototype = AuraPrototype; - this._ = interceptor; - this.splice = splice; - } - // originally readapted from: // http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html // then rewritten in C for Emscripten (see levenstein.c) @@ -1380,11 +1387,6 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; } } - // delegate all splice operations through an aura - function splice() { - return this._.splice.apply(this._, arguments); - } - /* one-by-one operation (testing purpose) function performOperations(target, operations) { for (var op, diff = 0, i = 0, length = operations.length; i < length; i++) { @@ -1400,4 +1402,4 @@ var hyperHTML = (function (globalDocument, majinbuu) {'use strict'; }())); // umd.KISS -try { module.exports = hyperHTML; } catch(o_O) {} +try { module.exports = hyperHTML; } catch(o_O) {} \ No newline at end of file diff --git a/min.js b/min.js index e69de29b..670fd5fb 100644 --- a/min.js +++ b/min.js @@ -0,0 +1,3 @@ +var hyperHTML=function(e,t){"use strict";function n(e){return arguments.length<2?null==e?q("html"):"string"==typeof e?i(null,e):"raw"in e?q("html")(e):"nodeType"in e?r(e):F(e,"html"):("raw"in e?q("html"):i).apply(null,arguments)}function r(e){return l.bind(e)}function i(e,t){return arguments.length<1?q("html"):null==e?q(t||"html"):F(e,t||"html")}function o(){}function a(e,n){return this.node=e,this.childNodes=n,t.aura(this,n)}function l(e){var t=we.get(this);return t&&t.template===re(e)||(t=B.apply(this,arguments),we.set(this,t)),z.apply(t.updates,arguments),this}function c(e,t,n){var r,i=e.ownerElement,o=/^on/.test(n),a="data"===n||x(i,n)&&!K.test(n),l=o?n.slice(2):"",c=o||a;return o&&n.toLowerCase()in i&&(l=l.toLowerCase()),c&&t.push(i,n),o?function(e){r!==e&&(r&&i.removeEventListener(l,r,!1),r=e,e&&i.addEventListener(l,e,!1))}:a?function(e){r!==e&&(r=e,i[n]!==e&&(null==e?(i[n]=null,i.removeAttribute(n)):i[n]=e))}:function(t){r!==t&&(r=t,e.value!==t&&(null==t?c||(c=!0,i.removeAttributeNode(e)):(e.value=t,c&&(c=!1,i.setAttributeNode(e)))))}}function u(e){var t;return function(n){n!==t&&(t=n,e.textContent=n)}}function s(e,r,i){var a;return function l(c){switch(typeof c){case"string":case"number":case"boolean":var u=r.length;1===u&&r[0].nodeType===Z?a!==c&&(a=c,r[0].textContent=c):(a=c,u?i.splice(0,u,w(e,c)):r[0]=e.parentNode.insertBefore(w(e,c),e));break;case"function":l(c(e.parentNode,r,0));break;case"object":case"undefined":if(null==c){a=c,l("");break}c instanceof o&&(c=c.render());default:if(a=c,ce(c)){var u=c.length;if(0===u)i.splice(0);else switch(typeof c[0]){case"string":case"number":case"boolean":l({html:c});break;case"function":for(var s=e.parentNode,f=0;f"+t+"",pe(n,ie.call(i.querySelectorAll(l)))}else i.innerHTML=t,o?n=i.content:pe(n,ie.call(i.childNodes));return n}function b(e,t){var n=e.ownerDocument,r=g(n);if(te||ne){var i=n.createElement("div");i.innerHTML=''+t+"",pe(r,ie.call(i.firstChild.childNodes))}else{var i=n.createElementNS(J,"svg");i.innerHTML=t,pe(r,ie.call(i.childNodes))}return r}function w(e,t){return e.ownerDocument.createTextNode(t)}function N(e){var t=n.document,r=t.customElements||t.defaultView.customElements;return r&&r.get(e.nodeName.toLowerCase())}function x(e,t){var n=!(G in e);if(n&&/-/.test(e.nodeName)){var r=N(e);r&&(e=r.prototype)}return n&&t in e}function S(e,t){e(t.placeholder),"text"in t?Promise.resolve(t.text).then(String).then(e):"any"in t?Promise.resolve(t.any).then(e):"html"in t?Promise.resolve(t.html).then(d).then(e):Promise.resolve(E(t)).then(e)}function E(e){for(var t in fe)if(e.hasOwnProperty(t))return fe[t](e[t])}function C(e){return"ELEMENT_NODE"in e}function T(e){return null!=e&&"then"in e}function k(e,t){var n="_"+e+"$";return{get:function(){return this[n]||(this[e]=t.call(this,e))},set:function(e){se(this,n,{configurable:!0,value:e})}}}function A(e){for(var t=0,n=e.length;t'"]/g,p)},n.wire=i,n.Component=o,Object.defineProperties(o.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this["getAttribute"in t&&t.getAttribute("data-call")||"on"+e.type](e)}},html:k("html",q),svg:k("svg",q),state:k("state",function(){return this.defaultState}),defaultState:{get:function(){return{}}},setState:{value:function(e){var t=this.state,n="function"==typeof e?e.call(this,t):e;for(var r in n)t[r]=n[r];this.render()}}});var R=1,X=2,Z=3,V=8,W=11,G="ownerSVGElement",J="http://www.w3.org/2000/svg",K=/^style$/i,Q="_hyper: "+(Math.random()*new Date|0)+";",U="\x3c!--"+Q+"--\x3e";a.prototype.splice=function(e,t){for(var n,r=e,i=this.node,o=this.childNodes,a=i.parentNode,l=o.length,c=null==t?l:e+t;r":">","'":"'",'"':"""},ae=typeof WeakMap==typeof ae?function(){return{get:function(e){return e["_hyper: "]},set:function(e,t){Object.defineProperty(e,"_hyper: ",{configurable:!0,value:t})}}}:WeakMap,le=typeof Map==typeof le?function(){var e=[],t=[];return{get:function(n){return t[e.indexOf(n)]},set:function(n,r){t[e.push(n)-1]=r}}}:Map,ce=Array.isArray||function(){var e={}.toString,t=e.call([]);return function(n){return e.call(n)===t}}(),ue="_hyper: ".trim||function(){return this.replace(/^\s+|\s+$/g,"")},se=Object.defineProperty,fe={},he={},pe="append"in Y?function(e,t){e.append.apply(e,t)}:function(e,t){for(var n=0,r=t.length;n|\S+))?)+)([^\S]*\/?>)/gi,me=new RegExp("([^\\S][a-z]+[a-z0-9:_-]*=)(['\"]?)"+U+"\\2","gi"),ye=function(e,t,n,r){return t+n.replace(me,be)+r},be=function(e,t,n){return t+(n||'"')+Q+(n||'"')},we=new ae,Ne=new ae,xe=new le,Se=!0,Ee=function(){return Y.appendChild(w(Y,"g")),Y.appendChild(w(Y,"")),1===Y.cloneNode(!0).childNodes.length?function(e){for(var t=e.cloneNode(),n=e.childNodes||[],r=0,i=n.length;r Date: Fri, 8 Sep 2017 09:15:08 +0100 Subject: [PATCH 4/4] removed debugger --- test/test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test.js b/test/test.js index 3cac6534..70741149 100644 --- a/test/test.js +++ b/test/test.js @@ -302,7 +302,6 @@ tressa.async(function (done) { tressa.assert(div.firstChild.firstChild === br, 'one child is added'); hyperHTML.bind(div)`
      ${hr}
      `; tressa.assert(div.firstChild.firstChild === hr, 'one child is changed'); - debugger; hyperHTML.bind(div)`
      ${[hr, br]}
      `; tressa.assert( div.firstChild.childNodes[0] === hr &&