|
10 __coverage__['build/graphics-canvas/graphics-canvas.js'] = {"path":"build/graphics-canvas/graphics-canvas.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0,"149":0,"150":0,"151":0,"152":0,"153":0,"154":0,"155":0,"156":0,"157":0,"158":0,"159":0,"160":0,"161":0,"162":0,"163":0,"164":0,"165":0,"166":0,"167":0,"168":0,"169":0,"170":0,"171":0,"172":0,"173":0,"174":0,"175":0,"176":0,"177":0,"178":0,"179":0,"180":0,"181":0,"182":0,"183":0,"184":0,"185":0,"186":0,"187":0,"188":0,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":0,"223":0,"224":0,"225":0,"226":0,"227":0,"228":0,"229":0,"230":0,"231":0,"232":0,"233":0,"234":0,"235":0,"236":0,"237":0,"238":0,"239":0,"240":0,"241":0,"242":0,"243":0,"244":0,"245":0,"246":0,"247":0,"248":0,"249":0,"250":0,"251":0,"252":0,"253":0,"254":0,"255":0,"256":0,"257":0,"258":0,"259":0,"260":0,"261":0,"262":0,"263":0,"264":0,"265":0,"266":0,"267":0,"268":0,"269":0,"270":0,"271":0,"272":0,"273":0,"274":0,"275":0,"276":0,"277":0,"278":0,"279":0,"280":0,"281":0,"282":0,"283":0,"284":0,"285":0,"286":0,"287":0,"288":0,"289":0,"290":0,"291":0,"292":0,"293":0,"294":0,"295":0,"296":0,"297":0,"298":0,"299":0,"300":0,"301":0,"302":0,"303":0,"304":0,"305":0,"306":0,"307":0,"308":0,"309":0,"310":0,"311":0,"312":0,"313":0,"314":0,"315":0,"316":0,"317":0,"318":0,"319":0,"320":0,"321":0,"322":0,"323":0,"324":0,"325":0,"326":0,"327":0,"328":0,"329":0,"330":0,"331":0,"332":0,"333":0,"334":0,"335":0,"336":0,"337":0,"338":0,"339":0,"340":0,"341":0,"342":0,"343":0,"344":0,"345":0,"346":0,"347":0,"348":0,"349":0,"350":0,"351":0,"352":0,"353":0,"354":0,"355":0,"356":0,"357":0,"358":0,"359":0,"360":0,"361":0,"362":0,"363":0,"364":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"371":0,"372":0,"373":0,"374":0,"375":0,"376":0,"377":0,"378":0,"379":0,"380":0,"381":0,"382":0,"383":0,"384":0,"385":0,"386":0,"387":0,"388":0,"389":0,"390":0,"391":0,"392":0,"393":0,"394":0,"395":0,"396":0,"397":0,"398":0,"399":0,"400":0,"401":0,"402":0,"403":0,"404":0,"405":0,"406":0,"407":0,"408":0,"409":0,"410":0,"411":0,"412":0,"413":0,"414":0,"415":0,"416":0,"417":0,"418":0,"419":0,"420":0,"421":0,"422":0,"423":0,"424":0,"425":0,"426":0,"427":0,"428":0,"429":0,"430":0,"431":0,"432":0,"433":0,"434":0,"435":0,"436":0,"437":0,"438":0,"439":0,"440":0,"441":0,"442":0,"443":0,"444":0,"445":0,"446":0,"447":0,"448":0,"449":0,"450":0,"451":0,"452":0,"453":0,"454":0,"455":0,"456":0,"457":0,"458":0,"459":0,"460":0,"461":0,"462":0,"463":0,"464":0,"465":0,"466":0,"467":0,"468":0,"469":0,"470":0,"471":0,"472":0,"473":0,"474":0,"475":0,"476":0,"477":0,"478":0,"479":0,"480":0,"481":0,"482":0,"483":0,"484":0,"485":0,"486":0,"487":0,"488":0,"489":0,"490":0,"491":0,"492":0,"493":0,"494":0,"495":0,"496":0,"497":0,"498":0,"499":0,"500":0,"501":0,"502":0,"503":0,"504":0,"505":0,"506":0,"507":0,"508":0,"509":0,"510":0,"511":0,"512":0,"513":0,"514":0,"515":0,"516":0,"517":0,"518":0,"519":0,"520":0,"521":0,"522":0,"523":0,"524":0,"525":0,"526":0,"527":0,"528":0,"529":0,"530":0,"531":0,"532":0,"533":0,"534":0,"535":0,"536":0,"537":0,"538":0,"539":0,"540":0,"541":0,"542":0,"543":0,"544":0,"545":0,"546":0,"547":0,"548":0,"549":0,"550":0,"551":0,"552":0,"553":0,"554":0,"555":0,"556":0,"557":0,"558":0,"559":0,"560":0,"561":0,"562":0,"563":0,"564":0,"565":0,"566":0,"567":0,"568":0,"569":0,"570":0,"571":0,"572":0,"573":0,"574":0,"575":0,"576":0,"577":0,"578":0,"579":0,"580":0,"581":0,"582":0,"583":0,"584":0,"585":0,"586":0,"587":0,"588":0,"589":0,"590":0,"591":0,"592":0,"593":0,"594":0,"595":0,"596":0,"597":0,"598":0,"599":0,"600":0,"601":0,"602":0,"603":0,"604":0,"605":0,"606":0,"607":0,"608":0,"609":0,"610":0,"611":0,"612":0,"613":0,"614":0,"615":0,"616":0,"617":0,"618":0,"619":0,"620":0,"621":0,"622":0,"623":0,"624":0,"625":0,"626":0,"627":0,"628":0,"629":0,"630":0,"631":0,"632":0,"633":0,"634":0,"635":0,"636":0,"637":0,"638":0,"639":0,"640":0,"641":0,"642":0,"643":0,"644":0,"645":0,"646":0,"647":0,"648":0,"649":0,"650":0,"651":0,"652":0,"653":0,"654":0,"655":0,"656":0,"657":0,"658":0,"659":0,"660":0,"661":0,"662":0,"663":0,"664":0,"665":0,"666":0,"667":0,"668":0,"669":0,"670":0,"671":0,"672":0,"673":0,"674":0,"675":0,"676":0,"677":0,"678":0,"679":0,"680":0,"681":0,"682":0,"683":0,"684":0,"685":0,"686":0,"687":0,"688":0,"689":0,"690":0,"691":0,"692":0,"693":0,"694":0,"695":0,"696":0,"697":0,"698":0,"699":0,"700":0,"701":0,"702":0,"703":0,"704":0,"705":0,"706":0,"707":0,"708":0,"709":0,"710":0,"711":0,"712":0,"713":0,"714":0,"715":0,"716":0,"717":0,"718":0,"719":0,"720":0,"721":0,"722":0,"723":0,"724":0,"725":0,"726":0,"727":0,"728":0,"729":0,"730":0,"731":0,"732":0,"733":0,"734":0,"735":0,"736":0,"737":0,"738":0,"739":0,"740":0,"741":0,"742":0,"743":0,"744":0,"745":0,"746":0,"747":0,"748":0,"749":0,"750":0,"751":0,"752":0,"753":0,"754":0,"755":0,"756":0,"757":0,"758":0,"759":0,"760":0,"761":0,"762":0,"763":0,"764":0,"765":0,"766":0,"767":0,"768":0,"769":0,"770":0,"771":0,"772":0,"773":0,"774":0,"775":0,"776":0,"777":0,"778":0,"779":0,"780":0,"781":0,"782":0,"783":0,"784":0,"785":0,"786":0,"787":0,"788":0,"789":0,"790":0,"791":0,"792":0,"793":0,"794":0,"795":0,"796":0,"797":0,"798":0,"799":0,"800":0,"801":0,"802":0,"803":0,"804":0,"805":0,"806":0,"807":0,"808":0,"809":0,"810":0,"811":0,"812":0,"813":0,"814":0,"815":0,"816":0,"817":0,"818":0,"819":0,"820":0,"821":0,"822":0,"823":0,"824":0,"825":0,"826":0,"827":0,"828":0,"829":0,"830":0,"831":0,"832":0,"833":0,"834":0,"835":0,"836":0,"837":0,"838":0,"839":0,"840":0,"841":0,"842":0,"843":0,"844":0,"845":0,"846":0,"847":0,"848":0,"849":0,"850":0,"851":0,"852":0,"853":0,"854":0,"855":0,"856":0,"857":0,"858":0,"859":0,"860":0,"861":0,"862":0,"863":0,"864":0,"865":0,"866":0,"867":0,"868":0,"869":0,"870":0,"871":0,"872":0,"873":0,"874":0,"875":0,"876":0,"877":0,"878":0,"879":0,"880":0,"881":0,"882":0,"883":0,"884":0,"885":0,"886":0,"887":0,"888":0,"889":0,"890":0,"891":0,"892":0,"893":0,"894":0,"895":0,"896":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0],"85":[0,0],"86":[0,0],"87":[0,0],"88":[0,0],"89":[0,0],"90":[0,0],"91":[0,0],"92":[0,0],"93":[0,0],"94":[0,0],"95":[0,0],"96":[0,0],"97":[0,0],"98":[0,0],"99":[0,0,0],"100":[0,0],"101":[0,0],"102":[0,0],"103":[0,0],"104":[0,0],"105":[0,0],"106":[0,0],"107":[0,0],"108":[0,0],"109":[0,0],"110":[0,0],"111":[0,0],"112":[0,0],"113":[0,0],"114":[0,0],"115":[0,0],"116":[0,0],"117":[0,0],"118":[0,0],"119":[0,0],"120":[0,0],"121":[0,0],"122":[0,0],"123":[0,0],"124":[0,0],"125":[0,0],"126":[0,0],"127":[0,0],"128":[0,0],"129":[0,0],"130":[0,0],"131":[0,0],"132":[0,0],"133":[0,0],"134":[0,0],"135":[0,0],"136":[0,0],"137":[0,0],"138":[0,0],"139":[0,0],"140":[0,0],"141":[0,0],"142":[0,0],"143":[0,0],"144":[0,0],"145":[0,0],"146":[0,0],"147":[0,0],"148":[0,0],"149":[0,0],"150":[0,0],"151":[0,0],"152":[0,0],"153":[0,0],"154":[0,0],"155":[0,0],"156":[0,0],"157":[0,0],"158":[0,0],"159":[0,0],"160":[0,0],"161":[0,0],"162":[0,0],"163":[0,0],"164":[0,0],"165":[0,0],"166":[0,0],"167":[0,0],"168":[0,0],"169":[0,0],"170":[0,0],"171":[0,0],"172":[0,0],"173":[0,0],"174":[0,0],"175":[0,0],"176":[0,0],"177":[0,0],"178":[0,0],"179":[0,0],"180":[0,0],"181":[0,0],"182":[0,0],"183":[0,0],"184":[0,0],"185":[0,0],"186":[0,0],"187":[0,0],"188":[0,0],"189":[0,0,0],"190":[0,0],"191":[0,0],"192":[0,0],"193":[0,0],"194":[0,0],"195":[0,0],"196":[0,0],"197":[0,0],"198":[0,0],"199":[0,0],"200":[0,0],"201":[0,0],"202":[0,0],"203":[0,0],"204":[0,0],"205":[0,0],"206":[0,0],"207":[0,0],"208":[0,0],"209":[0,0],"210":[0,0],"211":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0,"138":0,"139":0,"140":0,"141":0,"142":0,"143":0,"144":0,"145":0,"146":0,"147":0,"148":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":27},"end":{"line":1,"column":46}}},"2":{"name":"CanvasDrawing","line":37,"loc":{"start":{"line":37,"column":0},"end":{"line":38,"column":0}}},"3":{"name":"(anonymous_3)","line":88,"loc":{"start":{"line":88,"column":13},"end":{"line":88,"column":34}}},"4":{"name":"(anonymous_4)","line":111,"loc":{"start":{"line":111,"column":12},"end":{"line":111,"column":26}}},"5":{"name":"(anonymous_5)","line":123,"loc":{"start":{"line":123,"column":10},"end":{"line":123,"column":25}}},"6":{"name":"(anonymous_6)","line":147,"loc":{"start":{"line":147,"column":19},"end":{"line":148,"column":4}}},"7":{"name":"(anonymous_7)","line":161,"loc":{"start":{"line":161,"column":27},"end":{"line":162,"column":4}}},"8":{"name":"(anonymous_8)","line":174,"loc":{"start":{"line":174,"column":25},"end":{"line":175,"column":4}}},"9":{"name":"(anonymous_9)","line":194,"loc":{"start":{"line":194,"column":25},"end":{"line":195,"column":4}}},"10":{"name":"(anonymous_10)","line":207,"loc":{"start":{"line":207,"column":12},"end":{"line":208,"column":4}}},"11":{"name":"(anonymous_11)","line":221,"loc":{"start":{"line":221,"column":20},"end":{"line":222,"column":4}}},"12":{"name":"(anonymous_12)","line":235,"loc":{"start":{"line":235,"column":13},"end":{"line":236,"column":4}}},"13":{"name":"(anonymous_13)","line":287,"loc":{"start":{"line":287,"column":12},"end":{"line":288,"column":4}}},"14":{"name":"(anonymous_14)","line":301,"loc":{"start":{"line":301,"column":20},"end":{"line":302,"column":4}}},"15":{"name":"(anonymous_15)","line":315,"loc":{"start":{"line":315,"column":13},"end":{"line":315,"column":38}}},"16":{"name":"(anonymous_16)","line":341,"loc":{"start":{"line":341,"column":13},"end":{"line":341,"column":24}}},"17":{"name":"(anonymous_17)","line":358,"loc":{"start":{"line":358,"column":21},"end":{"line":358,"column":32}}},"18":{"name":"(anonymous_18)","line":371,"loc":{"start":{"line":371,"column":14},"end":{"line":371,"column":39}}},"19":{"name":"(anonymous_19)","line":423,"loc":{"start":{"line":423,"column":22},"end":{"line":423,"column":33}}},"20":{"name":"(anonymous_20)","line":438,"loc":{"start":{"line":438,"column":30},"end":{"line":438,"column":41}}},"21":{"name":"(anonymous_21)","line":451,"loc":{"start":{"line":451,"column":23},"end":{"line":451,"column":48}}},"22":{"name":"(anonymous_22)","line":498,"loc":{"start":{"line":498,"column":13},"end":{"line":498,"column":36}}},"23":{"name":"(anonymous_23)","line":523,"loc":{"start":{"line":523,"column":17},"end":{"line":524,"column":4}}},"24":{"name":"(anonymous_24)","line":546,"loc":{"start":{"line":546,"column":14},"end":{"line":546,"column":35}}},"25":{"name":"(anonymous_25)","line":588,"loc":{"start":{"line":588,"column":14},"end":{"line":588,"column":35}}},"26":{"name":"(anonymous_26)","line":610,"loc":{"start":{"line":610,"column":19},"end":{"line":610,"column":48}}},"27":{"name":"(anonymous_27)","line":637,"loc":{"start":{"line":637,"column":15},"end":{"line":638,"column":4}}},"28":{"name":"(anonymous_28)","line":712,"loc":{"start":{"line":712,"column":9},"end":{"line":712,"column":20}}},"29":{"name":"(anonymous_29)","line":723,"loc":{"start":{"line":723,"column":15},"end":{"line":724,"column":4}}},"30":{"name":"(anonymous_30)","line":736,"loc":{"start":{"line":736,"column":11},"end":{"line":736,"column":22}}},"31":{"name":"(anonymous_31)","line":753,"loc":{"start":{"line":753,"column":24},"end":{"line":753,"column":35}}},"32":{"name":"(anonymous_32)","line":833,"loc":{"start":{"line":833,"column":24},"end":{"line":833,"column":35}}},"33":{"name":"(anonymous_33)","line":924,"loc":{"start":{"line":924,"column":16},"end":{"line":924,"column":27}}},"34":{"name":"(anonymous_34)","line":955,"loc":{"start":{"line":955,"column":20},"end":{"line":955,"column":31}}},"35":{"name":"(anonymous_35)","line":969,"loc":{"start":{"line":969,"column":19},"end":{"line":969,"column":39}}},"36":{"name":"(anonymous_36)","line":997,"loc":{"start":{"line":997,"column":26},"end":{"line":998,"column":4}}},"37":{"name":"(anonymous_37)","line":1032,"loc":{"start":{"line":1032,"column":16},"end":{"line":1032,"column":31}}},"38":{"name":"(anonymous_38)","line":1064,"loc":{"start":{"line":1064,"column":14},"end":{"line":1065,"column":0}}},"39":{"name":"(anonymous_39)","line":1081,"loc":{"start":{"line":1081,"column":10},"end":{"line":1082,"column":1}}},"40":{"name":"(anonymous_40)","line":1092,"loc":{"start":{"line":1092,"column":14},"end":{"line":1093,"column":1}}},"41":{"name":"(anonymous_41)","line":1121,"loc":{"start":{"line":1121,"column":17},"end":{"line":1122,"column":4}}},"42":{"name":"(anonymous_42)","line":1145,"loc":{"start":{"line":1145,"column":11},"end":{"line":1146,"column":1}}},"43":{"name":"(anonymous_43)","line":1157,"loc":{"start":{"line":1157,"column":14},"end":{"line":1158,"column":1}}},"44":{"name":"(anonymous_44)","line":1169,"loc":{"start":{"line":1169,"column":8},"end":{"line":1170,"column":1}}},"45":{"name":"(anonymous_45)","line":1184,"loc":{"start":{"line":1184,"column":8},"end":{"line":1185,"column":1}}},"46":{"name":"(anonymous_46)","line":1202,"loc":{"start":{"line":1202,"column":11},"end":{"line":1203,"column":1}}},"47":{"name":"(anonymous_47)","line":1214,"loc":{"start":{"line":1214,"column":7},"end":{"line":1215,"column":1}}},"48":{"name":"(anonymous_48)","line":1227,"loc":{"start":{"line":1227,"column":12},"end":{"line":1227,"column":30}}},"49":{"name":"(anonymous_49)","line":1239,"loc":{"start":{"line":1239,"column":18},"end":{"line":1239,"column":29}}},"50":{"name":"(anonymous_50)","line":1258,"loc":{"start":{"line":1258,"column":20},"end":{"line":1259,"column":1}}},"51":{"name":"(anonymous_51)","line":1311,"loc":{"start":{"line":1311,"column":13},"end":{"line":1312,"column":1}}},"52":{"name":"(anonymous_52)","line":1348,"loc":{"start":{"line":1348,"column":5},"end":{"line":1349,"column":1}}},"53":{"name":"(anonymous_53)","line":1364,"loc":{"start":{"line":1364,"column":18},"end":{"line":1365,"column":1}}},"54":{"name":"(anonymous_54)","line":1429,"loc":{"start":{"line":1429,"column":6},"end":{"line":1430,"column":1}}},"55":{"name":"(anonymous_55)","line":1446,"loc":{"start":{"line":1446,"column":16},"end":{"line":1447,"column":1}}},"56":{"name":"(anonymous_56)","line":1495,"loc":{"start":{"line":1495,"column":12},"end":{"line":1496,"column":1}}},"57":{"name":"(anonymous_57)","line":1509,"loc":{"start":{"line":1509,"column":13},"end":{"line":1510,"column":4}}},"58":{"name":"(anonymous_58)","line":1522,"loc":{"start":{"line":1522,"column":13},"end":{"line":1523,"column":4}}},"59":{"name":"(anonymous_59)","line":1535,"loc":{"start":{"line":1535,"column":10},"end":{"line":1536,"column":4}}},"60":{"name":"(anonymous_60)","line":1546,"loc":{"start":{"line":1546,"column":11},"end":{"line":1547,"column":4}}},"61":{"name":"(anonymous_61)","line":1557,"loc":{"start":{"line":1557,"column":11},"end":{"line":1558,"column":4}}},"62":{"name":"(anonymous_62)","line":1568,"loc":{"start":{"line":1568,"column":12},"end":{"line":1569,"column":4}}},"63":{"name":"(anonymous_63)","line":1579,"loc":{"start":{"line":1579,"column":11},"end":{"line":1580,"column":4}}},"64":{"name":"(anonymous_64)","line":1601,"loc":{"start":{"line":1601,"column":16},"end":{"line":1602,"column":1}}},"65":{"name":"(anonymous_65)","line":1619,"loc":{"start":{"line":1619,"column":19},"end":{"line":1620,"column":1}}},"66":{"name":"(anonymous_66)","line":1658,"loc":{"start":{"line":1658,"column":17},"end":{"line":1659,"column":1}}},"67":{"name":"(anonymous_67)","line":1670,"loc":{"start":{"line":1670,"column":8},"end":{"line":1671,"column":1}}},"68":{"name":"(anonymous_68)","line":1685,"loc":{"start":{"line":1685,"column":13},"end":{"line":1686,"column":1}}},"69":{"name":"(anonymous_69)","line":1772,"loc":{"start":{"line":1772,"column":20},"end":{"line":1773,"column":4}}},"70":{"name":"(anonymous_70)","line":1818,"loc":{"start":{"line":1818,"column":18},"end":{"line":1819,"column":1}}},"71":{"name":"(anonymous_71)","line":1867,"loc":{"start":{"line":1867,"column":12},"end":{"line":1868,"column":1}}},"72":{"name":"(anonymous_72)","line":1894,"loc":{"start":{"line":1894,"column":21},"end":{"line":1895,"column":4}}},"73":{"name":"(anonymous_73)","line":1933,"loc":{"start":{"line":1933,"column":13},"end":{"line":1934,"column":4}}},"74":{"name":"(anonymous_74)","line":1947,"loc":{"start":{"line":1947,"column":12},"end":{"line":1948,"column":4}}},"75":{"name":"(anonymous_75)","line":1963,"loc":{"start":{"line":1963,"column":20},"end":{"line":1964,"column":4}}},"76":{"name":"(anonymous_76)","line":2004,"loc":{"start":{"line":2004,"column":13},"end":{"line":2005,"column":4}}},"77":{"name":"(anonymous_77)","line":2023,"loc":{"start":{"line":2023,"column":14},"end":{"line":2024,"column":4}}},"78":{"name":"(anonymous_78)","line":2043,"loc":{"start":{"line":2043,"column":11},"end":{"line":2044,"column":2}}},"79":{"name":"(anonymous_79)","line":2080,"loc":{"start":{"line":2080,"column":10},"end":{"line":2081,"column":2}}},"80":{"name":"(anonymous_80)","line":2088,"loc":{"start":{"line":2088,"column":16},"end":{"line":2089,"column":8}}},"81":{"name":"(anonymous_81)","line":2104,"loc":{"start":{"line":2104,"column":10},"end":{"line":2105,"column":2}}},"82":{"name":"(anonymous_82)","line":2117,"loc":{"start":{"line":2117,"column":11},"end":{"line":2118,"column":2}}},"83":{"name":"(anonymous_83)","line":2122,"loc":{"start":{"line":2122,"column":10},"end":{"line":2123,"column":2}}},"84":{"name":"(anonymous_84)","line":2182,"loc":{"start":{"line":2182,"column":10},"end":{"line":2182,"column":23}}},"85":{"name":"(anonymous_85)","line":2245,"loc":{"start":{"line":2245,"column":10},"end":{"line":2246,"column":2}}},"86":{"name":"(anonymous_86)","line":2293,"loc":{"start":{"line":2293,"column":10},"end":{"line":2294,"column":2}}},"87":{"name":"(anonymous_87)","line":2336,"loc":{"start":{"line":2336,"column":16},"end":{"line":2337,"column":8}}},"88":{"name":"(anonymous_88)","line":2355,"loc":{"start":{"line":2355,"column":10},"end":{"line":2356,"column":2}}},"89":{"name":"(anonymous_89)","line":2373,"loc":{"start":{"line":2373,"column":13},"end":{"line":2374,"column":0}}},"90":{"name":"(anonymous_90)","line":2394,"loc":{"start":{"line":2394,"column":11},"end":{"line":2395,"column":4}}},"91":{"name":"(anonymous_91)","line":2407,"loc":{"start":{"line":2407,"column":13},"end":{"line":2408,"column":1}}},"92":{"name":"(anonymous_92)","line":2438,"loc":{"start":{"line":2438,"column":9},"end":{"line":2439,"column":4}}},"93":{"name":"(anonymous_93)","line":2452,"loc":{"start":{"line":2452,"column":10},"end":{"line":2453,"column":2}}},"94":{"name":"(anonymous_94)","line":2458,"loc":{"start":{"line":2458,"column":10},"end":{"line":2459,"column":2}}},"95":{"name":"(anonymous_95)","line":2472,"loc":{"start":{"line":2472,"column":10},"end":{"line":2473,"column":2}}},"96":{"name":"(anonymous_96)","line":2478,"loc":{"start":{"line":2478,"column":10},"end":{"line":2479,"column":2}}},"97":{"name":"(anonymous_97)","line":2495,"loc":{"start":{"line":2495,"column":10},"end":{"line":2496,"column":2}}},"98":{"name":"(anonymous_98)","line":2513,"loc":{"start":{"line":2513,"column":13},"end":{"line":2514,"column":0}}},"99":{"name":"(anonymous_99)","line":2534,"loc":{"start":{"line":2534,"column":8},"end":{"line":2535,"column":1}}},"100":{"name":"(anonymous_100)","line":2556,"loc":{"start":{"line":2556,"column":16},"end":{"line":2557,"column":0}}},"101":{"name":"(anonymous_101)","line":2579,"loc":{"start":{"line":2579,"column":8},"end":{"line":2580,"column":1}}},"102":{"name":"(anonymous_102)","line":2596,"loc":{"start":{"line":2596,"column":10},"end":{"line":2597,"column":2}}},"103":{"name":"(anonymous_103)","line":2601,"loc":{"start":{"line":2601,"column":10},"end":{"line":2602,"column":2}}},"104":{"name":"(anonymous_104)","line":2620,"loc":{"start":{"line":2620,"column":10},"end":{"line":2621,"column":2}}},"105":{"name":"(anonymous_105)","line":2625,"loc":{"start":{"line":2625,"column":10},"end":{"line":2626,"column":2}}},"106":{"name":"(anonymous_106)","line":2648,"loc":{"start":{"line":2648,"column":15},"end":{"line":2649,"column":0}}},"107":{"name":"(anonymous_107)","line":2671,"loc":{"start":{"line":2671,"column":8},"end":{"line":2672,"column":1}}},"108":{"name":"(anonymous_108)","line":2691,"loc":{"start":{"line":2691,"column":16},"end":{"line":2692,"column":8}}},"109":{"name":"(anonymous_109)","line":2697,"loc":{"start":{"line":2697,"column":10},"end":{"line":2698,"column":2}}},"110":{"name":"(anonymous_110)","line":2710,"loc":{"start":{"line":2710,"column":16},"end":{"line":2711,"column":8}}},"111":{"name":"(anonymous_111)","line":2716,"loc":{"start":{"line":2716,"column":10},"end":{"line":2717,"column":2}}},"112":{"name":"(anonymous_112)","line":2740,"loc":{"start":{"line":2740,"column":17},"end":{"line":2741,"column":0}}},"113":{"name":"(anonymous_113)","line":2761,"loc":{"start":{"line":2761,"column":8},"end":{"line":2762,"column":1}}},"114":{"name":"CanvasGraphic","line":2827,"loc":{"start":{"line":2827,"column":0},"end":{"line":2827,"column":25}}},"115":{"name":"(anonymous_115)","line":2851,"loc":{"start":{"line":2851,"column":11},"end":{"line":2852,"column":2}}},"116":{"name":"(anonymous_116)","line":2856,"loc":{"start":{"line":2856,"column":10},"end":{"line":2857,"column":2}}},"117":{"name":"(anonymous_117)","line":2877,"loc":{"start":{"line":2877,"column":16},"end":{"line":2878,"column":8}}},"118":{"name":"(anonymous_118)","line":2893,"loc":{"start":{"line":2893,"column":16},"end":{"line":2894,"column":8}}},"119":{"name":"(anonymous_119)","line":2909,"loc":{"start":{"line":2909,"column":16},"end":{"line":2910,"column":8}}},"120":{"name":"(anonymous_120)","line":2922,"loc":{"start":{"line":2922,"column":16},"end":{"line":2923,"column":8}}},"121":{"name":"(anonymous_121)","line":2939,"loc":{"start":{"line":2939,"column":16},"end":{"line":2940,"column":8}}},"122":{"name":"(anonymous_122)","line":3016,"loc":{"start":{"line":3016,"column":16},"end":{"line":3017,"column":8}}},"123":{"name":"(anonymous_123)","line":3021,"loc":{"start":{"line":3021,"column":16},"end":{"line":3022,"column":8}}},"124":{"name":"(anonymous_124)","line":3039,"loc":{"start":{"line":3039,"column":16},"end":{"line":3040,"column":8}}},"125":{"name":"(anonymous_125)","line":3044,"loc":{"start":{"line":3044,"column":16},"end":{"line":3045,"column":8}}},"126":{"name":"(anonymous_126)","line":3077,"loc":{"start":{"line":3077,"column":16},"end":{"line":3078,"column":8}}},"127":{"name":"(anonymous_127)","line":3095,"loc":{"start":{"line":3095,"column":6},"end":{"line":3096,"column":1}}},"128":{"name":"(anonymous_128)","line":3156,"loc":{"start":{"line":3156,"column":11},"end":{"line":3157,"column":4}}},"129":{"name":"(anonymous_129)","line":3174,"loc":{"start":{"line":3174,"column":17},"end":{"line":3174,"column":28}}},"130":{"name":"(anonymous_130)","line":3204,"loc":{"start":{"line":3204,"column":12},"end":{"line":3204,"column":29}}},"131":{"name":"(anonymous_131)","line":3226,"loc":{"start":{"line":3226,"column":13},"end":{"line":3227,"column":4}}},"132":{"name":"(anonymous_132)","line":3243,"loc":{"start":{"line":3243,"column":14},"end":{"line":3244,"column":4}}},"133":{"name":"(anonymous_133)","line":3263,"loc":{"start":{"line":3263,"column":18},"end":{"line":3264,"column":4}}},"134":{"name":"(anonymous_134)","line":3283,"loc":{"start":{"line":3283,"column":17},"end":{"line":3284,"column":4}}},"135":{"name":"(anonymous_135)","line":3309,"loc":{"start":{"line":3309,"column":21},"end":{"line":3310,"column":4}}},"136":{"name":"(anonymous_136)","line":3328,"loc":{"start":{"line":3328,"column":11},"end":{"line":3328,"column":22}}},"137":{"name":"(anonymous_137)","line":3339,"loc":{"start":{"line":3339,"column":21},"end":{"line":3340,"column":4}}},"138":{"name":"(anonymous_138)","line":3360,"loc":{"start":{"line":3360,"column":20},"end":{"line":3361,"column":4}}},"139":{"name":"(anonymous_139)","line":3389,"loc":{"start":{"line":3389,"column":20},"end":{"line":3390,"column":4}}},"140":{"name":"(anonymous_140)","line":3421,"loc":{"start":{"line":3421,"column":18},"end":{"line":3422,"column":4}}},"141":{"name":"(anonymous_141)","line":3433,"loc":{"start":{"line":3433,"column":11},"end":{"line":3434,"column":4}}},"142":{"name":"(anonymous_142)","line":3448,"loc":{"start":{"line":3448,"column":17},"end":{"line":3449,"column":4}}},"143":{"name":"(anonymous_143)","line":3463,"loc":{"start":{"line":3463,"column":13},"end":{"line":3464,"column":4}}},"144":{"name":"(anonymous_144)","line":3538,"loc":{"start":{"line":3538,"column":25},"end":{"line":3539,"column":4}}},"145":{"name":"(anonymous_145)","line":3565,"loc":{"start":{"line":3565,"column":22},"end":{"line":3566,"column":4}}},"146":{"name":"(anonymous_146)","line":3593,"loc":{"start":{"line":3593,"column":30},"end":{"line":3594,"column":4}}},"147":{"name":"(anonymous_147)","line":3627,"loc":{"start":{"line":3627,"column":14},"end":{"line":3628,"column":4}}},"148":{"name":"(anonymous_148)","line":3647,"loc":{"start":{"line":3647,"column":13},"end":{"line":3648,"column":4}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":3673,"column":41}},"2":{"start":{"line":3,"column":0},"end":{"line":24,"column":52}},"3":{"start":{"line":37,"column":0},"end":{"line":39,"column":1}},"4":{"start":{"line":41,"column":0},"end":{"line":1051,"column":2}},"5":{"start":{"line":89,"column":8},"end":{"line":89,"column":50}},"6":{"start":{"line":90,"column":8},"end":{"line":92,"column":9}},"7":{"start":{"line":91,"column":12},"end":{"line":91,"column":29}},"8":{"start":{"line":94,"column":8},"end":{"line":100,"column":9}},"9":{"start":{"line":95,"column":12},"end":{"line":99,"column":44}},"10":{"start":{"line":101,"column":8},"end":{"line":101,"column":19}},"11":{"start":{"line":112,"column":8},"end":{"line":112,"column":26}},"12":{"start":{"line":124,"column":8},"end":{"line":136,"column":9}},"13":{"start":{"line":126,"column":12},"end":{"line":130,"column":13}},"14":{"start":{"line":128,"column":16},"end":{"line":128,"column":49}},"15":{"start":{"line":129,"column":16},"end":{"line":129,"column":51}},"16":{"start":{"line":131,"column":12},"end":{"line":135,"column":13}},"17":{"start":{"line":133,"column":16},"end":{"line":133,"column":50}},"18":{"start":{"line":134,"column":16},"end":{"line":134,"column":52}},"19":{"start":{"line":149,"column":8},"end":{"line":149,"column":30}},"20":{"start":{"line":150,"column":8},"end":{"line":150,"column":30}},"21":{"start":{"line":151,"column":8},"end":{"line":151,"column":27}},"22":{"start":{"line":152,"column":8},"end":{"line":152,"column":27}},"23":{"start":{"line":163,"column":8},"end":{"line":164,"column":41}},"24":{"start":{"line":165,"column":8},"end":{"line":165,"column":33}},"25":{"start":{"line":176,"column":8},"end":{"line":178,"column":30}},"26":{"start":{"line":179,"column":8},"end":{"line":179,"column":41}},"27":{"start":{"line":180,"column":8},"end":{"line":180,"column":50}},"28":{"start":{"line":181,"column":8},"end":{"line":181,"column":48}},"29":{"start":{"line":196,"column":8},"end":{"line":196,"column":32}},"30":{"start":{"line":209,"column":8},"end":{"line":209,"column":62}},"31":{"start":{"line":210,"column":8},"end":{"line":210,"column":20}},"32":{"start":{"line":223,"column":8},"end":{"line":223,"column":61}},"33":{"start":{"line":224,"column":8},"end":{"line":224,"column":20}},"34":{"start":{"line":237,"column":8},"end":{"line":244,"column":66}},"35":{"start":{"line":245,"column":8},"end":{"line":248,"column":9}},"36":{"start":{"line":247,"column":12},"end":{"line":247,"column":37}},"37":{"start":{"line":249,"column":8},"end":{"line":249,"column":30}},"38":{"start":{"line":250,"column":8},"end":{"line":274,"column":9}},"39":{"start":{"line":251,"column":12},"end":{"line":260,"column":13}},"40":{"start":{"line":252,"column":16},"end":{"line":252,"column":40}},"41":{"start":{"line":253,"column":16},"end":{"line":253,"column":44}},"42":{"start":{"line":254,"column":16},"end":{"line":254,"column":34}},"43":{"start":{"line":255,"column":16},"end":{"line":255,"column":34}},"44":{"start":{"line":256,"column":16},"end":{"line":256,"column":59}},"45":{"start":{"line":257,"column":16},"end":{"line":257,"column":48}},"46":{"start":{"line":258,"column":16},"end":{"line":258,"column":48}},"47":{"start":{"line":259,"column":16},"end":{"line":259,"column":41}},"48":{"start":{"line":264,"column":12},"end":{"line":273,"column":13}},"49":{"start":{"line":266,"column":16},"end":{"line":266,"column":43}},"50":{"start":{"line":267,"column":16},"end":{"line":267,"column":43}},"51":{"start":{"line":268,"column":16},"end":{"line":268,"column":59}},"52":{"start":{"line":269,"column":16},"end":{"line":269,"column":106}},"53":{"start":{"line":270,"column":16},"end":{"line":270,"column":48}},"54":{"start":{"line":271,"column":16},"end":{"line":271,"column":48}},"55":{"start":{"line":272,"column":16},"end":{"line":272,"column":41}},"56":{"start":{"line":275,"column":8},"end":{"line":275,"column":38}},"57":{"start":{"line":276,"column":8},"end":{"line":276,"column":20}},"58":{"start":{"line":289,"column":8},"end":{"line":289,"column":62}},"59":{"start":{"line":290,"column":8},"end":{"line":290,"column":20}},"60":{"start":{"line":303,"column":8},"end":{"line":303,"column":61}},"61":{"start":{"line":304,"column":8},"end":{"line":304,"column":20}},"62":{"start":{"line":316,"column":8},"end":{"line":320,"column":48}},"63":{"start":{"line":321,"column":8},"end":{"line":321,"column":51}},"64":{"start":{"line":322,"column":8},"end":{"line":322,"column":40}},"65":{"start":{"line":323,"column":8},"end":{"line":323,"column":40}},"66":{"start":{"line":324,"column":8},"end":{"line":324,"column":33}},"67":{"start":{"line":325,"column":8},"end":{"line":325,"column":38}},"68":{"start":{"line":326,"column":8},"end":{"line":326,"column":20}},"69":{"start":{"line":342,"column":8},"end":{"line":342,"column":63}},"70":{"start":{"line":343,"column":8},"end":{"line":343,"column":20}},"71":{"start":{"line":359,"column":8},"end":{"line":359,"column":62}},"72":{"start":{"line":360,"column":8},"end":{"line":360,"column":20}},"73":{"start":{"line":372,"column":8},"end":{"line":388,"column":66}},"74":{"start":{"line":389,"column":8},"end":{"line":389,"column":30}},"75":{"start":{"line":390,"column":8},"end":{"line":410,"column":9}},"76":{"start":{"line":392,"column":12},"end":{"line":392,"column":51}},"77":{"start":{"line":393,"column":12},"end":{"line":393,"column":55}},"78":{"start":{"line":394,"column":12},"end":{"line":394,"column":55}},"79":{"start":{"line":395,"column":12},"end":{"line":395,"column":55}},"80":{"start":{"line":396,"column":12},"end":{"line":396,"column":52}},"81":{"start":{"line":397,"column":12},"end":{"line":397,"column":52}},"82":{"start":{"line":398,"column":12},"end":{"line":398,"column":86}},"83":{"start":{"line":399,"column":12},"end":{"line":399,"column":42}},"84":{"start":{"line":400,"column":12},"end":{"line":400,"column":54}},"85":{"start":{"line":401,"column":12},"end":{"line":401,"column":55}},"86":{"start":{"line":402,"column":12},"end":{"line":402,"column":53}},"87":{"start":{"line":403,"column":12},"end":{"line":403,"column":52}},"88":{"start":{"line":404,"column":12},"end":{"line":404,"column":39}},"89":{"start":{"line":405,"column":12},"end":{"line":405,"column":39}},"90":{"start":{"line":406,"column":12},"end":{"line":406,"column":90}},"91":{"start":{"line":407,"column":12},"end":{"line":407,"column":49}},"92":{"start":{"line":408,"column":12},"end":{"line":408,"column":31}},"93":{"start":{"line":409,"column":12},"end":{"line":409,"column":31}},"94":{"start":{"line":424,"column":8},"end":{"line":424,"column":72}},"95":{"start":{"line":425,"column":8},"end":{"line":425,"column":20}},"96":{"start":{"line":439,"column":8},"end":{"line":439,"column":71}},"97":{"start":{"line":440,"column":8},"end":{"line":440,"column":20}},"98":{"start":{"line":452,"column":8},"end":{"line":466,"column":66}},"99":{"start":{"line":467,"column":8},"end":{"line":484,"column":9}},"100":{"start":{"line":469,"column":12},"end":{"line":469,"column":50}},"101":{"start":{"line":470,"column":12},"end":{"line":470,"column":54}},"102":{"start":{"line":471,"column":12},"end":{"line":471,"column":52}},"103":{"start":{"line":472,"column":12},"end":{"line":472,"column":52}},"104":{"start":{"line":473,"column":12},"end":{"line":473,"column":42}},"105":{"start":{"line":474,"column":12},"end":{"line":474,"column":37}},"106":{"start":{"line":475,"column":12},"end":{"line":475,"column":38}},"107":{"start":{"line":476,"column":12},"end":{"line":476,"column":36}},"108":{"start":{"line":477,"column":12},"end":{"line":477,"column":35}},"109":{"start":{"line":478,"column":12},"end":{"line":478,"column":39}},"110":{"start":{"line":479,"column":12},"end":{"line":479,"column":39}},"111":{"start":{"line":480,"column":12},"end":{"line":480,"column":74}},"112":{"start":{"line":481,"column":12},"end":{"line":481,"column":49}},"113":{"start":{"line":482,"column":12},"end":{"line":482,"column":75}},"114":{"start":{"line":483,"column":12},"end":{"line":483,"column":37}},"115":{"start":{"line":485,"column":8},"end":{"line":485,"column":20}},"116":{"start":{"line":499,"column":8},"end":{"line":502,"column":32}},"117":{"start":{"line":503,"column":12},"end":{"line":503,"column":25}},"118":{"start":{"line":504,"column":8},"end":{"line":504,"column":38}},"119":{"start":{"line":505,"column":8},"end":{"line":505,"column":48}},"120":{"start":{"line":506,"column":8},"end":{"line":506,"column":40}},"121":{"start":{"line":507,"column":8},"end":{"line":507,"column":33}},"122":{"start":{"line":508,"column":8},"end":{"line":508,"column":103}},"123":{"start":{"line":509,"column":8},"end":{"line":509,"column":20}},"124":{"start":{"line":525,"column":8},"end":{"line":526,"column":37}},"125":{"start":{"line":527,"column":8},"end":{"line":527,"column":37}},"126":{"start":{"line":528,"column":8},"end":{"line":528,"column":46}},"127":{"start":{"line":529,"column":8},"end":{"line":529,"column":46}},"128":{"start":{"line":530,"column":8},"end":{"line":530,"column":38}},"129":{"start":{"line":531,"column":8},"end":{"line":531,"column":37}},"130":{"start":{"line":532,"column":8},"end":{"line":532,"column":20}},"131":{"start":{"line":547,"column":8},"end":{"line":557,"column":77}},"132":{"start":{"line":559,"column":8},"end":{"line":559,"column":44}},"133":{"start":{"line":560,"column":8},"end":{"line":560,"column":45}},"134":{"start":{"line":561,"column":8},"end":{"line":561,"column":28}},"135":{"start":{"line":562,"column":8},"end":{"line":571,"column":9}},"136":{"start":{"line":564,"column":12},"end":{"line":564,"column":27}},"137":{"start":{"line":565,"column":12},"end":{"line":565,"column":43}},"138":{"start":{"line":566,"column":12},"end":{"line":566,"column":52}},"139":{"start":{"line":567,"column":12},"end":{"line":567,"column":53}},"140":{"start":{"line":568,"column":12},"end":{"line":568,"column":79}},"141":{"start":{"line":569,"column":12},"end":{"line":569,"column":80}},"142":{"start":{"line":570,"column":12},"end":{"line":570,"column":75}},"143":{"start":{"line":572,"column":8},"end":{"line":572,"column":48}},"144":{"start":{"line":573,"column":8},"end":{"line":573,"column":40}},"145":{"start":{"line":574,"column":8},"end":{"line":574,"column":33}},"146":{"start":{"line":575,"column":8},"end":{"line":575,"column":20}},"147":{"start":{"line":589,"column":8},"end":{"line":589,"column":38}},"148":{"start":{"line":590,"column":8},"end":{"line":590,"column":26}},"149":{"start":{"line":591,"column":8},"end":{"line":591,"column":30}},"150":{"start":{"line":592,"column":8},"end":{"line":592,"column":34}},"151":{"start":{"line":593,"column":8},"end":{"line":593,"column":30}},"152":{"start":{"line":594,"column":8},"end":{"line":594,"column":26}},"153":{"start":{"line":595,"column":8},"end":{"line":595,"column":20}},"154":{"start":{"line":611,"column":8},"end":{"line":611,"column":38}},"155":{"start":{"line":612,"column":8},"end":{"line":612,"column":32}},"156":{"start":{"line":613,"column":8},"end":{"line":613,"column":35}},"157":{"start":{"line":614,"column":8},"end":{"line":614,"column":55}},"158":{"start":{"line":615,"column":8},"end":{"line":615,"column":39}},"159":{"start":{"line":616,"column":8},"end":{"line":616,"column":63}},"160":{"start":{"line":617,"column":8},"end":{"line":617,"column":35}},"161":{"start":{"line":618,"column":8},"end":{"line":618,"column":55}},"162":{"start":{"line":619,"column":8},"end":{"line":619,"column":31}},"163":{"start":{"line":620,"column":8},"end":{"line":620,"column":47}},"164":{"start":{"line":621,"column":8},"end":{"line":621,"column":20}},"165":{"start":{"line":639,"column":8},"end":{"line":651,"column":18}},"166":{"start":{"line":652,"column":8},"end":{"line":652,"column":36}},"167":{"start":{"line":654,"column":8},"end":{"line":654,"column":38}},"168":{"start":{"line":656,"column":8},"end":{"line":656,"column":51}},"169":{"start":{"line":658,"column":8},"end":{"line":658,"column":36}},"170":{"start":{"line":661,"column":8},"end":{"line":664,"column":9}},"171":{"start":{"line":663,"column":12},"end":{"line":663,"column":22}},"172":{"start":{"line":668,"column":8},"end":{"line":668,"column":45}},"173":{"start":{"line":671,"column":8},"end":{"line":671,"column":30}},"174":{"start":{"line":675,"column":8},"end":{"line":675,"column":44}},"175":{"start":{"line":678,"column":8},"end":{"line":678,"column":45}},"176":{"start":{"line":681,"column":8},"end":{"line":700,"column":9}},"177":{"start":{"line":684,"column":12},"end":{"line":684,"column":67}},"178":{"start":{"line":685,"column":12},"end":{"line":685,"column":68}},"179":{"start":{"line":686,"column":12},"end":{"line":686,"column":32}},"180":{"start":{"line":688,"column":12},"end":{"line":697,"column":13}},"181":{"start":{"line":690,"column":16},"end":{"line":690,"column":31}},"182":{"start":{"line":691,"column":16},"end":{"line":691,"column":47}},"183":{"start":{"line":692,"column":16},"end":{"line":692,"column":50}},"184":{"start":{"line":693,"column":16},"end":{"line":693,"column":51}},"185":{"start":{"line":694,"column":16},"end":{"line":694,"column":77}},"186":{"start":{"line":695,"column":16},"end":{"line":695,"column":78}},"187":{"start":{"line":696,"column":16},"end":{"line":696,"column":79}},"188":{"start":{"line":699,"column":12},"end":{"line":699,"column":55}},"189":{"start":{"line":701,"column":8},"end":{"line":701,"column":35}},"190":{"start":{"line":702,"column":8},"end":{"line":702,"column":62}},"191":{"start":{"line":703,"column":8},"end":{"line":703,"column":20}},"192":{"start":{"line":713,"column":8},"end":{"line":713,"column":26}},"193":{"start":{"line":714,"column":8},"end":{"line":714,"column":20}},"194":{"start":{"line":725,"column":8},"end":{"line":725,"column":48}},"195":{"start":{"line":726,"column":8},"end":{"line":726,"column":48}},"196":{"start":{"line":727,"column":8},"end":{"line":727,"column":20}},"197":{"start":{"line":737,"column":2},"end":{"line":737,"column":20}},"198":{"start":{"line":738,"column":8},"end":{"line":741,"column":9}},"199":{"start":{"line":740,"column":12},"end":{"line":740,"column":77}},"200":{"start":{"line":742,"column":8},"end":{"line":742,"column":20}},"201":{"start":{"line":754,"column":8},"end":{"line":773,"column":81}},"202":{"start":{"line":774,"column":8},"end":{"line":803,"column":9}},"203":{"start":{"line":776,"column":12},"end":{"line":785,"column":13}},"204":{"start":{"line":778,"column":16},"end":{"line":778,"column":23}},"205":{"start":{"line":779,"column":16},"end":{"line":779,"column":27}},"206":{"start":{"line":783,"column":16},"end":{"line":783,"column":27}},"207":{"start":{"line":784,"column":16},"end":{"line":784,"column":23}},"208":{"start":{"line":786,"column":12},"end":{"line":786,"column":45}},"209":{"start":{"line":787,"column":12},"end":{"line":787,"column":45}},"210":{"start":{"line":791,"column":12},"end":{"line":800,"column":13}},"211":{"start":{"line":793,"column":16},"end":{"line":793,"column":27}},"212":{"start":{"line":794,"column":16},"end":{"line":794,"column":23}},"213":{"start":{"line":798,"column":16},"end":{"line":798,"column":23}},"214":{"start":{"line":799,"column":16},"end":{"line":799,"column":27}},"215":{"start":{"line":801,"column":12},"end":{"line":801,"column":54}},"216":{"start":{"line":802,"column":12},"end":{"line":802,"column":54}},"217":{"start":{"line":804,"column":8},"end":{"line":804,"column":70}},"218":{"start":{"line":805,"column":8},"end":{"line":822,"column":9}},"219":{"start":{"line":807,"column":12},"end":{"line":807,"column":28}},"220":{"start":{"line":808,"column":12},"end":{"line":808,"column":35}},"221":{"start":{"line":809,"column":12},"end":{"line":809,"column":31}},"222":{"start":{"line":810,"column":12},"end":{"line":810,"column":33}},"223":{"start":{"line":811,"column":12},"end":{"line":819,"column":13}},"224":{"start":{"line":813,"column":16},"end":{"line":813,"column":60}},"225":{"start":{"line":814,"column":16},"end":{"line":814,"column":53}},"226":{"start":{"line":818,"column":16},"end":{"line":818,"column":37}},"227":{"start":{"line":820,"column":12},"end":{"line":820,"column":48}},"228":{"start":{"line":821,"column":12},"end":{"line":821,"column":49}},"229":{"start":{"line":823,"column":8},"end":{"line":823,"column":24}},"230":{"start":{"line":834,"column":8},"end":{"line":854,"column":27}},"231":{"start":{"line":855,"column":8},"end":{"line":855,"column":21}},"232":{"start":{"line":856,"column":8},"end":{"line":856,"column":21}},"233":{"start":{"line":857,"column":8},"end":{"line":857,"column":20}},"234":{"start":{"line":858,"column":8},"end":{"line":858,"column":20}},"235":{"start":{"line":859,"column":8},"end":{"line":859,"column":21}},"236":{"start":{"line":860,"column":8},"end":{"line":860,"column":21}},"237":{"start":{"line":861,"column":8},"end":{"line":861,"column":19}},"238":{"start":{"line":862,"column":8},"end":{"line":862,"column":89}},"239":{"start":{"line":863,"column":8},"end":{"line":877,"column":9}},"240":{"start":{"line":865,"column":12},"end":{"line":865,"column":25}},"241":{"start":{"line":867,"column":12},"end":{"line":870,"column":13}},"242":{"start":{"line":869,"column":16},"end":{"line":869,"column":29}},"243":{"start":{"line":871,"column":12},"end":{"line":871,"column":33}},"244":{"start":{"line":872,"column":12},"end":{"line":872,"column":33}},"245":{"start":{"line":873,"column":12},"end":{"line":873,"column":57}},"246":{"start":{"line":874,"column":12},"end":{"line":874,"column":57}},"247":{"start":{"line":875,"column":12},"end":{"line":875,"column":25}},"248":{"start":{"line":876,"column":12},"end":{"line":876,"column":25}},"249":{"start":{"line":882,"column":8},"end":{"line":891,"column":9}},"250":{"start":{"line":884,"column":12},"end":{"line":884,"column":84}},"251":{"start":{"line":885,"column":12},"end":{"line":885,"column":31}},"252":{"start":{"line":889,"column":12},"end":{"line":889,"column":82}},"253":{"start":{"line":890,"column":12},"end":{"line":890,"column":35}},"254":{"start":{"line":892,"column":8},"end":{"line":913,"column":9}},"255":{"start":{"line":894,"column":12},"end":{"line":894,"column":28}},"256":{"start":{"line":895,"column":12},"end":{"line":895,"column":35}},"257":{"start":{"line":896,"column":12},"end":{"line":896,"column":31}},"258":{"start":{"line":897,"column":12},"end":{"line":897,"column":33}},"259":{"start":{"line":898,"column":12},"end":{"line":906,"column":13}},"260":{"start":{"line":900,"column":16},"end":{"line":900,"column":60}},"261":{"start":{"line":901,"column":16},"end":{"line":901,"column":53}},"262":{"start":{"line":905,"column":16},"end":{"line":905,"column":37}},"263":{"start":{"line":907,"column":12},"end":{"line":907,"column":48}},"264":{"start":{"line":908,"column":12},"end":{"line":908,"column":37}},"265":{"start":{"line":909,"column":12},"end":{"line":912,"column":13}},"266":{"start":{"line":911,"column":16},"end":{"line":911,"column":53}},"267":{"start":{"line":914,"column":8},"end":{"line":914,"column":24}},"268":{"start":{"line":925,"column":8},"end":{"line":925,"column":27}},"269":{"start":{"line":926,"column":8},"end":{"line":926,"column":33}},"270":{"start":{"line":927,"column":8},"end":{"line":927,"column":28}},"271":{"start":{"line":928,"column":2},"end":{"line":928,"column":22}},"272":{"start":{"line":929,"column":2},"end":{"line":929,"column":18}},"273":{"start":{"line":930,"column":8},"end":{"line":930,"column":25}},"274":{"start":{"line":931,"column":8},"end":{"line":931,"column":23}},"275":{"start":{"line":932,"column":8},"end":{"line":932,"column":22}},"276":{"start":{"line":933,"column":8},"end":{"line":933,"column":24}},"277":{"start":{"line":934,"column":8},"end":{"line":934,"column":25}},"278":{"start":{"line":935,"column":8},"end":{"line":935,"column":27}},"279":{"start":{"line":936,"column":8},"end":{"line":936,"column":27}},"280":{"start":{"line":956,"column":8},"end":{"line":956,"column":59}},"281":{"start":{"line":957,"column":8},"end":{"line":957,"column":23}},"282":{"start":{"line":970,"column":8},"end":{"line":973,"column":14}},"283":{"start":{"line":975,"column":8},"end":{"line":977,"column":9}},"284":{"start":{"line":976,"column":12},"end":{"line":976,"column":50}},"285":{"start":{"line":979,"column":8},"end":{"line":984,"column":9}},"286":{"start":{"line":980,"column":12},"end":{"line":983,"column":13}},"287":{"start":{"line":981,"column":16},"end":{"line":981,"column":82}},"288":{"start":{"line":982,"column":16},"end":{"line":982,"column":82}},"289":{"start":{"line":985,"column":8},"end":{"line":985,"column":40}},"290":{"start":{"line":999,"column":8},"end":{"line":1007,"column":15}},"291":{"start":{"line":1008,"column":8},"end":{"line":1015,"column":9}},"292":{"start":{"line":1010,"column":12},"end":{"line":1010,"column":48}},"293":{"start":{"line":1011,"column":12},"end":{"line":1011,"column":63}},"294":{"start":{"line":1012,"column":12},"end":{"line":1012,"column":66}},"295":{"start":{"line":1013,"column":12},"end":{"line":1013,"column":60}},"296":{"start":{"line":1014,"column":12},"end":{"line":1014,"column":69}},"297":{"start":{"line":1016,"column":8},"end":{"line":1016,"column":40}},"298":{"start":{"line":1017,"column":8},"end":{"line":1017,"column":42}},"299":{"start":{"line":1018,"column":8},"end":{"line":1018,"column":38}},"300":{"start":{"line":1019,"column":8},"end":{"line":1019,"column":44}},"301":{"start":{"line":1020,"column":8},"end":{"line":1020,"column":49}},"302":{"start":{"line":1021,"column":8},"end":{"line":1021,"column":45}},"303":{"start":{"line":1033,"column":8},"end":{"line":1035,"column":9}},"304":{"start":{"line":1034,"column":12},"end":{"line":1034,"column":28}},"305":{"start":{"line":1036,"column":8},"end":{"line":1039,"column":9}},"306":{"start":{"line":1038,"column":12},"end":{"line":1038,"column":27}},"307":{"start":{"line":1040,"column":8},"end":{"line":1043,"column":9}},"308":{"start":{"line":1042,"column":12},"end":{"line":1042,"column":26}},"309":{"start":{"line":1044,"column":8},"end":{"line":1047,"column":9}},"310":{"start":{"line":1046,"column":12},"end":{"line":1046,"column":29}},"311":{"start":{"line":1048,"column":8},"end":{"line":1048,"column":47}},"312":{"start":{"line":1049,"column":8},"end":{"line":1049,"column":48}},"313":{"start":{"line":1052,"column":0},"end":{"line":1052,"column":32}},"314":{"start":{"line":1064,"column":0},"end":{"line":1069,"column":2}},"315":{"start":{"line":1066,"column":4},"end":{"line":1066,"column":26}},"316":{"start":{"line":1067,"column":4},"end":{"line":1067,"column":33}},"317":{"start":{"line":1068,"column":4},"end":{"line":1068,"column":62}},"318":{"start":{"line":1071,"column":0},"end":{"line":1071,"column":27}},"319":{"start":{"line":1073,"column":0},"end":{"line":2032,"column":31}},"320":{"start":{"line":1083,"column":2},"end":{"line":1083,"column":42}},"321":{"start":{"line":1094,"column":2},"end":{"line":1096,"column":36}},"322":{"start":{"line":1097,"column":8},"end":{"line":1097,"column":26}},"323":{"start":{"line":1098,"column":2},"end":{"line":1098,"column":20}},"324":{"start":{"line":1099,"column":2},"end":{"line":1099,"column":22}},"325":{"start":{"line":1100,"column":2},"end":{"line":1100,"column":22}},"326":{"start":{"line":1101,"column":8},"end":{"line":1104,"column":9}},"327":{"start":{"line":1103,"column":12},"end":{"line":1103,"column":38}},"328":{"start":{"line":1105,"column":8},"end":{"line":1108,"column":9}},"329":{"start":{"line":1107,"column":12},"end":{"line":1107,"column":38}},"330":{"start":{"line":1109,"column":2},"end":{"line":1109,"column":24}},"331":{"start":{"line":1123,"column":8},"end":{"line":1123,"column":20}},"332":{"start":{"line":1124,"column":8},"end":{"line":1136,"column":9}},"333":{"start":{"line":1126,"column":12},"end":{"line":1126,"column":35}},"334":{"start":{"line":1130,"column":12},"end":{"line":1130,"column":35}},"335":{"start":{"line":1131,"column":12},"end":{"line":1133,"column":15}},"336":{"start":{"line":1134,"column":12},"end":{"line":1134,"column":39}},"337":{"start":{"line":1135,"column":12},"end":{"line":1135,"column":36}},"338":{"start":{"line":1147,"column":2},"end":{"line":1147,"column":37}},"339":{"start":{"line":1148,"column":2},"end":{"line":1148,"column":27}},"340":{"start":{"line":1159,"column":2},"end":{"line":1159,"column":37}},"341":{"start":{"line":1160,"column":2},"end":{"line":1160,"column":30}},"342":{"start":{"line":1171,"column":2},"end":{"line":1174,"column":21}},"343":{"start":{"line":1175,"column":2},"end":{"line":1175,"column":44}},"344":{"start":{"line":1186,"column":2},"end":{"line":1189,"column":27}},"345":{"start":{"line":1190,"column":2},"end":{"line":1190,"column":20}},"346":{"start":{"line":1191,"column":2},"end":{"line":1191,"column":20}},"347":{"start":{"line":1192,"column":2},"end":{"line":1192,"column":33}},"348":{"start":{"line":1204,"column":2},"end":{"line":1204,"column":37}},"349":{"start":{"line":1216,"column":2},"end":{"line":1216,"column":48}},"350":{"start":{"line":1228,"column":2},"end":{"line":1228,"column":23}},"351":{"start":{"line":1229,"column":2},"end":{"line":1229,"column":26}},"352":{"start":{"line":1240,"column":2},"end":{"line":1248,"column":4}},"353":{"start":{"line":1260,"column":2},"end":{"line":1265,"column":4}},"354":{"start":{"line":1313,"column":2},"end":{"line":1317,"column":29}},"355":{"start":{"line":1318,"column":2},"end":{"line":1318,"column":40}},"356":{"start":{"line":1319,"column":2},"end":{"line":1319,"column":43}},"357":{"start":{"line":1320,"column":8},"end":{"line":1320,"column":40}},"358":{"start":{"line":1321,"column":8},"end":{"line":1324,"column":9}},"359":{"start":{"line":1323,"column":12},"end":{"line":1323,"column":45}},"360":{"start":{"line":1325,"column":2},"end":{"line":1325,"column":30}},"361":{"start":{"line":1326,"column":2},"end":{"line":1326,"column":16}},"362":{"start":{"line":1327,"column":8},"end":{"line":1327,"column":25}},"363":{"start":{"line":1328,"column":2},"end":{"line":1336,"column":10}},"364":{"start":{"line":1350,"column":2},"end":{"line":1353,"column":3}},"365":{"start":{"line":1352,"column":3},"end":{"line":1352,"column":52}},"366":{"start":{"line":1354,"column":2},"end":{"line":1354,"column":37}},"367":{"start":{"line":1366,"column":2},"end":{"line":1371,"column":13}},"368":{"start":{"line":1372,"column":8},"end":{"line":1417,"column":9}},"369":{"start":{"line":1374,"column":12},"end":{"line":1374,"column":33}},"370":{"start":{"line":1375,"column":12},"end":{"line":1375,"column":48}},"371":{"start":{"line":1376,"column":12},"end":{"line":1376,"column":50}},"372":{"start":{"line":1377,"column":12},"end":{"line":1377,"column":50}},"373":{"start":{"line":1378,"column":12},"end":{"line":1378,"column":47}},"374":{"start":{"line":1379,"column":12},"end":{"line":1379,"column":41}},"375":{"start":{"line":1380,"column":12},"end":{"line":1380,"column":36}},"376":{"start":{"line":1381,"column":12},"end":{"line":1381,"column":114}},"377":{"start":{"line":1382,"column":12},"end":{"line":1382,"column":40}},"378":{"start":{"line":1384,"column":12},"end":{"line":1391,"column":13}},"379":{"start":{"line":1386,"column":16},"end":{"line":1386,"column":33}},"380":{"start":{"line":1390,"column":16},"end":{"line":1390,"column":33}},"381":{"start":{"line":1392,"column":12},"end":{"line":1398,"column":13}},"382":{"start":{"line":1393,"column":16},"end":{"line":1393,"column":65}},"383":{"start":{"line":1397,"column":16},"end":{"line":1397,"column":42}},"384":{"start":{"line":1399,"column":12},"end":{"line":1399,"column":36}},"385":{"start":{"line":1400,"column":12},"end":{"line":1412,"column":13}},"386":{"start":{"line":1402,"column":16},"end":{"line":1402,"column":42}},"387":{"start":{"line":1406,"column":16},"end":{"line":1406,"column":50}},"388":{"start":{"line":1407,"column":16},"end":{"line":1411,"column":17}},"389":{"start":{"line":1409,"column":20},"end":{"line":1409,"column":62}},"390":{"start":{"line":1410,"column":20},"end":{"line":1410,"column":45}},"391":{"start":{"line":1416,"column":12},"end":{"line":1416,"column":29}},"392":{"start":{"line":1431,"column":2},"end":{"line":1431,"column":18}},"393":{"start":{"line":1432,"column":2},"end":{"line":1432,"column":53}},"394":{"start":{"line":1433,"column":2},"end":{"line":1436,"column":3}},"395":{"start":{"line":1435,"column":3},"end":{"line":1435,"column":25}},"396":{"start":{"line":1448,"column":2},"end":{"line":1451,"column":8}},"397":{"start":{"line":1452,"column":8},"end":{"line":1485,"column":3}},"398":{"start":{"line":1454,"column":12},"end":{"line":1454,"column":31}},"399":{"start":{"line":1455,"column":12},"end":{"line":1455,"column":29}},"400":{"start":{"line":1456,"column":12},"end":{"line":1479,"column":13}},"401":{"start":{"line":1458,"column":16},"end":{"line":1458,"column":38}},"402":{"start":{"line":1460,"column":17},"end":{"line":1479,"column":13}},"403":{"start":{"line":1462,"column":16},"end":{"line":1462,"column":39}},"404":{"start":{"line":1463,"column":16},"end":{"line":1471,"column":17}},"405":{"start":{"line":1465,"column":20},"end":{"line":1465,"column":64}},"406":{"start":{"line":1466,"column":20},"end":{"line":1466,"column":57}},"407":{"start":{"line":1470,"column":20},"end":{"line":1470,"column":41}},"408":{"start":{"line":1473,"column":16},"end":{"line":1473,"column":40}},"409":{"start":{"line":1474,"column":16},"end":{"line":1474,"column":41}},"410":{"start":{"line":1478,"column":16},"end":{"line":1478,"column":39}},"411":{"start":{"line":1483,"column":12},"end":{"line":1483,"column":34}},"412":{"start":{"line":1484,"column":3},"end":{"line":1484,"column":26}},"413":{"start":{"line":1497,"column":2},"end":{"line":1497,"column":24}},"414":{"start":{"line":1498,"column":2},"end":{"line":1498,"column":24}},"415":{"start":{"line":1499,"column":2},"end":{"line":1499,"column":45}},"416":{"start":{"line":1511,"column":8},"end":{"line":1511,"column":30}},"417":{"start":{"line":1512,"column":8},"end":{"line":1512,"column":52}},"418":{"start":{"line":1524,"column":8},"end":{"line":1524,"column":30}},"419":{"start":{"line":1525,"column":8},"end":{"line":1525,"column":52}},"420":{"start":{"line":1537,"column":8},"end":{"line":1537,"column":46}},"421":{"start":{"line":1548,"column":8},"end":{"line":1548,"column":47}},"422":{"start":{"line":1559,"column":8},"end":{"line":1559,"column":47}},"423":{"start":{"line":1570,"column":8},"end":{"line":1570,"column":48}},"424":{"start":{"line":1581,"column":8},"end":{"line":1581,"column":47}},"425":{"start":{"line":1603,"column":8},"end":{"line":1603,"column":29}},"426":{"start":{"line":1604,"column":8},"end":{"line":1604,"column":98}},"427":{"start":{"line":1605,"column":8},"end":{"line":1605,"column":27}},"428":{"start":{"line":1606,"column":8},"end":{"line":1606,"column":36}},"429":{"start":{"line":1607,"column":8},"end":{"line":1610,"column":9}},"430":{"start":{"line":1609,"column":12},"end":{"line":1609,"column":36}},"431":{"start":{"line":1621,"column":2},"end":{"line":1627,"column":42}},"432":{"start":{"line":1629,"column":8},"end":{"line":1640,"column":9}},"433":{"start":{"line":1631,"column":12},"end":{"line":1638,"column":13}},"434":{"start":{"line":1633,"column":16},"end":{"line":1633,"column":50}},"435":{"start":{"line":1634,"column":16},"end":{"line":1637,"column":17}},"436":{"start":{"line":1636,"column":20},"end":{"line":1636,"column":67}},"437":{"start":{"line":1639,"column":12},"end":{"line":1639,"column":43}},"438":{"start":{"line":1642,"column":8},"end":{"line":1642,"column":45}},"439":{"start":{"line":1643,"column":2},"end":{"line":1643,"column":89}},"440":{"start":{"line":1644,"column":8},"end":{"line":1644,"column":65}},"441":{"start":{"line":1645,"column":8},"end":{"line":1648,"column":3}},"442":{"start":{"line":1647,"column":12},"end":{"line":1647,"column":57}},"443":{"start":{"line":1649,"column":8},"end":{"line":1649,"column":30}},"444":{"start":{"line":1660,"column":2},"end":{"line":1660,"column":15}},"445":{"start":{"line":1661,"column":2},"end":{"line":1661,"column":26}},"446":{"start":{"line":1672,"column":8},"end":{"line":1672,"column":29}},"447":{"start":{"line":1673,"column":8},"end":{"line":1673,"column":21}},"448":{"start":{"line":1674,"column":2},"end":{"line":1674,"column":20}},"449":{"start":{"line":1675,"column":2},"end":{"line":1675,"column":41}},"450":{"start":{"line":1676,"column":2},"end":{"line":1676,"column":40}},"451":{"start":{"line":1687,"column":2},"end":{"line":1690,"column":3}},"452":{"start":{"line":1689,"column":3},"end":{"line":1689,"column":10}},"453":{"start":{"line":1691,"column":2},"end":{"line":1702,"column":11}},"454":{"start":{"line":1703,"column":2},"end":{"line":1703,"column":57}},"455":{"start":{"line":1704,"column":8},"end":{"line":1762,"column":3}},"456":{"start":{"line":1706,"column":3},"end":{"line":1706,"column":30}},"457":{"start":{"line":1707,"column":3},"end":{"line":1710,"column":4}},"458":{"start":{"line":1709,"column":4},"end":{"line":1709,"column":11}},"459":{"start":{"line":1711,"column":3},"end":{"line":1727,"column":4}},"460":{"start":{"line":1713,"column":4},"end":{"line":1713,"column":43}},"461":{"start":{"line":1714,"column":4},"end":{"line":1714,"column":22}},"462":{"start":{"line":1715,"column":16},"end":{"line":1715,"column":108}},"463":{"start":{"line":1716,"column":4},"end":{"line":1726,"column":5}},"464":{"start":{"line":1718,"column":5},"end":{"line":1725,"column":6}},"465":{"start":{"line":1720,"column":6},"end":{"line":1720,"column":36}},"466":{"start":{"line":1724,"column":6},"end":{"line":1724,"column":37}},"467":{"start":{"line":1728,"column":12},"end":{"line":1728,"column":58}},"468":{"start":{"line":1729,"column":12},"end":{"line":1729,"column":59}},"469":{"start":{"line":1730,"column":12},"end":{"line":1730,"column":32}},"470":{"start":{"line":1731,"column":3},"end":{"line":1755,"column":4}},"471":{"start":{"line":1733,"column":4},"end":{"line":1733,"column":31}},"472":{"start":{"line":1734,"column":4},"end":{"line":1754,"column":5}},"473":{"start":{"line":1736,"column":5},"end":{"line":1736,"column":27}},"474":{"start":{"line":1737,"column":5},"end":{"line":1753,"column":6}},"475":{"start":{"line":1739,"column":24},"end":{"line":1752,"column":7}},"476":{"start":{"line":1741,"column":28},"end":{"line":1741,"column":48}},"477":{"start":{"line":1742,"column":28},"end":{"line":1742,"column":57}},"478":{"start":{"line":1744,"column":11},"end":{"line":1752,"column":7}},"479":{"start":{"line":1746,"column":7},"end":{"line":1746,"column":81}},"480":{"start":{"line":1747,"column":7},"end":{"line":1747,"column":46}},"481":{"start":{"line":1751,"column":28},"end":{"line":1751,"column":65}},"482":{"start":{"line":1757,"column":12},"end":{"line":1757,"column":41}},"483":{"start":{"line":1758,"column":3},"end":{"line":1758,"column":32}},"484":{"start":{"line":1759,"column":3},"end":{"line":1759,"column":32}},"485":{"start":{"line":1760,"column":3},"end":{"line":1760,"column":30}},"486":{"start":{"line":1761,"column":3},"end":{"line":1761,"column":33}},"487":{"start":{"line":1774,"column":8},"end":{"line":1790,"column":9}},"488":{"start":{"line":1776,"column":12},"end":{"line":1787,"column":13}},"489":{"start":{"line":1778,"column":16},"end":{"line":1778,"column":62}},"490":{"start":{"line":1780,"column":17},"end":{"line":1787,"column":13}},"491":{"start":{"line":1782,"column":16},"end":{"line":1782,"column":62}},"492":{"start":{"line":1786,"column":16},"end":{"line":1786,"column":52}},"493":{"start":{"line":1788,"column":12},"end":{"line":1788,"column":32}},"494":{"start":{"line":1789,"column":12},"end":{"line":1789,"column":27}},"495":{"start":{"line":1792,"column":8},"end":{"line":1805,"column":9}},"496":{"start":{"line":1793,"column":12},"end":{"line":1796,"column":13}},"497":{"start":{"line":1795,"column":16},"end":{"line":1795,"column":55}},"498":{"start":{"line":1797,"column":12},"end":{"line":1797,"column":44}},"499":{"start":{"line":1798,"column":12},"end":{"line":1798,"column":46}},"500":{"start":{"line":1799,"column":12},"end":{"line":1802,"column":13}},"501":{"start":{"line":1801,"column":16},"end":{"line":1801,"column":54}},"502":{"start":{"line":1803,"column":12},"end":{"line":1803,"column":52}},"503":{"start":{"line":1804,"column":12},"end":{"line":1804,"column":29}},"504":{"start":{"line":1820,"column":2},"end":{"line":1831,"column":5}},"505":{"start":{"line":1832,"column":2},"end":{"line":1832,"column":45}},"506":{"start":{"line":1833,"column":2},"end":{"line":1833,"column":45}},"507":{"start":{"line":1835,"column":2},"end":{"line":1841,"column":3}},"508":{"start":{"line":1837,"column":3},"end":{"line":1837,"column":38}},"509":{"start":{"line":1838,"column":3},"end":{"line":1838,"column":100}},"510":{"start":{"line":1839,"column":3},"end":{"line":1839,"column":22}},"511":{"start":{"line":1840,"column":3},"end":{"line":1840,"column":22}},"512":{"start":{"line":1843,"column":2},"end":{"line":1843,"column":37}},"513":{"start":{"line":1844,"column":2},"end":{"line":1844,"column":99}},"514":{"start":{"line":1846,"column":2},"end":{"line":1853,"column":3}},"515":{"start":{"line":1848,"column":3},"end":{"line":1848,"column":100}},"516":{"start":{"line":1850,"column":7},"end":{"line":1853,"column":3}},"517":{"start":{"line":1852,"column":3},"end":{"line":1852,"column":94}},"518":{"start":{"line":1855,"column":2},"end":{"line":1855,"column":29}},"519":{"start":{"line":1869,"column":2},"end":{"line":1873,"column":21}},"520":{"start":{"line":1874,"column":8},"end":{"line":1880,"column":9}},"521":{"start":{"line":1876,"column":12},"end":{"line":1876,"column":31}},"522":{"start":{"line":1877,"column":12},"end":{"line":1877,"column":30}},"523":{"start":{"line":1878,"column":12},"end":{"line":1878,"column":41}},"524":{"start":{"line":1879,"column":12},"end":{"line":1879,"column":41}},"525":{"start":{"line":1881,"column":8},"end":{"line":1881,"column":48}},"526":{"start":{"line":1896,"column":8},"end":{"line":1905,"column":24}},"527":{"start":{"line":1906,"column":8},"end":{"line":1910,"column":9}},"528":{"start":{"line":1908,"column":12},"end":{"line":1908,"column":40}},"529":{"start":{"line":1909,"column":12},"end":{"line":1909,"column":40}},"530":{"start":{"line":1911,"column":8},"end":{"line":1911,"column":57}},"531":{"start":{"line":1912,"column":8},"end":{"line":1912,"column":57}},"532":{"start":{"line":1913,"column":8},"end":{"line":1913,"column":49}},"533":{"start":{"line":1914,"column":8},"end":{"line":1922,"column":9}},"534":{"start":{"line":1916,"column":12},"end":{"line":1916,"column":38}},"535":{"start":{"line":1917,"column":12},"end":{"line":1917,"column":36}},"536":{"start":{"line":1918,"column":12},"end":{"line":1921,"column":13}},"537":{"start":{"line":1920,"column":16},"end":{"line":1920,"column":53}},"538":{"start":{"line":1923,"column":8},"end":{"line":1923,"column":51}},"539":{"start":{"line":1924,"column":8},"end":{"line":1924,"column":56}},"540":{"start":{"line":1925,"column":8},"end":{"line":1925,"column":27}},"541":{"start":{"line":1935,"column":8},"end":{"line":1935,"column":42}},"542":{"start":{"line":1936,"column":8},"end":{"line":1939,"column":9}},"543":{"start":{"line":1938,"column":12},"end":{"line":1938,"column":35}},"544":{"start":{"line":1949,"column":8},"end":{"line":1949,"column":42}},"545":{"start":{"line":1950,"column":8},"end":{"line":1953,"column":9}},"546":{"start":{"line":1952,"column":12},"end":{"line":1952,"column":34}},"547":{"start":{"line":1965,"column":8},"end":{"line":1972,"column":54}},"548":{"start":{"line":1973,"column":8},"end":{"line":1996,"column":9}},"549":{"start":{"line":1975,"column":12},"end":{"line":1975,"column":25}},"550":{"start":{"line":1976,"column":12},"end":{"line":1976,"column":43}},"551":{"start":{"line":1977,"column":12},"end":{"line":1994,"column":13}},"552":{"start":{"line":1979,"column":16},"end":{"line":1979,"column":38}},"553":{"start":{"line":1980,"column":16},"end":{"line":1980,"column":48}},"554":{"start":{"line":1981,"column":16},"end":{"line":1981,"column":61}},"555":{"start":{"line":1982,"column":16},"end":{"line":1982,"column":54}},"556":{"start":{"line":1983,"column":16},"end":{"line":1993,"column":17}},"557":{"start":{"line":1985,"column":20},"end":{"line":1992,"column":21}},"558":{"start":{"line":1987,"column":24},"end":{"line":1987,"column":55}},"559":{"start":{"line":1991,"column":24},"end":{"line":1991,"column":49}},"560":{"start":{"line":1995,"column":12},"end":{"line":1995,"column":23}},"561":{"start":{"line":2006,"column":8},"end":{"line":2006,"column":42}},"562":{"start":{"line":2007,"column":8},"end":{"line":2014,"column":9}},"563":{"start":{"line":2009,"column":12},"end":{"line":2009,"column":38}},"564":{"start":{"line":2013,"column":12},"end":{"line":2013,"column":28}},"565":{"start":{"line":2025,"column":8},"end":{"line":2030,"column":9}},"566":{"start":{"line":2027,"column":12},"end":{"line":2027,"column":42}},"567":{"start":{"line":2028,"column":12},"end":{"line":2028,"column":33}},"568":{"start":{"line":2029,"column":12},"end":{"line":2029,"column":29}},"569":{"start":{"line":2034,"column":0},"end":{"line":2360,"column":2}},"570":{"start":{"line":2045,"column":3},"end":{"line":2045,"column":21}},"571":{"start":{"line":2082,"column":12},"end":{"line":2082,"column":31}},"572":{"start":{"line":2083,"column":12},"end":{"line":2083,"column":66}},"573":{"start":{"line":2084,"column":12},"end":{"line":2084,"column":34}},"574":{"start":{"line":2085,"column":12},"end":{"line":2085,"column":23}},"575":{"start":{"line":2090,"column":12},"end":{"line":2090,"column":35}},"576":{"start":{"line":2106,"column":3},"end":{"line":2106,"column":20}},"577":{"start":{"line":2119,"column":3},"end":{"line":2119,"column":19}},"578":{"start":{"line":2124,"column":3},"end":{"line":2124,"column":24}},"579":{"start":{"line":2125,"column":3},"end":{"line":2128,"column":4}},"580":{"start":{"line":2127,"column":4},"end":{"line":2127,"column":33}},"581":{"start":{"line":2129,"column":3},"end":{"line":2129,"column":14}},"582":{"start":{"line":2183,"column":3},"end":{"line":2184,"column":56}},"583":{"start":{"line":2185,"column":3},"end":{"line":2188,"column":13}},"584":{"start":{"line":2187,"column":16},"end":{"line":2187,"column":51}},"585":{"start":{"line":2189,"column":3},"end":{"line":2189,"column":14}},"586":{"start":{"line":2247,"column":3},"end":{"line":2248,"column":54}},"587":{"start":{"line":2249,"column":3},"end":{"line":2249,"column":44}},"588":{"start":{"line":2250,"column":3},"end":{"line":2256,"column":4}},"589":{"start":{"line":2252,"column":4},"end":{"line":2255,"column":5}},"590":{"start":{"line":2254,"column":5},"end":{"line":2254,"column":23}},"591":{"start":{"line":2257,"column":3},"end":{"line":2257,"column":28}},"592":{"start":{"line":2258,"column":3},"end":{"line":2258,"column":15}},"593":{"start":{"line":2295,"column":3},"end":{"line":2296,"column":19}},"594":{"start":{"line":2297,"column":12},"end":{"line":2304,"column":13}},"595":{"start":{"line":2299,"column":16},"end":{"line":2299,"column":46}},"596":{"start":{"line":2300,"column":16},"end":{"line":2303,"column":17}},"597":{"start":{"line":2302,"column":20},"end":{"line":2302,"column":36}},"598":{"start":{"line":2305,"column":3},"end":{"line":2305,"column":43}},"599":{"start":{"line":2306,"column":3},"end":{"line":2306,"column":29}},"600":{"start":{"line":2307,"column":3},"end":{"line":2307,"column":14}},"601":{"start":{"line":2338,"column":12},"end":{"line":2341,"column":13}},"602":{"start":{"line":2340,"column":16},"end":{"line":2340,"column":41}},"603":{"start":{"line":2342,"column":12},"end":{"line":2342,"column":23}},"604":{"start":{"line":2357,"column":3},"end":{"line":2357,"column":24}},"605":{"start":{"line":2361,"column":0},"end":{"line":2361,"column":28}},"606":{"start":{"line":2373,"column":0},"end":{"line":2376,"column":2}},"607":{"start":{"line":2375,"column":1},"end":{"line":2375,"column":58}},"608":{"start":{"line":2377,"column":0},"end":{"line":2377,"column":25}},"609":{"start":{"line":2378,"column":0},"end":{"line":2442,"column":3}},"610":{"start":{"line":2396,"column":8},"end":{"line":2396,"column":26}},"611":{"start":{"line":2397,"column":8},"end":{"line":2397,"column":32}},"612":{"start":{"line":2409,"column":2},"end":{"line":2413,"column":32}},"613":{"start":{"line":2414,"column":2},"end":{"line":2414,"column":40}},"614":{"start":{"line":2415,"column":2},"end":{"line":2415,"column":43}},"615":{"start":{"line":2416,"column":8},"end":{"line":2416,"column":52}},"616":{"start":{"line":2417,"column":8},"end":{"line":2417,"column":42}},"617":{"start":{"line":2418,"column":8},"end":{"line":2418,"column":40}},"618":{"start":{"line":2419,"column":2},"end":{"line":2419,"column":30}},"619":{"start":{"line":2420,"column":2},"end":{"line":2420,"column":16}},"620":{"start":{"line":2421,"column":2},"end":{"line":2421,"column":19}},"621":{"start":{"line":2422,"column":2},"end":{"line":2430,"column":10}},"622":{"start":{"line":2440,"column":8},"end":{"line":2440,"column":21}},"623":{"start":{"line":2444,"column":0},"end":{"line":2500,"column":3}},"624":{"start":{"line":2454,"column":3},"end":{"line":2454,"column":82}},"625":{"start":{"line":2455,"column":3},"end":{"line":2455,"column":31}},"626":{"start":{"line":2460,"column":3},"end":{"line":2460,"column":21}},"627":{"start":{"line":2461,"column":3},"end":{"line":2461,"column":14}},"628":{"start":{"line":2474,"column":3},"end":{"line":2474,"column":82}},"629":{"start":{"line":2475,"column":12},"end":{"line":2475,"column":41}},"630":{"start":{"line":2480,"column":3},"end":{"line":2480,"column":22}},"631":{"start":{"line":2481,"column":3},"end":{"line":2481,"column":14}},"632":{"start":{"line":2497,"column":3},"end":{"line":2497,"column":21}},"633":{"start":{"line":2501,"column":0},"end":{"line":2501,"column":26}},"634":{"start":{"line":2513,"column":0},"end":{"line":2516,"column":2}},"635":{"start":{"line":2515,"column":1},"end":{"line":2515,"column":58}},"636":{"start":{"line":2517,"column":0},"end":{"line":2517,"column":25}},"637":{"start":{"line":2518,"column":0},"end":{"line":2542,"column":3}},"638":{"start":{"line":2536,"column":2},"end":{"line":2537,"column":26}},"639":{"start":{"line":2538,"column":2},"end":{"line":2538,"column":15}},"640":{"start":{"line":2539,"column":8},"end":{"line":2539,"column":34}},"641":{"start":{"line":2540,"column":2},"end":{"line":2540,"column":20}},"642":{"start":{"line":2543,"column":0},"end":{"line":2543,"column":39}},"643":{"start":{"line":2544,"column":0},"end":{"line":2544,"column":26}},"644":{"start":{"line":2556,"column":0},"end":{"line":2559,"column":2}},"645":{"start":{"line":2558,"column":1},"end":{"line":2558,"column":61}},"646":{"start":{"line":2561,"column":0},"end":{"line":2561,"column":31}},"647":{"start":{"line":2563,"column":0},"end":{"line":2587,"column":3}},"648":{"start":{"line":2581,"column":2},"end":{"line":2582,"column":26}},"649":{"start":{"line":2583,"column":2},"end":{"line":2583,"column":15}},"650":{"start":{"line":2584,"column":8},"end":{"line":2584,"column":37}},"651":{"start":{"line":2585,"column":2},"end":{"line":2585,"column":20}},"652":{"start":{"line":2588,"column":0},"end":{"line":2635,"column":3}},"653":{"start":{"line":2598,"column":3},"end":{"line":2598,"column":30}},"654":{"start":{"line":2603,"column":3},"end":{"line":2603,"column":31}},"655":{"start":{"line":2604,"column":3},"end":{"line":2607,"column":4}},"656":{"start":{"line":2606,"column":4},"end":{"line":2606,"column":15}},"657":{"start":{"line":2608,"column":3},"end":{"line":2608,"column":14}},"658":{"start":{"line":2622,"column":3},"end":{"line":2622,"column":31}},"659":{"start":{"line":2627,"column":3},"end":{"line":2627,"column":32}},"660":{"start":{"line":2628,"column":3},"end":{"line":2631,"column":4}},"661":{"start":{"line":2630,"column":4},"end":{"line":2630,"column":15}},"662":{"start":{"line":2632,"column":3},"end":{"line":2632,"column":14}},"663":{"start":{"line":2636,"column":0},"end":{"line":2636,"column":32}},"664":{"start":{"line":2648,"column":0},"end":{"line":2651,"column":2}},"665":{"start":{"line":2650,"column":1},"end":{"line":2650,"column":60}},"666":{"start":{"line":2653,"column":0},"end":{"line":2653,"column":29}},"667":{"start":{"line":2655,"column":0},"end":{"line":2681,"column":3}},"668":{"start":{"line":2673,"column":2},"end":{"line":2673,"column":34}},"669":{"start":{"line":2674,"column":2},"end":{"line":2679,"column":3}},"670":{"start":{"line":2676,"column":12},"end":{"line":2676,"column":25}},"671":{"start":{"line":2677,"column":12},"end":{"line":2677,"column":42}},"672":{"start":{"line":2678,"column":3},"end":{"line":2678,"column":21}},"673":{"start":{"line":2683,"column":0},"end":{"line":2731,"column":3}},"674":{"start":{"line":2693,"column":12},"end":{"line":2693,"column":38}},"675":{"start":{"line":2694,"column":12},"end":{"line":2694,"column":23}},"676":{"start":{"line":2699,"column":3},"end":{"line":2699,"column":33}},"677":{"start":{"line":2712,"column":12},"end":{"line":2712,"column":38}},"678":{"start":{"line":2713,"column":12},"end":{"line":2713,"column":23}},"679":{"start":{"line":2718,"column":3},"end":{"line":2718,"column":33}},"680":{"start":{"line":2732,"column":0},"end":{"line":2732,"column":30}},"681":{"start":{"line":2740,"column":0},"end":{"line":2743,"column":2}},"682":{"start":{"line":2742,"column":1},"end":{"line":2742,"column":62}},"683":{"start":{"line":2744,"column":0},"end":{"line":2744,"column":39}},"684":{"start":{"line":2745,"column":0},"end":{"line":2776,"column":4}},"685":{"start":{"line":2763,"column":8},"end":{"line":2767,"column":40}},"686":{"start":{"line":2768,"column":8},"end":{"line":2768,"column":21}},"687":{"start":{"line":2769,"column":8},"end":{"line":2769,"column":23}},"688":{"start":{"line":2770,"column":8},"end":{"line":2770,"column":29}},"689":{"start":{"line":2771,"column":8},"end":{"line":2771,"column":22}},"690":{"start":{"line":2772,"column":8},"end":{"line":2772,"column":30}},"691":{"start":{"line":2773,"column":8},"end":{"line":2773,"column":54}},"692":{"start":{"line":2774,"column":2},"end":{"line":2774,"column":13}},"693":{"start":{"line":2777,"column":0},"end":{"line":2814,"column":24}},"694":{"start":{"line":2815,"column":0},"end":{"line":2815,"column":34}},"695":{"start":{"line":2827,"column":0},"end":{"line":2830,"column":1}},"696":{"start":{"line":2829,"column":4},"end":{"line":2829,"column":64}},"697":{"start":{"line":2832,"column":0},"end":{"line":2832,"column":37}},"698":{"start":{"line":2834,"column":0},"end":{"line":3083,"column":2}},"699":{"start":{"line":2853,"column":3},"end":{"line":2853,"column":19}},"700":{"start":{"line":2858,"column":3},"end":{"line":2858,"column":25}},"701":{"start":{"line":2859,"column":3},"end":{"line":2862,"column":4}},"702":{"start":{"line":2861,"column":4},"end":{"line":2861,"column":33}},"703":{"start":{"line":2863,"column":3},"end":{"line":2863,"column":14}},"704":{"start":{"line":2879,"column":12},"end":{"line":2879,"column":32}},"705":{"start":{"line":2895,"column":12},"end":{"line":2895,"column":39}},"706":{"start":{"line":2911,"column":12},"end":{"line":2911,"column":30}},"707":{"start":{"line":2924,"column":12},"end":{"line":2927,"column":13}},"708":{"start":{"line":2926,"column":16},"end":{"line":2926,"column":52}},"709":{"start":{"line":2928,"column":12},"end":{"line":2928,"column":23}},"710":{"start":{"line":2941,"column":12},"end":{"line":2944,"column":13}},"711":{"start":{"line":2943,"column":16},"end":{"line":2943,"column":53}},"712":{"start":{"line":2945,"column":12},"end":{"line":2945,"column":23}},"713":{"start":{"line":3018,"column":12},"end":{"line":3018,"column":27}},"714":{"start":{"line":3023,"column":12},"end":{"line":3023,"column":26}},"715":{"start":{"line":3024,"column":12},"end":{"line":3027,"column":13}},"716":{"start":{"line":3026,"column":16},"end":{"line":3026,"column":51}},"717":{"start":{"line":3028,"column":12},"end":{"line":3028,"column":23}},"718":{"start":{"line":3041,"column":12},"end":{"line":3041,"column":27}},"719":{"start":{"line":3046,"column":12},"end":{"line":3046,"column":26}},"720":{"start":{"line":3047,"column":12},"end":{"line":3050,"column":13}},"721":{"start":{"line":3049,"column":16},"end":{"line":3049,"column":50}},"722":{"start":{"line":3051,"column":12},"end":{"line":3051,"column":23}},"723":{"start":{"line":3079,"column":12},"end":{"line":3079,"column":37}},"724":{"start":{"line":3080,"column":12},"end":{"line":3080,"column":23}},"725":{"start":{"line":3085,"column":0},"end":{"line":3668,"column":3}},"726":{"start":{"line":3097,"column":2},"end":{"line":3106,"column":32}},"727":{"start":{"line":3107,"column":2},"end":{"line":3107,"column":53}},"728":{"start":{"line":3108,"column":8},"end":{"line":3125,"column":9}},"729":{"start":{"line":3110,"column":12},"end":{"line":3124,"column":13}},"730":{"start":{"line":3112,"column":16},"end":{"line":3112,"column":35}},"731":{"start":{"line":3114,"column":17},"end":{"line":3124,"column":13}},"732":{"start":{"line":3116,"column":16},"end":{"line":3123,"column":17}},"733":{"start":{"line":3118,"column":20},"end":{"line":3122,"column":21}},"734":{"start":{"line":3120,"column":24},"end":{"line":3120,"column":43}},"735":{"start":{"line":3121,"column":24},"end":{"line":3121,"column":30}},"736":{"start":{"line":3126,"column":8},"end":{"line":3129,"column":9}},"737":{"start":{"line":3128,"column":12},"end":{"line":3128,"column":27}},"738":{"start":{"line":3158,"column":8},"end":{"line":3159,"column":15}},"739":{"start":{"line":3160,"column":8},"end":{"line":3163,"column":9}},"740":{"start":{"line":3162,"column":12},"end":{"line":3162,"column":30}},"741":{"start":{"line":3164,"column":8},"end":{"line":3164,"column":18}},"742":{"start":{"line":3175,"column":8},"end":{"line":3178,"column":40}},"743":{"start":{"line":3179,"column":8},"end":{"line":3179,"column":26}},"744":{"start":{"line":3180,"column":8},"end":{"line":3180,"column":31}},"745":{"start":{"line":3181,"column":2},"end":{"line":3186,"column":10}},"746":{"start":{"line":3187,"column":8},"end":{"line":3187,"column":51}},"747":{"start":{"line":3188,"column":8},"end":{"line":3188,"column":47}},"748":{"start":{"line":3189,"column":8},"end":{"line":3189,"column":49}},"749":{"start":{"line":3190,"column":8},"end":{"line":3190,"column":29}},"750":{"start":{"line":3191,"column":8},"end":{"line":3191,"column":30}},"751":{"start":{"line":3192,"column":8},"end":{"line":3195,"column":9}},"752":{"start":{"line":3194,"column":12},"end":{"line":3194,"column":32}},"753":{"start":{"line":3205,"column":8},"end":{"line":3208,"column":90}},"754":{"start":{"line":3209,"column":8},"end":{"line":3209,"column":49}},"755":{"start":{"line":3210,"column":8},"end":{"line":3210,"column":37}},"756":{"start":{"line":3211,"column":8},"end":{"line":3211,"column":37}},"757":{"start":{"line":3212,"column":8},"end":{"line":3212,"column":41}},"758":{"start":{"line":3213,"column":8},"end":{"line":3213,"column":32}},"759":{"start":{"line":3214,"column":8},"end":{"line":3214,"column":31}},"760":{"start":{"line":3215,"column":8},"end":{"line":3215,"column":29}},"761":{"start":{"line":3216,"column":8},"end":{"line":3216,"column":30}},"762":{"start":{"line":3217,"column":8},"end":{"line":3217,"column":37}},"763":{"start":{"line":3218,"column":8},"end":{"line":3218,"column":20}},"764":{"start":{"line":3228,"column":8},"end":{"line":3228,"column":31}},"765":{"start":{"line":3229,"column":8},"end":{"line":3233,"column":9}},"766":{"start":{"line":3231,"column":12},"end":{"line":3231,"column":45}},"767":{"start":{"line":3232,"column":12},"end":{"line":3232,"column":40}},"768":{"start":{"line":3245,"column":8},"end":{"line":3245,"column":27}},"769":{"start":{"line":3246,"column":8},"end":{"line":3249,"column":9}},"770":{"start":{"line":3248,"column":12},"end":{"line":3248,"column":32}},"771":{"start":{"line":3250,"column":8},"end":{"line":3251,"column":40}},"772":{"start":{"line":3252,"column":8},"end":{"line":3252,"column":33}},"773":{"start":{"line":3253,"column":8},"end":{"line":3253,"column":21}},"774":{"start":{"line":3265,"column":8},"end":{"line":3266,"column":50}},"775":{"start":{"line":3267,"column":8},"end":{"line":3274,"column":9}},"776":{"start":{"line":3269,"column":12},"end":{"line":3269,"column":41}},"777":{"start":{"line":3273,"column":12},"end":{"line":3273,"column":49}},"778":{"start":{"line":3285,"column":8},"end":{"line":3291,"column":9}},"779":{"start":{"line":3287,"column":12},"end":{"line":3290,"column":13}},"780":{"start":{"line":3289,"column":16},"end":{"line":3289,"column":44}},"781":{"start":{"line":3292,"column":8},"end":{"line":3296,"column":9}},"782":{"start":{"line":3294,"column":12},"end":{"line":3294,"column":29}},"783":{"start":{"line":3295,"column":12},"end":{"line":3295,"column":49}},"784":{"start":{"line":3297,"column":8},"end":{"line":3300,"column":9}},"785":{"start":{"line":3299,"column":12},"end":{"line":3299,"column":27}},"786":{"start":{"line":3301,"column":8},"end":{"line":3301,"column":21}},"787":{"start":{"line":3311,"column":8},"end":{"line":3312,"column":14}},"788":{"start":{"line":3313,"column":8},"end":{"line":3319,"column":9}},"789":{"start":{"line":3315,"column":12},"end":{"line":3318,"column":13}},"790":{"start":{"line":3317,"column":16},"end":{"line":3317,"column":36}},"791":{"start":{"line":3320,"column":8},"end":{"line":3320,"column":26}},"792":{"start":{"line":3329,"column":8},"end":{"line":3329,"column":31}},"793":{"start":{"line":3341,"column":8},"end":{"line":3350,"column":9}},"794":{"start":{"line":3343,"column":12},"end":{"line":3343,"column":22}},"795":{"start":{"line":3344,"column":12},"end":{"line":3349,"column":13}},"796":{"start":{"line":3346,"column":16},"end":{"line":3346,"column":40}},"797":{"start":{"line":3347,"column":16},"end":{"line":3347,"column":44}},"798":{"start":{"line":3348,"column":16},"end":{"line":3348,"column":40}},"799":{"start":{"line":3362,"column":8},"end":{"line":3364,"column":52}},"800":{"start":{"line":3365,"column":8},"end":{"line":3374,"column":9}},"801":{"start":{"line":3367,"column":12},"end":{"line":3373,"column":13}},"802":{"start":{"line":3369,"column":16},"end":{"line":3372,"column":17}},"803":{"start":{"line":3371,"column":20},"end":{"line":3371,"column":50}},"804":{"start":{"line":3375,"column":8},"end":{"line":3378,"column":9}},"805":{"start":{"line":3377,"column":12},"end":{"line":3377,"column":53}},"806":{"start":{"line":3391,"column":8},"end":{"line":3391,"column":42}},"807":{"start":{"line":3392,"column":8},"end":{"line":3395,"column":9}},"808":{"start":{"line":3394,"column":12},"end":{"line":3394,"column":25}},"809":{"start":{"line":3396,"column":8},"end":{"line":3396,"column":19}},"810":{"start":{"line":3423,"column":8},"end":{"line":3423,"column":37}},"811":{"start":{"line":3424,"column":8},"end":{"line":3424,"column":21}},"812":{"start":{"line":3435,"column":8},"end":{"line":3435,"column":44}},"813":{"start":{"line":3436,"column":8},"end":{"line":3436,"column":36}},"814":{"start":{"line":3437,"column":8},"end":{"line":3437,"column":17}},"815":{"start":{"line":3438,"column":8},"end":{"line":3438,"column":39}},"816":{"start":{"line":3450,"column":8},"end":{"line":3453,"column":9}},"817":{"start":{"line":3452,"column":12},"end":{"line":3452,"column":59}},"818":{"start":{"line":3454,"column":8},"end":{"line":3454,"column":26}},"819":{"start":{"line":3465,"column":8},"end":{"line":3477,"column":36}},"820":{"start":{"line":3478,"column":8},"end":{"line":3520,"column":9}},"821":{"start":{"line":3480,"column":12},"end":{"line":3519,"column":13}},"822":{"start":{"line":3482,"column":16},"end":{"line":3482,"column":52}},"823":{"start":{"line":3483,"column":16},"end":{"line":3483,"column":53}},"824":{"start":{"line":3484,"column":16},"end":{"line":3484,"column":70}},"825":{"start":{"line":3485,"column":16},"end":{"line":3485,"column":71}},"826":{"start":{"line":3486,"column":16},"end":{"line":3486,"column":40}},"827":{"start":{"line":3487,"column":16},"end":{"line":3507,"column":17}},"828":{"start":{"line":3489,"column":20},"end":{"line":3489,"column":44}},"829":{"start":{"line":3490,"column":20},"end":{"line":3490,"column":45}},"830":{"start":{"line":3494,"column":20},"end":{"line":3506,"column":21}},"831":{"start":{"line":3496,"column":24},"end":{"line":3505,"column":25}},"832":{"start":{"line":3498,"column":28},"end":{"line":3498,"column":61}},"833":{"start":{"line":3499,"column":28},"end":{"line":3499,"column":145}},"834":{"start":{"line":3503,"column":28},"end":{"line":3503,"column":62}},"835":{"start":{"line":3504,"column":28},"end":{"line":3504,"column":148}},"836":{"start":{"line":3508,"column":16},"end":{"line":3508,"column":65}},"837":{"start":{"line":3509,"column":16},"end":{"line":3509,"column":62}},"838":{"start":{"line":3510,"column":16},"end":{"line":3510,"column":61}},"839":{"start":{"line":3511,"column":16},"end":{"line":3511,"column":57}},"840":{"start":{"line":3512,"column":16},"end":{"line":3512,"column":45}},"841":{"start":{"line":3513,"column":16},"end":{"line":3513,"column":70}},"842":{"start":{"line":3517,"column":16},"end":{"line":3517,"column":45}},"843":{"start":{"line":3518,"column":16},"end":{"line":3518,"column":47}},"844":{"start":{"line":3521,"column":8},"end":{"line":3525,"column":9}},"845":{"start":{"line":3523,"column":12},"end":{"line":3523,"column":47}},"846":{"start":{"line":3524,"column":12},"end":{"line":3524,"column":30}},"847":{"start":{"line":3540,"column":8},"end":{"line":3541,"column":18}},"848":{"start":{"line":3542,"column":8},"end":{"line":3553,"column":9}},"849":{"start":{"line":3545,"column":16},"end":{"line":3545,"column":36}},"850":{"start":{"line":3546,"column":12},"end":{"line":3546,"column":18}},"851":{"start":{"line":3548,"column":16},"end":{"line":3548,"column":30}},"852":{"start":{"line":3549,"column":12},"end":{"line":3549,"column":18}},"853":{"start":{"line":3551,"column":16},"end":{"line":3551,"column":26}},"854":{"start":{"line":3552,"column":12},"end":{"line":3552,"column":18}},"855":{"start":{"line":3554,"column":8},"end":{"line":3554,"column":21}},"856":{"start":{"line":3567,"column":8},"end":{"line":3568,"column":16}},"857":{"start":{"line":3569,"column":8},"end":{"line":3569,"column":46}},"858":{"start":{"line":3570,"column":8},"end":{"line":3579,"column":9}},"859":{"start":{"line":3572,"column":12},"end":{"line":3572,"column":41}},"860":{"start":{"line":3573,"column":12},"end":{"line":3573,"column":38}},"861":{"start":{"line":3574,"column":12},"end":{"line":3574,"column":75}},"862":{"start":{"line":3575,"column":12},"end":{"line":3575,"column":70}},"863":{"start":{"line":3576,"column":12},"end":{"line":3576,"column":80}},"864":{"start":{"line":3577,"column":12},"end":{"line":3577,"column":85}},"865":{"start":{"line":3578,"column":12},"end":{"line":3578,"column":38}},"866":{"start":{"line":3580,"column":8},"end":{"line":3583,"column":9}},"867":{"start":{"line":3582,"column":12},"end":{"line":3582,"column":27}},"868":{"start":{"line":3595,"column":8},"end":{"line":3599,"column":21}},"869":{"start":{"line":3600,"column":8},"end":{"line":3611,"column":9}},"870":{"start":{"line":3602,"column":12},"end":{"line":3610,"column":13}},"871":{"start":{"line":3604,"column":16},"end":{"line":3604,"column":33}},"872":{"start":{"line":3605,"column":16},"end":{"line":3605,"column":43}},"873":{"start":{"line":3606,"column":16},"end":{"line":3606,"column":101}},"874":{"start":{"line":3607,"column":16},"end":{"line":3607,"column":96}},"875":{"start":{"line":3608,"column":16},"end":{"line":3608,"column":106}},"876":{"start":{"line":3609,"column":16},"end":{"line":3609,"column":111}},"877":{"start":{"line":3612,"column":8},"end":{"line":3612,"column":60}},"878":{"start":{"line":3613,"column":8},"end":{"line":3613,"column":57}},"879":{"start":{"line":3614,"column":8},"end":{"line":3614,"column":63}},"880":{"start":{"line":3615,"column":8},"end":{"line":3615,"column":66}},"881":{"start":{"line":3616,"column":8},"end":{"line":3616,"column":34}},"882":{"start":{"line":3617,"column":8},"end":{"line":3617,"column":19}},"883":{"start":{"line":3629,"column":8},"end":{"line":3629,"column":43}},"884":{"start":{"line":3630,"column":8},"end":{"line":3633,"column":9}},"885":{"start":{"line":3632,"column":12},"end":{"line":3632,"column":38}},"886":{"start":{"line":3634,"column":8},"end":{"line":3637,"column":9}},"887":{"start":{"line":3636,"column":12},"end":{"line":3636,"column":43}},"888":{"start":{"line":3649,"column":8},"end":{"line":3650,"column":23}},"889":{"start":{"line":3651,"column":8},"end":{"line":3654,"column":9}},"890":{"start":{"line":3653,"column":12},"end":{"line":3653,"column":38}},"891":{"start":{"line":3655,"column":8},"end":{"line":3666,"column":9}},"892":{"start":{"line":3657,"column":12},"end":{"line":3657,"column":48}},"893":{"start":{"line":3658,"column":12},"end":{"line":3665,"column":13}},"894":{"start":{"line":3660,"column":16},"end":{"line":3660,"column":60}},"895":{"start":{"line":3664,"column":16},"end":{"line":3664,"column":47}},"896":{"start":{"line":3670,"column":0},"end":{"line":3670,"column":32}}},"branchMap":{"1":{"line":89,"type":"cond-expr","locations":[{"start":{"line":89,"column":40},"end":{"line":89,"column":45}},{"start":{"line":89,"column":48},"end":{"line":89,"column":49}}]},"2":{"line":90,"type":"if","locations":[{"start":{"line":90,"column":8},"end":{"line":90,"column":8}},{"start":{"line":90,"column":8},"end":{"line":90,"column":8}}]},"3":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":8},"end":{"line":94,"column":8}},{"start":{"line":94,"column":8},"end":{"line":94,"column":8}}]},"4":{"line":124,"type":"if","locations":[{"start":{"line":124,"column":8},"end":{"line":124,"column":8}},{"start":{"line":124,"column":8},"end":{"line":124,"column":8}}]},"5":{"line":126,"type":"if","locations":[{"start":{"line":126,"column":12},"end":{"line":126,"column":12}},{"start":{"line":126,"column":12},"end":{"line":126,"column":12}}]},"6":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":12},"end":{"line":131,"column":12}},{"start":{"line":131,"column":12},"end":{"line":131,"column":12}}]},"7":{"line":163,"type":"binary-expr","locations":[{"start":{"line":163,"column":16},"end":{"line":163,"column":35}},{"start":{"line":163,"column":39},"end":{"line":163,"column":40}}]},"8":{"line":164,"type":"binary-expr","locations":[{"start":{"line":164,"column":16},"end":{"line":164,"column":35}},{"start":{"line":164,"column":39},"end":{"line":164,"column":40}}]},"9":{"line":242,"type":"cond-expr","locations":[{"start":{"line":242,"column":54},"end":{"line":242,"column":72}},{"start":{"line":242,"column":75},"end":{"line":242,"column":76}}]},"10":{"line":242,"type":"binary-expr","locations":[{"start":{"line":242,"column":17},"end":{"line":242,"column":29}},{"start":{"line":242,"column":33},"end":{"line":242,"column":51}}]},"11":{"line":243,"type":"cond-expr","locations":[{"start":{"line":243,"column":35},"end":{"line":243,"column":61}},{"start":{"line":243,"column":64},"end":{"line":243,"column":65}}]},"12":{"line":244,"type":"cond-expr","locations":[{"start":{"line":244,"column":35},"end":{"line":244,"column":61}},{"start":{"line":244,"column":64},"end":{"line":244,"column":65}}]},"13":{"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}}]},"14":{"line":250,"type":"if","locations":[{"start":{"line":250,"column":8},"end":{"line":250,"column":8}},{"start":{"line":250,"column":8},"end":{"line":250,"column":8}}]},"15":{"line":250,"type":"binary-expr","locations":[{"start":{"line":250,"column":12},"end":{"line":250,"column":38}},{"start":{"line":250,"column":42},"end":{"line":250,"column":68}}]},"16":{"line":316,"type":"cond-expr","locations":[{"start":{"line":316,"column":54},"end":{"line":316,"column":72}},{"start":{"line":316,"column":75},"end":{"line":316,"column":76}}]},"17":{"line":316,"type":"binary-expr","locations":[{"start":{"line":316,"column":17},"end":{"line":316,"column":29}},{"start":{"line":316,"column":33},"end":{"line":316,"column":51}}]},"18":{"line":317,"type":"cond-expr","locations":[{"start":{"line":317,"column":35},"end":{"line":317,"column":61}},{"start":{"line":317,"column":64},"end":{"line":317,"column":65}}]},"19":{"line":318,"type":"cond-expr","locations":[{"start":{"line":318,"column":35},"end":{"line":318,"column":61}},{"start":{"line":318,"column":64},"end":{"line":318,"column":65}}]},"20":{"line":387,"type":"cond-expr","locations":[{"start":{"line":387,"column":35},"end":{"line":387,"column":61}},{"start":{"line":387,"column":64},"end":{"line":387,"column":65}}]},"21":{"line":388,"type":"cond-expr","locations":[{"start":{"line":388,"column":35},"end":{"line":388,"column":61}},{"start":{"line":388,"column":64},"end":{"line":388,"column":65}}]},"22":{"line":465,"type":"cond-expr","locations":[{"start":{"line":465,"column":35},"end":{"line":465,"column":61}},{"start":{"line":465,"column":64},"end":{"line":465,"column":65}}]},"23":{"line":466,"type":"cond-expr","locations":[{"start":{"line":466,"column":35},"end":{"line":466,"column":61}},{"start":{"line":466,"column":64},"end":{"line":466,"column":65}}]},"24":{"line":501,"type":"cond-expr","locations":[{"start":{"line":501,"column":54},"end":{"line":501,"column":72}},{"start":{"line":501,"column":75},"end":{"line":501,"column":76}}]},"25":{"line":501,"type":"binary-expr","locations":[{"start":{"line":501,"column":17},"end":{"line":501,"column":29}},{"start":{"line":501,"column":33},"end":{"line":501,"column":51}}]},"26":{"line":557,"type":"cond-expr","locations":[{"start":{"line":557,"column":54},"end":{"line":557,"column":72}},{"start":{"line":557,"column":75},"end":{"line":557,"column":76}}]},"27":{"line":557,"type":"binary-expr","locations":[{"start":{"line":557,"column":17},"end":{"line":557,"column":29}},{"start":{"line":557,"column":33},"end":{"line":557,"column":51}}]},"28":{"line":639,"type":"cond-expr","locations":[{"start":{"line":639,"column":54},"end":{"line":639,"column":72}},{"start":{"line":639,"column":75},"end":{"line":639,"column":76}}]},"29":{"line":639,"type":"binary-expr","locations":[{"start":{"line":639,"column":17},"end":{"line":639,"column":29}},{"start":{"line":639,"column":33},"end":{"line":639,"column":51}}]},"30":{"line":652,"type":"binary-expr","locations":[{"start":{"line":652,"column":18},"end":{"line":652,"column":25}},{"start":{"line":652,"column":29},"end":{"line":652,"column":35}}]},"31":{"line":658,"type":"binary-expr","locations":[{"start":{"line":658,"column":18},"end":{"line":658,"column":25}},{"start":{"line":658,"column":29},"end":{"line":658,"column":35}}]},"32":{"line":661,"type":"if","locations":[{"start":{"line":661,"column":8},"end":{"line":661,"column":8}},{"start":{"line":661,"column":8},"end":{"line":661,"column":8}}]},"33":{"line":681,"type":"if","locations":[{"start":{"line":681,"column":8},"end":{"line":681,"column":8}},{"start":{"line":681,"column":8},"end":{"line":681,"column":8}}]},"34":{"line":738,"type":"if","locations":[{"start":{"line":738,"column":8},"end":{"line":738,"column":8}},{"start":{"line":738,"column":8},"end":{"line":738,"column":8}}]},"35":{"line":767,"type":"binary-expr","locations":[{"start":{"line":767,"column":16},"end":{"line":767,"column":29}},{"start":{"line":767,"column":33},"end":{"line":767,"column":34}}]},"36":{"line":774,"type":"if","locations":[{"start":{"line":774,"column":8},"end":{"line":774,"column":8}},{"start":{"line":774,"column":8},"end":{"line":774,"column":8}}]},"37":{"line":776,"type":"if","locations":[{"start":{"line":776,"column":12},"end":{"line":776,"column":12}},{"start":{"line":776,"column":12},"end":{"line":776,"column":12}}]},"38":{"line":791,"type":"if","locations":[{"start":{"line":791,"column":12},"end":{"line":791,"column":12}},{"start":{"line":791,"column":12},"end":{"line":791,"column":12}}]},"39":{"line":791,"type":"binary-expr","locations":[{"start":{"line":791,"column":15},"end":{"line":791,"column":21}},{"start":{"line":791,"column":25},"end":{"line":791,"column":32}}]},"40":{"line":811,"type":"if","locations":[{"start":{"line":811,"column":12},"end":{"line":811,"column":12}},{"start":{"line":811,"column":12},"end":{"line":811,"column":12}}]},"41":{"line":820,"type":"binary-expr","locations":[{"start":{"line":820,"column":21},"end":{"line":820,"column":32}},{"start":{"line":820,"column":36},"end":{"line":820,"column":47}}]},"42":{"line":863,"type":"if","locations":[{"start":{"line":863,"column":8},"end":{"line":863,"column":8}},{"start":{"line":863,"column":8},"end":{"line":863,"column":8}}]},"43":{"line":867,"type":"if","locations":[{"start":{"line":867,"column":12},"end":{"line":867,"column":12}},{"start":{"line":867,"column":12},"end":{"line":867,"column":12}}]},"44":{"line":873,"type":"cond-expr","locations":[{"start":{"line":873,"column":26},"end":{"line":873,"column":40}},{"start":{"line":873,"column":43},"end":{"line":873,"column":56}}]},"45":{"line":874,"type":"cond-expr","locations":[{"start":{"line":874,"column":26},"end":{"line":874,"column":40}},{"start":{"line":874,"column":43},"end":{"line":874,"column":56}}]},"46":{"line":882,"type":"if","locations":[{"start":{"line":882,"column":8},"end":{"line":882,"column":8}},{"start":{"line":882,"column":8},"end":{"line":882,"column":8}}]},"47":{"line":898,"type":"if","locations":[{"start":{"line":898,"column":12},"end":{"line":898,"column":12}},{"start":{"line":898,"column":12},"end":{"line":898,"column":12}}]},"48":{"line":907,"type":"binary-expr","locations":[{"start":{"line":907,"column":21},"end":{"line":907,"column":32}},{"start":{"line":907,"column":36},"end":{"line":907,"column":47}}]},"49":{"line":909,"type":"if","locations":[{"start":{"line":909,"column":12},"end":{"line":909,"column":12}},{"start":{"line":909,"column":12},"end":{"line":909,"column":12}}]},"50":{"line":1006,"type":"cond-expr","locations":[{"start":{"line":1006,"column":54},"end":{"line":1006,"column":72}},{"start":{"line":1006,"column":75},"end":{"line":1006,"column":76}}]},"51":{"line":1006,"type":"binary-expr","locations":[{"start":{"line":1006,"column":17},"end":{"line":1006,"column":29}},{"start":{"line":1006,"column":33},"end":{"line":1006,"column":51}}]},"52":{"line":1011,"type":"cond-expr","locations":[{"start":{"line":1011,"column":33},"end":{"line":1011,"column":38}},{"start":{"line":1011,"column":41},"end":{"line":1011,"column":62}}]},"53":{"line":1012,"type":"cond-expr","locations":[{"start":{"line":1012,"column":35},"end":{"line":1012,"column":40}},{"start":{"line":1012,"column":43},"end":{"line":1012,"column":65}}]},"54":{"line":1013,"type":"cond-expr","locations":[{"start":{"line":1013,"column":31},"end":{"line":1013,"column":36}},{"start":{"line":1013,"column":39},"end":{"line":1013,"column":59}}]},"55":{"line":1014,"type":"cond-expr","locations":[{"start":{"line":1014,"column":37},"end":{"line":1014,"column":42}},{"start":{"line":1014,"column":45},"end":{"line":1014,"column":68}}]},"56":{"line":1033,"type":"if","locations":[{"start":{"line":1033,"column":8},"end":{"line":1033,"column":8}},{"start":{"line":1033,"column":8},"end":{"line":1033,"column":8}}]},"57":{"line":1036,"type":"if","locations":[{"start":{"line":1036,"column":8},"end":{"line":1036,"column":8}},{"start":{"line":1036,"column":8},"end":{"line":1036,"column":8}}]},"58":{"line":1040,"type":"if","locations":[{"start":{"line":1040,"column":8},"end":{"line":1040,"column":8}},{"start":{"line":1040,"column":8},"end":{"line":1040,"column":8}}]},"59":{"line":1044,"type":"if","locations":[{"start":{"line":1044,"column":8},"end":{"line":1044,"column":8}},{"start":{"line":1044,"column":8},"end":{"line":1044,"column":8}}]},"60":{"line":1101,"type":"if","locations":[{"start":{"line":1101,"column":8},"end":{"line":1101,"column":8}},{"start":{"line":1101,"column":8},"end":{"line":1101,"column":8}}]},"61":{"line":1105,"type":"if","locations":[{"start":{"line":1105,"column":8},"end":{"line":1105,"column":8}},{"start":{"line":1105,"column":8},"end":{"line":1105,"column":8}}]},"62":{"line":1124,"type":"if","locations":[{"start":{"line":1124,"column":8},"end":{"line":1124,"column":8}},{"start":{"line":1124,"column":8},"end":{"line":1124,"column":8}}]},"63":{"line":1321,"type":"if","locations":[{"start":{"line":1321,"column":8},"end":{"line":1321,"column":8}},{"start":{"line":1321,"column":8},"end":{"line":1321,"column":8}}]},"64":{"line":1350,"type":"if","locations":[{"start":{"line":1350,"column":2},"end":{"line":1350,"column":2}},{"start":{"line":1350,"column":2},"end":{"line":1350,"column":2}}]},"65":{"line":1372,"type":"if","locations":[{"start":{"line":1372,"column":8},"end":{"line":1372,"column":8}},{"start":{"line":1372,"column":8},"end":{"line":1372,"column":8}}]},"66":{"line":1377,"type":"binary-expr","locations":[{"start":{"line":1377,"column":23},"end":{"line":1377,"column":38}},{"start":{"line":1377,"column":42},"end":{"line":1377,"column":49}}]},"67":{"line":1378,"type":"binary-expr","locations":[{"start":{"line":1378,"column":22},"end":{"line":1378,"column":36}},{"start":{"line":1378,"column":40},"end":{"line":1378,"column":46}}]},"68":{"line":1381,"type":"cond-expr","locations":[{"start":{"line":1381,"column":97},"end":{"line":1381,"column":106}},{"start":{"line":1381,"column":109},"end":{"line":1381,"column":113}}]},"69":{"line":1381,"type":"binary-expr","locations":[{"start":{"line":1381,"column":31},"end":{"line":1381,"column":40}},{"start":{"line":1381,"column":44},"end":{"line":1381,"column":69}},{"start":{"line":1381,"column":73},"end":{"line":1381,"column":93}}]},"70":{"line":1384,"type":"if","locations":[{"start":{"line":1384,"column":12},"end":{"line":1384,"column":12}},{"start":{"line":1384,"column":12},"end":{"line":1384,"column":12}}]},"71":{"line":1384,"type":"binary-expr","locations":[{"start":{"line":1384,"column":16},"end":{"line":1384,"column":33}},{"start":{"line":1384,"column":37},"end":{"line":1384,"column":47}}]},"72":{"line":1392,"type":"if","locations":[{"start":{"line":1392,"column":12},"end":{"line":1392,"column":12}},{"start":{"line":1392,"column":12},"end":{"line":1392,"column":12}}]},"73":{"line":1400,"type":"if","locations":[{"start":{"line":1400,"column":12},"end":{"line":1400,"column":12}},{"start":{"line":1400,"column":12},"end":{"line":1400,"column":12}}]},"74":{"line":1400,"type":"binary-expr","locations":[{"start":{"line":1400,"column":15},"end":{"line":1400,"column":35}},{"start":{"line":1400,"column":39},"end":{"line":1400,"column":59}}]},"75":{"line":1407,"type":"if","locations":[{"start":{"line":1407,"column":16},"end":{"line":1407,"column":16}},{"start":{"line":1407,"column":16},"end":{"line":1407,"column":16}}]},"76":{"line":1433,"type":"if","locations":[{"start":{"line":1433,"column":2},"end":{"line":1433,"column":2}},{"start":{"line":1433,"column":2},"end":{"line":1433,"column":2}}]},"77":{"line":1452,"type":"if","locations":[{"start":{"line":1452,"column":8},"end":{"line":1452,"column":8}},{"start":{"line":1452,"column":8},"end":{"line":1452,"column":8}}]},"78":{"line":1456,"type":"if","locations":[{"start":{"line":1456,"column":12},"end":{"line":1456,"column":12}},{"start":{"line":1456,"column":12},"end":{"line":1456,"column":12}}]},"79":{"line":1456,"type":"binary-expr","locations":[{"start":{"line":1456,"column":15},"end":{"line":1456,"column":32}},{"start":{"line":1456,"column":36},"end":{"line":1456,"column":53}}]},"80":{"line":1460,"type":"if","locations":[{"start":{"line":1460,"column":17},"end":{"line":1460,"column":17}},{"start":{"line":1460,"column":17},"end":{"line":1460,"column":17}}]},"81":{"line":1463,"type":"if","locations":[{"start":{"line":1463,"column":16},"end":{"line":1463,"column":16}},{"start":{"line":1463,"column":16},"end":{"line":1463,"column":16}}]},"82":{"line":1607,"type":"if","locations":[{"start":{"line":1607,"column":8},"end":{"line":1607,"column":8}},{"start":{"line":1607,"column":8},"end":{"line":1607,"column":8}}]},"83":{"line":1629,"type":"if","locations":[{"start":{"line":1629,"column":8},"end":{"line":1629,"column":8}},{"start":{"line":1629,"column":8},"end":{"line":1629,"column":8}}]},"84":{"line":1629,"type":"binary-expr","locations":[{"start":{"line":1629,"column":11},"end":{"line":1629,"column":27}},{"start":{"line":1629,"column":31},"end":{"line":1629,"column":58}}]},"85":{"line":1634,"type":"if","locations":[{"start":{"line":1634,"column":16},"end":{"line":1634,"column":16}},{"start":{"line":1634,"column":16},"end":{"line":1634,"column":16}}]},"86":{"line":1645,"type":"if","locations":[{"start":{"line":1645,"column":8},"end":{"line":1645,"column":8}},{"start":{"line":1645,"column":8},"end":{"line":1645,"column":8}}]},"87":{"line":1687,"type":"if","locations":[{"start":{"line":1687,"column":2},"end":{"line":1687,"column":2}},{"start":{"line":1687,"column":2},"end":{"line":1687,"column":2}}]},"88":{"line":1704,"type":"if","locations":[{"start":{"line":1704,"column":8},"end":{"line":1704,"column":8}},{"start":{"line":1704,"column":8},"end":{"line":1704,"column":8}}]},"89":{"line":1707,"type":"if","locations":[{"start":{"line":1707,"column":3},"end":{"line":1707,"column":3}},{"start":{"line":1707,"column":3},"end":{"line":1707,"column":3}}]},"90":{"line":1707,"type":"binary-expr","locations":[{"start":{"line":1707,"column":6},"end":{"line":1707,"column":10}},{"start":{"line":1707,"column":14},"end":{"line":1707,"column":21}}]},"91":{"line":1715,"type":"cond-expr","locations":[{"start":{"line":1715,"column":92},"end":{"line":1715,"column":103}},{"start":{"line":1715,"column":106},"end":{"line":1715,"column":107}}]},"92":{"line":1715,"type":"binary-expr","locations":[{"start":{"line":1715,"column":27},"end":{"line":1715,"column":57}},{"start":{"line":1715,"column":61},"end":{"line":1715,"column":88}}]},"93":{"line":1718,"type":"if","locations":[{"start":{"line":1718,"column":5},"end":{"line":1718,"column":5}},{"start":{"line":1718,"column":5},"end":{"line":1718,"column":5}}]},"94":{"line":1734,"type":"if","locations":[{"start":{"line":1734,"column":4},"end":{"line":1734,"column":4}},{"start":{"line":1734,"column":4},"end":{"line":1734,"column":4}}]},"95":{"line":1734,"type":"binary-expr","locations":[{"start":{"line":1734,"column":7},"end":{"line":1734,"column":11}},{"start":{"line":1734,"column":15},"end":{"line":1734,"column":30}}]},"96":{"line":1737,"type":"if","locations":[{"start":{"line":1737,"column":5},"end":{"line":1737,"column":5}},{"start":{"line":1737,"column":5},"end":{"line":1737,"column":5}}]},"97":{"line":1739,"type":"if","locations":[{"start":{"line":1739,"column":24},"end":{"line":1739,"column":24}},{"start":{"line":1739,"column":24},"end":{"line":1739,"column":24}}]},"98":{"line":1744,"type":"if","locations":[{"start":{"line":1744,"column":11},"end":{"line":1744,"column":11}},{"start":{"line":1744,"column":11},"end":{"line":1744,"column":11}}]},"99":{"line":1744,"type":"binary-expr","locations":[{"start":{"line":1744,"column":14},"end":{"line":1744,"column":20}},{"start":{"line":1744,"column":24},"end":{"line":1744,"column":43}},{"start":{"line":1744,"column":47},"end":{"line":1744,"column":62}}]},"100":{"line":1774,"type":"if","locations":[{"start":{"line":1774,"column":8},"end":{"line":1774,"column":8}},{"start":{"line":1774,"column":8},"end":{"line":1774,"column":8}}]},"101":{"line":1776,"type":"if","locations":[{"start":{"line":1776,"column":12},"end":{"line":1776,"column":12}},{"start":{"line":1776,"column":12},"end":{"line":1776,"column":12}}]},"102":{"line":1780,"type":"if","locations":[{"start":{"line":1780,"column":17},"end":{"line":1780,"column":17}},{"start":{"line":1780,"column":17},"end":{"line":1780,"column":17}}]},"103":{"line":1792,"type":"if","locations":[{"start":{"line":1792,"column":8},"end":{"line":1792,"column":8}},{"start":{"line":1792,"column":8},"end":{"line":1792,"column":8}}]},"104":{"line":1793,"type":"if","locations":[{"start":{"line":1793,"column":12},"end":{"line":1793,"column":12}},{"start":{"line":1793,"column":12},"end":{"line":1793,"column":12}}]},"105":{"line":1799,"type":"if","locations":[{"start":{"line":1799,"column":12},"end":{"line":1799,"column":12}},{"start":{"line":1799,"column":12},"end":{"line":1799,"column":12}}]},"106":{"line":1846,"type":"if","locations":[{"start":{"line":1846,"column":2},"end":{"line":1846,"column":2}},{"start":{"line":1846,"column":2},"end":{"line":1846,"column":2}}]},"107":{"line":1850,"type":"if","locations":[{"start":{"line":1850,"column":7},"end":{"line":1850,"column":7}},{"start":{"line":1850,"column":7},"end":{"line":1850,"column":7}}]},"108":{"line":1874,"type":"if","locations":[{"start":{"line":1874,"column":8},"end":{"line":1874,"column":8}},{"start":{"line":1874,"column":8},"end":{"line":1874,"column":8}}]},"109":{"line":1906,"type":"if","locations":[{"start":{"line":1906,"column":8},"end":{"line":1906,"column":8}},{"start":{"line":1906,"column":8},"end":{"line":1906,"column":8}}]},"110":{"line":1911,"type":"cond-expr","locations":[{"start":{"line":1911,"column":42},"end":{"line":1911,"column":52}},{"start":{"line":1911,"column":55},"end":{"line":1911,"column":56}}]},"111":{"line":1912,"type":"cond-expr","locations":[{"start":{"line":1912,"column":42},"end":{"line":1912,"column":52}},{"start":{"line":1912,"column":55},"end":{"line":1912,"column":56}}]},"112":{"line":1918,"type":"if","locations":[{"start":{"line":1918,"column":12},"end":{"line":1918,"column":12}},{"start":{"line":1918,"column":12},"end":{"line":1918,"column":12}}]},"113":{"line":1936,"type":"if","locations":[{"start":{"line":1936,"column":8},"end":{"line":1936,"column":8}},{"start":{"line":1936,"column":8},"end":{"line":1936,"column":8}}]},"114":{"line":1950,"type":"if","locations":[{"start":{"line":1950,"column":8},"end":{"line":1950,"column":8}},{"start":{"line":1950,"column":8},"end":{"line":1950,"column":8}}]},"115":{"line":1973,"type":"if","locations":[{"start":{"line":1973,"column":8},"end":{"line":1973,"column":8}},{"start":{"line":1973,"column":8},"end":{"line":1973,"column":8}}]},"116":{"line":1976,"type":"binary-expr","locations":[{"start":{"line":1976,"column":18},"end":{"line":1976,"column":37}},{"start":{"line":1976,"column":41},"end":{"line":1976,"column":42}}]},"117":{"line":1983,"type":"if","locations":[{"start":{"line":1983,"column":16},"end":{"line":1983,"column":16}},{"start":{"line":1983,"column":16},"end":{"line":1983,"column":16}}]},"118":{"line":1985,"type":"if","locations":[{"start":{"line":1985,"column":20},"end":{"line":1985,"column":20}},{"start":{"line":1985,"column":20},"end":{"line":1985,"column":20}}]},"119":{"line":2007,"type":"if","locations":[{"start":{"line":2007,"column":8},"end":{"line":2007,"column":8}},{"start":{"line":2007,"column":8},"end":{"line":2007,"column":8}}]},"120":{"line":2025,"type":"if","locations":[{"start":{"line":2025,"column":8},"end":{"line":2025,"column":8}},{"start":{"line":2025,"column":8},"end":{"line":2025,"column":8}}]},"121":{"line":2125,"type":"if","locations":[{"start":{"line":2125,"column":3},"end":{"line":2125,"column":3}},{"start":{"line":2125,"column":3},"end":{"line":2125,"column":3}}]},"122":{"line":2184,"type":"cond-expr","locations":[{"start":{"line":2184,"column":35},"end":{"line":2184,"column":44}},{"start":{"line":2184,"column":47},"end":{"line":2184,"column":55}}]},"123":{"line":2185,"type":"if","locations":[{"start":{"line":2185,"column":3},"end":{"line":2185,"column":3}},{"start":{"line":2185,"column":3},"end":{"line":2185,"column":3}}]},"124":{"line":2248,"type":"binary-expr","locations":[{"start":{"line":2248,"column":11},"end":{"line":2248,"column":27}},{"start":{"line":2248,"column":31},"end":{"line":2248,"column":53}}]},"125":{"line":2249,"type":"cond-expr","locations":[{"start":{"line":2249,"column":18},"end":{"line":2249,"column":36}},{"start":{"line":2249,"column":39},"end":{"line":2249,"column":43}}]},"126":{"line":2250,"type":"if","locations":[{"start":{"line":2250,"column":3},"end":{"line":2250,"column":3}},{"start":{"line":2250,"column":3},"end":{"line":2250,"column":3}}]},"127":{"line":2250,"type":"binary-expr","locations":[{"start":{"line":2250,"column":6},"end":{"line":2250,"column":10}},{"start":{"line":2250,"column":14},"end":{"line":2250,"column":24}}]},"128":{"line":2252,"type":"if","locations":[{"start":{"line":2252,"column":4},"end":{"line":2252,"column":4}},{"start":{"line":2252,"column":4},"end":{"line":2252,"column":4}}]},"129":{"line":2252,"type":"binary-expr","locations":[{"start":{"line":2252,"column":7},"end":{"line":2252,"column":31}},{"start":{"line":2252,"column":35},"end":{"line":2252,"column":56}}]},"130":{"line":2295,"type":"binary-expr","locations":[{"start":{"line":2295,"column":14},"end":{"line":2295,"column":32}},{"start":{"line":2295,"column":36},"end":{"line":2295,"column":60}}]},"131":{"line":2297,"type":"if","locations":[{"start":{"line":2297,"column":12},"end":{"line":2297,"column":12}},{"start":{"line":2297,"column":12},"end":{"line":2297,"column":12}}]},"132":{"line":2297,"type":"binary-expr","locations":[{"start":{"line":2297,"column":15},"end":{"line":2297,"column":18}},{"start":{"line":2297,"column":22},"end":{"line":2297,"column":50}}]},"133":{"line":2300,"type":"if","locations":[{"start":{"line":2300,"column":16},"end":{"line":2300,"column":16}},{"start":{"line":2300,"column":16},"end":{"line":2300,"column":16}}]},"134":{"line":2305,"type":"cond-expr","locations":[{"start":{"line":2305,"column":17},"end":{"line":2305,"column":35}},{"start":{"line":2305,"column":38},"end":{"line":2305,"column":42}}]},"135":{"line":2338,"type":"if","locations":[{"start":{"line":2338,"column":12},"end":{"line":2338,"column":12}},{"start":{"line":2338,"column":12},"end":{"line":2338,"column":12}}]},"136":{"line":2454,"type":"cond-expr","locations":[{"start":{"line":2454,"column":54},"end":{"line":2454,"column":76}},{"start":{"line":2454,"column":80},"end":{"line":2454,"column":81}}]},"137":{"line":2454,"type":"binary-expr","locations":[{"start":{"line":2454,"column":16},"end":{"line":2454,"column":28}},{"start":{"line":2454,"column":32},"end":{"line":2454,"column":50}}]},"138":{"line":2474,"type":"cond-expr","locations":[{"start":{"line":2474,"column":54},"end":{"line":2474,"column":76}},{"start":{"line":2474,"column":80},"end":{"line":2474,"column":81}}]},"139":{"line":2474,"type":"binary-expr","locations":[{"start":{"line":2474,"column":16},"end":{"line":2474,"column":28}},{"start":{"line":2474,"column":32},"end":{"line":2474,"column":50}}]},"140":{"line":2604,"type":"if","locations":[{"start":{"line":2604,"column":3},"end":{"line":2604,"column":3}},{"start":{"line":2604,"column":3},"end":{"line":2604,"column":3}}]},"141":{"line":2628,"type":"if","locations":[{"start":{"line":2628,"column":3},"end":{"line":2628,"column":3}},{"start":{"line":2628,"column":3},"end":{"line":2628,"column":3}}]},"142":{"line":2674,"type":"if","locations":[{"start":{"line":2674,"column":2},"end":{"line":2674,"column":2}},{"start":{"line":2674,"column":2},"end":{"line":2674,"column":2}}]},"143":{"line":2859,"type":"if","locations":[{"start":{"line":2859,"column":3},"end":{"line":2859,"column":3}},{"start":{"line":2859,"column":3},"end":{"line":2859,"column":3}}]},"144":{"line":2924,"type":"if","locations":[{"start":{"line":2924,"column":12},"end":{"line":2924,"column":12}},{"start":{"line":2924,"column":12},"end":{"line":2924,"column":12}}]},"145":{"line":2941,"type":"if","locations":[{"start":{"line":2941,"column":12},"end":{"line":2941,"column":12}},{"start":{"line":2941,"column":12},"end":{"line":2941,"column":12}}]},"146":{"line":3024,"type":"if","locations":[{"start":{"line":3024,"column":12},"end":{"line":3024,"column":12}},{"start":{"line":3024,"column":12},"end":{"line":3024,"column":12}}]},"147":{"line":3047,"type":"if","locations":[{"start":{"line":3047,"column":12},"end":{"line":3047,"column":12}},{"start":{"line":3047,"column":12},"end":{"line":3047,"column":12}}]},"148":{"line":3108,"type":"if","locations":[{"start":{"line":3108,"column":8},"end":{"line":3108,"column":8}},{"start":{"line":3108,"column":8},"end":{"line":3108,"column":8}}]},"149":{"line":3108,"type":"binary-expr","locations":[{"start":{"line":3108,"column":11},"end":{"line":3108,"column":40}},{"start":{"line":3108,"column":44},"end":{"line":3108,"column":75}}]},"150":{"line":3110,"type":"if","locations":[{"start":{"line":3110,"column":12},"end":{"line":3110,"column":12}},{"start":{"line":3110,"column":12},"end":{"line":3110,"column":12}}]},"151":{"line":3110,"type":"binary-expr","locations":[{"start":{"line":3110,"column":15},"end":{"line":3110,"column":30}},{"start":{"line":3110,"column":34},"end":{"line":3110,"column":51}}]},"152":{"line":3114,"type":"if","locations":[{"start":{"line":3114,"column":17},"end":{"line":3114,"column":17}},{"start":{"line":3114,"column":17},"end":{"line":3114,"column":17}}]},"153":{"line":3118,"type":"if","locations":[{"start":{"line":3118,"column":20},"end":{"line":3118,"column":20}},{"start":{"line":3118,"column":20},"end":{"line":3118,"column":20}}]},"154":{"line":3118,"type":"binary-expr","locations":[{"start":{"line":3118,"column":23},"end":{"line":3118,"column":54}},{"start":{"line":3118,"column":58},"end":{"line":3118,"column":67}}]},"155":{"line":3126,"type":"if","locations":[{"start":{"line":3126,"column":8},"end":{"line":3126,"column":8}},{"start":{"line":3126,"column":8},"end":{"line":3126,"column":8}}]},"156":{"line":3160,"type":"if","locations":[{"start":{"line":3160,"column":8},"end":{"line":3160,"column":8}},{"start":{"line":3160,"column":8},"end":{"line":3160,"column":8}}]},"157":{"line":3176,"type":"cond-expr","locations":[{"start":{"line":3176,"column":47},"end":{"line":3176,"column":56}},{"start":{"line":3176,"column":59},"end":{"line":3176,"column":67}}]},"158":{"line":3177,"type":"binary-expr","locations":[{"start":{"line":3177,"column":16},"end":{"line":3177,"column":33}},{"start":{"line":3177,"column":37},"end":{"line":3177,"column":38}}]},"159":{"line":3178,"type":"binary-expr","locations":[{"start":{"line":3178,"column":16},"end":{"line":3178,"column":34}},{"start":{"line":3178,"column":38},"end":{"line":3178,"column":39}}]},"160":{"line":3192,"type":"if","locations":[{"start":{"line":3192,"column":8},"end":{"line":3192,"column":8}},{"start":{"line":3192,"column":8},"end":{"line":3192,"column":8}}]},"161":{"line":3207,"type":"binary-expr","locations":[{"start":{"line":3207,"column":16},"end":{"line":3207,"column":33}},{"start":{"line":3207,"column":37},"end":{"line":3207,"column":87}}]},"162":{"line":3208,"type":"binary-expr","locations":[{"start":{"line":3208,"column":16},"end":{"line":3208,"column":34}},{"start":{"line":3208,"column":38},"end":{"line":3208,"column":89}}]},"163":{"line":3209,"type":"binary-expr","locations":[{"start":{"line":3209,"column":21},"end":{"line":3209,"column":31}},{"start":{"line":3209,"column":35},"end":{"line":3209,"column":48}}]},"164":{"line":3229,"type":"if","locations":[{"start":{"line":3229,"column":8},"end":{"line":3229,"column":8}},{"start":{"line":3229,"column":8},"end":{"line":3229,"column":8}}]},"165":{"line":3246,"type":"if","locations":[{"start":{"line":3246,"column":8},"end":{"line":3246,"column":8}},{"start":{"line":3246,"column":8},"end":{"line":3246,"column":8}}]},"166":{"line":3266,"type":"binary-expr","locations":[{"start":{"line":3266,"column":25},"end":{"line":3266,"column":35}},{"start":{"line":3266,"column":39},"end":{"line":3266,"column":49}}]},"167":{"line":3267,"type":"if","locations":[{"start":{"line":3267,"column":8},"end":{"line":3267,"column":8}},{"start":{"line":3267,"column":8},"end":{"line":3267,"column":8}}]},"168":{"line":3285,"type":"if","locations":[{"start":{"line":3285,"column":8},"end":{"line":3285,"column":8}},{"start":{"line":3285,"column":8},"end":{"line":3285,"column":8}}]},"169":{"line":3287,"type":"if","locations":[{"start":{"line":3287,"column":12},"end":{"line":3287,"column":12}},{"start":{"line":3287,"column":12},"end":{"line":3287,"column":12}}]},"170":{"line":3292,"type":"if","locations":[{"start":{"line":3292,"column":8},"end":{"line":3292,"column":8}},{"start":{"line":3292,"column":8},"end":{"line":3292,"column":8}}]},"171":{"line":3292,"type":"binary-expr","locations":[{"start":{"line":3292,"column":11},"end":{"line":3292,"column":16}},{"start":{"line":3292,"column":20},"end":{"line":3292,"column":48}}]},"172":{"line":3297,"type":"if","locations":[{"start":{"line":3297,"column":8},"end":{"line":3297,"column":8}},{"start":{"line":3297,"column":8},"end":{"line":3297,"column":8}}]},"173":{"line":3315,"type":"if","locations":[{"start":{"line":3315,"column":12},"end":{"line":3315,"column":12}},{"start":{"line":3315,"column":12},"end":{"line":3315,"column":12}}]},"174":{"line":3341,"type":"if","locations":[{"start":{"line":3341,"column":8},"end":{"line":3341,"column":8}},{"start":{"line":3341,"column":8},"end":{"line":3341,"column":8}}]},"175":{"line":3341,"type":"binary-expr","locations":[{"start":{"line":3341,"column":11},"end":{"line":3341,"column":15}},{"start":{"line":3341,"column":19},"end":{"line":3341,"column":39}}]},"176":{"line":3364,"type":"cond-expr","locations":[{"start":{"line":3364,"column":31},"end":{"line":3364,"column":40}},{"start":{"line":3364,"column":43},"end":{"line":3364,"column":51}}]},"177":{"line":3365,"type":"if","locations":[{"start":{"line":3365,"column":8},"end":{"line":3365,"column":8}},{"start":{"line":3365,"column":8},"end":{"line":3365,"column":8}}]},"178":{"line":3369,"type":"if","locations":[{"start":{"line":3369,"column":16},"end":{"line":3369,"column":16}},{"start":{"line":3369,"column":16},"end":{"line":3369,"column":16}}]},"179":{"line":3375,"type":"if","locations":[{"start":{"line":3375,"column":8},"end":{"line":3375,"column":8}},{"start":{"line":3375,"column":8},"end":{"line":3375,"column":8}}]},"180":{"line":3392,"type":"if","locations":[{"start":{"line":3392,"column":8},"end":{"line":3392,"column":8}},{"start":{"line":3392,"column":8},"end":{"line":3392,"column":8}}]},"181":{"line":3450,"type":"if","locations":[{"start":{"line":3450,"column":8},"end":{"line":3450,"column":8}},{"start":{"line":3450,"column":8},"end":{"line":3450,"column":8}}]},"182":{"line":3467,"type":"cond-expr","locations":[{"start":{"line":3467,"column":43},"end":{"line":3467,"column":74}},{"start":{"line":3467,"column":77},"end":{"line":3467,"column":96}}]},"183":{"line":3478,"type":"if","locations":[{"start":{"line":3478,"column":8},"end":{"line":3478,"column":8}},{"start":{"line":3478,"column":8},"end":{"line":3478,"column":8}}]},"184":{"line":3480,"type":"if","locations":[{"start":{"line":3480,"column":12},"end":{"line":3480,"column":12}},{"start":{"line":3480,"column":12},"end":{"line":3480,"column":12}}]},"185":{"line":3487,"type":"if","locations":[{"start":{"line":3487,"column":16},"end":{"line":3487,"column":16}},{"start":{"line":3487,"column":16},"end":{"line":3487,"column":16}}]},"186":{"line":3494,"type":"if","locations":[{"start":{"line":3494,"column":20},"end":{"line":3494,"column":20}},{"start":{"line":3494,"column":20},"end":{"line":3494,"column":20}}]},"187":{"line":3496,"type":"if","locations":[{"start":{"line":3496,"column":24},"end":{"line":3496,"column":24}},{"start":{"line":3496,"column":24},"end":{"line":3496,"column":24}}]},"188":{"line":3521,"type":"if","locations":[{"start":{"line":3521,"column":8},"end":{"line":3521,"column":8}},{"start":{"line":3521,"column":8},"end":{"line":3521,"column":8}}]},"189":{"line":3542,"type":"switch","locations":[{"start":{"line":3544,"column":12},"end":{"line":3546,"column":18}},{"start":{"line":3547,"column":12},"end":{"line":3549,"column":18}},{"start":{"line":3550,"column":12},"end":{"line":3552,"column":18}}]},"190":{"line":3570,"type":"if","locations":[{"start":{"line":3570,"column":8},"end":{"line":3570,"column":8}},{"start":{"line":3570,"column":8},"end":{"line":3570,"column":8}}]},"191":{"line":3574,"type":"cond-expr","locations":[{"start":{"line":3574,"column":50},"end":{"line":3574,"column":58}},{"start":{"line":3574,"column":61},"end":{"line":3574,"column":74}}]},"192":{"line":3575,"type":"cond-expr","locations":[{"start":{"line":3575,"column":47},"end":{"line":3575,"column":54}},{"start":{"line":3575,"column":57},"end":{"line":3575,"column":69}}]},"193":{"line":3576,"type":"cond-expr","locations":[{"start":{"line":3576,"column":53},"end":{"line":3576,"column":62}},{"start":{"line":3576,"column":65},"end":{"line":3576,"column":79}}]},"194":{"line":3577,"type":"cond-expr","locations":[{"start":{"line":3577,"column":56},"end":{"line":3577,"column":66}},{"start":{"line":3577,"column":69},"end":{"line":3577,"column":84}}]},"195":{"line":3580,"type":"if","locations":[{"start":{"line":3580,"column":8},"end":{"line":3580,"column":8}},{"start":{"line":3580,"column":8},"end":{"line":3580,"column":8}}]},"196":{"line":3602,"type":"if","locations":[{"start":{"line":3602,"column":12},"end":{"line":3602,"column":12}},{"start":{"line":3602,"column":12},"end":{"line":3602,"column":12}}]},"197":{"line":3606,"type":"cond-expr","locations":[{"start":{"line":3606,"column":55},"end":{"line":3606,"column":86}},{"start":{"line":3606,"column":89},"end":{"line":3606,"column":100}}]},"198":{"line":3607,"type":"cond-expr","locations":[{"start":{"line":3607,"column":53},"end":{"line":3607,"column":82}},{"start":{"line":3607,"column":85},"end":{"line":3607,"column":95}}]},"199":{"line":3608,"type":"cond-expr","locations":[{"start":{"line":3608,"column":57},"end":{"line":3608,"column":90}},{"start":{"line":3608,"column":93},"end":{"line":3608,"column":105}}]},"200":{"line":3609,"type":"cond-expr","locations":[{"start":{"line":3609,"column":59},"end":{"line":3609,"column":94}},{"start":{"line":3609,"column":97},"end":{"line":3609,"column":110}}]},"201":{"line":3612,"type":"cond-expr","locations":[{"start":{"line":3612,"column":47},"end":{"line":3612,"column":55}},{"start":{"line":3612,"column":58},"end":{"line":3612,"column":59}}]},"202":{"line":3613,"type":"cond-expr","locations":[{"start":{"line":3613,"column":45},"end":{"line":3613,"column":52}},{"start":{"line":3613,"column":55},"end":{"line":3613,"column":56}}]},"203":{"line":3614,"type":"cond-expr","locations":[{"start":{"line":3614,"column":49},"end":{"line":3614,"column":58}},{"start":{"line":3614,"column":61},"end":{"line":3614,"column":62}}]},"204":{"line":3615,"type":"cond-expr","locations":[{"start":{"line":3615,"column":51},"end":{"line":3615,"column":61}},{"start":{"line":3615,"column":64},"end":{"line":3615,"column":65}}]},"205":{"line":3630,"type":"if","locations":[{"start":{"line":3630,"column":8},"end":{"line":3630,"column":8}},{"start":{"line":3630,"column":8},"end":{"line":3630,"column":8}}]},"206":{"line":3634,"type":"if","locations":[{"start":{"line":3634,"column":8},"end":{"line":3634,"column":8}},{"start":{"line":3634,"column":8},"end":{"line":3634,"column":8}}]},"207":{"line":3634,"type":"binary-expr","locations":[{"start":{"line":3634,"column":11},"end":{"line":3634,"column":22}},{"start":{"line":3634,"column":26},"end":{"line":3634,"column":31}}]},"208":{"line":3651,"type":"if","locations":[{"start":{"line":3651,"column":8},"end":{"line":3651,"column":8}},{"start":{"line":3651,"column":8},"end":{"line":3651,"column":8}}]},"209":{"line":3655,"type":"if","locations":[{"start":{"line":3655,"column":8},"end":{"line":3655,"column":8}},{"start":{"line":3655,"column":8},"end":{"line":3655,"column":8}}]},"210":{"line":3655,"type":"binary-expr","locations":[{"start":{"line":3655,"column":11},"end":{"line":3655,"column":22}},{"start":{"line":3655,"column":26},"end":{"line":3655,"column":31}}]},"211":{"line":3658,"type":"if","locations":[{"start":{"line":3658,"column":12},"end":{"line":3658,"column":12}},{"start":{"line":3658,"column":12},"end":{"line":3658,"column":12}}]}},"code":["(function () { YUI.add('graphics-canvas', function (Y, NAME) {","","var IMPLEMENTATION = \"canvas\","," SHAPE = \"shape\",","\tSPLITPATHPATTERN = /[a-z][^a-z]*/ig,"," SPLITARGSPATTERN = /[\\-]?[0-9]*[0-9|\\.][0-9]*/g,"," DOCUMENT = Y.config.doc,"," Y_LANG = Y.Lang,"," AttributeLite = Y.AttributeLite,","\tCanvasShape,","\tCanvasPath,","\tCanvasRect,"," CanvasEllipse,","\tCanvasCircle,"," CanvasPieSlice,"," Y_DOM = Y.DOM,"," Y_Color = Y.Color,"," PARSE_INT = parseInt,"," PARSE_FLOAT = parseFloat,"," IS_NUMBER = Y_LANG.isNumber,"," RE = RegExp,"," TORGB = Y_Color.toRGB,"," TOHEX = Y_Color.toHex,"," _getClassName = Y.ClassNameManager.getClassName;","","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Drawing.html\">`Drawing`</a> class."," * `CanvasDrawing` is not intended to be used directly. Instead, use the <a href=\"Drawing.html\">`Drawing`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Drawing.html\">`Drawing`</a>"," * class will point to the `CanvasDrawing` class."," *"," * @module graphics"," * @class CanvasDrawing"," * @constructor"," */","function CanvasDrawing()","{","}","","CanvasDrawing.prototype = {"," /**"," * Maps path to methods"," *"," * @property _pathSymbolToMethod"," * @type Object"," * @private"," */"," _pathSymbolToMethod: {"," M: \"moveTo\","," m: \"relativeMoveTo\","," L: \"lineTo\","," l: \"relativeLineTo\","," C: \"curveTo\","," c: \"relativeCurveTo\","," Q: \"quadraticCurveTo\","," q: \"relativeQuadraticCurveTo\","," z: \"closePath\","," Z: \"closePath\""," },",""," /**"," * Current x position of the drawing."," *"," * @property _currentX"," * @type Number"," * @private"," */"," _currentX: 0,",""," /**"," * Current y position of the drqwing."," *"," * @property _currentY"," * @type Number"," * @private"," */"," _currentY: 0,",""," /**"," * Parses hex color string and alpha value to rgba"," *"," * @method _toRGBA"," * @param {Object} val Color value to parse. Can be hex string, rgb or name."," * @param {Number} alpha Numeric value between 0 and 1 representing the alpha level."," * @private"," */"," _toRGBA: function(val, alpha) {"," alpha = (alpha !== undefined) ? alpha : 1;"," if (!Y_Color.re_RGB.test(val)) {"," val = TOHEX(val);"," }",""," if(Y_Color.re_hex.exec(val)) {"," val = 'rgba(' + ["," PARSE_INT(RE.$1, 16),"," PARSE_INT(RE.$2, 16),"," PARSE_INT(RE.$3, 16)"," ].join(',') + ',' + alpha + ')';"," }"," return val;"," },",""," /**"," * Converts color to rgb format"," *"," * @method _toRGB"," * @param val Color value to convert."," * @private"," */"," _toRGB: function(val) {"," return TORGB(val);"," },",""," /**"," * Sets the size of the graphics object."," *"," * @method setSize"," * @param w {Number} width to set for the instance."," * @param h {Number} height to set for the instance."," * @private"," */","\tsetSize: function(w, h) {"," if(this.get(\"autoSize\"))"," {"," if(w > this.node.getAttribute(\"width\"))"," {"," this.node.style.width = w + \"px\";"," this.node.setAttribute(\"width\", w);"," }"," if(h > this.node.getAttribute(\"height\"))"," {"," this.node.style.height = h + \"px\";"," this.node.setAttribute(\"height\", h);"," }"," }"," },","","\t/**"," * Tracks coordinates. Used to calculate the start point of dashed lines."," *"," * @method _updateCoords"," * @param {Number} x x-coordinate"," * @param {Number} y y-coordinate","\t * @private","\t */"," _updateCoords: function(x, y)"," {"," this._xcoords.push(x);"," this._ycoords.push(y);"," this._currentX = x;"," this._currentY = y;"," },","","\t/**"," * Clears the coordinate arrays. Called at the end of a drawing operation.","\t *"," * @method _clearAndUpdateCoords"," * @private","\t */"," _clearAndUpdateCoords: function()"," {"," var x = this._xcoords.pop() || 0,"," y = this._ycoords.pop() || 0;"," this._updateCoords(x, y);"," },","","\t/**"," * Moves the shape's dom node."," *"," * @method _updateNodePosition","\t * @private","\t */"," _updateNodePosition: function()"," {"," var node = this.get(\"node\"),"," x = this.get(\"x\"),"," y = this.get(\"y\");"," node.style.position = \"absolute\";"," node.style.left = (x + this._left) + \"px\";"," node.style.top = (y + this._top) + \"px\";"," },",""," /**"," * Queues up a method to be executed when a shape redraws."," *"," * @method _updateDrawingQueue"," * @param {Array} val An array containing data that can be parsed into a method and arguments. The value at zero-index"," * of the array is a string reference of the drawing method that will be called. All subsequent indices are argument for"," * that method. For example, `lineTo(10, 100)` would be structured as:"," * `[\"lineTo\", 10, 100]`."," * @private"," */"," _updateDrawingQueue: function(val)"," {"," this._methods.push(val);"," },",""," /**"," * Draws a line segment from the current drawing position to the specified x and y coordinates."," *"," * @method lineTo"," * @param {Number} point1 x-coordinate for the end point."," * @param {Number} point2 y-coordinate for the end point."," * @chainable"," */"," lineTo: function()"," {"," this._lineTo.apply(this, [Y.Array(arguments), false]);"," return this;"," },",""," /**"," * Draws a line segment from the current drawing position to the relative x and y coordinates."," *"," * @method lineTo"," * @param {Number} point1 x-coordinate for the end point."," * @param {Number} point2 y-coordinate for the end point."," * @chainable"," */"," relativeLineTo: function()"," {"," this._lineTo.apply(this, [Y.Array(arguments), true]);"," return this;"," },",""," /**"," * Implements lineTo methods."," *"," * @method _lineTo"," * @param {Array} args The arguments to be used."," * @param {Boolean} relative Indicates whether or not to use relative coordinates."," * @private"," */"," _lineTo: function(args, relative)"," {"," var point1 = args[0],"," i,"," len,"," x,"," y,"," wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0,"," relativeX = relative ? parseFloat(this._currentX) : 0,"," relativeY = relative ? parseFloat(this._currentY) : 0;"," if(!this._lineToMethods)"," {"," this._lineToMethods = [];"," }"," len = args.length - 1;"," if (typeof point1 === 'string' || typeof point1 === 'number') {"," for (i = 0; i < len; i = i + 2) {"," x = parseFloat(args[i]);"," y = parseFloat(args[i + 1]);"," x = x + relativeX;"," y = y + relativeY;"," this._updateDrawingQueue([\"lineTo\", x, y]);"," this._trackSize(x - wt, y - wt);"," this._trackSize(x + wt, y + wt);"," this._updateCoords(x, y);"," }"," }"," else"," {"," for (i = 0; i < len; i = i + 1)"," {"," x = parseFloat(args[i][0]);"," y = parseFloat(args[i][1]);"," this._updateDrawingQueue([\"lineTo\", x, y]);"," this._lineToMethods[this._lineToMethods.length] = this._methods[this._methods.length - 1];"," this._trackSize(x - wt, y - wt);"," this._trackSize(x + wt, y + wt);"," this._updateCoords(x, y);"," }"," }"," this._drawingComplete = false;"," return this;"," },",""," /**"," * Moves the current drawing position to specified x and y coordinates."," *"," * @method moveTo"," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," moveTo: function()"," {"," this._moveTo.apply(this, [Y.Array(arguments), false]);"," return this;"," },",""," /**"," * Moves the current drawing position relative to specified x and y coordinates."," *"," * @method relativeMoveTo"," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," relativeMoveTo: function()"," {"," this._moveTo.apply(this, [Y.Array(arguments), true]);"," return this;"," },",""," /**"," * Implements moveTo methods."," *"," * @method _moveTo"," * @param {Array} args The arguments to be used."," * @param {Boolean} relative Indicates whether or not to use relative coordinates."," * @private"," */"," _moveTo: function(args, relative) {"," var wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0,"," relativeX = relative ? parseFloat(this._currentX) : 0,"," relativeY = relative ? parseFloat(this._currentY) : 0,"," x = parseFloat(args[0]) + relativeX,"," y = parseFloat(args[1]) + relativeY;"," this._updateDrawingQueue([\"moveTo\", x, y]);"," this._trackSize(x - wt, y - wt);"," this._trackSize(x + wt, y + wt);"," this._updateCoords(x, y);"," this._drawingComplete = false;"," return this;"," },",""," /**"," * Draws a bezier curve."," *"," * @method curveTo"," * @param {Number} cp1x x-coordinate for the first control point."," * @param {Number} cp1y y-coordinate for the first control point."," * @param {Number} cp2x x-coordinate for the second control point."," * @param {Number} cp2y y-coordinate for the second control point."," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," curveTo: function() {"," this._curveTo.apply(this, [Y.Array(arguments), false]);"," return this;"," },",""," /**"," * Draws a bezier curve relative to the current coordinates."," *"," * @method curveTo"," * @param {Number} cp1x x-coordinate for the first control point."," * @param {Number} cp1y y-coordinate for the first control point."," * @param {Number} cp2x x-coordinate for the second control point."," * @param {Number} cp2y y-coordinate for the second control point."," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," relativeCurveTo: function() {"," this._curveTo.apply(this, [Y.Array(arguments), true]);"," return this;"," },",""," /**"," * Implements curveTo methods."," *"," * @method _curveTo"," * @param {Array} args The arguments to be used."," * @param {Boolean} relative Indicates whether or not to use relative coordinates."," * @private"," */"," _curveTo: function(args, relative) {"," var w,"," h,"," cp1x,"," cp1y,"," cp2x,"," cp2y,"," x,"," y,"," pts,"," right,"," left,"," bottom,"," top,"," i,"," len,"," relativeX = relative ? parseFloat(this._currentX) : 0,"," relativeY = relative ? parseFloat(this._currentY) : 0;"," len = args.length - 5;"," for(i = 0; i < len; i = i + 6)"," {"," cp1x = parseFloat(args[i]) + relativeX;"," cp1y = parseFloat(args[i + 1]) + relativeY;"," cp2x = parseFloat(args[i + 2]) + relativeX;"," cp2y = parseFloat(args[i + 3]) + relativeY;"," x = parseFloat(args[i + 4]) + relativeX;"," y = parseFloat(args[i + 5]) + relativeY;"," this._updateDrawingQueue([\"bezierCurveTo\", cp1x, cp1y, cp2x, cp2y, x, y]);"," this._drawingComplete = false;"," right = Math.max(x, Math.max(cp1x, cp2x));"," bottom = Math.max(y, Math.max(cp1y, cp2y));"," left = Math.min(x, Math.min(cp1x, cp2x));"," top = Math.min(y, Math.min(cp1y, cp2y));"," w = Math.abs(right - left);"," h = Math.abs(bottom - top);"," pts = [[this._currentX, this._currentY] , [cp1x, cp1y], [cp2x, cp2y], [x, y]];"," this._setCurveBoundingBox(pts, w, h);"," this._currentX = x;"," this._currentY = y;"," }"," },",""," /**"," * Draws a quadratic bezier curve."," *"," * @method quadraticCurveTo"," * @param {Number} cpx x-coordinate for the control point."," * @param {Number} cpy y-coordinate for the control point."," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," quadraticCurveTo: function() {"," this._quadraticCurveTo.apply(this, [Y.Array(arguments), false]);"," return this;"," },",""," /**"," * Draws a quadratic bezier curve relative to the current position."," *"," * @method relativeQuadraticCurveTo"," * @param {Number} cpx x-coordinate for the control point."," * @param {Number} cpy y-coordinate for the control point."," * @param {Number} x x-coordinate for the end point."," * @param {Number} y y-coordinate for the end point."," * @chainable"," */"," relativeQuadraticCurveTo: function() {"," this._quadraticCurveTo.apply(this, [Y.Array(arguments), true]);"," return this;"," },",""," /**"," * Implements quadraticCurveTo methods."," *"," * @method _quadraticCurveTo"," * @param {Array} args The arguments to be used."," * @param {Boolean} relative Indicates whether or not to use relative coordinates."," * @private"," */"," _quadraticCurveTo: function(args, relative) {"," var cpx,"," cpy,"," x,"," y,"," w,"," h,"," pts,"," right,"," left,"," bottom,"," top,"," i,"," len = args.length - 3,"," relativeX = relative ? parseFloat(this._currentX) : 0,"," relativeY = relative ? parseFloat(this._currentY) : 0;"," for(i = 0; i < len; i = i + 4)"," {"," cpx = parseFloat(args[i]) + relativeX;"," cpy = parseFloat(args[i + 1]) + relativeY;"," x = parseFloat(args[i + 2]) + relativeX;"," y = parseFloat(args[i + 3]) + relativeY;"," this._drawingComplete = false;"," right = Math.max(x, cpx);"," bottom = Math.max(y, cpy);"," left = Math.min(x, cpx);"," top = Math.min(y, cpy);"," w = Math.abs(right - left);"," h = Math.abs(bottom - top);"," pts = [[this._currentX, this._currentY] , [cpx, cpy], [x, y]];"," this._setCurveBoundingBox(pts, w, h);"," this._updateDrawingQueue([\"quadraticCurveTo\", cpx, cpy, x, y]);"," this._updateCoords(x, y);"," }"," return this;"," },",""," /**"," * Draws a circle. Used internally by `CanvasCircle` class."," *"," * @method drawCircle"," * @param {Number} x y-coordinate"," * @param {Number} y x-coordinate"," * @param {Number} r radius"," * @chainable"," * @protected"," */","\tdrawCircle: function(x, y, radius) {"," var startAngle = 0,"," endAngle = 2 * Math.PI,"," wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0,"," circum = radius * 2;"," circum += wt;"," this._drawingComplete = false;"," this._trackSize(x + circum, y + circum);"," this._trackSize(x - wt, y - wt);"," this._updateCoords(x, y);"," this._updateDrawingQueue([\"arc\", x + radius, y + radius, radius, startAngle, endAngle, false]);"," return this;"," },",""," /**"," * Draws a diamond."," *"," * @method drawDiamond"," * @param {Number} x y-coordinate"," * @param {Number} y x-coordinate"," * @param {Number} width width"," * @param {Number} height height"," * @chainable"," * @protected"," */"," drawDiamond: function(x, y, width, height)"," {"," var midWidth = width * 0.5,"," midHeight = height * 0.5;"," this.moveTo(x + midWidth, y);"," this.lineTo(x + width, y + midHeight);"," this.lineTo(x + midWidth, y + height);"," this.lineTo(x, y + midHeight);"," this.lineTo(x + midWidth, y);"," return this;"," },",""," /**"," * Draws an ellipse. Used internally by `CanvasEllipse` class."," *"," * @method drawEllipse"," * @param {Number} x x-coordinate"," * @param {Number} y y-coordinate"," * @param {Number} w width"," * @param {Number} h height"," * @chainable"," * @protected"," */","\tdrawEllipse: function(x, y, w, h) {"," var l = 8,"," theta = -(45/180) * Math.PI,"," angle = 0,"," angleMid,"," radius = w/2,"," yRadius = h/2,"," i,"," centerX = x + radius,"," centerY = y + yRadius,"," ax, ay, bx, by, cx, cy,"," wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0;",""," ax = centerX + Math.cos(0) * radius;"," ay = centerY + Math.sin(0) * yRadius;"," this.moveTo(ax, ay);"," for(i = 0; i < l; i++)"," {"," angle += theta;"," angleMid = angle - (theta / 2);"," bx = centerX + Math.cos(angle) * radius;"," by = centerY + Math.sin(angle) * yRadius;"," cx = centerX + Math.cos(angleMid) * (radius / Math.cos(theta / 2));"," cy = centerY + Math.sin(angleMid) * (yRadius / Math.cos(theta / 2));"," this._updateDrawingQueue([\"quadraticCurveTo\", cx, cy, bx, by]);"," }"," this._trackSize(x + w + wt, y + h + wt);"," this._trackSize(x - wt, y - wt);"," this._updateCoords(x, y);"," return this;"," },",""," /**"," * Draws a rectangle."," *"," * @method drawRect"," * @param {Number} x x-coordinate"," * @param {Number} y y-coordinate"," * @param {Number} w width"," * @param {Number} h height"," * @chainable"," */"," drawRect: function(x, y, w, h) {"," this._drawingComplete = false;"," this.moveTo(x, y);"," this.lineTo(x + w, y);"," this.lineTo(x + w, y + h);"," this.lineTo(x, y + h);"," this.lineTo(x, y);"," return this;"," },",""," /**"," * Draws a rectangle with rounded corners."," *"," * @method drawRect"," * @param {Number} x x-coordinate"," * @param {Number} y y-coordinate"," * @param {Number} w width"," * @param {Number} h height"," * @param {Number} ew width of the ellipse used to draw the rounded corners"," * @param {Number} eh height of the ellipse used to draw the rounded corners"," * @chainable"," */"," drawRoundRect: function(x, y, w, h, ew, eh) {"," this._drawingComplete = false;"," this.moveTo( x, y + eh);"," this.lineTo(x, y + h - eh);"," this.quadraticCurveTo(x, y + h, x + ew, y + h);"," this.lineTo(x + w - ew, y + h);"," this.quadraticCurveTo(x + w, y + h, x + w, y + h - eh);"," this.lineTo(x + w, y + eh);"," this.quadraticCurveTo(x + w, y, x + w - ew, y);"," this.lineTo(x + ew, y);"," this.quadraticCurveTo(x, y, x, y + eh);"," return this;"," },",""," /**"," * Draws a wedge."," *"," * @method drawWedge"," * @param {Number} x x-coordinate of the wedge's center point"," * @param {Number} y y-coordinate of the wedge's center point"," * @param {Number} startAngle starting angle in degrees"," * @param {Number} arc sweep of the wedge. Negative values draw clockwise."," * @param {Number} radius radius of wedge. If [optional] yRadius is defined, then radius is the x radius."," * @param {Number} yRadius [optional] y radius for wedge."," * @chainable"," * @private"," */"," drawWedge: function(x, y, startAngle, arc, radius, yRadius)"," {"," var wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0,"," segs,"," segAngle,"," theta,"," angle,"," angleMid,"," ax,"," ay,"," bx,"," by,"," cx,"," cy,"," i = 0;"," yRadius = yRadius || radius;",""," this._drawingComplete = false;"," // move to x,y position"," this._updateDrawingQueue([\"moveTo\", x, y]);",""," yRadius = yRadius || radius;",""," // limit sweep to reasonable numbers"," if(Math.abs(arc) > 360)"," {"," arc = 360;"," }",""," // First we calculate how many segments are needed"," // for a smooth arc."," segs = Math.ceil(Math.abs(arc) / 45);",""," // Now calculate the sweep of each segment."," segAngle = arc / segs;",""," // The math requires radians rather than degrees. To convert from degrees"," // use the formula (degrees/180)*Math.PI to get radians."," theta = -(segAngle / 180) * Math.PI;",""," // convert angle startAngle to radians"," angle = (startAngle / 180) * Math.PI;",""," // draw the curve in segments no larger than 45 degrees."," if(segs > 0)"," {"," // draw a line from the center to the start of the curve"," ax = x + Math.cos(startAngle / 180 * Math.PI) * radius;"," ay = y + Math.sin(startAngle / 180 * Math.PI) * yRadius;"," this.lineTo(ax, ay);"," // Loop for drawing curve segments"," for(i = 0; i < segs; ++i)"," {"," angle += theta;"," angleMid = angle - (theta / 2);"," bx = x + Math.cos(angle) * radius;"," by = y + Math.sin(angle) * yRadius;"," cx = x + Math.cos(angleMid) * (radius / Math.cos(theta / 2));"," cy = y + Math.sin(angleMid) * (yRadius / Math.cos(theta / 2));"," this._updateDrawingQueue([\"quadraticCurveTo\", cx, cy, bx, by]);"," }"," // close the wedge by drawing a line to the center"," this._updateDrawingQueue([\"lineTo\", x, y]);"," }"," this._trackSize(-wt , -wt);"," this._trackSize((radius * 2) + wt, (radius * 2) + wt);"," return this;"," },",""," /**"," * Completes a drawing operation."," *"," * @method end"," * @chainable"," */"," end: function() {"," this._closePath();"," return this;"," },",""," /**"," * Ends a fill and stroke"," *"," * @method closePath"," * @chainable"," */"," closePath: function()"," {"," this._updateDrawingQueue([\"closePath\"]);"," this._updateDrawingQueue([\"beginPath\"]);"," return this;"," },","","\t/**","\t * Clears the graphics object.","\t *","\t * @method clear"," * @chainable","\t */"," clear: function() {","\t\tthis._initProps();"," if(this.node)"," {"," this._context.clearRect(0, 0, this.node.width, this.node.height);"," }"," return this;","\t},","",""," /**"," * Returns a linear gradient fill"," *"," * @method _getLinearGradient"," * @return CanvasGradient"," * @private"," */"," _getLinearGradient: function() {"," var isNumber = Y.Lang.isNumber,"," fill = this.get(\"fill\"),"," stops = fill.stops,"," opacity,"," color,"," stop,"," i,"," len = stops.length,"," gradient,"," x = 0,"," y = 0,"," w = this.get(\"width\"),"," h = this.get(\"height\"),"," r = fill.rotation || 0,"," x1, x2, y1, y2,"," cx = x + w/2,"," cy = y + h/2,"," offset,"," radCon = Math.PI/180,"," tanRadians = parseFloat(parseFloat(Math.tan(r * radCon)).toFixed(8));"," if(Math.abs(tanRadians) * w/2 >= h/2)"," {"," if(r < 180)"," {"," y1 = y;"," y2 = y + h;"," }"," else"," {"," y1 = y + h;"," y2 = y;"," }"," x1 = cx - ((cy - y1)/tanRadians);"," x2 = cx - ((cy - y2)/tanRadians);"," }"," else"," {"," if(r > 90 && r < 270)"," {"," x1 = x + w;"," x2 = x;"," }"," else"," {"," x1 = x;"," x2 = x + w;"," }"," y1 = ((tanRadians * (cx - x1)) - cy) * -1;"," y2 = ((tanRadians * (cx - x2)) - cy) * -1;"," }"," gradient = this._context.createLinearGradient(x1, y1, x2, y2);"," for(i = 0; i < len; ++i)"," {"," stop = stops[i];"," opacity = stop.opacity;"," color = stop.color;"," offset = stop.offset;"," if(isNumber(opacity))"," {"," opacity = Math.max(0, Math.min(1, opacity));"," color = this._toRGBA(color, opacity);"," }"," else"," {"," color = TORGB(color);"," }"," offset = stop.offset || i/(len - 1);"," gradient.addColorStop(offset, color);"," }"," return gradient;"," },",""," /**"," * Returns a radial gradient fill"," *"," * @method _getRadialGradient"," * @return CanvasGradient"," * @private"," */"," _getRadialGradient: function() {"," var isNumber = Y.Lang.isNumber,"," fill = this.get(\"fill\"),"," r = fill.r,"," fx = fill.fx,"," fy = fill.fy,"," stops = fill.stops,"," opacity,"," color,"," stop,"," i,"," len = stops.length,"," gradient,"," x = 0,"," y = 0,"," w = this.get(\"width\"),"," h = this.get(\"height\"),"," x1, x2, y1, y2, r2,"," xc, yc, xn, yn, d,"," offset,"," ratio,"," stopMultiplier;"," xc = x + w/2;"," yc = y + h/2;"," x1 = w * fx;"," y1 = h * fy;"," x2 = x + w/2;"," y2 = y + h/2;"," r2 = w * r;"," d = Math.sqrt( Math.pow(Math.abs(xc - x1), 2) + Math.pow(Math.abs(yc - y1), 2) );"," if(d >= r2)"," {"," ratio = d/r2;"," //hack. gradient won't show if it is exactly on the edge of the arc"," if(ratio === 1)"," {"," ratio = 1.01;"," }"," xn = (x1 - xc)/ratio;"," yn = (y1 - yc)/ratio;"," xn = xn > 0 ? Math.floor(xn) : Math.ceil(xn);"," yn = yn > 0 ? Math.floor(yn) : Math.ceil(yn);"," x1 = xc + xn;"," y1 = yc + yn;"," }",""," //If the gradient radius is greater than the circle's, adjusting the radius stretches the gradient properly."," //If the gradient radius is less than the circle's, adjusting the radius of the gradient will not work."," //Instead, adjust the color stops to reflect the smaller radius."," if(r >= 0.5)"," {"," gradient = this._context.createRadialGradient(x1, y1, r, x2, y2, r * w);"," stopMultiplier = 1;"," }"," else"," {"," gradient = this._context.createRadialGradient(x1, y1, r, x2, y2, w/2);"," stopMultiplier = r * 2;"," }"," for(i = 0; i < len; ++i)"," {"," stop = stops[i];"," opacity = stop.opacity;"," color = stop.color;"," offset = stop.offset;"," if(isNumber(opacity))"," {"," opacity = Math.max(0, Math.min(1, opacity));"," color = this._toRGBA(color, opacity);"," }"," else"," {"," color = TORGB(color);"," }"," offset = stop.offset || i/(len - 1);"," offset *= stopMultiplier;"," if(offset <= 1)"," {"," gradient.addColorStop(offset, color);"," }"," }"," return gradient;"," },","",""," /**"," * Clears all values"," *"," * @method _initProps"," * @private"," */"," _initProps: function() {"," this._methods = [];"," this._lineToMethods = [];"," this._xcoords = [0];","\t\tthis._ycoords = [0];","\t\tthis._width = 0;"," this._height = 0;"," this._left = 0;"," this._top = 0;"," this._right = 0;"," this._bottom = 0;"," this._currentX = 0;"," this._currentY = 0;"," },",""," /**"," * Indicates a drawing has completed."," *"," * @property _drawingComplete"," * @type Boolean"," * @private"," */"," _drawingComplete: false,",""," /**"," * Creates canvas element"," *"," * @method _createGraphic"," * @return HTMLCanvasElement"," * @private"," */"," _createGraphic: function() {"," var graphic = Y.config.doc.createElement('canvas');"," return graphic;"," },",""," /**"," * Returns the points on a curve"," *"," * @method getBezierData"," * @param Array points Array containing the begin, end and control points of a curve."," * @param Number t The value for incrementing the next set of points."," * @return Array"," * @private"," */"," getBezierData: function(points, t) {"," var n = points.length,"," tmp = [],"," i,"," j;",""," for (i = 0; i < n; ++i){"," tmp[i] = [points[i][0], points[i][1]]; // save input"," }",""," for (j = 1; j < n; ++j) {"," for (i = 0; i < n - j; ++i) {"," tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0];"," tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1];"," }"," }"," return [ tmp[0][0], tmp[0][1] ];"," },",""," /**"," * Calculates the bounding box for a curve"," *"," * @method _setCurveBoundingBox"," * @param Array pts Array containing points for start, end and control points of a curve."," * @param Number w Width used to calculate the number of points to describe the curve."," * @param Number h Height used to calculate the number of points to describe the curve."," * @private"," */"," _setCurveBoundingBox: function(pts, w, h)"," {"," var i = 0,"," left = this._currentX,"," right = left,"," top = this._currentY,"," bottom = top,"," len = Math.round(Math.sqrt((w * w) + (h * h))),"," t = 1/len,"," wt = this._stroke && this._strokeWeight ? this._strokeWeight : 0,"," xy;"," for(i = 0; i < len; ++i)"," {"," xy = this.getBezierData(pts, t * i);"," left = isNaN(left) ? xy[0] : Math.min(xy[0], left);"," right = isNaN(right) ? xy[0] : Math.max(xy[0], right);"," top = isNaN(top) ? xy[1] : Math.min(xy[1], top);"," bottom = isNaN(bottom) ? xy[1] : Math.max(xy[1], bottom);"," }"," left = Math.round(left * 10)/10;"," right = Math.round(right * 10)/10;"," top = Math.round(top * 10)/10;"," bottom = Math.round(bottom * 10)/10;"," this._trackSize(right + wt, bottom + wt);"," this._trackSize(left - wt, top - wt);"," },",""," /**"," * Updates the size of the graphics object"," *"," * @method _trackSize"," * @param {Number} w width"," * @param {Number} h height"," * @private"," */"," _trackSize: function(w, h) {"," if (w > this._right) {"," this._right = w;"," }"," if(w < this._left)"," {"," this._left = w;"," }"," if (h < this._top)"," {"," this._top = h;"," }"," if (h > this._bottom)"," {"," this._bottom = h;"," }"," this._width = this._right - this._left;"," this._height = this._bottom - this._top;"," }","};","Y.CanvasDrawing = CanvasDrawing;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Shape.html\">`Shape`</a> class."," * `CanvasShape` is not intended to be used directly. Instead, use the <a href=\"Shape.html\">`Shape`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Shape.html\">`Shape`</a>"," * class will point to the `CanvasShape` class."," *"," * @module graphics"," * @class CanvasShape"," * @constructor"," */","CanvasShape = function()","{"," this._transforms = [];"," this.matrix = new Y.Matrix();"," CanvasShape.superclass.constructor.apply(this, arguments);","};","","CanvasShape.NAME = \"shape\";","","Y.extend(CanvasShape, Y.GraphicBase, Y.mix({"," /**"," * Init method, invoked during construction."," * Calls `initializer` method."," *"," * @method init"," * @protected"," */"," init: function()","\t{","\t\tthis.initializer.apply(this, arguments);","\t},","","\t/**","\t * Initializes the shape","\t *","\t * @private","\t * @method _initialize","\t */","\tinitializer: function(cfg)","\t{","\t\tvar host = this,"," graphic = cfg.graphic,"," data = this.get(\"data\");"," host._initProps();","\t\thost.createNode();","\t\thost._xcoords = [0];","\t\thost._ycoords = [0];"," if(graphic)"," {"," this._setGraphic(graphic);"," }"," if(data)"," {"," host._parsePathData(data);"," }","\t\thost._updateHandler();","\t},",""," /**"," * Set the Graphic instance for the shape."," *"," * @method _setGraphic"," * @param {Graphic | Node | HTMLElement | String} render This param is used to determine the graphic instance. If it is a"," * `Graphic` instance, it will be assigned to the `graphic` attribute. Otherwise, a new Graphic instance will be created"," * and rendered into the dom element that the render represents."," * @private"," */"," _setGraphic: function(render)"," {"," var graphic;"," if(render instanceof Y.CanvasGraphic)"," {"," this._graphic = render;"," }"," else"," {"," render = Y.one(render);"," graphic = new Y.CanvasGraphic({"," render: render"," });"," graphic._appendShape(this);"," this._graphic = graphic;"," }"," },","","\t/**","\t * Add a class name to each node.","\t *","\t * @method addClass","\t * @param {String} className the class name to add to the node's class attribute","\t */","\taddClass: function(className)","\t{","\t\tvar node = Y.one(this.get(\"node\"));","\t\tnode.addClass(className);","\t},","","\t/**","\t * Removes a class name from each node.","\t *","\t * @method removeClass","\t * @param {String} className the class name to remove from the node's class attribute","\t */","\tremoveClass: function(className)","\t{","\t\tvar node = Y.one(this.get(\"node\"));","\t\tnode.removeClass(className);","\t},","","\t/**","\t * Gets the current position of the node in page coordinates.","\t *","\t * @method getXY","\t * @return Array The XY position of the shape.","\t */","\tgetXY: function()","\t{","\t\tvar graphic = this.get(\"graphic\"),","\t\t\tparentXY = graphic.getXY(),","\t\t\tx = this.get(\"x\"),","\t\t\ty = this.get(\"y\");","\t\treturn [parentXY[0] + x, parentXY[1] + y];","\t},","","\t/**","\t * Set the position of the shape in page coordinates, regardless of how the node is positioned.","\t *","\t * @method setXY","\t * @param {Array} Contains X & Y values for new position (coordinates are page-based)","\t */","\tsetXY: function(xy)","\t{","\t\tvar graphic = this.get(\"graphic\"),","\t\t\tparentXY = graphic.getXY(),","\t\t\tx = xy[0] - parentXY[0],","\t\t\ty = xy[1] - parentXY[1];","\t\tthis._set(\"x\", x);","\t\tthis._set(\"y\", y);","\t\tthis._updateNodePosition(x, y);","\t},","","\t/**","\t * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy.","\t *","\t * @method contains","\t * @param {CanvasShape | HTMLElement} needle The possible node or descendent","\t * @return Boolean Whether or not this shape is the needle or its ancestor.","\t */","\tcontains: function(needle)","\t{","\t\treturn needle === Y.one(this.node);","\t},","","\t/**","\t * Test if the supplied node matches the supplied selector.","\t *","\t * @method test","\t * @param {String} selector The CSS selector to test against.","\t * @return Boolean Wheter or not the shape matches the selector.","\t */","\ttest: function(selector)","\t{","\t\treturn Y.one(this.get(\"node\")).test(selector);","\t\t//return Y.Selector.test(this.node, selector);","\t},","","\t/**","\t * Compares nodes to determine if they match.","\t * Node instances can be compared to each other and/or HTMLElements.","\t * @method compareTo","\t * @param {HTMLElement | Node} refNode The reference node to compare to the node.","\t * @return {Boolean} True if the nodes match, false if they do not.","\t */","\tcompareTo: function(refNode) {","\t\tvar node = this.node;","\t\treturn node === refNode;","\t},","","\t/**","\t * Value function for fill attribute","\t *","\t * @method _getDefaultFill","\t * @return Object","\t * @private","\t */","\t_getDefaultFill: function() {","\t\treturn {","\t\t\ttype: \"solid\",","\t\t\topacity: 1,","\t\t\tcx: 0.5,","\t\t\tcy: 0.5,","\t\t\tfx: 0.5,","\t\t\tfy: 0.5,","\t\t\tr: 0.5","\t\t};","\t},","","\t/**","\t * Value function for stroke attribute","\t *","\t * @method _getDefaultStroke","\t * @return Object","\t * @private","\t */","\t_getDefaultStroke: function()","\t{","\t\treturn {","\t\t\tweight: 1,","\t\t\tdashstyle: \"none\",","\t\t\tcolor: \"#000\",","\t\t\topacity: 1.0","\t\t};","\t},","","\t/**","\t * Left edge of the path","\t *"," * @property _left"," * @type Number","\t * @private","\t */","\t_left: 0,","","\t/**","\t * Right edge of the path","\t *"," * @property _right"," * @type Number","\t * @private","\t */","\t_right: 0,","","\t/**","\t * Top edge of the path","\t *"," * @property _top"," * @type Number","\t * @private","\t */","\t_top: 0,","","\t/**","\t * Bottom edge of the path","\t *"," * @property _bottom"," * @type Number","\t * @private","\t */","\t_bottom: 0,","","\t/**","\t * Creates the dom node for the shape.","\t *"," * @method createNode","\t * @return HTMLElement","\t * @private","\t */","\tcreateNode: function()","\t{","\t\tvar host = this,"," node = Y.config.doc.createElement('canvas'),","\t\t\tid = host.get(\"id\"),"," concat = host._camelCaseConcat,"," name = host.name;","\t\thost._context = node.getContext('2d');","\t\tnode.setAttribute(\"overflow\", \"visible\");"," node.style.overflow = \"visible\";"," if(!host.get(\"visible\"))"," {"," node.style.visibility = \"hidden\";"," }","\t\tnode.setAttribute(\"id\", id);","\t\tid = \"#\" + id;"," host.node = node;","\t\thost.addClass("," _getClassName(SHAPE) +"," \" \" +"," _getClassName(concat(IMPLEMENTATION, SHAPE)) +"," \" \" +"," _getClassName(name) +"," \" \" +"," _getClassName(concat(IMPLEMENTATION, name))"," );","\t},","","\t/**"," * Overrides default `on` method. Checks to see if its a dom interaction event. If so,"," * return an event attached to the `node` element. If not, return the normal functionality."," *"," * @method on"," * @param {String} type event type"," * @param {Object} callback function","\t * @private","\t */","\ton: function(type, fn)","\t{","\t\tif(Y.Node.DOM_EVENTS[type])","\t\t{","\t\t\treturn Y.one(\"#\" + this.get(\"id\")).on(type, fn);","\t\t}","\t\treturn Y.on.apply(this, arguments);","\t},","","\t/**","\t * Adds a stroke to the shape node.","\t *","\t * @method _strokeChangeHandler"," * @param {Object} stroke Properties of the `stroke` attribute.","\t * @private","\t */","\t_setStrokeProps: function(stroke)","\t{","\t\tvar color,","\t\t\tweight,","\t\t\topacity,","\t\t\tlinejoin,","\t\t\tlinecap,","\t\t\tdashstyle;"," if(stroke)"," {"," color = stroke.color;"," weight = PARSE_FLOAT(stroke.weight);"," opacity = PARSE_FLOAT(stroke.opacity);"," linejoin = stroke.linejoin || \"round\";"," linecap = stroke.linecap || \"butt\";"," dashstyle = stroke.dashstyle;"," this._miterlimit = null;"," this._dashstyle = (dashstyle && Y.Lang.isArray(dashstyle) && dashstyle.length > 1) ? dashstyle : null;"," this._strokeWeight = weight;",""," if (IS_NUMBER(weight) && weight > 0)"," {"," this._stroke = 1;"," }"," else"," {"," this._stroke = 0;"," }"," if (IS_NUMBER(opacity)) {"," this._strokeStyle = this._toRGBA(color, opacity);"," }"," else"," {"," this._strokeStyle = color;"," }"," this._linecap = linecap;"," if(linejoin === \"round\" || linejoin === \"bevel\")"," {"," this._linejoin = linejoin;"," }"," else"," {"," linejoin = parseInt(linejoin, 10);"," if(IS_NUMBER(linejoin))"," {"," this._miterlimit = Math.max(linejoin, 1);"," this._linejoin = \"miter\";"," }"," }"," }"," else"," {"," this._stroke = 0;"," }","\t},",""," /**"," * Sets the value of an attribute."," *"," * @method set"," * @param {String|Object} name The name of the attribute. Alternatively, an object of key value pairs can"," * be passed in to set multiple attributes at once."," * @param {Any} value The value to set the attribute to. This value is ignored if an object is received as"," * the name param."," */","\tset: function()","\t{","\t\tvar host = this;","\t\tAttributeLite.prototype.set.apply(host, arguments);","\t\tif(host.initialized)","\t\t{","\t\t\thost._updateHandler();","\t\t}","\t},","","\t/**","\t * Adds a fill to the shape node.","\t *","\t * @method _setFillProps"," * @param {Object} fill Properties of the `fill` attribute.","\t * @private","\t */","\t_setFillProps: function(fill)","\t{","\t\tvar isNumber = IS_NUMBER,","\t\t\tcolor,","\t\t\topacity,","\t\t\ttype;"," if(fill)"," {"," color = fill.color;"," type = fill.type;"," if(type === \"linear\" || type === \"radial\")"," {"," this._fillType = type;"," }"," else if(color)"," {"," opacity = fill.opacity;"," if (isNumber(opacity))"," {"," opacity = Math.max(0, Math.min(1, opacity));"," color = this._toRGBA(color, opacity);"," }"," else"," {"," color = TORGB(color);"," }",""," this._fillColor = color;"," this._fillType = 'solid';"," }"," else"," {"," this._fillColor = null;"," }"," }","\t\telse","\t\t{"," this._fillType = null;","\t\t\tthis._fillColor = null;","\t\t}","\t},","","\t/**","\t * Specifies a 2d translation.","\t *","\t * @method translate","\t * @param {Number} x The value to transate on the x-axis.","\t * @param {Number} y The value to translate on the y-axis.","\t */","\ttranslate: function(x, y)","\t{","\t\tthis._translateX += x;","\t\tthis._translateY += y;","\t\tthis._addTransform(\"translate\", arguments);","\t},","","\t/**","\t * Translates the shape along the x-axis. When translating x and y coordinates,","\t * use the `translate` method.","\t *","\t * @method translateX","\t * @param {Number} x The value to translate.","\t */","\ttranslateX: function(x)"," {"," this._translateX += x;"," this._addTransform(\"translateX\", arguments);"," },","","\t/**","\t * Performs a translate on the y-coordinate. When translating x and y coordinates,","\t * use the `translate` method.","\t *","\t * @method translateY","\t * @param {Number} y The value to translate.","\t */","\ttranslateY: function(y)"," {"," this._translateY += y;"," this._addTransform(\"translateY\", arguments);"," },",""," /**"," * Skews the shape around the x-axis and y-axis."," *"," * @method skew"," * @param {Number} x The value to skew on the x-axis."," * @param {Number} y The value to skew on the y-axis."," */"," skew: function()"," {"," this._addTransform(\"skew\", arguments);"," },","","\t/**","\t * Skews the shape around the x-axis.","\t *","\t * @method skewX","\t * @param {Number} x x-coordinate","\t */"," skewX: function()"," {"," this._addTransform(\"skewX\", arguments);"," },","","\t/**","\t * Skews the shape around the y-axis.","\t *","\t * @method skewY","\t * @param {Number} y y-coordinate","\t */"," skewY: function()"," {"," this._addTransform(\"skewY\", arguments);"," },","","\t/**","\t * Rotates the shape clockwise around it transformOrigin.","\t *","\t * @method rotate","\t * @param {Number} deg The degree of the rotation.","\t */"," rotate: function()"," {"," this._addTransform(\"rotate\", arguments);"," },","","\t/**","\t * Specifies a 2d scaling operation.","\t *","\t * @method scale","\t * @param {Number} val","\t */"," scale: function()"," {"," this._addTransform(\"scale\", arguments);"," },",""," /**"," * Storage for the transform attribute."," *"," * @property _transform"," * @type String"," * @private"," */"," _transform: \"\",",""," /**"," * Adds a transform to the shape."," *"," * @method _addTransform"," * @param {String} type The transform being applied."," * @param {Array} args The arguments for the transform.","\t * @private","\t */","\t_addTransform: function(type, args)","\t{"," args = Y.Array(args);"," this._transform = Y_LANG.trim(this._transform + \" \" + type + \"(\" + args.join(\", \") + \")\");"," args.unshift(type);"," this._transforms.push(args);"," if(this.initialized)"," {"," this._updateTransform();"," }","\t},","","\t/**"," * Applies all transforms."," *"," * @method _updateTransform","\t * @private","\t */","\t_updateTransform: function()","\t{","\t\tvar node = this.node,","\t\t\tkey,","\t\t\ttransform,","\t\t\ttransformOrigin = this.get(\"transformOrigin\"),"," matrix = this.matrix,"," i,"," len = this._transforms.length;",""," if(this._transforms && this._transforms.length > 0)"," {"," for(i = 0; i < len; ++i)"," {"," key = this._transforms[i].shift();"," if(key)"," {"," matrix[key].apply(matrix, this._transforms[i]);"," }"," }"," transform = matrix.toCSSText();"," }",""," this._graphic.addToRedrawQueue(this);","\t\ttransformOrigin = (100 * transformOrigin[0]) + \"% \" + (100 * transformOrigin[1]) + \"%\";"," Y_DOM.setStyle(node, \"transformOrigin\", transformOrigin);"," if(transform)","\t\t{"," Y_DOM.setStyle(node, \"transform\", transform);","\t\t}"," this._transforms = [];","\t},","","\t/**"," * Updates `Shape` based on attribute changes."," *"," * @method _updateHandler","\t * @private","\t */","\t_updateHandler: function()","\t{","\t\tthis._draw();","\t\tthis._updateTransform();","\t},","","\t/**","\t * Updates the shape.","\t *","\t * @method _draw","\t * @private","\t */","\t_draw: function()","\t{"," var node = this.node;"," this.clear();","\t\tthis._closePath();","\t\tnode.style.left = this.get(\"x\") + \"px\";","\t\tnode.style.top = this.get(\"y\") + \"px\";","\t},","","\t/**","\t * Completes a shape or drawing","\t *","\t * @method _closePath","\t * @private","\t */","\t_closePath: function()","\t{","\t\tif(!this._methods)","\t\t{","\t\t\treturn;","\t\t}","\t\tvar node = this.get(\"node\"),","\t\t\tw = this._right - this._left,","\t\t\th = this._bottom - this._top,","\t\t\tcontext = this._context,","\t\t\tmethods = [],","\t\t\tcachedMethods = this._methods.concat(),","\t\t\ti,","\t\t\tj,","\t\t\tmethod,","\t\t\targs,"," argsLen,","\t\t\tlen = 0;","\t\tthis._context.clearRect(0, 0, node.width, node.height);"," if(this._methods)"," {","\t\t\tlen = cachedMethods.length;","\t\t\tif(!len || len < 1)","\t\t\t{","\t\t\t\treturn;","\t\t\t}","\t\t\tfor(i = 0; i < len; ++i)","\t\t\t{","\t\t\t\tmethods[i] = cachedMethods[i].concat();","\t\t\t\targs = methods[i];"," argsLen = (args[0] === \"quadraticCurveTo\" || args[0] === \"bezierCurveTo\") ? args.length : 3;","\t\t\t\tfor(j = 1; j < argsLen; ++j)","\t\t\t\t{","\t\t\t\t\tif(j % 2 === 0)","\t\t\t\t\t{","\t\t\t\t\t\targs[j] = args[j] - this._top;","\t\t\t\t\t}","\t\t\t\t\telse","\t\t\t\t\t{","\t\t\t\t\t\targs[j] = args[j] - this._left;","\t\t\t\t\t}","\t\t\t\t}","\t\t\t}"," node.setAttribute(\"width\", Math.min(w, 2000));"," node.setAttribute(\"height\", Math.min(2000, h));"," context.beginPath();","\t\t\tfor(i = 0; i < len; ++i)","\t\t\t{","\t\t\t\targs = methods[i].concat();","\t\t\t\tif(args && args.length > 0)","\t\t\t\t{","\t\t\t\t\tmethod = args.shift();","\t\t\t\t\tif(method)","\t\t\t\t\t{"," if(method === \"closePath\")"," {"," context.closePath();"," this._strokeAndFill(context);"," }","\t\t\t\t\t\telse if(method && method === \"lineTo\" && this._dashstyle)","\t\t\t\t\t\t{","\t\t\t\t\t\t\targs.unshift(this._xcoords[i] - this._left, this._ycoords[i] - this._top);","\t\t\t\t\t\t\tthis._drawDashedLine.apply(this, args);","\t\t\t\t\t\t}","\t\t\t\t\t\telse","\t\t\t\t\t\t{"," context[method].apply(context, args);","\t\t\t\t\t\t}","\t\t\t\t\t}","\t\t\t\t}","\t\t\t}",""," this._strokeAndFill(context);","\t\t\tthis._drawingComplete = true;","\t\t\tthis._clearAndUpdateCoords();","\t\t\tthis._updateNodePosition();","\t\t\tthis._methods = cachedMethods;","\t\t}","\t},",""," /**"," * Completes a stroke and/or fill operation on the context."," *"," * @method _strokeAndFill"," * @param {Context} Reference to the context element of the canvas instance."," * @private"," */"," _strokeAndFill: function(context)"," {"," if (this._fillType)"," {"," if(this._fillType === \"linear\")"," {"," context.fillStyle = this._getLinearGradient();"," }"," else if(this._fillType === \"radial\")"," {"," context.fillStyle = this._getRadialGradient();"," }"," else"," {"," context.fillStyle = this._fillColor;"," }"," context.closePath();"," context.fill();"," }",""," if (this._stroke) {"," if(this._strokeWeight)"," {"," context.lineWidth = this._strokeWeight;"," }"," context.lineCap = this._linecap;"," context.lineJoin = this._linejoin;"," if(this._miterlimit)"," {"," context.miterLimit = this._miterlimit;"," }"," context.strokeStyle = this._strokeStyle;"," context.stroke();"," }"," },","","\t/**","\t * Draws a dashed line between two points.","\t *","\t * @method _drawDashedLine","\t * @param {Number} xStart\tThe x position of the start of the line","\t * @param {Number} yStart\tThe y position of the start of the line","\t * @param {Number} xEnd\t\tThe x position of the end of the line","\t * @param {Number} yEnd\t\tThe y position of the end of the line","\t * @private","\t */","\t_drawDashedLine: function(xStart, yStart, xEnd, yEnd)","\t{","\t\tvar context = this._context,","\t\t\tdashsize = this._dashstyle[0],","\t\t\tgapsize = this._dashstyle[1],","\t\t\tsegmentLength = dashsize + gapsize,","\t\t\txDelta = xEnd - xStart,","\t\t\tyDelta = yEnd - yStart,","\t\t\tdelta = Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2)),","\t\t\tsegmentCount = Math.floor(Math.abs(delta / segmentLength)),","\t\t\tradians = Math.atan2(yDelta, xDelta),","\t\t\txCurrent = xStart,","\t\t\tyCurrent = yStart,","\t\t\ti;","\t\txDelta = Math.cos(radians) * segmentLength;","\t\tyDelta = Math.sin(radians) * segmentLength;","","\t\tfor(i = 0; i < segmentCount; ++i)","\t\t{","\t\t\tcontext.moveTo(xCurrent, yCurrent);","\t\t\tcontext.lineTo(xCurrent + Math.cos(radians) * dashsize, yCurrent + Math.sin(radians) * dashsize);","\t\t\txCurrent += xDelta;","\t\t\tyCurrent += yDelta;","\t\t}","","\t\tcontext.moveTo(xCurrent, yCurrent);","\t\tdelta = Math.sqrt((xEnd - xCurrent) * (xEnd - xCurrent) + (yEnd - yCurrent) * (yEnd - yCurrent));","","\t\tif(delta > dashsize)","\t\t{","\t\t\tcontext.lineTo(xCurrent + Math.cos(radians) * dashsize, yCurrent + Math.sin(radians) * dashsize);","\t\t}","\t\telse if(delta > 0)","\t\t{","\t\t\tcontext.lineTo(xCurrent + Math.cos(radians) * delta, yCurrent + Math.sin(radians) * delta);","\t\t}","","\t\tcontext.moveTo(xEnd, yEnd);","\t},","","\t/**","\t * Returns the bounds for a shape.","\t *"," * Calculates the a new bounding box from the original corner coordinates (base on size and position) and the transform matrix."," * The calculated bounding box is used by the graphic instance to calculate its viewBox."," *","\t * @method getBounds","\t * @return Object","\t */","\tgetBounds: function()","\t{","\t\tvar type = this._type,","\t\t\tw = this.get(\"width\"),","\t\t\th = this.get(\"height\"),","\t\t\tx = this.get(\"x\"),","\t\t\ty = this.get(\"y\");"," if(type === \"path\")"," {"," x = x + this._left;"," y = y + this._top;"," w = this._right - this._left;"," h = this._bottom - this._top;"," }"," return this._getContentRect(w, h, x, y);","\t},",""," /**"," * Calculates the bounding box for the shape."," *"," * @method _getContentRect"," * @param {Number} w width of the shape"," * @param {Number} h height of the shape"," * @param {Number} x x-coordinate of the shape"," * @param {Number} y y-coordinate of the shape"," * @private"," */"," _getContentRect: function(w, h, x, y)"," {"," var transformOrigin = this.get(\"transformOrigin\"),"," transformX = transformOrigin[0] * w,"," transformY = transformOrigin[1] * h,"," transforms = this.matrix.getTransformArray(this.get(\"transform\")),"," matrix = new Y.Matrix(),"," i,"," len = transforms.length,"," transform,"," key,"," contentRect;"," if(this._type === \"path\")"," {"," transformX = transformX + x;"," transformY = transformY + y;"," }"," transformX = !isNaN(transformX) ? transformX : 0;"," transformY = !isNaN(transformY) ? transformY : 0;"," matrix.translate(transformX, transformY);"," for(i = 0; i < len; i = i + 1)"," {"," transform = transforms[i];"," key = transform.shift();"," if(key)"," {"," matrix[key].apply(matrix, transform);"," }"," }"," matrix.translate(-transformX, -transformY);"," contentRect = matrix.getContentRect(w, h, x, y);"," return contentRect;"," },",""," /**"," * Places the shape above all other shapes."," *"," * @method toFront"," */"," toFront: function()"," {"," var graphic = this.get(\"graphic\");"," if(graphic)"," {"," graphic._toFront(this);"," }"," },",""," /**"," * Places the shape underneath all other shapes."," *"," * @method toFront"," */"," toBack: function()"," {"," var graphic = this.get(\"graphic\");"," if(graphic)"," {"," graphic._toBack(this);"," }"," },",""," /**"," * Parses path data string and call mapped methods."," *"," * @method _parsePathData"," * @param {String} val The path data"," * @private"," */"," _parsePathData: function(val)"," {"," var method,"," methodSymbol,"," args,"," commandArray = Y.Lang.trim(val.match(SPLITPATHPATTERN)),"," i,"," len,"," str,"," symbolToMethod = this._pathSymbolToMethod;"," if(commandArray)"," {"," this.clear();"," len = commandArray.length || 0;"," for(i = 0; i < len; i = i + 1)"," {"," str = commandArray[i];"," methodSymbol = str.substr(0, 1);"," args = str.substr(1).match(SPLITARGSPATTERN);"," method = symbolToMethod[methodSymbol];"," if(method)"," {"," if(args)"," {"," this[method].apply(this, args);"," }"," else"," {"," this[method].apply(this);"," }"," }"," }"," this.end();"," }"," },",""," /**"," * Destroys the shape instance."," *"," * @method destroy"," */"," destroy: function()"," {"," var graphic = this.get(\"graphic\");"," if(graphic)"," {"," graphic.removeShape(this);"," }"," else"," {"," this._destroy();"," }"," },",""," /**"," * Implementation for shape destruction"," *"," * @method destroy"," * @protected"," */"," _destroy: function()"," {"," if(this.node)"," {"," Y.one(this.node).remove(true);"," this._context = null;"," this.node = null;"," }"," }","}, Y.CanvasDrawing.prototype));","","CanvasShape.ATTRS = {","\t/**","\t * An array of x, y values which indicates the transformOrigin in which to rotate the shape. Valid values range between 0 and 1 representing a","\t * fraction of the shape's corresponding bounding box dimension. The default value is [0.5, 0.5].","\t *","\t * @config transformOrigin","\t * @type Array","\t */","\ttransformOrigin: {","\t\tvalueFn: function()","\t\t{","\t\t\treturn [0.5, 0.5];","\t\t}","\t},",""," /**"," * <p>A string containing, in order, transform operations applied to the shape instance. The `transform` string can contain the following values:"," *"," * <dl>"," * <dt>rotate</dt><dd>Rotates the shape clockwise around it transformOrigin.</dd>"," * <dt>translate</dt><dd>Specifies a 2d translation.</dd>"," * <dt>skew</dt><dd>Skews the shape around the x-axis and y-axis.</dd>"," * <dt>scale</dt><dd>Specifies a 2d scaling operation.</dd>"," * <dt>translateX</dt><dd>Translates the shape along the x-axis.</dd>"," * <dt>translateY</dt><dd>Translates the shape along the y-axis.</dd>"," * <dt>skewX</dt><dd>Skews the shape around the x-axis.</dd>"," * <dt>skewY</dt><dd>Skews the shape around the y-axis.</dd>"," * <dt>matrix</dt><dd>Specifies a 2D transformation matrix comprised of the specified six values.</dd>"," * </dl>"," * </p>"," * <p>Applying transforms through the transform attribute will reset the transform matrix and apply a new transform. The shape class also contains"," * corresponding methods for each transform that will apply the transform to the current matrix. The below code illustrates how you might use the"," * `transform` attribute to instantiate a recangle with a rotation of 45 degrees.</p>"," var myRect = new Y.Rect({"," type:\"rect\","," width: 50,"," height: 40,"," transform: \"rotate(45)\""," };"," * <p>The code below would apply `translate` and `rotate` to an existing shape.</p>",""," myRect.set(\"transform\", \"translate(40, 50) rotate(45)\");","\t * @config transform"," * @type String","\t */","\ttransform: {","\t\tsetter: function(val)","\t\t{"," this.matrix.init();"," this._transforms = this.matrix.getTransformArray(val);"," this._transform = val;"," return val;","\t\t},",""," getter: function()"," {"," return this._transform;"," }","\t},","","\t/**","\t * Dom node for the shape","\t *","\t * @config node","\t * @type HTMLElement","\t * @readOnly","\t */","\tnode: {","\t\treadOnly: true,","","\t\tgetter: function()","\t\t{","\t\t\treturn this.node;","\t\t}","\t},","","\t/**","\t * Unique id for class instance.","\t *","\t * @config id","\t * @type String","\t */","\tid: {","\t\tvalueFn: function()","\t\t{","\t\t\treturn Y.guid();","\t\t},","","\t\tsetter: function(val)","\t\t{","\t\t\tvar node = this.node;","\t\t\tif(node)","\t\t\t{","\t\t\t\tnode.setAttribute(\"id\", val);","\t\t\t}","\t\t\treturn val;","\t\t}","\t},","","\t/**","\t * Indicates the width of the shape","\t *","\t * @config width","\t * @type Number","\t */","\twidth: {"," value: 0"," },","","\t/**","\t * Indicates the height of the shape","\t *","\t * @config height","\t * @type Number","\t */","\theight: {"," value: 0"," },","","\t/**","\t * Indicates the x position of shape.","\t *","\t * @config x","\t * @type Number","\t */","\tx: {","\t\tvalue: 0","\t},","","\t/**","\t * Indicates the y position of shape.","\t *","\t * @config y","\t * @type Number","\t */","\ty: {","\t\tvalue: 0","\t},","","\t/**","\t * Indicates whether the shape is visible.","\t *","\t * @config visible","\t * @type Boolean","\t */","\tvisible: {","\t\tvalue: true,","","\t\tsetter: function(val){","\t\t\tvar node = this.get(\"node\"),"," visibility = val ? \"visible\" : \"hidden\";","\t\t\tif(node)"," {"," node.style.visibility = visibility;"," }","\t\t\treturn val;","\t\t}","\t},","","\t/**","\t * Contains information about the fill of the shape."," * <dl>"," * <dt>color</dt><dd>The color of the fill.</dd>"," * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the fill. The default value is 1.</dd>"," * <dt>type</dt><dd>Type of fill."," * <dl>"," * <dt>solid</dt><dd>Solid single color fill. (default)</dd>"," * <dt>linear</dt><dd>Linear gradient fill.</dd>"," * <dt>radial</dt><dd>Radial gradient fill.</dd>"," * </dl>"," * </dd>"," * </dl>"," * <p>If a `linear` or `radial` is specified as the fill type. The following additional property is used:"," * <dl>"," * <dt>stops</dt><dd>An array of objects containing the following properties:"," * <dl>"," * <dt>color</dt><dd>The color of the stop.</dd>"," * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the stop. The default value is 1."," * Note: No effect for IE 6 - 8</dd>"," * <dt>offset</dt><dd>Number between 0 and 1 indicating where the color stop is positioned.</dd>"," * </dl>"," * </dd>"," * <p>Linear gradients also have the following property:</p>"," * <dt>rotation</dt><dd>Linear gradients flow left to right by default. The rotation property allows you to change the"," * flow by rotation. (e.g. A rotation of 180 would make the gradient pain from right to left.)</dd>"," * <p>Radial gradients have the following additional properties:</p>"," * <dt>r</dt><dd>Radius of the gradient circle.</dd>"," * <dt>fx</dt><dd>Focal point x-coordinate of the gradient.</dd>"," * <dt>fy</dt><dd>Focal point y-coordinate of the gradient.</dd>"," * </dl>"," * <p>The corresponding `SVGShape` class implements the following additional properties.</p>"," * <dl>"," * <dt>cx</dt><dd>"," * <p>The x-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.</p>"," * <p><strong>Note: </strong>Currently, this property is not implemented for corresponding `CanvasShape` and"," * `VMLShape` classes which are used on Android or IE 6 - 8.</p>"," * </dd>"," * <dt>cy</dt><dd>"," * <p>The y-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.</p>"," * <p><strong>Note: </strong>Currently, this property is not implemented for corresponding `CanvasShape` and `VMLShape`"," * classes which are used on Android or IE 6 - 8.</p>"," * </dd>"," * </dl>"," * <p>These properties are not currently implemented in `CanvasShape` or `VMLShape`.</p>","\t *","\t * @config fill","\t * @type Object","\t */","\tfill: {","\t\tvalueFn: \"_getDefaultFill\",","","\t\tsetter: function(val)","\t\t{","\t\t\tvar fill,","\t\t\t\ttmpl = this.get(\"fill\") || this._getDefaultFill();","\t\t\tfill = (val) ? Y.merge(tmpl, val) : null;","\t\t\tif(fill && fill.color)","\t\t\t{","\t\t\t\tif(fill.color === undefined || fill.color === \"none\")","\t\t\t\t{","\t\t\t\t\tfill.color = null;","\t\t\t\t}","\t\t\t}","\t\t\tthis._setFillProps(fill);","\t\t\treturn fill;","\t\t}","\t},","","\t/**","\t * Contains information about the stroke of the shape."," * <dl>"," * <dt>color</dt><dd>The color of the stroke.</dd>"," * <dt>weight</dt><dd>Number that indicates the width of the stroke.</dd>"," * <dt>opacity</dt><dd>Number between 0 and 1 that indicates the opacity of the stroke. The default value is 1.</dd>"," * <dt>dashstyle</dt>Indicates whether to draw a dashed stroke. When set to \"none\", a solid stroke is drawn. When set"," * to an array, the first index indicates the length of the dash. The second index indicates the length of gap."," * <dt>linecap</dt><dd>Specifies the linecap for the stroke. The following values can be specified:"," * <dl>"," * <dt>butt (default)</dt><dd>Specifies a butt linecap.</dd>"," * <dt>square</dt><dd>Specifies a sqare linecap.</dd>"," * <dt>round</dt><dd>Specifies a round linecap.</dd>"," * </dl>"," * </dd>"," * <dt>linejoin</dt><dd>Specifies a linejoin for the stroke. The following values can be specified:"," * <dl>"," * <dt>round (default)</dt><dd>Specifies that the linejoin will be round.</dd>"," * <dt>bevel</dt><dd>Specifies a bevel for the linejoin.</dd>"," * <dt>miter limit</dt><dd>An integer specifying the miter limit of a miter linejoin. If you want to specify a linejoin"," * of miter, you simply specify the limit as opposed to having separate miter and miter limit values.</dd>"," * </dl>"," * </dd>"," * </dl>","\t *","\t * @config stroke","\t * @type Object","\t */","\tstroke: {","\t\tvalueFn: \"_getDefaultStroke\",","","\t\tsetter: function(val)","\t\t{","\t\t\tvar tmpl = this.get(\"stroke\") || this._getDefaultStroke(),"," wt;"," if(val && val.hasOwnProperty(\"weight\"))"," {"," wt = parseInt(val.weight, 10);"," if(!isNaN(wt))"," {"," val.weight = wt;"," }"," }","\t\t\tval = (val) ? Y.merge(tmpl, val) : null;","\t\t\tthis._setStrokeProps(val);","\t\t\treturn val;","\t\t}","\t},","","\t//Not used. Remove in future.","\tautoSize: {","\t\tvalue: false","\t},","","\t// Only implemented in SVG","\t// Determines whether the instance will receive mouse events.","\t//","\t// @config pointerEvents","\t// @type string","\t//","\tpointerEvents: {","\t\tvalue: \"visiblePainted\"","\t},",""," /**"," * Represents an SVG Path string. This will be parsed and added to shape's API to represent the SVG data across all"," * implementations. Note that when using VML or SVG implementations, part of this content will be added to the DOM using"," * respective VML/SVG attributes. If your content comes from an untrusted source, you will need to ensure that no"," * malicious code is included in that content."," *"," * @config data"," * @type String"," */"," data: {"," setter: function(val)"," {"," if(this.get(\"node\"))"," {"," this._parsePathData(val);"," }"," return val;"," }"," },","","\t/**","\t * Reference to the container Graphic.","\t *","\t * @config graphic","\t * @type Graphic","\t */","\tgraphic: {","\t\treadOnly: true,","","\t\tgetter: function()","\t\t{","\t\t\treturn this._graphic;","\t\t}"," }","};","Y.CanvasShape = CanvasShape;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Path.html\">`Path`</a> class."," * `CanvasPath` is not intended to be used directly. Instead, use the <a href=\"Path.html\">`Path`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Path.html\">`Path`</a>"," * class will point to the `CanvasPath` class."," *"," * @module graphics"," * @class CanvasPath"," * @extends CanvasShape"," */","CanvasPath = function()","{","\tCanvasPath.superclass.constructor.apply(this, arguments);","};","CanvasPath.NAME = \"path\";","Y.extend(CanvasPath, Y.CanvasShape, {"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"path\",","","\t/**","\t * Draws the shape.","\t *","\t * @method _draw","\t * @private","\t */"," _draw: function()"," {"," this._closePath();"," this._updateTransform();"," },","","\t/**","\t * Creates the dom node for the shape.","\t *"," * @method createNode","\t * @return HTMLElement","\t * @private","\t */","\tcreateNode: function()","\t{","\t\tvar host = this,"," node = Y.config.doc.createElement('canvas'),","\t\t\tname = host.name,"," concat = host._camelCaseConcat,"," id = host.get(\"id\");","\t\thost._context = node.getContext('2d');","\t\tnode.setAttribute(\"overflow\", \"visible\");"," node.setAttribute(\"pointer-events\", \"none\");"," node.style.pointerEvents = \"none\";"," node.style.overflow = \"visible\";","\t\tnode.setAttribute(\"id\", id);","\t\tid = \"#\" + id;","\t\thost.node = node;","\t\thost.addClass("," _getClassName(SHAPE) +"," \" \" +"," _getClassName(concat(IMPLEMENTATION, SHAPE)) +"," \" \" +"," _getClassName(name) +"," \" \" +"," _getClassName(concat(IMPLEMENTATION, name))"," );","\t},",""," /**"," * Completes a drawing operation."," *"," * @method end"," */"," end: function()"," {"," this._draw();"," }","});","","CanvasPath.ATTRS = Y.merge(Y.CanvasShape.ATTRS, {","\t/**","\t * Indicates the width of the shape","\t *","\t * @config width","\t * @type Number","\t */","\twidth: {","\t\tgetter: function()","\t\t{","\t\t\tvar offset = this._stroke && this._strokeWeight ? (this._strokeWeight * 2) : 0;","\t\t\treturn this._width - offset;","\t\t},","","\t\tsetter: function(val)","\t\t{","\t\t\tthis._width = val;","\t\t\treturn val;","\t\t}","\t},","","\t/**","\t * Indicates the height of the shape","\t *","\t * @config height","\t * @type Number","\t */","\theight: {","\t\tgetter: function()","\t\t{","\t\t\tvar offset = this._stroke && this._strokeWeight ? (this._strokeWeight * 2) : 0;"," return this._height - offset;","\t\t},","","\t\tsetter: function(val)","\t\t{","\t\t\tthis._height = val;","\t\t\treturn val;","\t\t}","\t},","","\t/**","\t * Indicates the path used for the node.","\t *","\t * @config path","\t * @type String"," * @readOnly","\t */","\tpath: {"," readOnly: true,","","\t\tgetter: function()","\t\t{","\t\t\treturn this._path;","\t\t}","\t}","});","Y.CanvasPath = CanvasPath;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Rect.html\">`Rect`</a> class."," * `CanvasRect` is not intended to be used directly. Instead, use the <a href=\"Rect.html\">`Rect`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Rect.html\">`Rect`</a>"," * class will point to the `CanvasRect` class."," *"," * @module graphics"," * @class CanvasRect"," * @constructor"," */","CanvasRect = function()","{","\tCanvasRect.superclass.constructor.apply(this, arguments);","};","CanvasRect.NAME = \"rect\";","Y.extend(CanvasRect, Y.CanvasShape, {","\t/**","\t * Indicates the type of shape","\t *","\t * @property _type","\t * @type String"," * @private","\t */","\t_type: \"rect\",","","\t/**","\t * Draws the shape.","\t *","\t * @method _draw","\t * @private","\t */","\t_draw: function()","\t{","\t\tvar w = this.get(\"width\"),","\t\t\th = this.get(\"height\");","\t\tthis.clear();"," this.drawRect(0, 0, w, h);","\t\tthis._closePath();","\t}","});","CanvasRect.ATTRS = Y.CanvasShape.ATTRS;","Y.CanvasRect = CanvasRect;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Ellipse.html\">`Ellipse`</a> class."," * `CanvasEllipse` is not intended to be used directly. Instead, use the <a href=\"Ellipse.html\">`Ellipse`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Ellipse.html\">`Ellipse`</a>"," * class will point to the `CanvasEllipse` class."," *"," * @module graphics"," * @class CanvasEllipse"," * @constructor"," */","CanvasEllipse = function()","{","\tCanvasEllipse.superclass.constructor.apply(this, arguments);","};","","CanvasEllipse.NAME = \"ellipse\";","","Y.extend(CanvasEllipse, CanvasShape, {","\t/**","\t * Indicates the type of shape","\t *","\t * @property _type","\t * @type String"," * @private","\t */","\t_type: \"ellipse\",","","\t/**"," * Draws the shape."," *"," * @method _draw","\t * @private","\t */","\t_draw: function()","\t{","\t\tvar w = this.get(\"width\"),","\t\t\th = this.get(\"height\");","\t\tthis.clear();"," this.drawEllipse(0, 0, w, h);","\t\tthis._closePath();","\t}","});","CanvasEllipse.ATTRS = Y.merge(CanvasShape.ATTRS, {","\t/**","\t * Horizontal radius for the ellipse.","\t *","\t * @config xRadius","\t * @type Number","\t */","\txRadius: {","\t\tsetter: function(val)","\t\t{","\t\t\tthis.set(\"width\", val * 2);","\t\t},","","\t\tgetter: function()","\t\t{","\t\t\tvar val = this.get(\"width\");","\t\t\tif(val)","\t\t\t{","\t\t\t\tval *= 0.5;","\t\t\t}","\t\t\treturn val;","\t\t}","\t},","","\t/**","\t * Vertical radius for the ellipse.","\t *","\t * @config yRadius","\t * @type Number","\t * @readOnly","\t */","\tyRadius: {","\t\tsetter: function(val)","\t\t{","\t\t\tthis.set(\"height\", val * 2);","\t\t},","","\t\tgetter: function()","\t\t{","\t\t\tvar val = this.get(\"height\");","\t\t\tif(val)","\t\t\t{","\t\t\t\tval *= 0.5;","\t\t\t}","\t\t\treturn val;","\t\t}","\t}","});","Y.CanvasEllipse = CanvasEllipse;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the <a href=\"Circle.html\">`Circle`</a> class."," * `CanvasCircle` is not intended to be used directly. Instead, use the <a href=\"Circle.html\">`Circle`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Circle.html\">`Circle`</a>"," * class will point to the `CanvasCircle` class."," *"," * @module graphics"," * @class CanvasCircle"," * @constructor"," */","CanvasCircle = function()","{","\tCanvasCircle.superclass.constructor.apply(this, arguments);","};","","CanvasCircle.NAME = \"circle\";","","Y.extend(CanvasCircle, Y.CanvasShape, {","\t/**","\t * Indicates the type of shape","\t *","\t * @property _type","\t * @type String"," * @private","\t */","\t_type: \"circle\",","","\t/**"," * Draws the shape."," *"," * @method _draw","\t * @private","\t */","\t_draw: function()","\t{","\t\tvar radius = this.get(\"radius\");","\t\tif(radius)","\t\t{"," this.clear();"," this.drawCircle(0, 0, radius);","\t\t\tthis._closePath();","\t\t}","\t}","});","","CanvasCircle.ATTRS = Y.merge(Y.CanvasShape.ATTRS, {","\t/**","\t * Indicates the width of the shape","\t *","\t * @config width","\t * @type Number","\t */","\twidth: {"," setter: function(val)"," {"," this.set(\"radius\", val/2);"," return val;"," },","","\t\tgetter: function()","\t\t{","\t\t\treturn this.get(\"radius\") * 2;","\t\t}","\t},","","\t/**","\t * Indicates the height of the shape","\t *","\t * @config height","\t * @type Number","\t */","\theight: {"," setter: function(val)"," {"," this.set(\"radius\", val/2);"," return val;"," },","","\t\tgetter: function()","\t\t{","\t\t\treturn this.get(\"radius\") * 2;","\t\t}","\t},","","\t/**","\t * Radius of the circle","\t *","\t * @config radius"," * @type Number","\t */","\tradius: {","\t\tlazyAdd: false","\t}","});","Y.CanvasCircle = CanvasCircle;","/**"," * Draws pie slices"," *"," * @module graphics"," * @class CanvasPieSlice"," * @constructor"," */","CanvasPieSlice = function()","{","\tCanvasPieSlice.superclass.constructor.apply(this, arguments);","};","CanvasPieSlice.NAME = \"canvasPieSlice\";","Y.extend(CanvasPieSlice, Y.CanvasShape, {"," /**"," * Indicates the type of shape"," *"," * @property _type"," * @type String"," * @private"," */"," _type: \"path\",","","\t/**","\t * Change event listener","\t *","\t * @private","\t * @method _updateHandler","\t */","\t_draw: function()","\t{"," var x = this.get(\"cx\"),"," y = this.get(\"cy\"),"," startAngle = this.get(\"startAngle\"),"," arc = this.get(\"arc\"),"," radius = this.get(\"radius\");"," this.clear();"," this._left = x;"," this._right = radius;"," this._top = y;"," this._bottom = radius;"," this.drawWedge(x, y, startAngle, arc, radius);","\t\tthis.end();","\t}"," });","CanvasPieSlice.ATTRS = Y.mix({"," cx: {"," value: 0"," },",""," cy: {"," value: 0"," },"," /**"," * Starting angle in relation to a circle in which to begin the pie slice drawing."," *"," * @config startAngle"," * @type Number"," */"," startAngle: {"," value: 0"," },",""," /**"," * Arc of the slice."," *"," * @config arc"," * @type Number"," */"," arc: {"," value: 0"," },",""," /**"," * Radius of the circle in which the pie slice is drawn"," *"," * @config radius"," * @type Number"," */"," radius: {"," value: 0"," }","}, Y.CanvasShape.ATTRS);","Y.CanvasPieSlice = CanvasPieSlice;","/**"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> implementation of the `Graphic` class."," * `CanvasGraphic` is not intended to be used directly. Instead, use the <a href=\"Graphic.html\">`Graphic`</a> class."," * If the browser lacks <a href=\"http://www.w3.org/TR/SVG/\">SVG</a> capabilities but has"," * <a href=\"http://www.w3.org/TR/html5/the-canvas-element.html\">Canvas</a> capabilities, the <a href=\"Graphic.html\">`Graphic`</a>"," * class will point to the `CanvasGraphic` class."," *"," * @module graphics"," * @class CanvasGraphic"," * @constructor"," */","function CanvasGraphic() {",""," CanvasGraphic.superclass.constructor.apply(this, arguments);","}","","CanvasGraphic.NAME = \"canvasGraphic\";","","CanvasGraphic.ATTRS = {"," /**"," * Whether or not to render the `Graphic` automatically after to a specified parent node after init. This can be a Node"," * instance or a CSS selector string."," *"," * @config render"," * @type Node | String"," */"," render: {},",""," /**","\t * Unique id for class instance.","\t *","\t * @config id","\t * @type String","\t */","\tid: {","\t\tvalueFn: function()","\t\t{","\t\t\treturn Y.guid();","\t\t},","","\t\tsetter: function(val)","\t\t{","\t\t\tvar node = this._node;","\t\t\tif(node)","\t\t\t{","\t\t\t\tnode.setAttribute(\"id\", val);","\t\t\t}","\t\t\treturn val;","\t\t}","\t},",""," /**"," * Key value pairs in which a shape instance is associated with its id."," *"," * @config shapes"," * @type Object"," * @readOnly"," */"," shapes: {"," readOnly: true,",""," getter: function()"," {"," return this._shapes;"," }"," },",""," /**"," * Object containing size and coordinate data for the content of a Graphic in relation to the graphic instance's position."," *"," * @config contentBounds"," * @type Object"," * @readOnly"," */"," contentBounds: {"," readOnly: true,",""," getter: function()"," {"," return this._contentBounds;"," }"," },",""," /**"," * The outermost html element of the Graphic instance."," *"," * @config node"," * @type HTMLElement"," * @readOnly"," */"," node: {"," readOnly: true,",""," getter: function()"," {"," return this._node;"," }"," },","","\t/**","\t * Indicates the width of the `Graphic`.","\t *","\t * @config width","\t * @type Number","\t */"," width: {"," setter: function(val)"," {"," if(this._node)"," {"," this._node.style.width = val + \"px\";"," }"," return val;"," }"," },","","\t/**","\t * Indicates the height of the `Graphic`.","\t *","\t * @config height","\t * @type Number","\t */"," height: {"," setter: function(val)"," {"," if(this._node)"," {"," this._node.style.height = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Determines the sizing of the Graphic."," *"," * <dl>"," * <dt>sizeContentToGraphic</dt><dd>The Graphic's width and height attributes are, either explicitly set through the"," * <code>width</code> and <code>height</code> attributes or are determined by the dimensions of the parent element. The"," * content contained in the Graphic will be sized to fit with in the Graphic instance's dimensions. When using this"," * setting, the <code>preserveAspectRatio</code> attribute will determine how the contents are sized.</dd>"," * <dt>sizeGraphicToContent</dt><dd>(Also accepts a value of true) The Graphic's width and height are determined by the"," * size and positioning of the content.</dd>"," * <dt>false</dt><dd>The Graphic's width and height attributes are, either explicitly set through the <code>width</code>"," * and <code>height</code> attributes or are determined by the dimensions of the parent element. The contents of the"," * Graphic instance are not affected by this setting.</dd>"," * </dl>"," *"," *"," * @config autoSize"," * @type Boolean | String"," * @default false"," */"," autoSize: {"," value: false"," },",""," /**"," * Determines how content is sized when <code>autoSize</code> is set to <code>sizeContentToGraphic</code>."," *"," * <dl>"," * <dt>none<dt><dd>Do not force uniform scaling. Scale the graphic content of the given element non-uniformly if necessary"," * such that the element's bounding box exactly matches the viewport rectangle.</dd>"," * <dt>xMinYMin</dt><dd>Force uniform scaling position along the top left of the Graphic's node.</dd>"," * <dt>xMidYMin</dt><dd>Force uniform scaling horizontally centered and positioned at the top of the Graphic's node.<dd>"," * <dt>xMaxYMin</dt><dd>Force uniform scaling positioned horizontally from the right and vertically from the top.</dd>"," * <dt>xMinYMid</dt>Force uniform scaling positioned horizontally from the left and vertically centered.</dd>"," * <dt>xMidYMid (the default)</dt><dd>Force uniform scaling with the content centered.</dd>"," * <dt>xMaxYMid</dt><dd>Force uniform scaling positioned horizontally from the right and vertically centered.</dd>"," * <dt>xMinYMax</dt><dd>Force uniform scaling positioned horizontally from the left and vertically from the bottom.</dd>"," * <dt>xMidYMax</dt><dd>Force uniform scaling horizontally centered and position vertically from the bottom.</dd>"," * <dt>xMaxYMax</dt><dd>Force uniform scaling positioned horizontally from the right and vertically from the bottom.</dd>"," * </dl>"," *"," * @config preserveAspectRatio"," * @type String"," * @default xMidYMid"," */"," preserveAspectRatio: {"," value: \"xMidYMid\""," },",""," /**"," * The contentBounds will resize to greater values but not smaller values. (for performance)"," * When resizing the contentBounds down is desirable, set the resizeDown value to true."," *"," * @config resizeDown"," * @type Boolean"," */"," resizeDown: {"," value: false"," },","","\t/**","\t * Indicates the x-coordinate for the instance.","\t *","\t * @config x","\t * @type Number","\t */"," x: {"," getter: function()"," {"," return this._x;"," },",""," setter: function(val)"," {"," this._x = val;"," if(this._node)"," {"," this._node.style.left = val + \"px\";"," }"," return val;"," }"," },","","\t/**","\t * Indicates the y-coordinate for the instance.","\t *","\t * @config y","\t * @type Number","\t */"," y: {"," getter: function()"," {"," return this._y;"," },",""," setter: function(val)"," {"," this._y = val;"," if(this._node)"," {"," this._node.style.top = val + \"px\";"," }"," return val;"," }"," },",""," /**"," * Indicates whether or not the instance will automatically redraw after a change is made to a shape."," * This property will get set to false when batching operations."," *"," * @config autoDraw"," * @type Boolean"," * @default true"," * @private"," */"," autoDraw: {"," value: true"," },","","\t/**","\t * Indicates whether the `Graphic` and its children are visible.","\t *","\t * @config visible","\t * @type Boolean","\t */"," visible: {"," value: true,",""," setter: function(val)"," {"," this._toggleVisible(val);"," return val;"," }"," }","};","","Y.extend(CanvasGraphic, Y.GraphicBase, {"," /**"," * Sets the value of an attribute."," *"," * @method set"," * @param {String|Object} name The name of the attribute. Alternatively, an object of key value pairs can"," * be passed in to set multiple attributes at once."," * @param {Any} value The value to set the attribute to. This value is ignored if an object is received as"," * the name param."," */","\tset: function()","\t{","\t\tvar host = this,"," attr = arguments[0],"," redrawAttrs = {"," autoDraw: true,"," autoSize: true,"," preserveAspectRatio: true,"," resizeDown: true"," },"," key,"," forceRedraw = false;","\t\tAttributeLite.prototype.set.apply(host, arguments);"," if(host._state.autoDraw === true && Y.Object.size(this._shapes) > 0)"," {"," if(Y_LANG.isString && redrawAttrs[attr])"," {"," forceRedraw = true;"," }"," else if(Y_LANG.isObject(attr))"," {"," for(key in redrawAttrs)"," {"," if(redrawAttrs.hasOwnProperty(key) && attr[key])"," {"," forceRedraw = true;"," break;"," }"," }"," }"," }"," if(forceRedraw)"," {"," host._redraw();"," }","\t},",""," /**"," * Storage for `x` attribute."," *"," * @property _x"," * @type Number"," * @private"," */"," _x: 0,",""," /**"," * Storage for `y` attribute."," *"," * @property _y"," * @type Number"," * @private"," */"," _y: 0,",""," /**"," * Gets the current position of the graphic instance in page coordinates."," *"," * @method getXY"," * @return Array The XY position of the shape."," */"," getXY: function()"," {"," var node = Y.one(this._node),"," xy;"," if(node)"," {"," xy = node.getXY();"," }"," return xy;"," },","","\t/**"," * Initializes the class."," *"," * @method initializer"," * @param {Object} config Optional attributes"," * @private"," */"," initializer: function() {"," var render = this.get(\"render\"),"," visibility = this.get(\"visible\") ? \"visible\" : \"hidden\","," w = this.get(\"width\") || 0,"," h = this.get(\"height\") || 0;"," this._shapes = {};"," this._redrawQueue = {};","\t\tthis._contentBounds = {"," left: 0,"," top: 0,"," right: 0,"," bottom: 0"," };"," this._node = DOCUMENT.createElement('div');"," this._node.style.position = \"absolute\";"," this._node.style.visibility = visibility;"," this.set(\"width\", w);"," this.set(\"height\", h);"," if(render)"," {"," this.render(render);"," }"," },",""," /**"," * Adds the graphics node to the dom."," *"," * @method render"," * @param {HTMLElement} parentNode node in which to render the graphics node into."," */"," render: function(render) {"," var parentNode = Y.one(render),"," node = this._node,"," w = this.get(\"width\") || parseInt(parentNode.getComputedStyle(\"width\"), 10),"," h = this.get(\"height\") || parseInt(parentNode.getComputedStyle(\"height\"), 10);"," parentNode = parentNode || DOCUMENT.body;"," parentNode.appendChild(node);"," node.style.display = \"block\";"," node.style.position = \"absolute\";"," node.style.left = \"0px\";"," node.style.top = \"0px\";"," this.set(\"width\", w);"," this.set(\"height\", h);"," this.parentNode = parentNode;"," return this;"," },",""," /**"," * Removes all nodes."," *"," * @method destroy"," */"," destroy: function()"," {"," this.removeAllShapes();"," if(this._node)"," {"," this._removeChildren(this._node);"," Y.one(this._node).destroy();"," }"," },",""," /**"," * Generates a shape instance by type."," *"," * @method addShape"," * @param {Object} cfg attributes for the shape"," * @return Shape"," */"," addShape: function(cfg)"," {"," cfg.graphic = this;"," if(!this.get(\"visible\"))"," {"," cfg.visible = false;"," }"," var ShapeClass = this._getShapeClass(cfg.type),"," shape = new ShapeClass(cfg);"," this._appendShape(shape);"," return shape;"," },",""," /**"," * Adds a shape instance to the graphic instance."," *"," * @method _appendShape"," * @param {Shape} shape The shape instance to be added to the graphic."," * @private"," */"," _appendShape: function(shape)"," {"," var node = shape.node,"," parentNode = this._frag || this._node;"," if(this.get(\"autoDraw\"))"," {"," parentNode.appendChild(node);"," }"," else"," {"," this._getDocFrag().appendChild(node);"," }"," },",""," /**"," * Removes a shape instance from from the graphic instance."," *"," * @method removeShape"," * @param {Shape|String} shape The instance or id of the shape to be removed."," */"," removeShape: function(shape)"," {"," if(!(shape instanceof CanvasShape))"," {"," if(Y_LANG.isString(shape))"," {"," shape = this._shapes[shape];"," }"," }"," if(shape && shape instanceof CanvasShape)"," {"," shape._destroy();"," delete this._shapes[shape.get(\"id\")];"," }"," if(this.get(\"autoDraw\"))"," {"," this._redraw();"," }"," return shape;"," },",""," /**"," * Removes all shape instances from the dom."," *"," * @method removeAllShapes"," */"," removeAllShapes: function()"," {"," var shapes = this._shapes,"," i;"," for(i in shapes)"," {"," if(shapes.hasOwnProperty(i))"," {"," shapes[i].destroy();"," }"," }"," this._shapes = {};"," },",""," /**"," * Clears the graphics object."," *"," * @method clear"," */"," clear: function() {"," this.removeAllShapes();"," },",""," /**"," * Removes all child nodes."," *"," * @method _removeChildren"," * @param {HTMLElement} node"," * @private"," */"," _removeChildren: function(node)"," {"," if(node && node.hasChildNodes())"," {"," var child;"," while(node.firstChild)"," {"," child = node.firstChild;"," this._removeChildren(child);"," node.removeChild(child);"," }"," }"," },",""," /**"," * Toggles visibility"," *"," * @method _toggleVisible"," * @param {Boolean} val indicates visibilitye"," * @private"," */"," _toggleVisible: function(val)"," {"," var i,"," shapes = this._shapes,"," visibility = val ? \"visible\" : \"hidden\";"," if(shapes)"," {"," for(i in shapes)"," {"," if(shapes.hasOwnProperty(i))"," {"," shapes[i].set(\"visible\", val);"," }"," }"," }"," if(this._node)"," {"," this._node.style.visibility = visibility;"," }"," },",""," /**"," * Returns a shape class. Used by `addShape`."," *"," * @method _getShapeClass"," * @param {Shape | String} val Indicates which shape class."," * @return Function"," * @private"," */"," _getShapeClass: function(val)"," {"," var shape = this._shapeClass[val];"," if(shape)"," {"," return shape;"," }"," return val;"," },",""," /**"," * Look up for shape classes. Used by `addShape` to retrieve a class for instantiation."," *"," * @property _shapeClass"," * @type Object"," * @private"," */"," _shapeClass: {"," circle: Y.CanvasCircle,"," rect: Y.CanvasRect,"," path: Y.CanvasPath,"," ellipse: Y.CanvasEllipse,"," pieslice: Y.CanvasPieSlice"," },",""," /**"," * Returns a shape based on the id of its dom node."," *"," * @method getShapeById"," * @param {String} id Dom id of the shape's node attribute."," * @return Shape"," */"," getShapeById: function(id)"," {"," var shape = this._shapes[id];"," return shape;"," },","","\t/**","\t * Allows for creating multiple shapes in order to batch appending and redraw operations.","\t *","\t * @method batch","\t * @param {Function} method Method to execute.","\t */"," batch: function(method)"," {"," var autoDraw = this.get(\"autoDraw\");"," this.set(\"autoDraw\", false);"," method();"," this.set(\"autoDraw\", autoDraw);"," },",""," /**"," * Returns a document fragment to for attaching shapes."," *"," * @method _getDocFrag"," * @return DocumentFragment"," * @private"," */"," _getDocFrag: function()"," {"," if(!this._frag)"," {"," this._frag = DOCUMENT.createDocumentFragment();"," }"," return this._frag;"," },",""," /**"," * Redraws all shapes."," *"," * @method _redraw"," * @private"," */"," _redraw: function()"," {"," var autoSize = this.get(\"autoSize\"),"," preserveAspectRatio = this.get(\"preserveAspectRatio\"),"," box = this.get(\"resizeDown\") ? this._getUpdatedContentBounds() : this._contentBounds,"," contentWidth,"," contentHeight,"," w,"," h,"," xScale,"," yScale,"," translateX = 0,"," translateY = 0,"," matrix,"," node = this.get(\"node\");"," if(autoSize)"," {"," if(autoSize === \"sizeContentToGraphic\")"," {"," contentWidth = box.right - box.left;"," contentHeight = box.bottom - box.top;"," w = parseFloat(Y_DOM.getComputedStyle(node, \"width\"));"," h = parseFloat(Y_DOM.getComputedStyle(node, \"height\"));"," matrix = new Y.Matrix();"," if(preserveAspectRatio === \"none\")"," {"," xScale = w/contentWidth;"," yScale = h/contentHeight;"," }"," else"," {"," if(contentWidth/contentHeight !== w/h)"," {"," if(contentWidth * h/contentHeight > w)"," {"," xScale = yScale = w/contentWidth;"," translateY = this._calculateTranslate(preserveAspectRatio.slice(5).toLowerCase(), contentHeight * w/contentWidth, h);"," }"," else"," {"," xScale = yScale = h/contentHeight;"," translateX = this._calculateTranslate(preserveAspectRatio.slice(1, 4).toLowerCase(), contentWidth * h/contentHeight, w);"," }"," }"," }"," Y_DOM.setStyle(node, \"transformOrigin\", \"0% 0%\");"," translateX = translateX - (box.left * xScale);"," translateY = translateY - (box.top * yScale);"," matrix.translate(translateX, translateY);"," matrix.scale(xScale, yScale);"," Y_DOM.setStyle(node, \"transform\", matrix.toCSSText());"," }"," else"," {"," this.set(\"width\", box.right);"," this.set(\"height\", box.bottom);"," }"," }"," if(this._frag)"," {"," this._node.appendChild(this._frag);"," this._frag = null;"," }"," },",""," /**"," * Determines the value for either an x or y value to be used for the <code>translate</code> of the Graphic."," *"," * @method _calculateTranslate"," * @param {String} position The position for placement. Possible values are min, mid and max."," * @param {Number} contentSize The total size of the content."," * @param {Number} boundsSize The total size of the Graphic."," * @return Number"," * @private"," */"," _calculateTranslate: function(position, contentSize, boundsSize)"," {"," var ratio = boundsSize - contentSize,"," coord;"," switch(position)"," {"," case \"mid\" :"," coord = ratio * 0.5;"," break;"," case \"max\" :"," coord = ratio;"," break;"," default :"," coord = 0;"," break;"," }"," return coord;"," },",""," /**"," * Adds a shape to the redraw queue and calculates the contentBounds. Used internally"," * by `Shape` instances."," *"," * @method addToRedrawQueue"," * @param Shape shape The shape instance to add to the queue"," * @protected"," */"," addToRedrawQueue: function(shape)"," {"," var shapeBox,"," box;"," this._shapes[shape.get(\"id\")] = shape;"," if(!this.get(\"resizeDown\"))"," {"," shapeBox = shape.getBounds();"," box = this._contentBounds;"," box.left = box.left < shapeBox.left ? box.left : shapeBox.left;"," box.top = box.top < shapeBox.top ? box.top : shapeBox.top;"," box.right = box.right > shapeBox.right ? box.right : shapeBox.right;"," box.bottom = box.bottom > shapeBox.bottom ? box.bottom : shapeBox.bottom;"," this._contentBounds = box;"," }"," if(this.get(\"autoDraw\"))"," {"," this._redraw();"," }"," },",""," /**"," * Recalculates and returns the `contentBounds` for the `Graphic` instance."," *"," * @method _getUpdatedContentBounds"," * @return {Object}"," * @private"," */"," _getUpdatedContentBounds: function()"," {"," var bounds,"," i,"," shape,"," queue = this._shapes,"," box = {};"," for(i in queue)"," {"," if(queue.hasOwnProperty(i))"," {"," shape = queue[i];"," bounds = shape.getBounds();"," box.left = Y_LANG.isNumber(box.left) ? Math.min(box.left, bounds.left) : bounds.left;"," box.top = Y_LANG.isNumber(box.top) ? Math.min(box.top, bounds.top) : bounds.top;"," box.right = Y_LANG.isNumber(box.right) ? Math.max(box.right, bounds.right) : bounds.right;"," box.bottom = Y_LANG.isNumber(box.bottom) ? Math.max(box.bottom, bounds.bottom) : bounds.bottom;"," }"," }"," box.left = Y_LANG.isNumber(box.left) ? box.left : 0;"," box.top = Y_LANG.isNumber(box.top) ? box.top : 0;"," box.right = Y_LANG.isNumber(box.right) ? box.right : 0;"," box.bottom = Y_LANG.isNumber(box.bottom) ? box.bottom : 0;"," this._contentBounds = box;"," return box;"," },",""," /**"," * Inserts shape on the top of the tree."," *"," * @method _toFront"," * @param {CanvasShape} Shape to add."," * @private"," */"," _toFront: function(shape)"," {"," var contentNode = this.get(\"node\");"," if(shape instanceof Y.CanvasShape)"," {"," shape = shape.get(\"node\");"," }"," if(contentNode && shape)"," {"," contentNode.appendChild(shape);"," }"," },",""," /**"," * Inserts shape as the first child of the content node."," *"," * @method _toBack"," * @param {CanvasShape} Shape to add."," * @private"," */"," _toBack: function(shape)"," {"," var contentNode = this.get(\"node\"),"," targetNode;"," if(shape instanceof Y.CanvasShape)"," {"," shape = shape.get(\"node\");"," }"," if(contentNode && shape)"," {"," targetNode = contentNode.firstChild;"," if(targetNode)"," {"," contentNode.insertBefore(shape, targetNode);"," }"," else"," {"," contentNode.appendChild(shape);"," }"," }"," }","});","","Y.CanvasGraphic = CanvasGraphic;","","","}, '3.10.3', {\"requires\": [\"graphics\"]});","","}());"]}; |