jcal-zmanim 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/JCal/Sedra.ts","../src/JCal/PirkeiAvos.ts","../src/JCal/Dafyomi.ts","../src/JCal/jDate.ts","../src/JCal/Zmanim.ts","../src/Utils.ts","../src/JCal/Location.ts","../src/Locations.ts","../src/locations.json","../src/ZmanTypes.ts","../src/JCal/Molad.ts","../src/JCal/ZmanimUtils.ts","../src/Notifications.ts"],"names":["israel"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACaA,IAAqB,SAArB,MAAqB,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvB,YAAY,IAAUA,SAAgB;AAElC,QAAI,GAAG,UAAU,KAAK,GAAG,OAAO,MAAM,GAAG,OAAOA,UAAS,KAAK,KAAK;AAC/D,WAAK,SAAS,CAAC,OAAM,UAAU,EAAE,CAAC;AAClC;AAAA,IACJ;AAEA,QAAI,aAA2C,CAAC,GAC5C,aAAa,OAAM,cAAc,GAAG,MAAMA,OAAM,GAChD,UAAU,GAAG,KACb,OACA;AAGJ,cAAU,OAAM,iBAAiB,GAAG,UAAU,CAAC;AAE/C,eAAW,UAAU,WAAW,kBAAkB;AAElD,QAAI,WAAW,cAAc,WAAW,WAAW,WAAW,QAAQ;AAClE,YAAM,YAAY,WAAW,WAAW,WAAW,WAAW,SAAS,CAAC;AACxE,UAAI,YAAY,GAAG;AAEf,gBAAS,CAAC,YAAa;AAAA,MAC3B,OACK;AACD,gBAAQ,YAAY;AAAA,MACxB;AAAA,IACJ,OACK;AACD,cAAS,WAAW,aACf,WAAW,WAAW,OAAO,IAC7B;AAAA,IACT;AAEA,QAAI,SAAS,GAAG;AACZ,mBAAa,CAAC,OAAM,UAAU,KAAK,CAAC;AAAA,IACxC,OACK;AACD,YAAM,IAAI,CAAC;AACX,mBAAa,CAAC,OAAM,UAAU,CAAC,GAAG,OAAM,UAAU,IAAI,CAAC,CAAC;AAAA,IAC5D;AACA,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AACP,WAAO,KAAK,OAAO,IAAI,OAAK,EAAE,GAAG,EAAE,KAAK,KAAK;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc;AACV,WAAO,KAAK,OAAO,IAAI,OAAK,EAAE,GAAG,EAAE,KAAK,KAAK;AAAA,EACjD;AAAA,EAoBA,OAAO,iBAAiB,aAAoB,MAAa;AACrD,WAAO,QAAS,OAAO,eAAe;AAAA,EAC1C;AAAA,EAEA,OAAO,cAAc,MAAaA,SAAgB;AAG9C,QAAI,OAAM,sBAAsB,QAC5B,OAAM,mBAAmB,SAAS,QAClC,OAAM,mBAAmB,WAAWA,SAAQ;AAC5C,aAAO,OAAM;AAAA,IACjB;AAEA,UAAM,eAAe,MAAM,eAAe,IAAI,GAC1C,cAAc,MAAM,cAAc,IAAI,GACtC,cAAc,MAAM,MAAM,MAAM,GAAG,CAAC,GACpC,iBAAiB,KAAK,IAAI,cAAc,CAAC,GACzC,iBAAiB,OAAM,iBAAiB,GAAG,cAAc,CAAC;AAC9D,QAAI,UACA;AAEJ,QAAI,gBAAgB,CAAC;AACjB,iBAAW;AAAA,aACN,CAAC,gBAAgB;AACtB,iBAAW;AAAA;AAEX,iBAAW;AAEf,QAAI,CAAC,MAAM,UAAU,IAAI,GAAG;AACxB,cAAQ,gBAAgB;AAAA,QACpB,KAAK;AACD,cAAI,aAAa,cAAc;AAC3B,qBAAS,OAAM;AAAA,UACnB,WACS,aAAa,YAAY;AAC9B,qBAAS,OAAM;AAAA,UACnB;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,cAAc;AAC3B,qBAAS,OAAM;AAAA,UACnB,WACS,aAAa,YAAY;AAC9B,qBAASA,UAAS,OAAM,YAAY,OAAM;AAAA,UAC9C;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,WAAW;AACxB,qBAASA,UAAS,OAAM,YAAY,OAAM;AAAA,UAC9C;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,WAAW;AACxB,qBAASA,UAAS,OAAM,oBAAoB,OAAM;AAAA,UACtD,WACS,aAAa,YAAY;AAC9B,qBAAS,OAAM;AAAA,UACnB;AACA;AAAA,QAEJ;AACI,gBAAM;AAAA,MACd;AAAA,IACJ,OACsB;AAClB,cAAQ,gBAAgB;AAAA,QACpB,KAAK;AACD,cAAI,aAAa,cAAc;AAC3B,qBAAS,OAAM;AAAA,UACnB,WACS,aAAa,YAAY;AAC9B,qBAASA,UAAS,OAAM,qBAAqB,OAAM;AAAA,UACvD;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,cAAc;AAC3B,qBAASA,UAAS,OAAM,wBAAwB,OAAM;AAAA,UAC1D,WACS,aAAa,YAAY;AAC9B,qBAASA,UAAS,OAAM,uBAAuB,OAAM;AAAA,UACzD;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,WAAW;AACxB,qBAASA,UAAS,OAAM,uBAAuB,OAAM;AAAA,UACzD;AACA;AAAA,QAEJ,KAAK;AACD,cAAI,aAAa,cAAc;AAC3B,qBAAS,OAAM;AAAA,UACnB,WACS,aAAa,YAAY;AAC9B,qBAAS,OAAM;AAAA,UACnB;AACA;AAAA,QAEJ;AACI,gBAAM;AAAA,MACd;AAAA,IACJ;AAEA,UAAM,SAAS;AAAA,MACX;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA,QAAQA;AAAA,IACZ;AAGA,WAAM,qBAAqB;AAE3B,WAAO;AAAA,EACX;AACJ;AAzMqB,OAgEV,qBAAqG;AAhE3F,OAiEV,YAAY,CAAC,EAAE,KAAK,YAAY,KAAK,uCAAS,GAAG,EAAE,KAAK,SAAS,KAAK,eAAK,GAAG,EAAE,KAAK,cAAc,KAAK,4BAAQ,GAAG,EAAE,KAAK,UAAU,KAAK,2BAAO,GAAG,EAAE,KAAK,eAAe,KAAK,wCAAU,GAAG,EAAE,KAAK,UAAU,KAAK,uCAAS,GAAG,EAAE,KAAK,YAAY,KAAK,2BAAO,GAAG,EAAE,KAAK,cAAc,KAAK,iCAAQ,GAAG,EAAE,KAAK,aAAa,KAAK,2BAAO,GAAG,EAAE,KAAK,WAAW,KAAK,qBAAM,GAAG,EAAE,KAAK,YAAY,KAAK,2BAAO,GAAG,EAAE,KAAK,WAAW,KAAK,2BAAO,GAAG,EAAE,KAAK,UAAU,KAAK,2BAAO,GAAG,EAAE,KAAK,UAAW,KAAK,2BAAO,GAAG,EAAE,KAAK,MAAM,KAAK,eAAK,GAAG,EAAE,KAAK,aAAa,KAAK,2BAAO,GAAG,EAAE,KAAK,SAAS,KAAK,2BAAO,GAAG,EAAE,KAAK,aAAa,KAAK,uCAAS,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,YAAY,KAAK,2BAAO,GAAG,EAAE,KAAK,WAAW,KAAK,kCAAS,GAAG,EAAE,KAAK,YAAY,KAAK,iCAAQ,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,QAAQ,KAAK,eAAK,GAAG,EAAE,KAAK,UAAU,KAAK,iCAAQ,GAAG,EAAE,KAAK,UAAU,KAAK,iCAAQ,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,cAAc,KAAK,8CAAW,GAAG,EAAE,KAAK,YAAY,KAAK,uCAAS,GAAG,EAAE,KAAK,QAAQ,KAAK,2BAAO,GAAG,EAAE,KAAK,SAAS,KAAK,qBAAM,GAAG,EAAE,KAAK,cAAc,KAAK,uCAAS,GAAG,EAAE,KAAK,YAAY,KAAK,iCAAQ,GAAG,EAAE,KAAK,SAAS,KAAK,qBAAM,GAAG,EAAE,KAAK,gBAAiB,KAAK,uCAAS,GAAG,EAAE,KAAK,WAAY,KAAK,qBAAM,GAAG,EAAE,KAAK,UAAU,KAAK,qBAAM,GAAG,EAAE,KAAK,UAAU,KAAK,qBAAM,GAAG,EAAE,KAAK,SAAS,KAAK,qBAAM,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,SAAS,KAAK,2BAAO,GAAG,EAAE,KAAK,SAAS,KAAK,2BAAO,GAAG,EAAE,KAAK,WAAW,KAAK,iCAAQ,GAAG,EAAE,KAAK,eAAgB,KAAK,uCAAS,GAAG,EAAE,KAAK,SAAS,KAAK,qBAAM,GAAG,EAAE,KAAK,SAAU,KAAK,qBAAM,GAAG,EAAE,KAAK,WAAW,KAAK,uCAAS,GAAG,EAAE,KAAK,cAAc,KAAK,kCAAS,GAAG,EAAE,KAAK,WAAW,KAAK,kCAAS,GAAG,EAAE,KAAK,YAAY,KAAK,iCAAQ,GAAG,EAAE,KAAK,aAAa,KAAK,2BAAO,GAAG,EAAE,KAAK,YAAa,KAAK,uCAAS,GAAG,EAAE,KAAK,kBAAkB,KAAK,0DAAa,CAAC;AAjE/yD,OAkEV,gBAAgB,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAlE5M,OAmEV,eAAe,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAnE5M,OAoEV,YAAY,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AApErM,OAqEV,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AArErM,OAsEV,aAAa,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAtEzM,OAuEV,oBAAoB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAvE/M,OAwEV,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAxEtM,OAyEV,qBAAqB,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAzE9N,OA0EV,oBAAoB,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AA1E9N,OA2EV,iBAAiB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AA3EvN,OA4EV,wBAAwB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AA5E7N,OA6EV,gBAAgB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AA7ExN,OA8EV,uBAAuB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AA9E9N,OA+EV,iBAAiB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AA/ExN,OAgFV,gBAAgB,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAhF7O,IAAqB,QAArB;;;ACDA,IAAqB,cAArB,MAAqB,YAAW;AAAA,EAC5B,OAAO,UAAU,IAAUA,SAAgB;AACvC,QAAI,GAAG,aAAa,MAAM,GAAG;AACzB,aAAO,CAAC;AAAA,IACZ;AAEA,UAAM,SAAS,GAAG,OACd,OAAO,GAAG;AAGd,QAAK,WAAW,KAAK,QAAQA,UAAS,KAAK;AAAA,IAErC,SAAS,KAAK,SAAS,KACpB,EAAG,WAAW,KAAK,SAAS,KAAO,CAACA,WAAU,WAAW,KAAK,SAAS,MACvE,EAAE,WAAW,KAAK,SAAS,IAAO;AACvC,aAAO,CAAC,YAAW,aAAa,IAAIA,OAAM,CAAC;AAAA,IAC/C,WAES,WAAW,GAAG;AACnB,aAAO,YAAW,OAAO,IAAIA,OAAM;AAAA,IACvC,OAEK;AACD,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AA8IJ;AAvKqB,YA0BV,eAAe,SAAU,IAAUA,SAAgB;AACtD,QAAM,QAAQ,GAAG,MACb,SAAS,GAAG,OACZ,OAAO,GAAG,KACV,OAAO,IAAI,MAAM,OAAO,GAAG,EAAE,GAE7B,QAAQA,UAAS,IAAI,MAAM,IAAI,KAAK,aAAa,IAEjD,OAAS,WAAW,KAAK,SAAU,OAAO,KAAO,IAC7C,MAAM,OAAO,GAAG,OAAO,KAAK,MAAM,SAAS,CAAC,IAAI;AACxD,MAAI,MAAM,OAAO;AACjB,MAAI,QAAQ;AAAG,UAAM;AAKrB,MAAK,CAACA,WAAW,KAAK,aAAa,MAAM,MAAM,SAAS,KAAM,WAAW,KAAK,OAAO,IAAK;AACtF,UAAM,QAAQ,IAAI,IAAI,MAAM;AAAA,EAChC;AAEA,MAAI,KAAK,aAAa,MAAM,MAAM,SAAS,KAAM,WAAW,KAAK,OAAO,IAAK;AACzE,UAAM,QAAQ,IAAI,IAAI,MAAM;AAAA,EAChC;AAEA,SAAO;AACX;AAnDiB,YAoDV,SAAS,SAAU,IAAUA,SAAgB;AAChD,MAAI;AACJ,QAAM,QAAQ,GAAG,MACb,OAAO,GAAG,KAGV,OAAO,IAAI,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,GACjD,UAAU,KAAK,aAAa,GAC5B,cAAc,YAAY,IAAI,IAAM,KAAK,UAAU,KAAK,IAAK,GAC7D,eAAe,IAAI,MAAM,OAAO,GAAG,aAAa,KAAK,MAAM,cAAc,CAAC,GAE1E,OAAO,SAAS,cAAc,IAAI,MAAM,OAAO,OAAO,eAAe,CAAC,IAAI;AAE9E,UAAQ,YAAW,aAAa,cAAcA,OAAM,GAAG;AAAA,IACnD,KAAK;AACD,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,MACR;AACA;AAAA,IACJ,KAAK;AACD,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,MACR;AACA;AAAA,IACJ,KAAK;AACD,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,MACR;AACA;AAAA,IACJ,KAAK;AAED,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,GAAG,CAAC;AACjB;AAAA,MACR;AACA;AAAA,IACJ,KAAK;AACD,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,MACR;AACA;AAAA,IACJ,KAAK;AACD,cAAQ,MAAM;AAAA,QACV,KAAK;AACD,mBAAS,CAAC,CAAC;AACX;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,QACJ,KAAK;AACD,mBAAS,CAAC,GAAG,CAAC;AACd;AAAA,MACR;AACA;AAAA,EACR;AAEA,SAAO,UAAU,CAAC;AACtB;AAtKJ,IAAqB,aAArB;;;ACCA,IAAqB,WAArB,MAAqB,SAAQ;AAAA,EA2CzB,OAAO,OAAO,OAA4F;AACtG,UAAM,eAAe,MAAM;AAC3B,QAAI,SAAS,IAAI,KAAa,KAAa,OAAe,OAAe,OAAe,OAAe,GAAW;AAElH,YAAQ,MAAM,MAAM,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC;AACzC,YAAQ,MAAM,MAAM,IAAI,KAAK,MAAM,GAAG,EAAE,CAAC;AAGzC,QAAI,eAAe;AACf,aAAO;AACX,QAAI,gBAAgB,OAAO;AACvB,YAAM,IAAI,MAAM,OAAQ,eAAe,SAAS,IAAK;AACrD,aAAO,eAAe,SAAS;AAAA,IACnC,OACK;AACD,YAAM,IAAI,MAAM,OAAO,eAAe,SAAS,IAAI;AACnD,YAAM,MAAM,OAAO,eAAe,SAAS,IAAI;AAAA,IACnD;AAGA,YAAQ,QAAQ;AAChB,YAAQ;AAGR,QAAI,OAAO;AACP,eAAQ,aAAa,CAAC,EAAE,MAAM;AAAA;AAE9B,eAAQ,aAAa,CAAC,EAAE,MAAM;AAGlC,QAAI;AACJ,WAAO,IAAI,QAAQ;AACf;AACA,cAAQ,QAAQ,SAAQ,aAAa,CAAC,EAAE,MAAM;AAC9C,UAAI,MAAM,OAAO;AACb,gBAAS,SAAQ,aAAa,CAAC,EAAE,MAAM,KAAM,QAAQ;AAErD,gBAAQ,OAAO;AAAA,UACX,KAAK;AACD,oBAAQ,QAAQ;AAChB;AAAA,UACJ,KAAK;AACD,oBAAQ,QAAQ;AAChB;AAAA,UACJ,KAAK;AACD,oBAAQ,QAAQ;AAChB;AAAA,UACJ;AACI;AAAA,QACR;AAEA,YAAI,IAAI;AAAA,MACZ;AACA;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,UAAU,SAAQ,aAAa,KAAK;AAAA,MACpC,KAAK;AAAA,IACT;AAAA,EACJ;AAAA;AAAA,EAGA,OAAO,SAAS,IAA+B;AAC3C,UAAM,IAAI,SAAQ,OAAO,EAAE;AAC3B,QAAI,MAAM,MAAM;AACZ,aAAO,EAAE,SAAS,MAAM,WAAW,EAAE,IAAI,SAAS;AAAA,IACtD;AAAA,EACJ;AAAA;AAAA,EAGA,OAAO,YAAY,IAA+B;AAC9C,UAAM,IAAI,SAAQ,OAAO,EAAE;AAC3B,QAAI,MAAM,MAAM;AACZ,aAAO,EAAE,SAAS,MAAM,mBAAS,MAAM,eAAe,EAAE,GAAG;AAAA,IAC/D;AAAA,EACJ;AACJ;AAxHqB,SACV,eAAe;AAAA,EAClB,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,WAAW,KAAK,sBAAO,KAAK,IAAI;AAAA,EACvC,EAAE,KAAK,UAAU,KAAK,wCAAU,KAAK,IAAI;AAAA,EACzC,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,IAAI;AAAA,EAC1C,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,QAAQ,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACpC,EAAE,KAAK,UAAU,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACtC,EAAE,KAAK,WAAW,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACvC,EAAE,KAAK,gBAAgB,KAAK,+CAAY,KAAK,GAAG;AAAA,EAChD,EAAE,KAAK,UAAU,KAAK,kCAAS,KAAK,GAAG;AAAA,EACvC,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,cAAc,KAAK,+CAAY,KAAK,GAAG;AAAA,EAC9C,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,WAAW,KAAK,kCAAS,KAAK,IAAI;AAAA,EACzC,EAAE,KAAK,WAAW,KAAK,wCAAU,KAAK,IAAI;AAAA,EAC1C,EAAE,KAAK,WAAW,KAAK,kCAAS,KAAK,GAAG;AAAA,EACxC,EAAE,KAAK,SAAS,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACrC,EAAE,KAAK,SAAS,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACrC,EAAE,KAAK,SAAS,KAAK,kCAAS,KAAK,GAAG;AAAA,EACtC,EAAE,KAAK,aAAa,KAAK,wCAAU,KAAK,GAAG;AAAA,EAC3C,EAAE,KAAK,cAAc,KAAK,yCAAW,KAAK,IAAI;AAAA,EAC9C,EAAE,KAAK,eAAe,KAAK,qDAAa,KAAK,IAAI;AAAA,EACjD,EAAE,KAAK,cAAc,KAAK,+CAAY,KAAK,IAAI;AAAA,EAC/C,EAAE,KAAK,aAAa,KAAK,8CAAW,KAAK,IAAI;AAAA,EAC7C,EAAE,KAAK,UAAU,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACtC,EAAE,KAAK,WAAW,KAAK,wCAAU,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,gBAAgB,KAAK,qDAAa,KAAK,GAAG;AAAA,EACjD,EAAE,KAAK,WAAW,KAAK,wCAAU,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,IAAI;AAAA,EAC1C,EAAE,KAAK,YAAY,KAAK,kCAAS,KAAK,IAAI;AAAA,EAC1C,EAAE,KAAK,WAAW,KAAK,kCAAS,KAAK,IAAI;AAAA,EACzC,EAAE,KAAK,YAAY,KAAK,wCAAU,KAAK,GAAG;AAAA,EAC1C,EAAE,KAAK,WAAW,KAAK,kCAAS,KAAK,GAAG;AAAA,EACxC,EAAE,KAAK,WAAW,KAAK,kCAAS,KAAK,GAAG;AAAA,EACxC,EAAE,KAAK,WAAW,KAAK,wCAAU,KAAK,GAAG;AAAA,EACzC,EAAE,KAAK,UAAU,KAAK,kCAAS,KAAK,GAAG;AAAA,EACvC,EAAE,KAAK,UAAU,KAAK,4BAAQ,KAAK,EAAE;AAAA,EACrC,EAAE,KAAK,SAAS,KAAK,4BAAQ,KAAK,GAAG;AAAA,EACrC,EAAE,KAAK,SAAS,KAAK,4BAAQ,KAAK,EAAE;AAAA,EACpC,EAAE,KAAK,UAAU,KAAK,sBAAO,KAAK,GAAG;AAAC;AAzC9C,IAAqB,UAArB;;;ACLA,IAAM,aAAmD,CAAC;AAA1D,IAEE,oBAAoB;AAFtB,IAIE,aAAa;AAJf,IAME,mBAAkB,oBAAI,KAAK,CAAC,GAAE,kBAAkB;AAQlD,IAAqB,QAArB,MAAqB,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBzB,YACE,KAMA,OACA,KACA,KACA;AAEA,SAAK,MAAM;AAEX,SAAK,QAAQ;AAEb,SAAK,OAAO;AAEZ,SAAK,MAAM;AAEX,QAAI,UAAU,WAAW,GAAG;AAC1B,WAAK,QAAQ,OAAM,MAAM,oBAAI,KAAK,CAAC,CAAC;AAAA,IACtC,WAAW,eAAe,MAAM;AAC9B,UAAI,MAAM,YAAY,GAAG,GAAG;AAC1B,aAAK,QAAQ,OAAM,MAAM,GAAG,CAAC;AAAA,MAC/B,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF,WAAW,MAAM,QAAQ,GAAG,KAAK,IAAI,UAAU,GAAG;AAChD,WAAK,MAAM,IAAI,CAAC;AAChB,WAAK,QAAQ,IAAI,CAAC;AAClB,WAAK,OAAO,IAAI,CAAC;AACjB,WAAK,MAAO,IAAI,SAAS,KAAK,IAAI,CAAC,KAAM,OAAM,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,IACtF,WAAW,OAAO,MAAM,SAAS,GAAG,GAAG;AACrC,YAAM,IAAI,IAAI,KAAK,GAAa;AAChC,UAAI,MAAM,YAAY,CAAC,GAAG;AACxB,aAAK,QAAQ,OAAM,MAAM,CAAC,CAAC;AAAA,MAC7B,OAAO;AACL,cAAM,0CAA0C,MAAM;AAAA,MACxD;AAAA,IACF,WAAW,MAAM,SAAS,GAAG,GAAG;AAE9B,UAAI,UAAU,WAAW,GAAG;AAC1B,aAAK,QAAQ,GAAa;AAAA,MAC5B,OAEK;AACH,aAAK,OAAO;AACZ,aAAK,QAAQ,SAAS;AACtB,aAAK,MAAM,OAAO;AAElB,aAAK,MAAM,OAAO,OAAM,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,MAC/D;AAAA,IACF,WAES,OAAO,QAAQ,UAAU;AAChC,YAAM,SAAS;AACf,UAAI,MAAM,SAAS,OAAO,IAAI,GAAG;AAC/B,aAAK,MAAM,OAAO,OAAO;AACzB,aAAK,QAAQ,OAAO,SAAS;AAC7B,aAAK,OAAO,OAAO;AACnB,aAAK,MAAM,OAAO,OAAO,OAAM,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,QAAQ,UAAkB;AACxB,UAAM,MAAM,OAAM,QAAQ,QAAQ;AAClC,SAAK,OAAO,IAAI;AAChB,SAAK,QAAQ,IAAI;AACjB,SAAK,MAAM,IAAI;AACf,SAAK,MAAM;AAAA,EACb;AAAA;AAAA;AAAA,EAIA,UAAgB;AACd,WAAO,OAAM,UAAU,KAAK,GAAG;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAIA,eAAuB;AACrB,WAAO,KAAK,IAAI,KAAK,MAAM,CAAC;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,YAAoB;AACtB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA;AAAA,EAEA,QAAQ,MAAqB;AAC3B,WAAO,IAAI,OAAM,KAAK,MAAM,IAAI;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,UAAU,QAAuB;AAC/B,QAAI,OAAO,KAAK,MACd,QAAQ,KAAK,OACb,MAAM,KAAK,KACX,MAAM,OAAM,YAAY,IAAI;AAE9B,aAAS,IAAI,GAAG,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK;AACzC,UAAI,SAAS,GAAG;AACd,iBAAS;AACT,YAAI,QAAQ,KAAK;AACf,kBAAQ;AAAA,QACV;AACA,YAAI,UAAU,GAAG;AACf,kBAAQ;AACR,gBAAM,OAAM,YAAY,IAAI;AAAA,QAC9B;AAAA,MACF,WAAW,SAAS,GAAG;AACrB,iBAAS;AACT,YAAI,UAAU,GAAG;AACf,kBAAQ;AAAA,QACV;AACA,YAAI,UAAU,GAAG;AACf,kBAAQ;AACR,gBAAM,OAAM,YAAY,IAAI;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AACA,QAAI,QAAQ,MAAM,OAAM,WAAW,MAAM,KAAK,MAAM,IAAI;AACtD,YAAM;AAAA,IACR;AAEA,WAAO,IAAI,OAAM,MAAM,OAAO,GAAG;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,SAAS,OAAsB;AAC7B,QAAI,OAAO,KAAK,OAAO,OACrB,QAAQ,KAAK,OACb,MAAM,KAAK;AAEb,QAAI,UAAU,MAAM,CAAC,OAAM,UAAU,IAAI,GAAG;AAC1C,cAAQ;AAAA,IACV,WAAW,UAAU,KAAK,QAAQ,MAAM,CAAC,OAAM,eAAe,IAAI,GAAG;AACnE,cAAQ;AACR,YAAM;AAAA,IACR,WAAW,UAAU,KAAK,QAAQ,MAAM,OAAM,cAAc,IAAI,GAAG;AACjE,cAAQ;AACR,YAAM;AAAA,IACR;AAEA,QAAI,QAAQ,MAAM,OAAM,WAAW,MAAM,KAAK,MAAM,IAAI;AACtD,YAAM;AAAA,IACR;AAEA,WAAO,IAAI,OAAM,MAAM,OAAO,GAAG;AAAA,EACnC;AAAA,EACA,iBAAiB,QAAuB;AACtC,UAAM,UAAU,IAAI,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;AACjD,YAAQ,SAAS,QAAQ,SAAS,IAAI,MAAM;AAC5C,WAAO,IAAI,OAAM,OAAO;AAAA,EAC1B;AAAA,EACA,gBAAgB,OAAsB;AACpC,UAAM,UAAU,IAAI,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC;AACjD,YAAQ,YAAY,QAAQ,YAAY,IAAI,KAAK;AACjD,WAAO,IAAI,OAAM,OAAO;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,IAAmB;AAC1B,WAAO,GAAG,MAAM,KAAK;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,WAAW,IAAmB;AAC5B,QAAI,QAAQ,GAAG,OACb,OAAO,GAAG,MACV,SAAS;AAEX,WAAO,EAAE,SAAS,KAAK,QAAQ,UAAU,KAAK,QAAQ;AACpD,UAAI,KAAK,MAAM,GAAG,KAAK;AACrB;AACA;AACA,YAAI,QAAQ,OAAM,YAAY,IAAI,GAAG;AACnC,kBAAQ;AAAA,QACV,WAAW,UAAU,GAAG;AACtB;AAAA,QACF;AAAA,MACF,OAAO;AACL;AACA;AACA,YAAI,QAAQ,GAAG;AACb,kBAAQ,OAAM,YAAY,IAAI;AAAA,QAChC,WAAW,UAAU,GAAG;AACtB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,IAAmB;AAChC,QAAI,SAAS,KAAK,WAAW,EAAE;AAC/B,QAAI,UAAU,KAAK,KAAK,MAAM,GAAG,KAAK;AACpC;AAAA,IACF,WAAW,SAAS,KAAK,KAAK,MAAM,GAAG,KAAK;AAC1C;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,UAAU,IAAmB;AAC3B,QAAI,OAAO,GAAG,OAAO,KAAK;AAC1B,QAAI,KAAK,QAAQ,GAAG,SAAU,KAAK,UAAU,GAAG,SAAS,KAAK,MAAM,GAAG,KAAM;AAC3E;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,IAAmB;AAC/B,QAAI,OAAO,GAAG,OAAO,KAAK;AAC1B,QAAI,QAAQ,MAAM,KAAK,QAAQ,GAAG,SAAU,KAAK,UAAU,GAAG,SAAS,KAAK,MAAM,GAAG,MAAO;AAC1F;AAAA,IACF,WACE,OAAO,MACN,KAAK,QAAQ,GAAG,SAAU,KAAK,UAAU,GAAG,SAAS,KAAK,MAAM,GAAG,MACpE;AACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,eAAyB,gBAAkC;AAClE,YACG,gBAAiB,iBAAiB,MAAM,MAAO,cAAc,KAAK,aAAa,CAAC,IAAI,SACrF,QACA,MAAM,WAAW,KAAK,GAAG,IACzB,SACA,KAAK,UAAU;AAAA,EAEnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAA0B;AACtC,YACG,UAAU,cAAc,KAAK,aAAa,CAAC,IAAI,MAAM,MACtD,gBAAgB,KAAK,KAAK,IAC1B,MACA,KAAK,IAAI,SAAS,IAClB,OACA,KAAK,KAAK,SAAS;AAAA,EAEvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,WAAW,MAAc;AACjC,WACE,gBAAgB,KAAK,KAAK,KACzB,KAAK,UAAU,MAAM,OAAM,UAAU,KAAK,IAAI,IAAI,aAAa,QAC/D,WAAW,KAAK,KAAK,SAAS,IAAI;AAAA,EAEvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,eAAiC;AAC3C,YACG,CAAC,gBAAgB,cAAc,KAAK,aAAa,CAAC,IAAI,MAAM,MAC7D,MAAM,eAAe,KAAK,GAAG,IAC7B,MACA,gBAAgB,KAAK,KAAK,KACzB,KAAK,UAAU,MAAM,OAAM,UAAU,KAAK,IAAI,IAAI,qCAAY,OAC/D,MAAM,eAAe,KAAK,OAAO,GAAI;AAAA,EAEzC;AAAA;AAAA,EAGA,eAAuB;AACrB,QAAI,YAAY;AAChB,QACG,KAAK,UAAU,KAAK,KAAK,MAAM,MAChC,KAAK,UAAU,KACd,KAAK,UAAU,KAAK,KAAK,MAAM,GAChC;AACA,YAAM,QAAQ,IAAI,OAAM,KAAK,MAAM,GAAG,EAAE;AACxC,kBAAY,MAAM,SAAS,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqBA,SAA0B;AAC7C,WACE,KAAK,SAASA,OAAM,KACnB,KAAK,UAAU,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,KAAK,GAAG,KAC1D,KAAK,UAAU,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,KAAK,GAAG;AAAA,EAEnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAASA,SAA0B;AACjC,UAAM,MAAM,KAAK;AACjB,YAAQ,KAAK,OAAO;AAAA,MAClB,KAAK;AACH,YAAI,QAAQ,MAAM,QAAQ;AAAI,iBAAO;AACrC,YAAI,CAACA,YAAW,QAAQ,MAAM,QAAQ;AAAK,iBAAO;AAClD;AAAA,MACF,KAAK;AACH,YAAI,QAAQ,KAAM,CAACA,WAAU,QAAQ;AAAI,iBAAO;AAChD;AAAA,MACF,KAAK;AACH,YAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AACpC,iBAAO;AAAA,QACT;AACA,YAAI,CAACA,YAAW,QAAQ,MAAM,QAAQ;AAAK,iBAAO;AAClD;AAAA,IACJ;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,eAAwB;AACtB,WACG,KAAK,UAAU,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,KAC9C,KAAK,UAAU,KAAK,KAAK,QAAQ,KACjC,KAAK,UAAU,KAAK,KAAK,QAAQ,MACjC,KAAK,UAAU,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,EAAE;AAAA,EAEtD;AAAA;AAAA,EAGA,oBAA6B;AAC3B,UAAM,MAAM,KAAK,aAAa;AAE9B,QAAI,QAAQ,GAAG;AACb,aAAO;AAAA,IACT,WAAW,QAAQ,GAAG;AAEpB,aAAO;AAAA,IACT;AAEA,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA;AAAA,EAGA,kBAAkBA,SAA0B;AAC1C,QAAI,MAAM,KAAK,aAAa;AAC5B;AAAA;AAAA,MAEE,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG;AAAA,MAEnB,KAAK,aAAa;AAAA,OAEjB,QAAQ,KAAM,QAAQ,MAAM,CAACA,WAAU,KAAK,UAAU;AAAA,MAEvD,KAAK,QAAQ;AAAA;AAAA,EAEjB;AAAA;AAAA,EAGA,kBAAkB,UAAoB,iBAA2B;AAC/D,QAAI,CAAC,UAAU;AACb,YAAM;AAAA,IACR;AACA,QAAI,KAAK,kBAAkB,GAAG;AAC5B,aAAO,OAAO,kBAAkB,MAAM,QAAQ;AAAA,IAChD,WAAW,iBAAiB;AAC1B,aAAO;AAAA,IACT,OAAO;AACL,YAAM,2BAA2B,KAAK,SAAS;AAAA,IACjD;AAAA,EACF;AAAA;AAAA,EAGA,SAASA,SAAiB;AACxB,WAAO,IAAI,MAAM,MAAMA,OAAM;AAAA,EAC/B;AAAA;AAAA,EAGA,cAAcA,SAAiB;AAC7B,WAAO,WAAW,UAAU,MAAMA,OAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,UAAoB,iBAA2B;AAC9D,QAAI,CAAC,UAAU;AACb,YAAM;AAAA,IACR;AACA,WAAO,OAAO,YAAY,MAAM,UAAU,CAAC,eAAe;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,UAAoB;AAC7B,QAAI,CAAC,UAAU;AACb,YAAM;AAAA,IACR;AACA,WAAO,OAAO,WAAW,MAAM,QAAQ;AAAA,EACzC;AAAA;AAAA,EAGA,cAAc,UAAoB,QAAgB;AAChD,QAAI,CAAC,UAAU;AACb,YAAM;AAAA,IACR;AACA,WAAO,OAAO,cAAc,MAAM,UAAU,MAAM;AAAA,EACpD;AAAA;AAAA,EAGA,aAAa;AACX,WAAO,QAAQ,SAAS,IAAI,KAAK;AAAA,EACnC;AAAA;AAAA,EAGA,gBAAgB;AACd,WAAO,QAAQ,YAAY,IAAI,KAAK;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,OAAO,QACL,KAMA,OACA,KACA,KACO;AACP,QAAI,UAAU,WAAW,GAAG;AAC1B,aAAO,IAAI,OAAM;AAAA,IACnB,WAIS,MAAM,SAAS,GAAG,KAAK,UAAU,WAAW,GAAG;AACtD,aAAO,IAAI,OAAM,KAAK,GAAG,CAAC;AAAA,IAC5B,OAAO;AACL,aAAO,IAAI,OAAM,KAAK,OAAO,KAAK,GAAG;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,OAAO,MAAa;AAClB,WAAO,IAAI,OAAM;AAAA,EACnB;AAAA;AAAA,EAGA,OAAO,QAAQ,QAA8D;AAE3E,QAAI,OAAO,OAAO,MAAM,MAAM,UAAU,SAAS,IAAI,MAAM,IAAI,GAC7D,OACA;AAGF,WAAO,UAAU,OAAM,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG;AAC5C;AAAA,IACF;AAEA,YAAQ,SAAS,OAAM,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI;AAC/C,WAAO,SAAS,OAAM,MAAM,MAAM,OAAO,OAAM,WAAW,MAAM,KAAK,CAAC,GAAG;AACvE;AAAA,IACF;AAEA,UAAM,SAAS,OAAM,MAAM,MAAM,OAAO,CAAC,IAAI;AAE7C,WAAO,EAAE,MAAM,OAAO,IAAI;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAM,MAAoB;AAE/B,UAAM,KAAK,KAAK,QAAQ,IAAI,KAAK,kBAAkB,IAAI,KAErD,cAAc,KAAK,MAAM,KAAK,UAAU;AAE1C,WAAO,oBAAoB;AAAA,EAC7B;AAAA;AAAA,EAGA,OAAO,MAAM,MAAc,OAAe,KAAqB;AAE7D,QAAI,YAAY;AAChB,QAAI,QAAQ,GAAG;AAEb,UAAI,IAAI;AACR,aAAO,KAAK,OAAM,YAAY,IAAI,GAAG;AACnC,qBAAa,OAAM,WAAW,MAAM,CAAC;AACrC;AAAA,MACF;AACA,UAAI;AACJ,aAAO,IAAI,OAAO;AAChB,qBAAa,OAAM,WAAW,MAAM,CAAC;AACrC;AAAA,MACF;AAAA,IACF,OAAO;AAEL,UAAI,IAAI;AACR,aAAO,IAAI,OAAO;AAChB,qBAAa,OAAM,WAAW,MAAM,CAAC;AACrC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,aAAa,OAAM,MAAM,IAAI,IAAI;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,UAAU,KAAmB;AAKlC,UAAM,SAAS,kBAAkB,IAAI,IAAI,GAKvC,iBAAiB,MAAM,oBAAoB;AAE7C,WAAO,IAAI,KAAK,iBAAiB,UAAU;AAAA,EAC7C;AAAA;AAAA,EAGA,OAAO,WAAW,MAAc,OAAuB;AACrD,YAAQ,OAAO;AAAA,MAEb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MAET,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MAET,KAAK;AACH,eAAO,OAAM,eAAe,IAAI,IAAI,KAAK;AAAA,MAE3C,KAAK;AACH,eAAO,OAAM,cAAc,IAAI,IAAI,KAAK;AAAA,MAE1C,KAAK;AACH,eAAO,OAAM,UAAU,IAAI,IAAI,KAAK;AAAA,IACxC;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,MAAM,MAAsB;AAGjC,UAAM,SAAS,WAAW,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,IAAI;AAE5D,QAAI,QAAQ;AACV,aAAO,OAAO;AAAA,IAChB;AAEA,UAAM,SAAS,MAAM;AAAA,MACjB,MAAM,MAAM,OAAO,OAAO,KAAK,EAAE;AAAA,MAC/B,OAAO,OAAO,KAAK;AAAA,OAClB,MAAM,OAAO,KAAK,MAAM,KAAK;AAAA,IAClC,GACA,QAAQ,MAAM,OAAO,SAAS,OAC9B,QAAQ,IAAI,KAAK,SAAS,MAAM,MAAM,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM,QAAQ,IAAI,GACrF,UAAU,MAAM,MAAM,IAAI,KAAK,SAAS,QAAQ,EAAE,GAClD,YAAY,QAAQ,QAAQ,MAAO,QAAQ;AAE7C,QAAI;AAKJ,QACE,aAAa,SACZ,UAAU,MAAM,KAAK,aAAa,QAAQ,CAAC,OAAM,UAAU,IAAI,KAC/D,UAAU,MAAM,KAAK,aAAa,SAAS,OAAM,UAAU,OAAO,CAAC,GACpE;AAEA,eAAS,UAAU;AAAA,IACrB,OAAO;AACL,eAAS;AAAA,IACX;AAGA,QAAI,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG;AAClC,gBAAU;AAAA,IACZ;AAGA,eAAW,KAAK,EAAE,MAAY,SAAS,OAAO,CAAC;AAE/C,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,UAAU,MAAsB;AACrC,WAAO,OAAM,MAAM,OAAO,CAAC,IAAI,OAAM,MAAM,IAAI;AAAA,EACjD;AAAA;AAAA,EAGA,OAAO,eAAe,MAAuB;AAC3C,WAAO,OAAM,UAAU,IAAI,IAAI,OAAO;AAAA,EACxC;AAAA;AAAA,EAGA,OAAO,cAAc,MAAuB;AAC1C,WAAO,OAAM,UAAU,IAAI,IAAI,OAAO;AAAA,EACxC;AAAA;AAAA,EAGA,OAAO,UAAU,MAAuB;AACtC,YAAQ,IAAI,OAAO,KAAK,KAAK;AAAA,EAC/B;AAAA;AAAA,EAGA,OAAO,YAAY,MAAsB;AACvC,WAAO,OAAM,UAAU,IAAI,IAAI,KAAK;AAAA,EACtC;AACF;;;ACluBA,IAAqB,SAArB,MAAqB,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUxB,OAAO,YAAY,MAAoB,UAAoB,oBAAoB,MAAgB;AAC3F,QAAI,gBAAgB,OAAO;AACvB,aAAO,KAAK,QAAQ;AAAA,IACxB,WACS,gBAAgB,QAAQ;AAC7B,aAAO,IAAI,KAAK,IAAI;AAAA,IACxB;AAEA,QAAI,CAAC,MAAM,YAAY,IAAI,GAAG;AAC1B,YAAM;AAAA,IACV;AAEA,QAAI,SAAS,QACT,YAAY,IAAI,YAAY,IAAI,UAAU,GAAG,YAAY,GAAG,WAAW,GACvE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GACzD,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GACzF,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ;AAElE,UAAM,MAAM,QAAO,UAAU,IAAI,GAC7B,cAAc,SACd,oBAAoB,QAAO,SAAS,WAAW,SAAS,IACpD,QAAO,SAAS,KAAK,KAAK,eAAe,eACpC,oBAAoB,SAAS,YAAY,GAAG,CAAC;AAE1D,gBAAY,KAAK,MAAM,iBAAiB;AACxC,iBAAa,oBAAoB,aAAa;AAC9C,aAAS,KAAK,IAAI,UAAU,QAAO,SAAS,WAAW,SAAS,CAAC;AACjE,gBAAY,SAAS;AACrB,cAAU,YAAY;AACtB,eAAW,SAAS;AACpB,aAAS,KAAK,IAAI,UAAU,QAAQ;AACpC,aAAS,KAAK,IAAI,UAAU,QAAQ;AACpC,YAAQ,OAAO,IAAI,WAAW;AAC9B,WAAO,OAAO,KAAK,WAAW;AAC9B,aAAS,QAAO,EAAE,KAAK;AACvB,aAAS,QAAO,EAAE,MAAM;AACxB,YAAQ,QAAO,EAAE,IAAI;AACrB,YAAQ,QAAO,EAAE,KAAK;AACtB,YAAQ,WAAW,KAAK,KAAK,UAAU,KAAK,IAAI,UAAU,MAAM,CAAC;AACjE,WAAO,WAAW,KAAK,KAAK,UAAU,KAAK,IAAI,UAAU,KAAK,CAAC;AAC/D,QAAI,KAAK,IAAI,QAAQ,MAAM,MAAM,IAAI,IAAI;AACrC,eAAS;AAAA,IACb;AACA,QAAI,QAAQ,KAAK;AACb,eAAS;AAAA,IACb;AACA,QAAI,KAAK,IAAI,OAAO,MAAM,KAAK,IAAI,IAAI;AACnC,cAAQ;AAAA,IACZ;AACA,QAAI,OAAO,KAAK;AACZ,cAAQ;AAAA,IACZ;AACA,cAAU,QAAQ;AAClB,aAAS,UAAU,KAAK,IAAI,UAAU,MAAM;AAC5C,aAAS,KAAK,KAAK,IAAI,SAAS,MAAM;AACtC,aAAS,SAAS,SAAS,WAAW,SAAS;AAC/C,aAAS,OAAO;AAChB,aAAS,UAAU,KAAK,IAAI,UAAU,KAAK;AAC3C,aAAS,KAAK,KAAK,IAAI,SAAS,MAAM;AACtC,YAAQ,SAAS,SAAS,WAAW,SAAS;AAC9C,QAAI,KAAK,IAAI,KAAK,KAAK,GAAG;AACtB,cAAQ,WAAW,KAAK,KAAK,KAAK;AAClC,gBAAW,MAAM,SAAS,KAAM,UAAU,QAAO,IAAI,KAAK,IAAI;AAC9D,gBAAU,QAAO,QAAQ,SAAS,SAAS,WAAW,MAAM,QAAQ;AACpE,UAAI,QAAQ,OAAO,IAAI;AACnB,gBAAQ,QAAQ;AAAA,MACpB;AAAA,IACJ;AAEA,QAAI,KAAK,IAAI,IAAI,KAAK,GAAG;AACrB,aAAO,WAAW,KAAK,KAAK,IAAI;AAChC,cAAS,QAAQ,KAAM,SAAS,QAAO,IAAI,IAAI,IAAI;AACnD,eAAS,QAAO,QAAQ,QAAQ,SAAS,WAAW,MAAM,QAAQ;AAClE,UAAI,OAAO,OAAO,KAAK,OAAO,OAAO,IAAI;AACrC,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ;AAEA,WAAO,EAAE,SAAkB,OAAe;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,WAAW,MAAoB,UAAoB;AACtD,WAAO,QAAO;AAAA,MACV,QAAO,YAAY,MAAM,UAAU,KAAK;AAAA,IAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,uBAAuB,UAA0B;AACpD,UAAM,OAAO,SAAS,SAClB,MAAM,SAAS;AAEnB,QAAI,SAAS,UAAa,MAAM,KAAK,IAAI,KAAK,QAAQ,UAAa,MAAM,IAAI,IAAI,GAAG;AAChF,aAAO,EAAE,MAAM,KAAK,QAAQ,IAAI;AAAA,IACpC;AACA,UAAM,QAAQ,MAAM,OAAO,MAAM,aAAa,GAAG,IAAI,MAAM,aAAa,IAAI,KAAK,CAAC;AAClF,WAAO,MAAM,WAAW,MAAM,KAAK;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,cAAc,MAAoB,UAAoB,QAAwB;AACjF,WAAO,QAAO;AAAA,MACV,QAAO,YAAY,MAAM,UAAU,KAAK;AAAA,MACxC;AAAA,IAAM;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,0BAA0B,UAAoB,QAAyB;AAC1E,QAAI,CAAC,YAAY,CAAC,SAAS,WAAW,CAAC,SAAS,QAAQ;AACpD,aAAO;AAAA,IACX;AACA,QAAI,OAAO,SAAS,SAChB,MAAM,SAAS;AAEnB,QAAI,CAAC,QAAQ,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,MAAM,IAAI,IAAI,GAAG;AACtD,aAAO;AAAA,IACX;AAEA,QAAI,QAAQ;AACR,aAAO,MAAM,WAAW,MAAM,CAAC,MAAM;AACrC,YAAM,MAAM,WAAW,KAAK,MAAM;AAAA,IACtC;AAEA,YAAQ,MAAM,aAAa,GAAG,IAAI,MAAM,aAAa,IAAI,KAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,iBAAiB,UAAoBA,SAAiB;AACzD,UAAM,UAAUA,UAAS,KAAK;AAC9B,QAAI,OAAO,SAAS,WAAW,MAAM,WAAW,SAAS,SAAS,CAAC,OAAO,GACtE,MAAM,SAAS,UAAU,MAAM,WAAW,SAAS,QAAQ,OAAO;AAEtE,QAAI,CAAC,QAAQ,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,MAAM,IAAI,IAAI,GAAG;AACtD,aAAO;AAAA,IACX;AAEA,YAAQ,MAAM,aAAa,GAAG,IAAI,MAAM,aAAa,IAAI,KAAK;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,kBAAkB,MAAoB,UAAoB;AAC7D,WAAO,QAAO;AAAA,MACV,QAAO,YAAY,MAAM,QAAQ;AAAA,MACjC;AAAA,IAAQ;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,8BAA8B,UAAoB,UAAoB;AACzE,WAAO,SAAS,UAAU,QAAO,4BAA4B,SAAS,QAAQ,QAAQ;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,4BAA4B,QAAc,UAAoB;AACjE,WAAO,MAAM,WAAW,QAAQ,EAAE,SAAS,kBAAkB,EAAE;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,UAAU,MAAY;AACzB,UAAM,QAAQ,KAAK,SAAS,GACxB,SAAS,MAAM,MAAM,kBAAkB,KAAK,YAAY,CAAC,GACzD,UAAU,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AACvE,WAAO,QAAQ,QAAQ,CAAC,IAAI,KAAK,QAAQ,KAAM,QAAQ,KAAK,OAAO,IAAK,IAAI;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,SAAS,KAAa,KAAa;AACtC,WAAQ,MAAM,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,EAAE,GAAW;AAChB,WAAQ,SAAS,IAAI;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,EAAE,GAAW;AAChB,WAAQ,IAAI,QAAQ,KAAK,IAAI,UAAU,CAAC,IAAI,OAAO,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAI,GAAW;AAClB,WAAQ,WAAW,IAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,SAAS,KAAa;AACzB,WAAO,WAAW;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,QAAQ,MAAc,MAAY,UAAoB;AACzD,QAAI,OAAO,GAAG;AACV,cAAQ;AAAA,IACZ;AACA,QAAI,OAAO,MAAM,MAAM,IAAI;AAC3B,UAAM,YAAY,OAAO,QAAQ,KAAK,KAClC,MAAM,MAAM,MAAM,QAAQ,GAC1B,MAAM,KAAK,MAAM,MAAQ,WAAW,IAAI;AAE5C,QAAI,MAAM,MAAM,UAAU,IAAI,GAAG;AAC7B;AAAA,IACJ;AAEA,WAAO,MAAM,QAAQ,EAAE,MAAY,QAAQ,KAAK,QAAQ,IAAI,CAAC;AAAA,EACjE;AACJ;;;ACvQA,IAAM,UAAU,QAAQ,IAAI,aAAa;AAElC,IAAM,aAAa,OAAO,OAAO;AAAA,EACpC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AACb,CAAC;AACM,IAAM,oBAAoB,OAAO,OAAO;AAAA,EAC3C,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,aAAa;AACjB,CAAC;AACM,IAAM,kBAAkB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,kBAAkB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,mBAAmB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,gBAAgB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,gBAAgB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,SAAN,MAAM,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBf,OAAO,eAAe,QAAgB;AAClC,QAAI,SAAS,GAAG;AACZ,YAAM;AAAA,IACV;AAEA,QAAI,SAAS,MAAM;AACf,YAAM;AAAA,IACV;AAEA,QAAI,IAAI,QACJ,SAAS;AAEb,QAAI,KAAK,KAAM;AACX,gBAAU,OAAM,IAAI,OAAM,OAAO,IAAK,IAAI,OAAS,GAAI,IAAI,CAAC,IAAI;AAChE,UAAI,IAAI;AAAA,IACZ;AAEA,WAAO,KAAK,KAAK;AACb,gBAAU;AACV,WAAK;AAAA,IACT;AAEA,QAAI,KAAK,KAAK;AACV,gBAAU,OAAM,IAAI,OAAM,OAAO,IAAK,IAAI,OAAQ,GAAG,IAAI,CAAC;AAC1D,UAAI,IAAI;AAAA,IACZ;AAEA,QAAI,KAAK,IAAI;AACT,gBAAU;AAAA,IACd,WAAW,KAAK,IAAI;AAChB,gBAAU;AAAA,IACd,OAAO;AACH,UAAI,IAAI,GAAG;AACP,kBAAU,OAAM,IAAI,OAAM,OAAO,IAAK,IAAI,MAAO,EAAE,IAAI,CAAC;AAAA,MAC5D;AACA,UAAI,IAAI,KAAK,GAAG;AACZ,kBAAU,OAAM,IAAK,IAAI,KAAM,CAAC;AAAA,MACpC;AAAA,IACJ;AACA,QAAI,SAAS,OAAO,SAAS,MAAO,IAAI;AACpC,eAAS,MAAM;AAAA,IACnB,WAAW,OAAO,SAAS,GAAG;AAC1B,eAAS,OAAO,MAAM,GAAG,EAAE,IAAI,MAAM,OAAO,OAAO,SAAS,CAAC;AAAA,IACjE;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,aAAa,MAAY,eAAwB,gBAAyB;AAC7E,QAAI,CAAC;AAAM;AACX,YACK,gBACK,iBACI,MACA,MACJ,cAAc,KAAK,OAAO,CAAC,IAAI,SACrC,QACA,OAAM,WAAW,KAAK,QAAQ,CAAC,IAC/B,SACA,iBAAiB,KAAK,SAAS,CAAC,IAChC,MACA,KAAK,YAAY,EAAE,SAAS;AAAA,EAEpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,kBAAkB,MAAY,YAAqB;AACtD,QAAI,CAAC;AAAM;AACX,UAAM,SAAS,KAAK,QAAQ,GACxB,WAAW,KAAK,SAAS,IAAI;AACjC,YACK,aACK,GAAG,QAAQ,IAAI,MAAM,KACrB,GAAG,SAAS,KAAK,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW,KAAK,MAAM,EAC9D,GAAG,QAAQ,MACf,MACA,KAAK,YAAY,EAAE,SAAS;AAAA,EAEpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,WAAW,KAAa;AAC3B,UAAM,IAAI,IAAI,SAAS;AACvB,QAAI,SAAS;AACb,QAAI,EAAE,WAAW,KAAK,EAAE,EAAE,SAAS,CAAC,MAAM,KAAK;AAC3C,cAAQ,EAAE,EAAE,SAAS,CAAC,GAAG;AAAA,QACrB,KAAK;AACD,mBAAS;AACT;AAAA,QACJ,KAAK;AACD,mBAAS;AACT;AAAA,QACJ,KAAK;AACD,mBAAS;AACT;AAAA,MACR;AAAA,IACJ;AACA,WAAO,IAAI;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,kBAAkB,MAAc;AACnC,WAAO,EAAE,OAAO,QAAS,CAAC,EAAE,OAAO,QAAQ,EAAE,OAAO;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,OAAO,SAAS,MAAc,OAAe,KAAa;AACtD,WAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,GAAG,EAAE,OAAO;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,QAAQ,MAAY;AAEvB,UAAM,SAAS;AAAA,MACX,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK,UAAU;AAAA,IAC3B;AACA,WAAO,OAAO,UAAU,IAAI;AACxB,aAAO,UAAU;AACjB,aAAO,UAAU;AAAA,IACrB;AACA,WAAO,OAAO,SAAS,GAAG;AACtB,aAAO,UAAU;AACjB,aAAO,UAAU;AAAA,IACrB;AACA,WAAO,OAAO,SAAS,GAAG;AACtB,aAAO,UAAU;AACjB,aAAO;AAAA,IACX;AACA,WAAO,OAAO,UAAU,IAAI;AACxB,aAAO,UAAU;AACjB,aAAO;AAAA,IACX;AACA,QAAI,OAAO,OAAO,GAAG;AACjB,aAAO,OAAO,KAAM,OAAO,OAAO;AAAA,IACtC;AACA,QAAI,OAAO,OAAO,IAAI;AAClB,aAAO,OAAO,OAAO,OAAO;AAAA,IAChC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,WAAW,MAAa,SAAoC;AAC/D,QAAI,CAAC;AAAM,aAAO;AAClB,WACI,QACA,OAAM,QAAQ;AAAA,MACV,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK,UAAU,WAAW;AAAA,MAClC,QAAQ,KAAK;AAAA,IACjB,CAAC;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,WAAW,MAAY,SAAiB;AAC3C,WAAO,OAAM,QAAQ;AAAA,MACjB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK,UAAU,KAAK;AAAA,IACjC,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAO,SAAS,aAAmB,WAAiB,eAAe,OAAO;AACtE,UAAM,WAAW,OAAM,aAAa,WAAW,GAC3C,WAAW,OAAM,aAAa,SAAS,GACvC,OAAO,OAAM,QAAQ;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QACI,YAAY,WACN,WAAW,WACX,eACI,WAAW,WACX,QAAQ,WAAW;AAAA,IACrC,CAAC;AAEL,WAAO;AAAA,MACH,GAAG;AAAA,MACH,MAAM,YAAY,YAAY,CAAC,eAAe,IAAI;AAAA,IACtD;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAa,MAAY;AAC5B,WAAO,OAAO,KAAK,OAAO,KAAK,KAAK,SAAS;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAa,MAAY;AAC5B,WAAO,OAAO,OAAM,aAAa,IAAI,IAAI,MAAM,KAAK,UAAU,KAAK;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,aAAa,OAAa;AAC7B,WAAO;AAAA,MACH,MAAM,MAAM,SAAS;AAAA,MACrB,QAAQ,MAAM,WAAW;AAAA,MACzB,QAAQ,MAAM,WAAW;AAAA,IAC7B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,YAAY,YAAmB,WAAkB;AACpD,QAAI,CAAC,cAAc,CAAC;AAAW,aAAO;AACtC,WAAO,OAAM,aAAa,SAAS,KAAK,OAAM,aAAa,UAAU;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,6BAA6B,MAAY;AAC5C,QAAI,IAAI;AACR,QAAI,KAAK,OAAO,GAAG;AACf,WAAK,GAAG,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,uBAAQ,0BAAM;AAAA,IACpE;AACA,QAAI,KAAK,SAAS,GAAG;AACjB,UAAI,EAAE,QAAQ;AACV,aAAK;AAAA,MACT;AACA,WAAK,GAAG,KAAK,OAAO,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,uBAAQ,0BAC1D;AAAA,IACR;AACA,SAAK,KAAK,UAAU,KAAK,GAAG;AACxB,UAAI,EAAE,QAAQ;AACV,aAAK;AAAA,MACT;AACA,WAAK,GAAG,KAAK,MAAM,KAAK,UAAU,CAAC,EAAE,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,mCAAU,gCAC7E;AAAA,IACR;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,0BAA0B,MAAY;AACzC,QAAI,IAAI;AACR,QAAI,KAAK,OAAO,GAAG;AACf,WAAK,GAAG,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,OACvD;AAAA,IACR;AACA,QAAI,KAAK,SAAS,GAAG;AACjB,UAAI,EAAE,QAAQ;AACV,aAAK;AAAA,MACT;AACA,WAAK,GAAG,KAAK,OAAO,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,SAC7D;AAAA,IACR;AACA,SAAK,KAAK,UAAU,KAAK,GAAG;AACxB,UAAI,EAAE,QAAQ;AACV,aAAK;AAAA,MACT;AACA,WAAK,GAAG,KAAK,MAAM,KAAK,UAAU,CAAC,EAAE,SAAS,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,SAC9E;AAAA,IACR;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,cAAc,WAAmB,QAA2C;AAC/E,UAAM,QAAQ,OAAM,MAAM,YAAY,CAAC,GACnC,OAAO,YAAY;AACvB,QAAI,MAAM;AAEV,QAAI,cAAc,GAAG;AACjB,aAAO;AAAA,IACX,OAAO;AACH,UAAI,cAAc,GAAG;AACjB,eAAO;AAAA,MACX,OAAO;AACH,YAAI,cAAc,IAAI;AAClB,iBAAO;AAAA,QACX,OAAO;AACH,iBAAO,OAAM,MAAM,OAAM,MAAM,YAAY,EAAE,CAAC,IAAI;AAClD,cAAI,YAAY,IAAI;AAChB,gBAAI,YAAY,MAAM,YAAY,KAAK,GAAG;AACtC,qBAAO;AAAA,YACX;AACA,mBAAO,OAAM,MAAM,OAAM,MAAM,YAAY,EAAE,CAAC,IAAI;AAAA,UACtD;AAAA,QACJ;AAAA,MACJ;AACA,cAAQ,aAAa,KAAK,uBAAQ,8BAAU;AAE5C,UAAI,WAAW,WAAW;AACtB,eAAO;AAAA,MACX;AAEA,UAAI,aAAa,GAAG;AAChB,eAAO;AACP,YAAI,UAAU,GAAG;AACb,iBAAO;AAAA,QACX,WAAW,UAAU,GAAG;AACpB,iBAAO;AAAA,QACX,WAAW,QAAQ,GAAG;AAClB,iBAAO,OAAM,MAAM,OAAM,MAAM,KAAK,CAAC,IAAI;AAAA,QAC7C;AACA,YAAI,SAAS,GAAG;AACZ,iBAAO;AAAA,QACX,WAAW,SAAS,GAAG;AACnB,iBAAO;AAAA,QACX,WAAW,OAAO,GAAG;AACjB,iBAAO,WAAM,OAAM,MAAM,IAAI,IAAI;AAAA,QACrC;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,WAAW,UAAU;AACrB,aAAO;AAAA,IACX,WAAW,WAAW,YAAY;AAC9B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,cAAc,MAAY,MAAe,MAAgB,SAAmB;AAC/E,UAAM,QAAQ,UAAU,KAAK,OAAO,KAAK;AACzC,WAAO;AAAA,MACH,MAAM,MAAM,KAAK,IAAI;AAAA,MACrB,QAAQ,MAAM,KAAK,MAAM;AAAA,MACzB,QAAQ,MAAM,KAAK,UAAU,CAAC;AAAA,IAClC;AACA,QAAI,MAAM;AACN,cACK,QAAQ,OAAO,IAAI,MAAM,OACzB,KAAK,KAAK,SAAS,IAChB,OACC,KAAK,SAAS,KACT,MAAM,KAAK,OAAO,SAAS,IAC3B,KAAK,OAAO,SAAS,KAC3B,QACE,KAAK,UAAU,KAAK,KAChB,OAAO,KAAK,UAAU,GAAG,SAAS,KACjC,KAAK,UAAU,GAAG,SAAS;AAAA,IAE9C,OAAO;AACH,cACK,QAAQ,OAAO,IAAI,MAAM,OACzB,KAAK,QAAQ,KACR,KAAK,QAAQ,IACT,KACA,KAAK,OACT,KAAK,OAAO,IAChB,SAAS,IACX,OACC,KAAK,SAAS,KACT,MAAM,KAAK,OAAO,SAAS,IAC3B,KAAK,OAAO,SAAS,KAC3B,QACE,KAAK,UAAU,KAAK,KAChB,OAAO,KAAK,UAAU,GAAG,SAAS,KACjC,KAAK,UAAU,GAAG,SAAS,MACjC,KAAK,OAAO,KAAK,QAAQ;AAAA,IAElC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,gBAAgB;AACnB,UAAM,OAAO,oBAAI,KAAK,GAClB,MAAM,IAAI,KAAK,KAAK,YAAY,GAAG,GAAG,CAAC,GACvC,MAAM,IAAI,KAAK,KAAK,YAAY,GAAG,GAAG,CAAC;AAC3C,WAAO,CAAC,OAAM;AAAA,MACV,KAAK,IAAI,IAAI,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI;AAAA,IACjE;AAAA,EACJ;AAAA;AAAA,EAGA,OAAO,UAAU,MAAY;AACzB,WACI,CAAC,OAAM,MAAM,KAAK,kBAAkB,IAAI,EAAE,MAC1C,OAAM,cAAc;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,MAAM,UAAoB,MAAY;AAEzC,QAAI,SAAS,cAAc,OAAM,cAAc,GAAG;AAE9C,aAAO,OAAM,UAAU,IAAI;AAAA,IAC/B,WAAW,SAAS,QAAQ;AACxB,aAAO,OAAM,aAAa,IAAI;AAAA,IAClC,OAAO;AACH,aAAO,OAAM,UAAU,IAAI;AAAA,IAC/B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,UAAU,MAAY;AACzB,UAAM,OAAO,KAAK,YAAY,GAC1B,QAAQ,KAAK,SAAS,IAAI,GAC1B,MAAM,KAAK,QAAQ,GACnB,OAAO,KAAK,SAAS;AAEzB,QAAI,QAAQ,KAAK,SAAS,IAAI;AAC1B,aAAO;AAAA,IACX,WAAW,QAAQ,KAAK,QAAQ,IAAI;AAChC,aAAO;AAAA,IACX,WAGS,UAAU,GAAG;AAGlB,YAAM,WAAW,OAAM,SAAS,MAAM,GAAG,CAAC,GAEtC,aAAa,YAAY,IAAI,IAAI,KAAM,WAAW,KAAK,IAAK;AAEhE,aAAO,MAAM,cAAe,QAAQ,cAAc,QAAQ;AAAA,IAC9D,OAEK;AAED,YAAM,WAAW,OAAM,SAAS,MAAM,IAAI,CAAC,GAEvC,aAAa,aAAa,IAAI,IAAI,KAAM,WAAW,KAAK,IAAK;AAEjE,aAAO,MAAM,cAAe,QAAQ,cAAc,OAAO;AAAA,IAC7D;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,aAAa,MAAY;AAC5B,UAAM,OAAO,KAAK,YAAY,GAC1B,QAAQ,KAAK,SAAS,IAAI,GAC1B,MAAM,KAAK,QAAQ,GACnB,OAAO,KAAK,SAAS;AAEzB,QAAI,QAAQ,MAAM,QAAQ,GAAG;AACzB,aAAO;AAAA,IACX,WAAW,QAAQ,KAAK,QAAQ,IAAI;AAChC,aAAO;AAAA,IACX,WAES,UAAU,GAAG;AAGlB,YAAM,aAAa,KAAK,OAAM,SAAS,MAAM,GAAG,EAAE,IAAI;AACtD,aAAO,MAAM,cAAe,QAAQ,cAAc,QAAQ;AAAA,IAC9D,OAEK;AAED,YAAM,aAAa,KAAK,OAAM,SAAS,MAAM,IAAI,EAAE;AACnD,aAAO,MAAM,cAAe,QAAQ,cAAc,OAAO;AAAA,IAC7D;AAAA,EACJ;AAAA;AAAA,EAGA,OAAO,mBAAmB;AACtB,UAAM,MAAM,oBAAI,KAAK,GAEjB,mBAAmB,IAAI,CAAC,OAAM,cAAc;AAEhD,QAAI,SAAS,IAAI,SAAS,IAAI,gBAAgB;AAC9C,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,eAAe,OAAa,MAAc;AAC7C,WAAO,IAAI,KAAK,MAAM,QAAQ,IAAI,QAAS,IAAI;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,YAAY,QAAc,QAAc;AAC3C,WACI,UAAU,UAAU,OAAO,aAAa,MAAM,OAAO,aAAa;AAAA,EAE1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,YAAY,QAAe,QAAe;AAC7C,WACI,UACA,UACA,OAAO,OACP,OAAO,OACP,OAAO,QAAQ,OAAO;AAAA,EAE9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAa,QAAe,QAAe;AAC9C,WAAO,OAAO,UAAU,OAAO,SAAS,OAAO,SAAS,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAa,QAAc,QAAc;AAC5C,WACI,OAAO,SAAS,MAAM,OAAO,SAAS,KACtC,OAAO,YAAY,MAAM,OAAO,YAAY;AAAA,EAEpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,cAAc,OAAa,UAAoB;AAClD,UAAM,QAAQ,OAAO,YAAY,OAAO,QAAQ,EAAE,QAC9C,MAAM,OAAM,aAAa,KAAK;AAClC,WAAO,SAAS,OAAM,YAAY,OAAO,GAAG;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,cAAc,UAAoB;AACrC,QAAI,QAAQ,oBAAI,KAAK;AAErB,QAAI,OAAM,cAAc,OAAO,QAAQ,GAAG;AACtC,YAAM,QAAQ,MAAM,QAAQ,IAAI,CAAC;AAAA,IACrC;AACA,WAAO,IAAI,MAAM,KAAK;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,MAAM,OAAe;AACxB,WAAO,QAAQ;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,UAAU,MAAoB;AACjC,UAAM,QAAQ,gBAAgB,OACxB,IAAI,MAAM,IAAY,IACtB;AACN,UAAM,QAAQ,gBAAgB,OACxB,OACA,MAAM,QAAQ;AACpB,WAAO,EAAE,OAAO,MAAM;AAAA,EAC1B;AAAA;AAAA,EAEA,OAAO,SAAS,OAAgB;AAC5B,WAAO,OAAO,UAAU,YAAY,iBAAiB;AAAA,EACzD;AAAA;AAAA,EAEA,OAAO,SAAS,OAAgB;AAC5B,WAAO,OAAO,UAAU,YAAY,iBAAiB;AAAA,EACzD;AAAA;AAAA,EAEA,OAAO,YAAY,OAAgB;AAC/B,WAAO,iBAAiB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,IAAI,MAAe,KAAgB;AACtC,QAAI,IAAI,WAAW,MAAM,MAAM,QAAQ,IAAI,CAAC,CAAC,KAAK,OAAM,SAAS,IAAI,CAAC,CAAC,IAAI;AACvE,aAAQ,IAAI,CAAC,EAAgB,SAAS,CAAC;AAAA,IAC3C,OAAO;AACH,aAAO,IAAI,SAAS,CAAC;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,WAAW,YAAqB,UAAmB;AACtD,QACI,OAAO,eAAe,eACtB,eAAe,QACf,MAAM,UAAoB,GAC5B;AACE,aAAO;AAAA,IACX,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,MAAM,OAAe,KAAc;AACtC,UAAM,cAAc,OAAQ,QAAS,cAAc,IAAI,OACnD,YAAY,OAAQ,QAAS,cAAc,QAAQ;AAEvD,WAAO,MAAM,KAAK,EAAE,QAAQ,YAAY,cAAc,EAAE,GAAG,CAAC,GAAG,MAAM,cAAc,CAAC;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAI,QAAgB,eAAsB;AAC7C,QAAI,SAAS;AACT,cAAQ,IAAI,KAAK,GAAG,aAAa;AAAA,IACrC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,KAAK,QAAgB,eAAsB;AAC9C,QAAI,SAAS;AACT,cAAQ,KAAK,KAAK,GAAG,aAAa;AAAA,IACtC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAM,QAAgB,eAAsB;AAC/C,QAAI,SAAS;AACT,cAAQ,MAAM,KAAK,GAAG,aAAa;AAAA,IACvC;AAAA,EACJ;AACJ;AAlvBa,OACF,MAAM,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AADhD,OAEF,MAAM,CAAC,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,UAAK,QAAG;AAFhD,OAGF,MAAM,CAAC,UAAK,UAAK,UAAK,QAAG;AAHvB,OAIF,QAAQ;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAfS,OAgBF,QAAQ,CAAC,IAAI,sBAAO,kCAAS,wCAAU,sCAAQ;AAhBnD,IAAM,QAAN;;;AC3FP,IAAqB,WAArB,MAAqB,UAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoB1B,YAAY,MAAc,SAA6BA,SAAiB,UAAkB,WAAmB,WAAmB,WAAmB,gBAAyB;AAExK,QAAI,OAAOA,YAAW,eAAeA,YAAW,MAAM;AAKlD,MAAAA,UAAU,WAAW,SAAS,WAAW,MAAM,YAAY,UAAU,YAAY;AAAA,IACrF;AACA,QAAIA,SAAQ;AAER,kBAAY;AAAA,IAChB,WAES,OAAO,cAAc,eAAe,cAAc,MAAM;AAI7D,kBAAY,CAAC,KAAK,MAAM,YAAY,EAAE;AAAA,IAC1C;AAEA,SAAK,OAAQ,QAAQ;AACrB,SAAK,aAAa;AAClB,SAAK,SAAS,CAAC,CAACA;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,YAAY,aAAa;AAC9B,SAAK,YAAY,aAAa;AAC9B,SAAK,iBAAiB,kBAAkB,UAAS,WAAW,IAAI;AAAA,EACpE;AAAA,EAEA,OAAO,MAAM,UAAoB;AAC7B,WAAO,IAAI;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS,kBAAkB;AAAA,IAAC;AAAA,EACpC;AAAA,EAEA,OAAO,WAAW,UAAoB;AAClC,QAAI,SAAS,gBAAgB;AACzB,aAAO,SAAS;AAAA,IACpB,WACS,CAAC,SAAS,QAAQ;AACvB,aAAO;AAAA,IACX,OACK;AACD,YAAM,UAAU;AAAA,QAAC,EAAE,OAAO,CAAC,aAAa,UAAU,UAAU,SAAS,SAAS,gBAAgB,8CAAW,+CAAY,uCAAS,GAAG,KAAK,GAAG;AAAA,QACzI,EAAE,OAAO,CAAC,SAAS,UAAU,eAAgB,aAAa,4BAAQ,uCAAS,GAAG,KAAK,GAAG;AAAA,MAAC,GACnF,QAAQ,SAAS,KAAK,YAAY,GAClC,OAAO,QAAQ,KAAK,QAAM;AACtB,eAAO,GAAG,MAAM,KAAK,SAAO;AACxB,iBAAO,MAAM,QAAQ,GAAG,IAAI;AAAA,QAChC,CAAC;AAAA,MACL,CAAC;AACL,aAAO,OAAO,KAAK,MAAM;AAAA,IAC7B;AAAA,EACJ;AAAA;AAAA,EAGA,OAAO,eAAe;AAClB,WAAO,IAAI,UAAS,aAAa,8CAAW,MAAM,OAAO,QAAQ,GAAG,KAAK,EAAE;AAAA,EAC/E;AAAA;AAAA,EAEA,OAAO,cAAc;AACjB,WAAO,IAAI,UAAS,eAAe,QAAW,OAAO,MAAM,OAAO,IAAI,GAAG,EAAE;AAAA,EAC/E;AACJ;;;AC9FA,2BAAyB;;;ACDzB,yBAAC,EAAC,MAAO,UAAS,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,QAAO,IAAK,GAAE,GAAE,EAAC,MAAO,aAAY,KAAM,8CAAU,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,6BAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,8CAAU,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,QAAO,IAAK,GAAE,GAAE,EAAC,MAAO,eAAc,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,OAAM,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,KAAM,iEAAc,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,OAAM,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,IAAK,GAAE,GAAE,EAAC,MAAO,SAAQ,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,8CAAU,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,KAAM,6EAAgB,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,QAAO,IAAK,GAAE,GAAE,EAAC,MAAO,iBAAgB,KAAM,2DAAa,IAAK,MAAK,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,KAAM,iEAAc,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,KAAM,qDAAY,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,KAAM,iEAAc,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,+CAAW,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,KAAM,sBAAM,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,yCAAU,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,QAAO,IAAK,GAAE,GAAE,EAAC,MAAO,WAAU,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,wCAAS,IAAK,MAAK,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,KAAM,4BAAO,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,kCAAQ,IAAK,MAAK,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,KAAM,oDAAW,IAAK,MAAK,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,KAAM,yEAAiB,IAAK,MAAK,IAAK,GAAE,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,IAAK,KAAI,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,IAAK,MAAK,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,KAAI,KAAM,QAAO,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,GAAE,KAAM,EAAC,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,KAAI,KAAM,EAAC,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,IAAG,KAAM,EAAC,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,OAAM,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,IAAK,IAAG,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,IAAK,MAAK,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,OAAM,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,IAAK,MAAK,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,IAAG,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,IAAK,KAAI,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,IAAK,GAAE,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,IAAK,KAAI,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAa,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,eAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAa,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,OAAM,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAkB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,OAAM,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,MAAK,KAAM,GAAE,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,8BAA6B,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,4BAA2B,IAAK,IAAG,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,OAAM,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,EAAC,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,6BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,IAAG,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,IAAG,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAa,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,2BAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,4BAA2B,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,GAAE,KAAM,EAAC,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,KAAI,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,KAAI,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,KAAI,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,IAAG,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,mCAAkC,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,8BAA6B,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,KAAI,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,4BAA2B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,8BAA6B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,GAAE,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,4BAA2B,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,KAAI,KAAM,KAAI,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,KAAI,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,IAAG,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,2BAA0B,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,IAAG,KAAM,QAAO,KAAM,QAAO,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,QAAO,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,GAAE,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,2BAA0B,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,KAAI,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,UAAS,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,wBAAuB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,QAAO,KAAM,MAAK,GAAE,EAAC,MAAO,iCAAgC,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,QAAO,KAAM,OAAM,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qCAAoC,IAAK,IAAG,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,KAAI,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,yBAAwB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,2BAA0B,IAAK,IAAG,KAAM,OAAM,KAAM,QAAO,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,IAAG,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,wBAAuB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,kCAA8B,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,2BAA0B,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gCAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,SAAQ,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,UAAS,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,0BAAsB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,GAAE,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oCAAmC,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,IAAG,KAAM,KAAI,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,eAAc,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,MAAK,KAAM,KAAI,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,oCAAmC,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,yBAAwB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,wBAAuB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,kBAAiB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mCAAkC,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,2BAA0B,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,IAAG,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,0BAAyB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,sBAAqB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,mBAAkB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,qBAAoB,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,uBAAsB,IAAK,GAAE,KAAM,MAAK,KAAM,MAAK,GAAE,EAAC,MAAO,oBAAmB,IAAK,IAAG,KAAM,OAAM,KAAM,KAAI,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAU,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,gBAAe,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,6BAA4B,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,WAAU,IAAK,GAAE,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,QAAO,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,YAAQ,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,cAAa,IAAK,GAAE,KAAM,MAAK,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,aAAY,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,uBAAsB,IAAK,IAAG,KAAM,OAAM,KAAM,MAAK,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,iBAAgB,IAAK,IAAG,KAAM,OAAM,KAAM,OAAM,GAAE,EAAC,MAAO,YAAW,IAAK,GAAE,KAAM,OAAM,KAAM,MAAK,CAAC;;;ADSzrvE,IAAM,YAAY,kBAAU,IAAI,CAAC,MAC7B,IAAI,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC;AAG5E,UAAU,KAAK,SAAU,GAAa,GAAa;AAC/C,SAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK;AACxD,CAAC;AAED,IAAM,YAA+C,CAAC;AACtD,SAAS,IAAI,GAAG,IAAI,UAAU,SAAS,GAAG,KAAK;AAC3C,QAAM,IAAI,UAAU,CAAC;AACrB,YAAU,KAAK;AAAA,IACX,MAAM,EAAE,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,YAAY;AAAA,IAAG,OAAO;AAAA,EACxD,CAAC;AACD,MAAI,CAAC,CAAC,EAAE,YAAY;AAChB,cAAU,KAAK;AAAA,MACX,MAAM,EAAE;AAAA,MAAY,OAAO;AAAA,IAC/B,CAAC;AAAA,EACL;AACJ;AAQA,SAAS,qBAAqB,QAAe,QAAuB;AAChE,MAAK,OAAO,YAAY,OAAO,YAAc,OAAO,aAAa,OAAO,WAAY;AAChF,WAAO;AAAA,EACX,OACK;AACD,QAAI,UAAU,KAAK,KAAK,OAAO,WAAW;AAC1C,QAAI,UAAU,KAAK,KAAK,OAAO,WAAW;AAC1C,QAAI,QAAQ,OAAO,YAAY,OAAO;AACtC,QAAI,WAAW,KAAK,KAAK,QAAQ;AACjC,QAAI,OAAO,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ;AAC5G,QAAI,OAAO,GAAG;AACV,aAAO;AAAA,IACX;AACA,WAAO,KAAK,KAAK,IAAI;AACrB,WAAO,OAAO,MAAM,KAAK;AACzB,WAAO,OAAO,KAAK;AACnB,WAAO,OAAO;AACd,WAAO;AAAA,EACX;AACJ;AAOA,SAAS,qBAAqB,OAAoC;AAC9D,MAAI,OAA8C,EAAE,MAAM,IAAO;AACjE,WAAS,YAAY,WAAW;AAC5B,UAAM,OAAO,qBAAqB,OAAO,EAAE,UAAU,SAAS,UAAU,WAAW,SAAS,UAAU,CAAC;AACvG,QAAI,OAAO,KAAK,MAAM;AAClB,aAAO,EAAE,MAAM,SAAS;AAAA,IAC5B;AAAA,EACJ;AACA,SAAO,KAAK;AAChB;AAOA,SAAS,iBAAiB,KAAmC;AACzD,MAAI,OAEA,EAAE,MAAM,IAAO;AACnB,WAAS,YAAY,WAAW;AAC5B,UAAM,WAAO,+BAAS,IAAI,YAAY,GAAG,SAAS,IAAI;AACtD,QAAI,OAAO,KAAK,MAAM;AAClB,aAAO,EAAE,MAAM,SAAS;AAAA,IAC5B;AAAA,EACJ;AACA,SAAO,KAAK,WAAW,UAAU,KAAK,SAAS,KAAK,IAAI;AAC5D;AASA,SAAS,aAAa,mBAAyD;AAC3E,MAAI,OAAO,sBAAsB,UAAU;AAEvC,UAAM,iBAAiB,UAAU,KAAK,CAAC,MACnC,EAAE,KAAK,YAAY,MAAM,kBAAkB,YAAY,KAAK,EAAE,eAAe,iBAAiB;AAClG,QAAI,CAAC,CAAC,gBAAgB;AAClB,aAAO;AAAA,IACX;AAEA,UAAM,oBAAoB,UAAU,KAAK,OACrC,EAAE,SAAS,kBAAkB,YAAY,CAAC;AAC9C,QAAI,CAAC,CAAC,mBAAmB;AACrB,aAAO,UAAU,kBAAkB,KAAK;AAAA,IAC5C;AAEA,WAAO,iBAAiB,kBAAkB,YAAY,CAAE;AAAA,EAC5D,OACK;AACD,UAAM,uBAAuB,UAAU,KAAK,CAAC,MACzC,EAAE,aAAa,kBAAkB,YACjC,EAAE,cAAc,kBAAkB,SAAS;AAC/C,QAAI,CAAC,CAAC,sBAAsB;AACxB,aAAO;AAAA,IACX;AACA,WAAO,qBAAqB,iBAAiB;AAAA,EACjD;AACJ;;;AExHO,IAAM,cAAc,OAAO,OAAO;AAAA,EACrC,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,oBAAoB;AACxB,CAAC;AAKM,IAAM,YAA0B;AAAA,EACnC;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA;AAAA,IACI,IAAI,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EACT;AACJ;AAOO,SAAS,YAAY,UAAmD;AAC3E,SAAO,UAAU,KAAK,QAAM,GAAG,OAAO,YAAY,GAAG,QAAQ,YAAY,GAAG,QAAQ,YAAY,GAAG,SAAS,QAAQ;AACxH;;;AChLA,IAAqB,QAArB,MAAqB,OAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvB,OAAO,SAAS,OAAe,MAA8D;AACzF,QAAI,aAAa,cAAc,cAAc,OAAO,WAAW,QAAQ;AAEvE,QAAI,WAAW,GAAG;AACd,kBAAY,MAAM,YAAY,IAAI;AAAA,IACtC;AACA,kBAAc,MAAM,MAAM,WAAW,MAAM,MAAM,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,OAAO,KAAK,QACrF,OAAO,KAAK,KAAM,IAAK,KAAK,EAAE;AACtC,mBAAe,MAAO,OAAO,cAAc;AAC3C,mBAAe,IAAK,KAAK,cAAe,MAAM,MAAM,MAAM,cAAc,IAAI,IACxE,MAAM,MAAM,eAAe,IAAI,IAAI;AACvC,YAAQ,MAAM,MAAO,eAAe,OAAQ,QAAQ,eAAe,GAAG;AAEtE,WAAO;AAAA,MACH,OAAO,IAAI,MAAO,IAAK,KAAK,MAAM,MAAM,WAAW,IAAM,MAAM,MAAO,eAAe,EAAG,CAAC;AAAA,MACzF,MAAM,EAAE,MAAM,MAAM,MAAM,YAAY,IAAI,IAAI,QAAQ,MAAM,MAAO,QAAQ,OAAQ,EAAE,GAAG,QAAQ,EAAE;AAAA,MAClG,UAAU,QAAQ;AAAA,IACtB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,UAAU,MAAc,OAAuB;AAClD,UAAM,QAAQ,OAAM,SAAS,OAAO,IAAI,GACpC,SAAS,MAAM,MAAM,iBAAiB,SAAS,aAAa,CAAC,GAC7D,UAAU,MAAM,YAAY,OAAO,QAAQ,MAAM,IAAI,GACrD,MAAM,MAAM,MAAM,aAAa;AACnC,QAAI,MAAM;AAEV,QAAI,CAAC,OAAO,UAAU,MAAM,OAAO,OAAO,IAAI,GAAG;AAC7C,aAAO,cAAc,GAAG;AAAA,IAC5B,WACS,QAAQ,KAAK,SAAS;AAC3B,aAAO;AAAA,IACX,WACS,QAAQ,KAAK,SAAS;AAC3B,aAAO;AAAA,IACX,OACK;AACD,aAAO,cAAc,GAAG,KAAK,UAAU,WAAW;AAAA,IACtD;AACA,WAAO,MAAM,MAAM,cAAc,MAAM,IAAI,IAAI,UAC3C,MAAM,SAAS,SAAS,IAAI;AAEhC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,aAAa,MAAc,OAAuB;AACrD,UAAM,QAAQ,OAAM,SAAS,OAAO,IAAI,GACpC,SAAS,MAAM,MAAM,iBAAiB,SAAS,aAAa,CAAC,GAC7D,UAAU,MAAM,YAAY,OAAO,QAAQ,MAAM,IAAI,KACjD,MAAM,YAAY,MAAM,MAAM,OAAO,OAAO,GAChD,MAAM,MAAM,MAAM,aAAa;AACnC,QAAI,MAAM;AAEV,QAAI,QAAQ,GAAG;AACX,aAAQ,UAAU,uDAAe;AAAA,IACrC,WACS,QAAQ,GAAG;AAChB,aAAQ,UAAU,2CAAa;AAAA,IACnC,OACK;AACD,cAAQ,UAAU,uBAAQ,wBACtB,cAAc,GAAG,EAAE,QAAQ,sBAAO,EAAE;AAAA,IAC5C;AACA,WAAO,MAAM,MAAM,cAAc,MAAM,MAAM,GAAG,IAAI,IAAI,MACpD,MAAM,SAAS,SAAS,IAAI;AAEhC,WAAO;AAAA,EACX;AACJ;;;AChFO,IAAM,iBAAiB,OAAO,OAAO;AAAA,EACxC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AACZ,CAAC;AAED,IAAqB,eAArB,MAAqB,aAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW7B,OAAO,aAAa,WAAyB,MAAY,OAAc,UAA6D;AAChI,UAAM,MAAM,aAAY,eAAe;AAAA,MACnC,CAAC,MACG,MAAM,YAAY,EAAE,MAAM,IAAI,KAC9B,EAAE,SAAS,SAAS,SAAS;AAAA,IACrC,GACI,YAAqD,CAAC,GACtD,WAAW,aAAY,aAAa,MAAM,OAAO,QAAQ;AAC7D,QAAI,SACA,QACA,gBACA,eACA,cACA,aACA,SACA,YACA;AACJ,QAAI,KAAK;AACL,gBAAU,IAAI;AACd,eAAS,IAAI;AACb,uBAAiB,IAAI;AACrB,sBAAgB,IAAI;AACpB,qBAAe,IAAI;AACnB,oBAAc,IAAI;AAClB,gBAAU,IAAI;AACd,mBAAa,IAAI;AACjB,sBAAgB,IAAI;AAAA,IACxB,OAAO;AACH,YAAM,WAAW,OAAO,YAAY,MAAM,UAAU,IAAI;AACxD,gBAAU,SAAS;AACnB,eAAS,SAAS;AAClB,uBAAiB,OAAO,YAAY,MAAM,UAAU,KAAK;AACzD,sBAAgB,eAAe;AAC/B,qBAAe,eAAe;AAC9B,oBAAc,MAAM,WAAW,eAAe,GAAG;AACjD,gBACI,iBACA,gBACA,OAAO,uBAAuB,cAAc;AAChD,mBACI,iBACA,gBACA,OAAO,0BAA0B,cAAc;AACnD,sBACI,iBACA,gBACA,OAAO,iBAAiB,gBAAgB,IAAI;AAEhD,mBAAY,eAAe,KAAK;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AACA,aAAS,YAAY,WAAW;AAC5B,YAAM,SAAS,SAAS,WACnB,CAAC,SAAS,kBAAkB,SAAS,iBAAiB,YACrD,SAAS,SACT;AACN,cAAQ,SAAS,IAAI;AAAA,QACjB,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,SAAS,MAAM,MAAM;AAAA,UAChD,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,aAAa,MAAM,IACpC;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,eAAe,MAAM,MAAM;AAAA,UACtD,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,eAAe,MAAM,MAAM;AAAA,UACtD,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,SAAS,MAAM,IAChC;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,eAAe,MAAM,IACtC;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,KAAK,MAAM,gBAAgB,CAAC,IAAI;AAAA,cACpC;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,KAAK,MAAM,aAAa,CAAC,IAAI;AAAA,cACjC;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,KAAK,MAAM,gBAAgB,CAAC,IAAI;AAAA,cACpC;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,KAAK,MAAM,aAAa,CAAC,IAAI;AAAA,cACjC;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,SAAS,MAAM,IAChC;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,aAAa,MAAM;AAAA,cACvB;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,aAAa,MAAM;AAAA,cACvB;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,aAAa,QAAQ;AAAA,cACzB;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,cAAc,MAAM,IACrC;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,SACA,MAAM,WAAW,QAAQ,MAAM,IAC/B;AAAA,UACV,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,QAAQ,KAAK,MAAM;AAAA,UAC9C,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,QAAQ,KAAK,MAAM;AAAA,UAC9C,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,oBAAU,KAAK;AAAA,YACX;AAAA,YACA,MAAM,MAAM,WAAW,QAAQ,KAAK,MAAM;AAAA,UAC9C,CAAC;AACD;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,aAAa,MAAM;AAAA,cACvB;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI;AACA,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,gBAAgB,MAAM;AAAA,cAC1B;AAAA,YACJ,CAAC;AACL;AAAA,QACJ,KAAK,YAAY;AACb,cAAI,UAAU,MAAM,kBAAkB,GAAG;AACrC,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR,OAAO;AAAA,kBACH;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA;AAAA,cACJ;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ,KAAK,YAAY;AACb,cAAI,iBAAiB,MAAM,UAAU,KACjC,MAAM,QAAQ,MACd,MAAM,YAAY,SAAS,MAAM,aAAa,IAAI,CAAC,GAAG;AACtD,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,MAAM,SAAS,gBAAgB;AAAA,cACnC;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ,KAAK,YAAY;AACb,cAAI,iBACA,MAAM,UAAU,MACf,MAAM,QAAQ,MACV,MAAM,cAAc,WAAW,UAC5B,MAAM,QAAQ,OACtB,MAAM,YAAY,SAAS,MAAM,aAAa,IAAI,CAAC,GACrD;AACE,sBAAU,KAAK;AAAA,cACX;AAAA,cACA,MAAM,MAAM;AAAA,gBACR;AAAA,gBACA,MAAM,SAAS,gBAAgB;AAAA,cACnC;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,MACR;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,aAAa,MAAY,OAAc,UAAoB;AAC9D,QAAI,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG;AACnC,aAAO,eAAe;AAAA,IAC1B;AACA,YAAQ,KAAK,OAAO,GAAG;AAAA,MACnB,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,IAC9B;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,mBAAmB,MAAoB,UAAoB;AAC9D,UAAM,EAAE,OAAO,MAAM,IAAI,MAAM,UAAU,IAAI;AAC7C,UAAM,SAAS,aAAY;AAAA,MACvB;AAAA,QACI,YAAY,YAAY,UAAU;AAAA;AAAA,QAClC,YAAY,YAAY,MAAM;AAAA;AAAA,QAC9B,YAAY,YAAY,cAAc;AAAA;AAAA,QACtC,YAAY,YAAY,cAAc;AAAA;AAAA,MAC1C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,WAAO;AAAA,MACH,cAAc,OAAO,CAAC,EAAE;AAAA,MACxB,gBAAgB,MAAM,WAAW,OAAO,CAAC,EAAE,MAAM,GAAG;AAAA,MACpD,MAAM,OAAO,CAAC,EAAE;AAAA,MAChB,OAAO,OAAO,CAAC,EAAE;AAAA,IACrB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,aAAa,MAAoB,UAAoB;AACxD,UAAM,EAAE,OAAO,MAAM,IAAI,MAAM,UAAU,IAAI;AAC7C,WAAO,aAAY,aAAa,WAAW,OAAO,OAAO,QAAS;AAAA,EACtE;AACJ;AA/WqB,aACV,iBAA6B,CAAC;AADzC,IAAqB,cAArB;;;ACJA,IAAM,WAAqB,CAAC;AAC5B,IAAM,gBAA0B,CAAC;AACjC,IAAI,cAAc;AAAlB,IACE;AADF,IAEE,sBAAsB;AAFxB,IAGE,SAAS;AAYJ,SAAS,iBACd,MACA,MACA,UACA,SACA,cACA,aACA;AACA,QAAM,EAAE,OAAO,MAAM,IAAI,MAAM,UAAU,IAAI;AAC7C,WAAS,SAAS;AAClB,gBAAc,SAAS;AACvB,QAAM,QAAQ,MAAM,OAClB,MAAM,MAAM,KACZ,MAAM,MAAM,WACZ,EAAE,cAAc,gBAAgB,MAAM,MAAM,IAAI,YAAY,mBAAmB,MAAM,QAAQ,GAC7F,sBAAsB,MAAM,YAAY,cAAc,IAAI,GAC1D,wBACE,OAAO,mBAAmB,gBACzB,MAAM,YAAY,gBAAgB,IAAI,KAAM,eAAe,OAAO,MAAM,KAAK,OAAO,KACvF,cAAc,MAAM,YAAY,MAAM,IAAI,GAC1C,eAAe,MAAM,YAAY,OAAO,IAAI,GAC5C,YAAY,eAAe,CAAC,cAC5B,cAAc,CAAC,WACf,qBAAqB,CAAC,gBAAgB,MAAM,YAAY,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI,GACzF,YAAY,aAAa,CAAC,qBAC1B,cAAc,aAAa,qBAC3B,WAAW,MAAM,qBAAqB,SAAS,MAAM,GACrD,aAAa,MAAM,UAAU,MAAM,IAAI,GACvC,YAAY,gBAAgB,QAAQ,WAAW,UAAU,QAAQ;AAEnE,YAAU;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,gBAAc;AACd,WAAS,SAAS;AAClB,wBAAsB,OAAO,iBAAiB,cAAc,SAAS,CAAC,CAAC;AAEvE,MAAI,QAAQ,WAAW,SAAS;AAC9B,4BAAwB;AAAA,EAC1B,OAAO;AACL,4BAAwB;AAAA,EAC1B;AACA,gCAA8B;AAE9B,MAAI,QAAQ,aAAa,aAAa,CAAC,UAAU;AAC/C,QAAI,QAAQ,WAAW,SAAS;AAC9B,sBAAgB,cAAc,8CAAW;AAAA,IAC3C,WAAW,aAAa;AACtB,sBAAgB,iBAAiB,8CAAW;AAAA,IAC9C,WACE,EAAG,UAAU,kBAAE,UAAU,MAAM,MAAO,UAAU,kBAAE,QAAS,UAAU,kBAAE,SAAS,MAAM,IACtF;AACA,sBAAgB,oBAAoB,iEAAe;AAAA,IACrD;AAAA,EACF;AACA,MAAI,gBAAgB,OAAO;AACzB,eAAW,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC;AAAA,EACtD;AAGA,MACE,uBACE,UAAU,kBAAE,UAAU,MAAM,MAAO,UAAU,kBAAE,QAAS,UAAU,kBAAE,SAAS,MAAM,IACrF;AACA,UAAM,eAAe,MAAM,aAAa;AACxC,QAAI,eAAe,GAAG;AACpB,sBAAgB,MAAM,cAAc,cAAc,UAAU,CAAC;AAAA,IAC/D;AAAA,EACF;AAGA,SAAO;AAAA,IACL,UAAU,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC;AAAA,IAC/B,eAAe,CAAC,GAAG,IAAI,IAAI,aAAa,CAAC;AAAA,EAC3C;AACF;AAEA,SAAS,0BAA0B;AACjC,QAAM,EAAE,OAAO,KAAK,YAAY,WAAW,UAAU,OAAO,WAAW,YAAY,IAAI;AACvF,MAAI,UAAU,kBAAE,UAAU,MAAM,KAAK,MAAM,IAAI;AAC7C,eAAW,mBAAmB,mDAAW;AAAA,EAC3C,WAAW,UAAU,kBAAE,WAAW,MAAM,KAAK,MAAM,IAAI;AACrD,eAAW,iBAAiB,6CAAU;AAAA,EACxC,WAAW,UAAU,kBAAE,MAAM,MAAM,KAAK,MAAM,IAAI;AAChD,eAAW,kBAAkB,6CAAU;AAAA,EACzC,WACG,WAAW,aAAa,kBAAE,OAAO,kBAAE,UAAU,MAAM,MACnD,WAAW,aAAa,kBAAE,cAAc,kBAAE,SAAS,QAAQ,GAC5D;AACA,eAAW,mBAAmB,yDAAY;AAAA,EAC5C,WAAW,WAAW,aAAa,kBAAE,cAAc,kBAAE,SAAS,MAAM,KAAK,MAAM,IAAI;AACjF,eAAW,kBAAkB,mDAAW;AAAA,EAC1C,WAAW,WAAW,aAAa,kBAAE,cAAc,kBAAE,SAAS,MAAM,MAAM,MAAM,IAAI;AAClF,eAAW,iBAAiB,6CAAU;AAAA,EACxC,WACG,WAAW,aAAa,kBAAE,cAAc,kBAAE,SAAS,MAAM,MAAM,MAAM,MACrE,UAAU,kBAAE,UAAU,QAAQ,GAC/B;AACA,eAAW,qBAAqB,yDAAY;AAAA,EAC9C;AACA,MAAI,aAAa,CAAC,UAAU;AAC1B,UAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,QAAI,MAAM,OAAO,SAAS,GAAG;AAC3B;AAAA,QACE,0BAA0B,MAAM,SAAS,CAAC;AAAA,QAC1C,gDAAa,MAAM,YAAY,CAAC;AAAA,MAClC;AAAA,IACF;AAEA,QAAI,UAAU,kBAAE,SAAS,MAAM,MAAM,MAAM,IAAI;AAC7C,YAAM,YAAY,MAAM,UAAU,CAAC;AACnC;AAAA,QACE,uBAAuB,MAAM,UAAU,UAAU,MAAM,UAAU,KAAK;AAAA,QACtE,mEAAiB,MAAM,aAAa,UAAU,MAAM,UAAU,KAAK;AAAA,MACrE;AACA,sBAAgB,oBAAoB,qEAAc;AAElD,UAAI,UAAU,kBAAE,UAAU,UAAU,kBAAE,MAAM;AAC1C,wBAAgB,oBAAoB,iEAAe;AAAA,MACrD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,UAAU,kBAAE,YAAY,QAAQ,KAAK,QAAQ,KAAK;AACpD,eAAW,gBAAgB,6CAAU;AACrC,oBAAgB,kBAAkB,mDAAW;AAC7C,QAAI,uBAAuB,WAAW;AACpC,sBAAgB,iBAAiB,8HAA+B;AAAA,IAClE;AAEA,QAAI,aAAa,UAAU,kBAAE,SAAS,EAAE,UAAU,kBAAE,UAAU,QAAQ,KAAK;AACzE,sBAAgB,iBAAiB,uCAAS;AAAA,IAC5C;AACA,oBAAgB,oBAAoB,iEAAe;AAAA,EACrD,WAAW,UAAU;AACnB,oBAAgB,oBAAoB,iEAAe;AACnD,QAAI,uBAAuB,WAAW;AACpC,sBAAgB,0JAAkC;AAAA,IACpD;AAAA,EACF;AAEA,MAAI,eAAe,EAAE,UAAU,kBAAE,WAAW,QAAQ,KAAK;AACvD,UAAM,QAAQ,MAAM,QAAQ,CAAC,EAAE,SAAS,MAAM;AAC9C;AAAA,MACE,mCAAmC,MAAM,OAAO,CAAC,EAAE;AAAA,MACnD,iFAAqB,MAAM,OAAO,CAAC,EAAE;AAAA,IACvC;AAAA,EACF;AACA,MACE,gBACE,UAAU,kBAAE,UAAU,MAAM,MAC3B,SAAS,kBAAE,SAAS,EAAE,UAAU,kBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,KAC9D;AACA,UAAM,SAAS,WAAW,UAAU,OAAO,MAAM;AACjD,QAAI,OAAO,SAAS,GAAG;AACrB;AAAA,QACE,mBACE,OAAO,IAAI,CAAC,MAAc,SAAS,MAAM,eAAe,CAAC,CAAC,EAAE,EAAE,KAAK,OAAO;AAAA,QAC5E,yDAAiB,OAAO,IAAI,CAAC,MAAc,sBAAO,MAAM,eAAe,CAAC,CAAC,EAAE,EAAE,KAAK,SAAI;AAAA,MACxF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,0BAA0B;AACjC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,MAAI,eAAe,QAAQ,WAAW,QAAQ;AAE5C;AAAA,MACG,UAAU,kBAAE,UAAU,QAAQ,MAAQ,UAAU,kBAAE,SAAS,QAAQ,IAChE,2DACA;AAAA,IACN;AAEA,QACG,UAAU,kBAAE,SAAS,MAAM,MAC3B,UAAU,kBAAE,WAAW,MAAM,KAAK,MAAM,MACxC,UAAU,kBAAE,UAAU,MAAM,KAAK,MAAM,MACvC,UAAU,kBAAE,SAAS,MAAM,GAC5B;AACA,sBAAgB,gBAAgB,iEAAe;AAAA,IACjD;AAAA,EACF,WAGE,gBACE,UAAU,kBAAE,WAAW,QAAQ,MAAM,QAAQ,OAC5C,UAAU,kBAAE,SAAS,QAAQ,KAC7B,UAAU,kBAAE,WAAW,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,IACtD;AACA,oBAAgB,kBAAkB,+DAAa;AAAA,EACjD;AAGA,MACE,aACA,CAAC,aACA,QAAQ,WAAW,UAAU,QAAQ,WAAW,aACjD,CAAC,oBAAoB,OAAO,QAAQ,GACpC;AACA,UAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,QAAI,MAAM,OAAO,SAAS,GAAG;AAC3B;AAAA,QACE,0BAA0B,MAAM,OAAO,CAAC,EAAE,GAAG;AAAA,QAC7C,gDAAa,MAAM,OAAO,CAAC,EAAE,GAAG;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,MAAK,UAAU,kBAAE,WAAW,QAAQ,KAAM,QAAQ,IAAI;AACpD,YAAQ,YAAY;AACpB,eAAW,gBAAgB,6CAAU;AACrC,oBAAgB,kBAAkB,mDAAW;AAC7C,QAAI,uBAAuB,WAAW;AACpC,sBAAgB,iBAAiB,8HAA+B;AAAA,IAClE;AAEA,QAAI,aAAa,UAAU,kBAAE,SAAS,EAAE,UAAU,kBAAE,UAAU,QAAQ,KAAK;AACzE,sBAAgB,iBAAiB,uCAAS;AAC1C,UAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF,WAGE,UAAU,kBAAE,UACV,MAAM,WAAW,UAAU,QAAQ,MAAQ,QAAQ,WAAW,YAAY,QAAQ,OACpF,aACA;AACA,oBAAgB,qBAAqB,wCAAU;AAAA,EACjD;AACA,MAAI,MAAM,kBAAkB,MAAM,GAAG;AACnC,eAAW,kBAAkB,2EAAe;AAAA,EAC9C;AACF;AAEA,SAAS,gCAAgC;AACvC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAOJ,MAAI,2BAA2B;AAE/B,MAAI,CAAC,SAAS,UAAU,MAAM,SAAS,MAAM,MAAM,MAAM,QAAQ,IAAI,GAAG;AACtE,UAAM,sBAAsB,MAAM,OAAO,MAAM,IAAI,IAAI;AACvD,+BACE,MAAM,QAAQ,KAAK,uBAAuB,MAAM,QAAQ,KAAK,sBAAsB;AAAA,EACvF;AAEA,UAAQ,OAAO;AAAA,IACb,KAAK,kBAAE;AACL,cAAQ,YAAY;AACpB,UAAI,MAAM,IAAI;AACZ,wBAAgB,eAAe,mDAAW;AAAA,MAC5C;AACA,UAAI,QAAQ,WAAW,WAAW,MAAM,MAAM,QAAQ,IAAI;AACxD,wBAAgB,iBAAiB,6CAAU;AAAA,MAC7C;AACA,UAAI,aAAa,QAAQ,WAAW,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AACrF,wBAAgB,qBAAqB,6EAAiB;AACtD,YAAI,QAAQ,WAAW,SAAS;AAC9B,yBAAe;AAAA,QACjB;AAAA,MACF;AACA,UAAI,QAAQ,IAAI;AACd,mBAAW,uBAAuB,oFAAmB;AACrD,wBAAgB,eAAe,6CAAU;AACzC,YAAI,aAAa;AACf,0BAAgB,eAAe,mDAAW;AAAA,QAC5C;AACA,YAAI,uBAAuB,aAAa,QAAQ,WAAW,SAAS;AAClE,0BAAgB,oIAAgC;AAAA,QAClD;AACA,wBAAgB,kBAAkB,mDAAW;AAAA,MAC/C,WAAW,QAAQ,MAAM,CAAC,QAAQ;AAChC,mBAAW,wBAAwB,wEAAiB;AACpD,wBAAgB,eAAe,6CAAU;AACzC,wBAAgB,eAAe,mDAAW;AAC1C,YAAI,uBAAuB,aAAa,QAAQ,WAAW,SAAS;AAClE,0BAAgB,oIAAgC;AAAA,QAClD;AACA,wBAAgB,kBAAkB,mDAAW;AAAA,MAC/C,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AACjD,YAAI,QAAQ,IAAI;AACd,qBAAW,sBAAsB,gEAAc;AAC/C,cAAI,WAAW;AACb,gBAAI,QAAQ;AACV,8BAAgB,UAAU,gCAAO;AAAA,YACnC;AACA,gBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,8BAAgB,sIAAmC;AAAA,YACrD;AAAA,UACF;AAAA,QACF,OAAO;AACL,qBAAW,uBAAuB,wEAAiB;AACnD,0BAAgB,kBAAkB,mDAAW;AAC7C,cAAI,aAAa,QAAQ,WAAW;AAAS,2BAAe;AAC5D,cAAI,uBAAuB,aAAa,QAAQ,WAAW,SAAS;AAClE,oBAAQ,KAAK;AAAA,cACX,KAAK;AACH,oBAAI,QAAQ,WAAW,QAAQ;AAC7B,kCAAgB,oIAAgC;AAAA,gBAClD,OAAO;AACL,kCAAgB,8HAA+B;AAAA,gBACjD;AACA;AAAA,cACF,KAAK;AACH,oBAAI,QAAQ,WAAW,QAAQ;AAC7B,kCAAgB,8HAA+B;AAAA,gBACjD,OAAO;AACL,kCAAgB,iJAAmC;AAAA,gBACrD;AACA;AAAA,cACF,KAAK;AACH,oBAAI,QAAQ,WAAW,WAAW,QAAQ,WAAW,QAAQ;AAC3D,kCAAgB,iJAAmC;AAAA,gBACrD,OAAO;AACL,kCAAgB,6GAA8B;AAAA,gBAChD;AACA;AAAA,cACF,KAAK;AACH,oBAAI,QAAQ,WAAW,UAAU;AAC/B,kCAAgB,qKAAwC;AAAA,gBAC1D,OAAO;AACL,kCAAgB,6GAA8B;AAAA,gBAChD;AACA;AAAA,cACF,KAAK;AACH,oBAAI,QAAQ,WAAW,QAAQ;AAC7B,kCAAgB,uJAAoC;AAAA,gBACtD,OAAO;AACL,kCAAgB,qKAAwC;AAAA,gBAC1D;AACA;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AACA,YAAI;AAAW,0BAAgB,eAAe,uCAAS;AACvD,wBAAgB,kBAAkB,mDAAW;AAAA,MAC/C;AACA,UAAI,QAAQ,IAAI;AACd,YAAI,QAAQ;AACV,qBAAW,aAAa,6CAAU;AAAA,QACpC,OAAO;AACL,qBAAW,uBAAuB,gEAAc;AAChD,cAAI,WAAW;AACb,4BAAgB,UAAU,gCAAO;AACjC,4BAAgB,eAAe,uCAAS;AAAA,UAC1C;AACA,0BAAgB,kBAAkB,mDAAW;AAAA,QAC/C;AACA,YAAI,QAAQ,WAAW,WAAW,WAAW;AAC3C,yBAAe;AAAA,QACjB;AAAA,MACF;AACA,UACE,QAAQ,WAAW,YAClB,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,KAAM,CAAC,UAAU,QAAQ,KACnE;AACA,wBAAgB,iBAAiB,wFAAkB;AAAA,MACrD;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,OAAO,IAAI;AACb,wBAAgB,eAAe,mDAAW;AAC1C,YAAI,QAAQ,WAAW,SAAS;AAC9B,0BAAgB,iBAAiB,6CAAU;AAAA,QAC7C;AAAA,MACF;AAEA,UAAI,QAAQ,MAAO,QAAQ,MAAM,eAAgB,QAAQ,MAAO,QAAQ,MAAM,aAAc;AAC1F,gBAAQ,YAAY;AACpB,YAAI,QAAQ,IAAI;AACd,qBAAW,iBAAiB,uCAAS;AAAA,QACvC;AAAA,MACF;AAEA,UACE,cACE,QAAQ,WAAW,UAAU,MAAM,KAAK,MAAM,MAC7C,QAAQ,WAAW,YAAY,MAAM,KAAK,MAAM,MAChD,QAAQ,WAAW,UAAU,MAAM,MAAM,MAAM,MAAM,QAAQ,KAChE;AACA,wBAAgB,UAAU,0DAAa;AACvC,wBAAgB,kBAAkB,+DAAa;AAAA,MACjD;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,MAAM,IAAI;AACZ,gBAAQ,YAAY;AAAA,MACtB;AAEA,UAAI,QAAQ,GAAG;AACb,mBAAW,WAAW,yFAAmB;AACzC,YAAI,WAAW;AACb,0BAAgB,eAAe,6CAAU;AACzC,0BAAgB,eAAe,mDAAW;AAC1C,0BAAgB,WAAW,sCAAQ;AACnC,cAAI;AAAQ,4BAAgB,UAAU,gCAAO;AAC7C,cAAI,qBAAqB;AACvB,4BAAgB,8IAAqC;AAAA,UACvD;AAAA,QACF;AACA,wBAAgB,kBAAkB,mDAAW;AAAA,MAC/C,WAAW,QAAQ,GAAG;AACpB,YAAI,QAAQ;AACV,qBAAW,cAAc,6CAAU;AACnC,cAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,2BAAe;AAAA,UACjB;AAAA,QACF,OAAO;AACL,qBAAW,sBAAsB,yFAAmB;AACpD,cAAI,WAAW;AACb,4BAAgB,eAAe,6CAAU;AACzC,4BAAgB,UAAU,gCAAO;AAAA,UACnC;AACA,0BAAgB,kBAAkB,mDAAW;AAAA,QAC/C;AAAA,MACF;AAEA;AAAA,IACF,KAAK,kBAAE;AACL,UACE,cACE,QAAQ,MAAM,WAAW,YAAY,KAAO,QAAQ,MAAM,QAAQ,WAAW,SAC/E;AACA,YAAI,WAAW;AACb,qBAAW,sBAAsB,8CAAW;AAC5C,0BAAgB,kBAAkB,+DAAa;AAC/C,0BAAgB,UAAU,0BAAM;AAAA,QAClC;AACA,YAAI,WAAW;AACb,0BAAgB,YAAY,sCAAQ;AAAA,QACtC;AAAA,MACF;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,eAAe,QAAQ,KAAK,QAAQ,WAAW,QAAQ;AACzD,gBAAQ,YAAY;AAAA,MACtB,WACG,QAAQ,KAAK,QAAQ,WAAW,WAChC,QAAQ,MAAM,QAAQ,WAAW,QAClC;AACA,mBAAW,aAAa,6CAAU;AAClC,YAAI,WAAW;AACb,0BAAgB,SAAS,gCAAO;AAChC,0BAAgB,UAAU,0BAAM;AAChC,cAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,2BAAe;AAAA,UACjB;AAAA,QACF,OAAO;AACL,0BAAgB,iBAAiB,yDAAY;AAC7C,cAAI,eAAe,QAAQ,WAAW,QAAQ;AAC5C,4BAAgB,gBAAgB,iEAAe;AAAA,UACjD;AAAA,QACF;AACA,gBAAQ,YAAY;AAAA,MACtB,WAAW,eAAe,QAAQ,IAAI;AACpC,gBAAQ,YAAY;AAAA,MACtB,WAAW,QAAQ,IAAI;AACrB,mBAAW,WAAW,kCAAS;AAC/B,gBAAQ,YAAY;AAAA,MACtB;AACA;AAAA,IACF,KAAK,kBAAE;AACL,sBAAgB,sBAAsB,iCAAQ;AAC9C,UAAI,MAAM,MAAM,QAAQ,WAAW,YAAY,yBAAyB,YAAY;AAClF,YAAI,kBAAkB,OAAO;AAC7B,YAAI,MAAM,IAAI;AACZ,gBAAM,WAAW,KAAK,KACpB,SAAS,WAAW,OAAO;AAC7B,kBAAQ,OAAO;AAAA,YACb,KAAK,WAAW;AACd,gCAAkB,OAAO;AACzB;AAAA,YACF,KAAK,WAAW;AACd,gCAAkB,OAAO;AACzB;AAAA,YACF,KAAK,WAAW;AACd,gCAAkB,OAAO;AACzB;AAAA,UACJ;AAAA,QACF;AACA,YAAI,iBAAiB;AACnB,0BAAgB,YAAY,sCAAQ;AAAA,QACtC;AAAA,MACF;AACA,UAAI,QAAQ,IAAI;AACd,gBAAQ,YAAY;AAAA,MACtB;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,MAAM,IAAI;AACZ,wBAAgB,qBAAqB,yDAAY;AACjD,YAAI,QAAQ,WAAW,WAAW,QAAQ,GAAG;AAC3C,0BAAgB,kBAAkB,+DAAa;AAAA,QACjD;AAAA,MACF;AAEA,UAAI,MAAM,KAAK,MAAM,MAAM,QAAQ,WAAW,SAAS;AACrD,wBAAgB,YAAY,sCAAQ;AACpC,wBAAgB,sBAAsB,yDAAY;AAAA,MACpD;AACA,UAAI,QAAQ,WAAW,WAAW,MAAM,KAAK,MAAM,IAAI;AACrD,mBAAW,iBAAiB,6CAAU;AAAA,MACxC;AACA,UAAI,OAAO,IAAI;AACb,gBAAQ,YAAY;AAAA,MACtB;AACA,cAAQ,KAAK;AAAA,QACX,KAAK;AACH,qBAAW,gBAAgB,6CAAU;AACrC,cAAI,QAAQ,WAAW,WAAW,WAAW;AAC3C,4BAAgB,iBAAiB,yDAAY;AAC7C,gBAAI,qBAAqB;AACvB,8BAAgB,iJAAmC;AAAA,YACrD;AACA,gBAAI,aAAa;AACf,yBAAW,YAAY,gCAAO;AAAA,YAChC;AAAA,UACF;AACA,0BAAgB,kBAAkB,mDAAW;AAC7C;AAAA,QACF,KAAK;AACH,qBAAW,gBAAgB,6CAAU;AACrC,cAAI,WAAW;AACb,4BAAgB,iBAAiB,yDAAY;AAC7C,gBAAI,qBAAqB;AACvB,8BAAgB,iJAAmC;AAAA,YACrD;AACA,gBAAI,QAAQ,WAAW,UAAU,aAAa;AAC5C,yBAAW,YAAY,gCAAO;AAAA,YAChC;AAAA,UACF;AACA,0BAAgB,kBAAkB,mDAAW;AAC7C;AAAA,QACF,KAAK;AACH,cAAI,QAAQ,WAAW,SAAS;AAC9B,gBAAI,WAAW;AACb,yBAAW,wBAAwB,mDAAW;AAC9C,8BAAgB,UAAU,0BAAM;AAAA,YAClC;AACA,gBAAI,yBAAyB,WAAW;AACtC,8BAAgB,YAAY,sCAAQ;AAAA,YACtC;AACA,4BAAgB,sBAAsB,yDAAY;AAAA,UACpD;AACA;AAAA,QACF,KAAK;AACH,cAAI,QAAQ,WAAW,QAAQ;AAC7B,gBAAI,WAAW;AACb,yBAAW,wBAAwB,mDAAW;AAC9C,8BAAgB,UAAU,0BAAM;AAAA,YAClC;AACA,gBAAI,yBAAyB,WAAW;AACtC,8BAAgB,YAAY,sCAAQ;AAAA,YACtC;AACA,4BAAgB,sBAAsB,yDAAY;AAAA,UACpD,WAAW,QAAQ,WAAW,SAAS;AACrC,4BAAgB,sBAAsB,yDAAY;AAClD,gBAAI,yBAAyB,WAAW;AACtC,8BAAgB,YAAY,sCAAQ;AAAA,YACtC;AAAA,UACF;AACA;AAAA,QACF,KAAK;AACH,qBAAW,mBAAmB,sEAAe;AAC7C,cAAI,WAAW;AACb,4BAAgB,qBAAqB,6EAAiB;AACtD,gBAAI,QAAQ,WAAW,SAAS;AAC9B,6BAAe;AAAA,YACjB;AACA,gBAAI,QAAQ,WAAW,QAAQ;AAC7B,8BAAgB,kBAAkB,+DAAa;AAAA,YACjD;AAAA,UACF,WAAW,aAAa;AACtB,4BAAgB,UAAU,+DAAa;AAAA,UACzC;AACA,cAAI,aAAa,QAAQ,WAAW,QAAQ;AAC1C,4BAAgB,qBAAqB,6EAAiB;AAAA,UACxD;AACA,kBAAQ,YAAY;AACpB;AAAA,QACF,KAAK;AACH,qBAAW,cAAc,qEAAc;AACvC,qBAAW,iEAAe;AAC1B,cAAI,WAAW;AACb,4BAAgB,UAAU,gCAAO;AACjC,gBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,8BAAgB,8HAA+B;AAAA,YACjD;AAAA,UACF;AACA,cAAI,aAAa;AAEf,4BAAgB,oHAA0B;AAAA,UAC5C;AACA;AAAA,QACF,KAAK;AACH,cAAI,aAAa;AACf,uBAAW,6NAA8C;AAAA,UAC3D;AAAA,QACF,KAAK;AACH,qBAAW,uBAAuB,gGAAqB;AACvD,0BAAgB,kBAAkB,mDAAW;AAC7C,cAAI,WAAW;AACb,4BAAgB,eAAe,6CAAU;AACzC,gBAAI,QAAQ,WAAW,SAAS;AAC9B,8BAAgB,gEAAwB,gGAAqB;AAC7D,8BAAgB,YAAY,iCAAQ;AACpC,kBAAI,qBAAqB;AACvB,gCAAgB,+KAAwC;AAAA,cAC1D;AAAA,YACF,OAAO;AACL,8BAAgB,gEAAwB,gGAAqB;AAAA,YAC/D;AAAA,UACF;AACA;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,0BAAgB,kBAAkB,mDAAW;AAC7C,cAAI,QAAQ,MAAM,CAAC,QAAQ;AACzB,uBAAW,wBAAwB,2FAAqB;AAAA,UAC1D,WAAW,CAAC,QAAQ;AAClB,uBAAW,sBAAsB,oFAAmB;AACpD,4BAAgB,kBAAkB,mDAAW;AAAA,UAC/C;AACA,cAAI,WAAW;AACb,4BAAgB,eAAe,6CAAU;AACzC,oBAAQ,KAAK;AAAA,cACX,KAAK;AACH;AAAA,kBACE,mDAAgB,QAAQ,WAAW,SAAS,sDAAc;AAAA,gBAC5D;AACA,oBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,kCAAgB,qJAAwC;AAAA,gBAC1D;AACA;AAAA,cACF,KAAK;AACH;AAAA,mBACG,cAAc,aAAa,gDAC1B,SACC,QAAQ,WAAW,UAAU,sDAAc;AAAA,gBAChD;AACA,oBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,kCAAgB,wHAA8B;AAAA,gBAChD;AACA;AAAA,cACF,KAAK;AACH,oBAAI,QAAQ,WAAW,QAAQ;AAC7B,mCAAiB,cAAc,aAAa,gDAAa,4DAAoB;AAC7E,sBAAI,qBAAqB;AACvB,oCAAgB,wHAA8B;AAAA,kBAChD;AAAA,gBACF,OAAO;AACL,sBAAI,QAAQ,WAAW,SAAS;AAC9B,qCAAiB,cAAc,aAAa,gDAAa,gDAAkB;AAAA,kBAC7E,WAAW,QAAQ,WAAW,UAAU;AACtC;AAAA,uBACG,cAAc,aAAa,gDAAa;AAAA,oBAC3C;AAAA,kBACF,WAAW,QAAQ,WAAW,QAAQ;AACpC,qCAAiB,cAAc,aAAa,gDAAa,6DAAqB;AAAA,kBAChF;AACA,sBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,oCAAgB,6HAAmC;AAAA,kBACrD;AAAA,gBACF;AACA;AAAA,cACF,KAAK;AACH;AAAA,mBACG,cAAc,aAAa,gDAC1B,SACC,QAAQ,WAAW,UAAU,sDAAc;AAAA,gBAChD;AACA,oBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,sBAAI,QAAQ,WAAW,QAAQ;AAC7B,oCAAgB,6HAAmC;AAAA,kBACrD,OAAO;AACL,oCAAgB,2JAAwC;AAAA,kBAC1D;AAAA,gBACF;AACA;AAAA,cACF,KAAK;AACH;AAAA,mBACG,cAAc,aAAa,gDAC1B,SACC,QAAQ,WAAW,UAAU,sDAAc;AAAA,gBAChD;AACA,oBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,sBAAI,QAAQ,WAAW,UAAU;AAC/B,oCAAgB,iJAAmC;AAAA,kBACrD,OAAO;AACL,oCAAgB,2JAAwC;AAAA,kBAC1D;AAAA,gBACF;AACA;AAAA,YACJ;AAAA,UACF;AACA;AAAA,QACF,KAAK;AACH,qBAAW,gBAAgB,mDAAW;AACtC,0BAAgB,kBAAkB,mDAAW;AAC7C,cAAI,aAAa;AACf,4BAAgB,iBAAiB,mDAAW;AAAA,UAC9C,OAAO;AACL,4BAAgB,YAAY,4CAAS;AACrC,4BAAgB,eAAe,6CAAU;AACzC,gBAAI,qBAAqB;AACvB,kBAAI,QAAQ,WAAW,QAAQ;AAC7B,gCAAgB,8HAA+B;AAAA,cACjD,OAAO;AACL,gCAAgB,iJAAmC;AAAA,cACrD;AAAA,YACF;AAAA,UACF;AACA;AAAA,QACF,KAAK;AACH,qBAAW,kBAAkB,yDAAY;AACzC,0BAAgB,kBAAkB,mDAAW;AAC7C,cAAI,QAAQ;AACV,uBAAW,iBAAiB,mDAAW;AACvC,4BAAgB,WAAW,gCAAO;AAAA,UACpC;AACA,cAAI,WAAW;AACb,4BAAgB,eAAe,6CAAU;AACzC,4BAAgB,UAAU,gCAAO;AACjC,4BAAgB,kBAAkB,mDAAW;AAC7C,4BAAgB,iHAAuB;AACvC,gBAAI,uBAAuB,QAAQ,WAAW,SAAS;AACrD,8BAAgB,6JAAqC;AAAA,YACvD;AAAA,UACF;AACA;AAAA,MACJ;AACA,UAAI,QAAQ,IAAI;AACd,YAAI,CAAC,QAAQ;AACX,qBAAW,iBAAiB,mDAAW;AACvC,0BAAgB,kBAAkB,mDAAW;AAC7C,0BAAgB,WAAW,gCAAO;AAClC,0BAAgB,eAAe,6CAAU;AAAA,QAC3C,OAAO;AACL,qBAAW,cAAc,6CAAU;AACnC,cAAI,aAAa;AACf,uBAAW,oFAAmB,6CAAU;AAAA,UAC1C,WAAW,QAAQ,WAAW,WAAW,WAAW;AAClD,2BAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF,WAAW,QAAQ,WAAW,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AAC3E,wBAAgB,mBAAmB,yDAAY;AAAA,MACjD;AACA,UAAI,MAAM,IAAI;AACZ,wBAAgB,sBAAsB,iCAAQ;AAAA,MAChD,WAAW,MAAM,IAAI;AACnB,wBAAgB,mCAAmC,iHAAuB;AAAA,MAC5E;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UACE,cACE,QAAQ,WAAW,UAAU,MAAM,KAAK,MAAM,MAC7C,QAAQ,WAAW,YAAY,MAAM,KAAK,MAAM,MAChD,QAAQ,WAAW,UAAU,MAAM,MAAM,MAAM,KAClD;AACA,wBAAgB,UAAU,0DAAa;AACvC,wBAAgB,kBAAkB,+DAAa;AAAA,MACjD;AACA,UAAI,OAAO,IAAI;AACb,wBAAgB,mCAAmC,iHAAuB;AAAA,MAC5E;AACA,WACI,SAAS,UAAU,OAAO,KAAO,CAAC,SAAS,UAAU,6BACvD,QAAQ,WAAW,SACnB;AACA,wBAAgB,sBAAsB,0DAAa;AAAA,MACrD;AACA;AAAA,IACF,KAAK,kBAAE;AACL,WACI,SAAS,UAAU,OAAO,KAAO,CAAC,SAAS,UAAU,6BACvD,QAAQ,WAAW,SACnB;AACA,wBAAgB,sBAAsB,0DAAa;AAAA,MACrD,WAAW,QAAQ,MAAM,QAAQ,WAAW,WAAW,aAAa;AAClE,gBAAQ,YAAY;AAAA,MACtB,WAAW,OAAO,IAAI;AACpB,gBAAQ,YAAY;AACpB,mBAAW,YAAY,gCAAO;AAC9B,wBAAgB,eAAe,mDAAW;AAC1C,YAAI,WAAW;AACb,0BAAgB,eAAe,6CAAU;AACzC,cAAI,aAAa,QAAQ,WAAW;AAAS,2BAAe;AAC5D,cAAI,uBAAuB,QAAQ,MAAM,QAAQ,WAAW,SAAS;AACnE,4BAAgB,0KAAwC;AAAA,UAC1D;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,CAAC,SAAS,UAAU,4BAA4B,QAAQ,WAAW,SAAS;AAC9E,wBAAgB,sBAAsB,0DAAa;AAAA,MACrD;AACA,UAAI,QAAQ,MAAM,cAAc,MAAM,IAAI,IAAI,IAAI,IAAI;AACpD,gBAAQ,YAAY;AACpB,mBAAW,YAAY,gCAAO;AAC9B,wBAAgB,eAAe,mDAAW;AAC1C,YAAI,WAAW;AACb,0BAAgB,eAAe,6CAAU;AACzC,cAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,2BAAe;AACf,gBAAI,QAAQ,KAAK,qBAAqB;AACpC,8BAAgB,0KAAwC;AAAA,YAC1D;AAAA,UACF;AAAA,QACF;AAAA,MACF,WAAW,QAAQ,MAAM,WAAW;AAClC,mBAAW,yBAAyB,mDAAW;AAC/C,YAAI,WAAW;AACb,0BAAgB,YAAY,sCAAQ;AAAA,QACtC;AACA,wBAAgB,kBAAkB,+DAAa;AAC/C,wBAAgB,UAAU,0BAAM;AAAA,MAClC;AACA;AAAA,IACF,KAAK,kBAAE;AACL,UAAI,QAAQ,MAAM;AAAa,gBAAQ,YAAY;AACnD,UAAI,QAAQ,IAAI;AACd,gBAAQ,YAAY;AACpB,mBAAW,cAAc,wCAAU;AAAA,MACrC;AACA;AAAA,IACF,KAAK,kBAAE;AAAA,IACP,KAAK,kBAAE;AACL,UAAI,UAAU,kBAAE,QAAQ,YAAY;AAElC,YAAI,QAAQ,MAAM;AAAa,kBAAQ,YAAY;AACnD,YAAI,CAAC,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AAC1B;AAAA,YACE,QAAQ,KACJ,cACE,gBACA,sDACF,cACA,wBACA;AAAA,UACN;AACA,cAAI,WAAW;AACb,oBAAQ,YAAY;AACpB,gBAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,6BAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF,OAAO;AAEL,YACE,cACE,QAAQ,MAAM,QAAQ,WAAW,YAChC,QAAQ,MAAM,QAAQ,WAAW,UACpC;AACA,cAAI,WAAW;AACb,uBAAW,0BAA0B,yDAAY;AACjD,4BAAgB,YAAY,sCAAQ;AAAA,UACtC;AACA,0BAAgB,kBAAkB,+DAAa;AAC/C,0BAAgB,UAAU,0BAAM;AAAA,QAClC,OAAO;AAEL,gBAAM,iBAAiB,SAAS,SAAS,eAAe,SAAS,eAAe;AAChF,cAAI,QAAQ,IAAI;AACd,oBAAQ,YAAY;AACpB,gBAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,6BAAe;AAAA,YACjB;AAEA,gBAAI,CAAC,kBAAkB,QAAQ,WAAW,QAAQ;AAChD,yBAAW,kBAAkB,yDAAY;AACzC,kBAAI,CAAC,gBAAgB;AACnB,2BAAW,SAAS,gCAAO;AAC3B,gCAAgB,eAAe,mDAAW;AAC1C,oBAAI,qBAAqB;AACvB,kCAAgB,oKAAuC;AAAA,gBACzD;AAAA,cACF,OAAO;AAEL,2BAAW,qBAAqB,iFAAgB;AAAA,cAClD;AAAA,YACF,OAAO;AACL,yBAAW,kBAAkB,qEAAc;AAAA,YAC7C;AAAA,UACF,WAAW,QAAQ,IAAI;AACrB,oBAAQ,YAAY;AACpB,gBAAI,aAAa,QAAQ,WAAW,SAAS;AAC3C,6BAAe;AAAA,YACjB;AACA,gBAAI,gBAAgB;AAClB,yBAAW,SAAS,gCAAO;AAC3B,8BAAgB,eAAe,mDAAW;AAC1C,kBAAI,QAAQ,WAAW,SAAS;AAC9B,2BAAW,kBAAkB,yDAAY;AAAA,cAC3C;AACA,kBAAI,uBAAuB,aAAa,QAAQ,WAAW,SAAS;AAClE,gCAAgB,oKAAuC;AAAA,cACzD;AAAA,YACF,WACE;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,EAAE,SAAS,SAAS,IAAI,GACxB;AACA,yBAAW,mBAAmB,2EAAe;AAC7C,kBAAI,QAAQ,WAAW,SAAS;AAC9B,2BAAW,oBAAoB,2DAAc;AAAA,cAC/C;AAAA,YACF,OAAO;AACL,yBAAW,iBAAiB,yDAAY;AAAA,YAC1C;AAAA,UACF,WAAW,QAAQ,MAAM,kBAAkB,QAAQ,WAAW,QAAQ;AACpE,uBAAW,mCAAmC,6HAAyB;AAAA,UACzE;AAAA,QACF;AAAA,MACF;AACA;AAAA,EACJ;AACF;AAEA,SAAS,iBAAiB;AACxB,kBAAgB,mBAAmB,8CAAW;AAChD;AAEA,SAAS,WAAW,sBAA8B,YAAqB;AACrE,QAAM,OAAO,eAAe,CAAC,aAAa,uBAAuB;AACjE,MAAI,CAAC,SAAS,SAAS,IAAI,GAAG;AAC5B,aAAS,KAAK,IAAI;AAAA,EACpB;AACF;AAEA,SAAS,gBAAgB,sBAA8B,YAAqB;AAC1E,QAAM,OAAO,eAAe,CAAC,aAAa,uBAAuB;AACjE,MAAI,CAAC,cAAc,SAAS,IAAI,GAAG;AACjC,kBAAc,KAAK,IAAI;AAAA,EACzB;AACF;AAEA,SAAS,oBAAoB,OAAc,UAAoB;AAC7D,QAAM,EAAE,OAAO,KAAK,UAAU,IAAI;AAElC,MAAI,QAAQ,KAAK,QAAQ,IAAI;AAC3B,WAAO;AAAA,EACT;AACA,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,MAAM,MAAM,MAAM;AAAA,IAC3B,KAAK;AACH,aAAO,QAAQ,MAAO,cAAc,KAAK,QAAQ;AAAA,IACnD,KAAK;AACH,aAAO,QAAQ,KAAM,cAAc,KAAK,QAAQ;AAAA,IAClD,KAAK;AACH,aAAO,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,SAAS,GAAG,KAAM,cAAc,KAAK,QAAQ;AAAA,IAClF,KAAK;AACH,aAAO,OAAO;AAAA,IAChB,KAAK;AACH,aAAO,QAAQ,MAAM,MAAM,KAAM,QAAQ,KAAK,MAAM,cAAc,MAAM,IAAI;AAAA,IAC9E,KAAK;AAAA,IACL,KAAK;AACH,aACE,WAAW,MAAM,UAAU,MAAM,IAAI,IAAI,kBAAE,cAAc,kBAAE,UAC1D,QAAQ,MAAM,SAAS,SAAS,SAAS,+CAAY,KAAK;AAAA,IAE/D;AACE,aAAO;AAAA,EACX;AACF","sourcesContent":["import { Utils, DaysOfWeek,JewishMonthsNames, DaysOfWeekHeb, DaysOfWeekEng, JewishMonthsEng, JewishMonthsHeb, SecularMonthsEng } from './Utils.js';\r\nimport Zmanim from './JCal/Zmanim.js';\r\nimport jDate from './JCal/jDate.js';\r\nimport Location from './JCal/Location.js';\r\nimport { Locations, findLocation, closestNameMatch, closestDistanceMatch } from './Locations.js';\r\nimport { ZmanTypes, ZmanTypeIds, getZmanType } from './ZmanTypes.js';\r\nimport Molad from './JCal/Molad.js';\r\nimport PirkeiAvos from './JCal/PirkeiAvos.js';\r\nimport Dafyomi from './JCal/Dafyomi.js';\r\nimport Sedra from './JCal/Sedra.js';\r\nimport ZmanimUtils from './JCal/ZmanimUtils.js';\r\nimport { getNotifications } from './Notifications.js';\r\nimport type { Time, SunTimes, ZmanToShow, ZmanTime, ShulZmanimType } from './jcal-zmanim.d.ts';\r\n\r\nexport {closestDistanceMatch};\r\nexport {closestNameMatch};\r\nexport {Dafyomi};\r\nexport {DaysOfWeek};\r\nexport {DaysOfWeekEng};\r\nexport {DaysOfWeekHeb};\r\nexport {findLocation};\r\nexport {getNotifications};\r\nexport {getZmanType};\r\nexport {jDate};\r\nexport {JewishMonthsEng};\r\nexport {JewishMonthsHeb};\r\nexport {JewishMonthsNames};\r\nexport {Location};\r\nexport {Locations};\r\nexport {Molad};\r\nexport {PirkeiAvos};\r\nexport {SecularMonthsEng};\r\nexport {Sedra};\r\nexport {Utils};\r\nexport {Zmanim};\r\nexport {ZmanimUtils};\r\nexport {ZmanTypeIds};\r\nexport {ZmanTypes};\r\nexport type {ShulZmanimType};\r\nexport type {SunTimes};\r\nexport type {Time};\r\nexport type {ZmanTime};\r\nexport type {ZmanToShow};\r\n","import jDate from './jDate.js';\r\n\r\n/**\r\n * Computes the Sedra/Sedras of the week for the given day.\r\n * The property \"sedras\" an array of sedras (either one or two) for the given Jewish Date\r\n * Sample of use to get todays sedra in Israel:\r\n * const sedras = new Sedra(new jDate(), true).toString();\r\n * The code was converted to javascript and tweaked by CBS.\r\n * It is directly based on the C code in Danny Sadinoff's HebCal - Copyright (C) 1994.\r\n * Portions of that code are Copyright (c) 2002 Michael J. Radwin. All Rights Reserved.\r\n * Many of the algorithms were taken from hebrew calendar routines implemented by Nachum Dershowitz\r\n * @property sedras {[{ eng: String, heb: String }]}\r\n */\r\nexport default class Sedra {\r\n sedras: { eng: string, heb: string}[];\r\n /**\r\n * @param {jDate} jd\r\n * @param {boolean} israel\r\n */\r\n constructor(jd:jDate, israel:boolean) {\r\n //If we are between the first day of Sukkos and Simchas Torah, the sedra will always be Vezos Habracha.\r\n if (jd.Month === 7 && jd.Day >= 15 && jd.Day < (israel ? 23 : 24)) {\r\n this.sedras = [Sedra.sedraList[53]];\r\n return;\r\n }\r\n\r\n let sedraArray:{ eng: string, heb: string}[] = [],\r\n sedraOrder = Sedra.getSedraOrder(jd.Year, israel),\r\n absDate = jd.Abs,\r\n index:number,\r\n weekNum:number;\r\n\r\n /* find the first saturday on or after today's date */\r\n absDate = Sedra.getDayOnOrBefore(6, absDate + 6);\r\n\r\n weekNum = (absDate - sedraOrder.firstSatInYear) / 7;\r\n\r\n if (sedraOrder.sedraArray && weekNum >= sedraOrder.sedraArray.length) {\r\n const indexLast = sedraOrder.sedraArray[sedraOrder.sedraArray.length - 1];\r\n if (indexLast < 0) {\r\n /* advance 2 parashiyot ahead after a doubled week */\r\n index = (-indexLast) + 2;\r\n }\r\n else {\r\n index = indexLast + 1;\r\n }\r\n }\r\n else {\r\n index = (sedraOrder.sedraArray\r\n ?sedraOrder.sedraArray[weekNum]\r\n :-1);\r\n }\r\n\r\n if (index >= 0) {\r\n sedraArray = [Sedra.sedraList[index]];\r\n }\r\n else {\r\n const i = -index; /* undouble the sedra */\r\n sedraArray = [Sedra.sedraList[i], Sedra.sedraList[i + 1]];\r\n }\r\n this.sedras = sedraArray;\r\n }\r\n\r\n /**\r\n * Gets the sedra/s as a string. If there are two, they are seperated by a \" - \"\r\n */\r\n toString() {\r\n return this.sedras.map(s => s.eng).join(' - ');\r\n }\r\n\r\n /**\r\n * Gets the sedra/s as a string. If there are two, they are seperated by a \" - \"\r\n */\r\n toStringHeb() {\r\n return this.sedras.map(s => s.heb).join(' - ');\r\n }\r\n\r\n static lastCalculatedYear:{firstSatInYear:number,sedraArray?: number[],year: number,israel: boolean}|null = null;\r\n static sedraList = [{ eng: 'Bereshis', heb: 'בראשית' }, { eng: 'Noach', heb: 'נח' }, { eng: 'Lech-Lecha', heb: 'לך לך' }, { eng: 'Vayera', heb: 'וירא' }, { eng: 'Chayei Sara', heb: 'חיי שרה' }, { eng: 'Toldos', heb: 'תולדות' }, { eng: 'Vayetzei', heb: 'ויצא' }, { eng: 'Vayishlach', heb: 'וישלח' }, { eng: 'Vayeishev', heb: 'וישב' }, { eng: 'Mikeitz', heb: 'מקץ' }, { eng: 'Vayigash', heb: 'ויגש' }, { eng: 'Vayechi', heb: 'ויחי' }, { eng: 'Shemos', heb: 'שמות' }, { eng: 'Va\\'era', heb: 'וארא' }, { eng: 'Bo', heb: 'בא' }, { eng: 'Beshalach', heb: 'בשלח' }, { eng: 'Yisro', heb: 'יתרו' }, { eng: 'Mishpatim', heb: 'משפטים' }, { eng: 'Terumah', heb: 'תרומה' }, { eng: 'Tetzaveh', heb: 'תצוה' }, { eng: 'Ki Sisa', heb: 'כי תשא' }, { eng: 'Vayakhel', heb: 'ויקהל' }, { eng: 'Pekudei', heb: 'פקודי' }, { eng: 'Vayikra', heb: 'ויקרא' }, { eng: 'Tzav', heb: 'צו' }, { eng: 'Shmini', heb: 'שמיני' }, { eng: 'Tazria', heb: 'תזריע' }, { eng: 'Metzora', heb: 'מצורע' }, { eng: 'Achrei Mos', heb: 'אחרי מות' }, { eng: 'Kedoshim', heb: 'קדושים' }, { eng: 'Emor', heb: 'אמור' }, { eng: 'Behar', heb: 'בהר' }, { eng: 'Bechukosai', heb: 'בחקותי' }, { eng: 'Bamidbar', heb: 'במדבר' }, { eng: 'Nasso', heb: 'נשא' }, { eng: 'Beha\\'aloscha', heb: 'בהעלתך' }, { eng: 'Sh\\'lach', heb: 'שלח' }, { eng: 'Korach', heb: 'קרח' }, { eng: 'Chukas', heb: 'חקת' }, { eng: 'Balak', heb: 'בלק' }, { eng: 'Pinchas', heb: 'פינחס' }, { eng: 'Matos', heb: 'מטות' }, { eng: 'Masei', heb: 'מסעי' }, { eng: 'Devarim', heb: 'דברים' }, { eng: 'Va\\'eschanan', heb: 'ואתחנן' }, { eng: 'Eikev', heb: 'עקב' }, { eng: 'Re\\'eh', heb: 'ראה' }, { eng: 'Shoftim', heb: 'שופטים' }, { eng: 'Ki Seitzei', heb: 'כי תצא' }, { eng: 'Ki Savo', heb: 'כי תבא' }, { eng: 'Nitzavim', heb: 'נצבים' }, { eng: 'Vayeilech', heb: 'וילך' }, { eng: 'Ha\\'Azinu', heb: 'האזינו' }, { eng: 'Vezos Habracha', heb: 'וזאת הברכה' }];\r\n static shabbos_short = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static shabbos_long = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static mon_short = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static mon_long = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static thu_normal = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static thu_normal_Israel = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static thu_long = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static shabbos_short_leap = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static shabbos_long_leap = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static mon_short_leap = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static mon_short_leap_Israel = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\r\n static mon_long_leap = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static mon_long_leap_Israel = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static thu_short_leap = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];\r\n static thu_long_leap = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -50];\r\n\r\n static getDayOnOrBefore(day_of_week:number, date:number) {\r\n return date - ((date - day_of_week) % 7);\r\n }\r\n\r\n static getSedraOrder(year:number, israel:boolean) {\r\n //If the last call is within the same year as this one, we reuse the data.\r\n //If memory is an issue, remove these next few lines\r\n if (Sedra.lastCalculatedYear != null &&\r\n Sedra.lastCalculatedYear.year === year &&\r\n Sedra.lastCalculatedYear.israel === israel) {\r\n return Sedra.lastCalculatedYear;\r\n }\r\n\r\n const longCheshvon = jDate.isLongCheshvan(year),\r\n shortKislev = jDate.isShortKislev(year),\r\n roshHashana = jDate.absJd(year, 7, 1),\r\n roshHashanaDOW = Math.abs(roshHashana % 7),\r\n firstSatInYear = Sedra.getDayOnOrBefore(6, roshHashana + 6);\r\n let yearType,\r\n sArray;\r\n\r\n if (longCheshvon && !shortKislev)\r\n yearType = 'complete';\r\n else if (!longCheshvon && shortKislev)\r\n yearType = 'incomplete';\r\n else\r\n yearType = 'regular';\r\n\r\n if (!jDate.isJdLeapY(year)) {\r\n switch (roshHashanaDOW) {\r\n case 6:\r\n if (yearType === 'incomplete') {\r\n sArray = Sedra.shabbos_short;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = Sedra.shabbos_long;\r\n }\r\n break;\r\n\r\n case 1:\r\n if (yearType === 'incomplete') {\r\n sArray = Sedra.mon_short;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = israel ? Sedra.mon_short : Sedra.mon_long;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (yearType === 'regular') {\r\n sArray = israel ? Sedra.mon_short : Sedra.mon_long;\r\n }\r\n break;\r\n\r\n case 4:\r\n if (yearType === 'regular') {\r\n sArray = israel ? Sedra.thu_normal_Israel : Sedra.thu_normal;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = Sedra.thu_long;\r\n }\r\n break;\r\n\r\n default:\r\n throw 'improper sedra year type calculated.';\r\n }\r\n }\r\n else /* leap year */ {\r\n switch (roshHashanaDOW) {\r\n case 6:\r\n if (yearType === 'incomplete') {\r\n sArray = Sedra.shabbos_short_leap;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = israel ? Sedra.shabbos_short_leap : Sedra.shabbos_long_leap;\r\n }\r\n break;\r\n\r\n case 1:\r\n if (yearType === 'incomplete') {\r\n sArray = israel ? Sedra.mon_short_leap_Israel : Sedra.mon_short_leap;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = israel ? Sedra.mon_long_leap_Israel : Sedra.mon_long_leap;\r\n }\r\n break;\r\n\r\n case 2:\r\n if (yearType === 'regular') {\r\n sArray = israel ? Sedra.mon_long_leap_Israel : Sedra.mon_long_leap;\r\n }\r\n break;\r\n\r\n case 4:\r\n if (yearType === 'incomplete') {\r\n sArray = Sedra.thu_short_leap;\r\n }\r\n else if (yearType === 'complete') {\r\n sArray = Sedra.thu_long_leap;\r\n }\r\n break;\r\n\r\n default:\r\n throw 'improper sedra year type calculated.';\r\n }\r\n }\r\n\r\n const retobj = {\r\n firstSatInYear: firstSatInYear,\r\n sedraArray: sArray,\r\n year: year,\r\n israel: israel\r\n };\r\n\r\n //Save the data in case the next call is for the same year\r\n Sedra.lastCalculatedYear = retobj;\r\n\r\n return retobj;\r\n }\r\n}","import jDate from './jDate.js';\r\nimport {Utils} from '../Utils.js';\r\n\r\n'use strict';\r\n\r\n/****************************************************************************************************************\r\n * Computes the Perek/Prakim of the week for the given Shabbos.\r\n * Returns an array of prakim (integers) (either one or two) for the given Jewish Date\r\n * Sample of use to get todays sedra in Israel:\r\n * const prakim = PirkeiAvos.getPrakim(new jDate(), true);\r\n * const str = 'Pirkei Avos: ' + prakim.map(s => `${Utils.toSuffixed(s)} Perek`).join(' and ');\r\n * ***************************************************************************************************************/\r\nexport default class PirkeiAvos {\r\n static getPrakim(jd:jDate, israel:boolean) {\r\n if (jd.getDayOfWeek() !== 6) {\r\n return [];\r\n }\r\n\r\n const jMonth = jd.Month,\r\n jDay = jd.Day;\r\n\r\n //Pirkei Avos is from after Pesach until Rosh Hashana\r\n if ((jMonth === 1 && jDay > (israel ? 21 : 22)) ||\r\n //All Shabbosim through Iyar, Sivan, Tamuz, Av - besides for the day/s of Shavuos and Tisha B'Av\r\n ((jMonth > 1 && jMonth < 6 &&\r\n (!((jMonth === 3 && jDay === 6) || (!israel && jMonth === 3 && jDay === 7))) &&\r\n (!(jMonth === 5 && jDay === 9))))) {\r\n return [PirkeiAvos._get1stPerek(jd, israel)];\r\n }\r\n //Ellul can have multiple prakim\r\n else if (jMonth === 6) {\r\n return PirkeiAvos._ellul(jd, israel);\r\n }\r\n //No Pirkei Avos\r\n else {\r\n return [];\r\n }\r\n }\r\n static _get1stPerek = function (jd:jDate, israel:boolean) {\r\n const jYear = jd.Year,\r\n jMonth = jd.Month,\r\n jDay = jd.Day,\r\n pes1 = new jDate(jYear, 1, 15),\r\n //How many days after the first day of pesach was the first shabbos after pesach\r\n shb1 = (israel ? 7 : 8) + (6 - pes1.getDayOfWeek()),\r\n //What number shabbos after pesach is the current date\r\n cShb = ((jMonth === 1 && jDay === (shb1 + 15)) ? 1 :\r\n Utils.toInt((jd.Abs - (pes1.Abs + shb1)) / 7) + 1);\r\n let prk = cShb % 6;\r\n if (prk === 0) prk = 6;\r\n //If the second day of Shavuos was on Shabbos, we missed a week.\r\n //The second day of Pesach is always the same day as the first day of Shavuos.\r\n //So if Pesach was on Thursday, Shavuos will be on Friday and Shabbos in Chu\"l.\r\n //Pesach can never come out on Friday, so in E. Yisroel Shavuos is never on Shabbos.\r\n if ((!israel) && pes1.getDayOfWeek() === 4 && (jMonth > 3 || (jMonth === 3 && jDay > 6))) {\r\n prk = prk === 1 ? 6 : prk - 1;\r\n }\r\n //If Tisha B'Av was on Shabbos, we missed a week. The first day of Pesach is always the same day of the week as Tisha b'av.\r\n if (pes1.getDayOfWeek() === 6 && (jMonth > 5 || (jMonth === 5 && jDay > 9))) {\r\n prk = prk === 1 ? 6 : prk - 1;\r\n }\r\n\r\n return prk;\r\n }\r\n static _ellul = function (jd:jDate, israel:boolean) {\r\n let prakim;\r\n const jYear = jd.Year,\r\n jDay = jd.Day,\r\n //The fist day of Ellul.\r\n //The year/month/day/absoluteDay constructor for JDate is used for efficiency.\r\n day1 = new jDate(jYear, 6, 1, jd.Abs - jd.Day + 1),\r\n day1DOW = day1.getDayOfWeek(),\r\n shabbos1Day = day1DOW === 6 ? 1 : ((6 - (day1DOW + 6) % 6) + 1),\r\n shabbos1Date = new jDate(jYear, 6, shabbos1Day, day1.Abs + shabbos1Day - 1),\r\n //Which shabbos in Ellul are we working out now?\r\n cShb = jDay === shabbos1Day ? 1 : Utils.toInt((jDay - shabbos1Day) / 7) + 1;\r\n\r\n switch (PirkeiAvos._get1stPerek(shabbos1Date, israel)) {\r\n case 1:\r\n switch (cShb) {\r\n case 1:\r\n prakim = [1];\r\n break;\r\n case 2:\r\n prakim = [2];\r\n break;\r\n case 3:\r\n prakim = [3, 4];\r\n break;\r\n case 4:\r\n prakim = [5, 6];\r\n break;\r\n }\r\n break;\r\n case 2:\r\n switch (cShb) {\r\n case 1:\r\n prakim = [2];\r\n break;\r\n case 2:\r\n prakim = [3];\r\n break;\r\n case 3:\r\n prakim = [4];\r\n break;\r\n case 4:\r\n prakim = [5, 6];\r\n break;\r\n }\r\n break;\r\n case 3:\r\n switch (cShb) {\r\n case 1:\r\n prakim = [3];\r\n break;\r\n case 2:\r\n prakim = [4];\r\n break;\r\n case 3:\r\n prakim = [5];\r\n break;\r\n case 4:\r\n prakim = [6];\r\n break;\r\n }\r\n break;\r\n case 4:\r\n //This can only happen in Chutz La'aretz\r\n switch (cShb) {\r\n case 1:\r\n prakim = [4, 5];\r\n break;\r\n case 2:\r\n prakim = [6, 1];\r\n break;\r\n case 3:\r\n prakim = [2, 3];\r\n break;\r\n case 4:\r\n prakim = [4, 5, 6];\r\n break;\r\n }\r\n break;\r\n case 5:\r\n switch (cShb) {\r\n case 1:\r\n prakim = [5, 6];\r\n break;\r\n case 2:\r\n prakim = [1, 2];\r\n break;\r\n case 3:\r\n prakim = [3, 4];\r\n break;\r\n case 4:\r\n prakim = [5, 6];\r\n break;\r\n }\r\n break;\r\n case 6:\r\n switch (cShb) {\r\n case 1:\r\n prakim = [6];\r\n break;\r\n case 2:\r\n prakim = [1, 2];\r\n break;\r\n case 3:\r\n prakim = [3, 4];\r\n break;\r\n case 4:\r\n prakim = [5, 6];\r\n break;\r\n }\r\n break;\r\n }\r\n\r\n return prakim || [];\r\n }\r\n}\r\n","import {Utils} from '../Utils.js';\r\nimport jDate from './jDate.js';\r\n\r\n'use strict';\r\n/** *********************************************************************************************************\r\n * Computes the Day Yomi for the given day.\r\n * Sample of use - to get todays daf:\r\n * const dafEng = Dafyomi.toString(jDate.now());\r\n * const dafHeb = Dafyomi.toStringHeb(jDate.now());\r\n * The code was converted to typescript and tweaked by CBS.\r\n * It is directly based on the C code in Danny Sadinoff's HebCal - Copyright (C) 1994.\r\n * The HebCal code for dafyomi was adapted by Aaron Peromsik from Bob Newell's public domain daf.el.\r\n***********************************************************************************************************/\r\nexport default class Dafyomi {\r\n static masechtaList = [\r\n { eng: 'Berachos', heb: 'ברכות', daf: 64 },\r\n { eng: 'Shabbos', heb: 'שבת', daf: 157 },\r\n { eng: 'Eruvin', heb: 'ערובין', daf: 105 },\r\n { eng: 'Pesachim', heb: 'פסחים', daf: 121 },\r\n { eng: 'Shekalim', heb: 'שקלים', daf: 22 },\r\n { eng: 'Yoma', heb: 'יומא', daf: 88 },\r\n { eng: 'Sukkah', heb: 'סוכה', daf: 56 },\r\n { eng: 'Beitzah', heb: 'ביצה', daf: 40 },\r\n { eng: 'Rosh Hashana', heb: 'ראש השנה', daf: 35 },\r\n { eng: 'Taanis', heb: 'תענית', daf: 31 },\r\n { eng: 'Megillah', heb: 'מגילה', daf: 32 },\r\n { eng: 'Moed Katan', heb: 'מועד קטן', daf: 29 },\r\n { eng: 'Chagigah', heb: 'חגיגה', daf: 27 },\r\n { eng: 'Yevamos', heb: 'יבמות', daf: 122 },\r\n { eng: 'Kesubos', heb: 'כתובות', daf: 112 },\r\n { eng: 'Nedarim', heb: 'נדרים', daf: 91 },\r\n { eng: 'Nazir', heb: 'נזיר', daf: 66 },\r\n { eng: 'Sotah', heb: 'סוטה', daf: 49 },\r\n { eng: 'Gitin', heb: 'גיטין', daf: 90 },\r\n { eng: 'Kiddushin', heb: 'קדושין', daf: 82 },\r\n { eng: 'Baba Kamma', heb: 'בבא קמא', daf: 119 },\r\n { eng: 'Baba Metzia', heb: 'בבא מציעא', daf: 119 },\r\n { eng: 'Baba Basra', heb: 'בבא בתרא', daf: 176 },\r\n { eng: 'Sanhedrin', heb: 'סנהדרין', daf: 113 },\r\n { eng: 'Makkot', heb: 'מכות', daf: 24 },\r\n { eng: 'Shevuot', heb: 'שבועות', daf: 49 },\r\n { eng: 'Avodah Zarah', heb: 'עבודה זרה', daf: 76 },\r\n { eng: 'Horayot', heb: 'הוריות', daf: 14 },\r\n { eng: 'Zevachim', heb: 'זבחים', daf: 120 },\r\n { eng: 'Menachos', heb: 'מנחות', daf: 110 },\r\n { eng: 'Chullin', heb: 'חולין', daf: 142 },\r\n { eng: 'Bechoros', heb: 'בכורות', daf: 61 },\r\n { eng: 'Arachin', heb: 'ערכין', daf: 34 },\r\n { eng: 'Temurah', heb: 'תמורה', daf: 34 },\r\n { eng: 'Kerisos', heb: 'כריתות', daf: 28 },\r\n { eng: 'Meilah', heb: 'מעילה', daf: 22 },\r\n { eng: 'Kinnim', heb: 'קנים', daf: 4 },\r\n { eng: 'Tamid', heb: 'תמיד', daf: 10 },\r\n { eng: 'Midos', heb: 'מדות', daf: 4 },\r\n { eng: 'Niddah', heb: 'נדה', daf: 73 }];\r\n\r\n static getDaf(jdate: jDate) : { masechet: { eng: string, heb: string, daf: number }, daf: number } | null {\r\n const absoluteDate = jdate.Abs;\r\n let dafcnt = 40, cno: number, dno: number, osday: number, nsday: number, total: number, count: number, j: number, blatt: number;\r\n\r\n osday = jDate.absSd(new Date(1923, 8, 11));\r\n nsday = jDate.absSd(new Date(1975, 5, 24));\r\n\r\n /* No cycle, new cycle, old cycle */\r\n if (absoluteDate < osday)\r\n return null; /* daf yomi hadn't started yet */\r\n if (absoluteDate >= nsday) {\r\n cno = 8 + Utils.toInt(((absoluteDate - nsday) / 2711));\r\n dno = (absoluteDate - nsday) % 2711;\r\n }\r\n else {\r\n cno = 1 + Utils.toInt((absoluteDate - osday) / 2702);\r\n dno = Utils.toInt((absoluteDate - osday) / 2702);\r\n }\r\n\r\n /* Find the daf taking note that the cycle changed slightly after cycle 7. */\r\n total = blatt = 0;\r\n count = -1;\r\n\r\n /* Fix Shekalim for old cycles */\r\n if (cno <= 7)\r\n Dafyomi.masechtaList[4].daf = 13;\r\n else\r\n Dafyomi.masechtaList[4].daf = 22;\r\n\r\n /* Find the daf */\r\n j = 0;\r\n while (j < dafcnt) {\r\n count++;\r\n total = total + Dafyomi.masechtaList[j].daf - 1;\r\n if (dno < total) {\r\n blatt = (Dafyomi.masechtaList[j].daf + 1) - (total - dno);\r\n /* fiddle with the weird ones near the end */\r\n switch (count) {\r\n case 36:\r\n blatt = blatt + 21;\r\n break;\r\n case 37:\r\n blatt = blatt + 24;\r\n break;\r\n case 38:\r\n blatt = blatt + 33;\r\n break;\r\n default:\r\n break;\r\n }\r\n /* Bailout */\r\n j = 1 + dafcnt;\r\n }\r\n j++;\r\n }\r\n\r\n return {\r\n masechet: Dafyomi.masechtaList[count],\r\n daf: blatt\r\n };\r\n }\r\n\r\n // Returns the name of the Masechta and daf number in English, For example: Sukkah, Daf 3\r\n static toString(jd: jDate): string | undefined {\r\n const d = Dafyomi.getDaf(jd);\r\n if (d !== null) {\r\n return d.masechet.eng + ', Daf ' + d.daf.toString();\r\n }\r\n }\r\n\r\n //Returns the name of the Masechta and daf number in Hebrew. For example: 'סוכה דף כ.\r\n static toStringHeb(jd: jDate): string | undefined {\r\n const d = Dafyomi.getDaf(jd);\r\n if (d !== null) {\r\n return d.masechet.heb + ' דף ' + Utils.toJewishNumber(d.daf);\r\n }\r\n }\r\n}","import { Utils, DaysOfWeekEng, JewishMonthsEng, DaysOfWeekHeb, JewishMonthsHeb } from \"../Utils.js\";\r\nimport Sedra from \"./Sedra.js\";\r\nimport PirkeiAvos from \"./PirkeiAvos.js\";\r\nimport Zmanim from \"./Zmanim.js\";\r\nimport DafYomi from \"./Dafyomi.js\";\r\nimport Location from \"./Location.js\";\r\n\r\n/** Keeps a \"memcache\" of years that have had their elapsed days previously calculated. Format: { year:5776, elapsed:2109283 } */\r\nconst _yearCache: [{ year: number; elapsed: number }?] = [],\r\n //The absolute date for the zero hour of all javascript date objects - 1/1/1970 0:00:00 UTC\r\n JS_START_DATE_ABS = 719163,\r\n //The number of milliseconds in everyday\r\n MS_PER_DAY = 8.64e7,\r\n //The time zone offset (in minutes) for 1/1/1970 0:00:00 UTC at the current users time zone\r\n JS_START_OFFSET = new Date(0).getTimezoneOffset();\r\n/* ****************************************************************************************************************\r\n * Many of the date conversion algorithms in the jDate class are based on the C code which was translated from Lisp\r\n * in \"Calendrical Calculations\" by Nachum Dershowitz and Edward M. Reingold\r\n * in Software---Practice & Experience, vol. 20, no. 9 (September, 1990), pp. 899--928.\r\n * ****************************************************************************************************************/\r\n\r\n/** Represents a single day in the Jewish Calendar. */\r\nexport default class jDate {\r\n public Day: number;\r\n public Month: number;\r\n public Year: number;\r\n public Abs: number;\r\n\r\n /**\r\n * Create a new Jdate.\r\n * new jDate() - Sets the Jewish Date for the current system date\r\n * new jDate(javascriptDateObject) - Sets to the Jewish date on the given Gregorian date\r\n * new jDate(\"January 1 2045\") - Accepts any valid javascript Date string (uses javascripts new Date(string))\r\n * new jDate(jewishYear, jewishMonth, jewishDay) - Months start at 1. Nissan is month 1 Adar Sheini is 13.\r\n * new jDate(jewishYear, jewishMonth) - Same as above, with Day defaulting to 1\r\n * new jDate( { year: 5776, month: 4, day: 5 } ) - same as new jDate(jewishYear, jewishMonth, jewishDay)\r\n * new jDate( { year: 5776, month: 4 } ) - same as new jDate(jewishYear, jewishMonth)\r\n * new jDate( { year: 5776 } ) - sets to the first day of Rosh Hashana on the given year\r\n * new jDate(absoluteDate) - The number of days elapsed since the theoretical date Sunday, December 31, 0001 BCE\r\n * new jDate(jewishYear, jewishMonth, jewishDay, absoluteDate) - Most efficient constructor. Needs no calculations at all.\r\n * new jDate( { year: 5776, month: 4, day: 5, abs: 122548708 } ) - same as new jDate(jewishYear, jewishMonth, jewishDay, absoluteDate)\r\n * @param {number | Date | string | {year:number,month:number,day:number} | [number, number, number, number]} [arg] The full Jewish year number OR Javascript Date object or string OR object or array of year, month, day\r\n * @param {number} [month] The month of the Jewish date. Nissan is 1.\r\n * @param {number} [day] The day of the month\r\n * @param {number} [abs] The number of days that have passed since 12/31/0001\r\n */\r\n constructor(\r\n arg?:\r\n | number\r\n | Date\r\n | string\r\n | { year: number; month: number; day: number }\r\n | [number, number, number, number],\r\n month?: number,\r\n day?: number,\r\n abs?: number\r\n ) {\r\n //The day of the Jewish Month\r\n this.Day = NaN;\r\n //The Jewish Month. As in the Torah, Nissan is 1 and Adara Sheini is 13\r\n this.Month = NaN;\r\n //The number of years since the creation of the world\r\n this.Year = NaN;\r\n //The number of days since the theoretical date: Dec. 31, 0001 BCE\r\n this.Abs = NaN;\r\n\r\n if (arguments.length === 0) {\r\n this.fromAbs(jDate.absSd(new Date()));\r\n } else if (arg instanceof Date) {\r\n if (Utils.isValidDate(arg)) {\r\n this.fromAbs(jDate.absSd(arg));\r\n } else {\r\n throw \"jDate constructor: The given Date is not a valid javascript Date\";\r\n }\r\n } else if (Array.isArray(arg) && arg.length >= 3) {\r\n this.Day = arg[0];\r\n this.Month = arg[1];\r\n this.Year = arg[2];\r\n this.Abs = (arg.length > 3 && arg[3]) || jDate.absJd(this.Year, this.Month, this.Day);\r\n } else if (arg && Utils.isString(arg)) {\r\n const d = new Date(arg as string);\r\n if (Utils.isValidDate(d)) {\r\n this.fromAbs(jDate.absSd(d));\r\n } else {\r\n throw 'jDate constructor: The given string \"' + arg + '\" cannot be parsed into a Date';\r\n }\r\n } else if (Utils.isNumber(arg)) {\r\n //if no other arguments were supplied, we assume that the supplied number is an absolute date\r\n if (arguments.length === 1) {\r\n this.fromAbs(arg as number);\r\n }\r\n //If the year and any other number is supplied, we set the year and create the date using either the supplied values or the defaults\r\n else {\r\n this.Year = arg as number;\r\n this.Month = month || 7; //If no month was supplied, we take Tishrei\r\n this.Day = day || 1; //If no day was supplied, we take the first day of the month\r\n //If the absolute date was also supplied (very efficient), we use the supplied value, otherwise we calculate it.\r\n this.Abs = abs || jDate.absJd(this.Year, this.Month, this.Day);\r\n }\r\n }\r\n //If arg is an object that has a \"year\" property that contains a valid value...\r\n else if (typeof arg === \"object\") {\r\n const argObj = arg as { year: number; month: number; day: number; abs: number };\r\n if (Utils.isNumber(argObj.year)) {\r\n this.Day = argObj.day || 1;\r\n this.Month = argObj.month || 7;\r\n this.Year = argObj.year;\r\n this.Abs = argObj.abs || jDate.absJd(this.Year, this.Month, this.Day);\r\n }\r\n }\r\n }\r\n\r\n /**Sets the current Jewish date from the given absolute date*/\r\n fromAbs(absolute: number) {\r\n const ymd = jDate.fromAbs(absolute);\r\n this.Year = ymd.year;\r\n this.Month = ymd.month;\r\n this.Day = ymd.day;\r\n this.Abs = absolute;\r\n }\r\n\r\n /**Returns a valid javascript Date object that represents the Gregorian date\r\n that starts at midnight of the current Jewish date.*/\r\n getDate(): Date {\r\n return jDate.sdFromAbs(this.Abs);\r\n }\r\n /**\r\n * @returns {number} The day of the week for the current Jewish date. Sunday is 0 and Shabbos is 6.\r\n */\r\n getDayOfWeek(): number {\r\n return Math.abs(this.Abs % 7);\r\n }\r\n /**\r\n * @returns {number} The day of the week for the current Jewish date. Sunday is 0 and Shabbos is 6\r\n */\r\n get DayOfWeek(): number {\r\n return this.getDayOfWeek();\r\n }\r\n /**Returns a new Jewish date represented by adding the given number of days to the current Jewish date.*/\r\n addDays(days: number): jDate {\r\n return new jDate(this.Abs + days);\r\n }\r\n /**\r\n * Returns a new Jewish date represented by adding the given number of\r\n * Jewish Months to the current Jewish date.\r\n * If the current Day is 30 and the new month only has 29 days,\r\n * the 29th day of the month is returned.\r\n * @param {number} months\r\n */\r\n addMonths(months: number): jDate {\r\n let year = this.Year,\r\n month = this.Month,\r\n day = this.Day,\r\n miy = jDate.monthsJYear(year);\r\n\r\n for (let i = 0; i < Math.abs(months); i++) {\r\n if (months > 0) {\r\n month += 1;\r\n if (month > miy) {\r\n month = 1;\r\n }\r\n if (month === 7) {\r\n year += 1;\r\n miy = jDate.monthsJYear(year);\r\n }\r\n } else if (months < 0) {\r\n month -= 1;\r\n if (month === 0) {\r\n month = miy;\r\n }\r\n if (month === 6) {\r\n year -= 1;\r\n miy = jDate.monthsJYear(year);\r\n }\r\n }\r\n }\r\n if (day === 30 && jDate.daysJMonth(year, month) === 29) {\r\n day = 29;\r\n }\r\n\r\n return new jDate(year, month, day);\r\n }\r\n /**\r\n * Returns a new Jewish date represented by adding the\r\n * given number of Jewish Years to the current Jewish date.\r\n * If the current Day is 30 and the new dates month only has 29 days,\r\n * the 29th day of the month is returned.\r\n * @param {number} years\r\n */\r\n addYears(years: number): jDate {\r\n let year = this.Year + years,\r\n month = this.Month,\r\n day = this.Day;\r\n\r\n if (month === 13 && !jDate.isJdLeapY(year)) {\r\n month = 12;\r\n } else if (month === 8 && day === 30 && !jDate.isLongCheshvan(year)) {\r\n month = 9;\r\n day = 1;\r\n } else if (month === 9 && day === 30 && jDate.isShortKislev(year)) {\r\n month = 10;\r\n day = 1;\r\n }\r\n\r\n if (day === 30 && jDate.daysJMonth(year, month) === 29) {\r\n day = 29;\r\n }\r\n\r\n return new jDate(year, month, day);\r\n }\r\n addSecularMonths(months: number): jDate {\r\n const secDate = new Date(this.getDate().valueOf());\r\n secDate.setMonth(secDate.getMonth() + months);\r\n return new jDate(secDate);\r\n }\r\n addSecularYears(years: number): jDate {\r\n const secDate = new Date(this.getDate().valueOf());\r\n secDate.setFullYear(secDate.getFullYear() + years);\r\n return new jDate(secDate);\r\n }\r\n /**Gets the number of days separating this Jewish Date and the given one.\r\n *\r\n * If the given date is before this one, the number will be negative.\r\n * @param {jDate} jd\r\n * */\r\n diffDays(jd: jDate): number {\r\n return jd.Abs - this.Abs;\r\n }\r\n\r\n /**Gets the number of months separating this Jewish Date and the given one.\r\n *\r\n * Ignores the Day property:\r\n *\r\n * jDate.toJDate(5777, 6, 29).diffMonths(jDate.toJDate(5778, 7, 1)) will return 1 even though they are a day apart.\r\n *\r\n * If the given date is before this one, the number will be negative.\r\n * @param {jDate} jd\r\n * */\r\n diffMonths(jd: jDate): number {\r\n let month = jd.Month,\r\n year = jd.Year,\r\n months = 0;\r\n\r\n while (!(year === this.Year && month === this.Month)) {\r\n if (this.Abs > jd.Abs) {\r\n months--;\r\n month++;\r\n if (month > jDate.monthsJYear(year)) {\r\n month = 1;\r\n } else if (month === 7) {\r\n year++;\r\n }\r\n } else {\r\n months++;\r\n month--;\r\n if (month < 1) {\r\n month = jDate.monthsJYear(year);\r\n } else if (month === 6) {\r\n year--;\r\n }\r\n }\r\n }\r\n\r\n return months;\r\n }\r\n\r\n /**Gets the number of full months separating this Jewish Date and the given one.\r\n * If the given date is before this one, the number will be negative.\r\n * @param {jDate} jd\r\n * */\r\n diffFullMonths(jd: jDate): number {\r\n let months = this.diffMonths(jd);\r\n if (months >= 0 && this.Day > jd.Day) {\r\n months--;\r\n } else if (months < 0 && this.Day < jd.Day) {\r\n months++;\r\n }\r\n return months;\r\n }\r\n\r\n /**Gets the number of years separating this Jewish Date and the given one.\r\n *\r\n * Ignores the Day and Month properties:\r\n *\r\n * jDate.toJDate(5777, 6, 29).diffYears(jDate.toJDate(5778, 7, 1)) will return 1 even though they are a day apart.\r\n *\r\n * If the given date is before this one, the number will be negative.\r\n * @param {jDate} jd*/\r\n diffYears(jd: jDate): number {\r\n let diff = jd.Year - this.Year;\r\n if (this.Month < jd.Month || (this.Month === jd.Month && this.Day < jd.Day)) {\r\n diff--;\r\n }\r\n return diff;\r\n }\r\n\r\n /**Gets the number of full years separating this Jewish Date and the given one.\r\n * If the given date is before this one, the number will be negative.\r\n * @param {jDate} jd*/\r\n diffFullYears(jd: jDate): number {\r\n let diff = jd.Year - this.Year;\r\n if (diff >= 0 && (this.Month > jd.Month || (this.Month === jd.Month && this.Day > jd.Day))) {\r\n diff--;\r\n } else if (\r\n diff < 0 &&\r\n (this.Month < jd.Month || (this.Month === jd.Month && this.Day < jd.Day))\r\n ) {\r\n diff++;\r\n }\r\n return diff;\r\n }\r\n\r\n /**\r\n * Returns the current Jewish date in the format: Thursday, the 3rd of Kislev 5776.\r\n * @param {boolean} hideDayOfWeek\r\n * @param {boolean} dontCapitalize\r\n */\r\n toString(hideDayOfWeek?: boolean, dontCapitalize?: boolean): string {\r\n return (\r\n (hideDayOfWeek ? (dontCapitalize ? \"t\" : \"T\") : DaysOfWeekEng[this.getDayOfWeek()] + \", t\") +\r\n \"he \" +\r\n Utils.toSuffixed(this.Day) +\r\n \" of \" +\r\n this.monthName()\r\n );\r\n }\r\n\r\n /**\r\n * Returns the current Jewish date in the format \"[Tuesday] Nissan 3, 5778\"\r\n * @param {boolean} showDow - show day of week?\r\n */\r\n toShortstring(showDow: boolean): string {\r\n return (\r\n (showDow ? DaysOfWeekEng[this.getDayOfWeek()] + \" \" : \"\") +\r\n JewishMonthsEng[this.Month] +\r\n \" \" +\r\n this.Day.toString() +\r\n \", \" +\r\n this.Year.toString()\r\n );\r\n }\r\n\r\n /**\r\n * Returns the current Jewish date in the format \"Nissan 5778\"\r\n * @param {boolean} showYear - show the year number?\r\n */\r\n monthName(showYear = true): string {\r\n return (\r\n JewishMonthsEng[this.Month] +\r\n (this.Month === 12 && jDate.isJdLeapY(this.Year) ? \" Rishon \" : \" \") +\r\n (showYear ? this.Year.toString() : \"\")\r\n );\r\n }\r\n\r\n /**\r\n * Returns the current Jewish date in the format: יום חמישי כ\"א כסלו תשע\"ו\r\n * @param hideDayOfWeek When set to truthy, hides the day of the week\r\n */\r\n toStringHeb(hideDayOfWeek?: boolean): string {\r\n return (\r\n (!hideDayOfWeek ? DaysOfWeekHeb[this.getDayOfWeek()] + \" \" : \"\") +\r\n Utils.toJewishNumber(this.Day) +\r\n \" \" +\r\n JewishMonthsHeb[this.Month] +\r\n (this.Month === 12 && jDate.isJdLeapY(this.Year) ? \" ראשון \" : \" \") +\r\n Utils.toJewishNumber(this.Year % 1000)\r\n );\r\n }\r\n\r\n /**Gets the day of the omer for the current Jewish date. If the date is not during sefira, 0 is returned.*/\r\n getDayOfOmer(): number {\r\n let dayOfOmer = 0;\r\n if (\r\n (this.Month === 1 && this.Day > 15) ||\r\n this.Month === 2 ||\r\n (this.Month === 3 && this.Day < 6)\r\n ) {\r\n const first = new jDate(this.Year, 1, 15);\r\n dayOfOmer = first.diffDays(this);\r\n }\r\n return dayOfOmer;\r\n }\r\n\r\n /**\r\n * Returns true if this day is yomtov or chol hamoed\r\n * @param {boolean} israel\r\n */\r\n isYomTovOrCholHamoed(israel: boolean): boolean {\r\n return (\r\n this.isYomTov(israel) ||\r\n (this.Month === 1 && [16, 17, 18, 19, 20].includes(this.Day)) ||\r\n (this.Month === 7 && [16, 17, 18, 19, 20, 21].includes(this.Day))\r\n );\r\n }\r\n\r\n /**\r\n * Returns true if this day is yomtov\r\n * @param {boolean} israel\r\n */\r\n isYomTov(israel: boolean): boolean {\r\n const day = this.Day;\r\n switch (this.Month) {\r\n case 1:\r\n if (day === 15 || day === 21) return true;\r\n if (!israel && (day === 16 || day === 22)) return true;\r\n break;\r\n case 3:\r\n if (day === 6 || (!israel && day === 7)) return true;\r\n break;\r\n case 7:\r\n if ([1, 2, 10, 15, 22].includes(day)) {\r\n return true;\r\n }\r\n if (!israel && (day === 16 || day === 23)) return true;\r\n break;\r\n }\r\n return false;\r\n }\r\n\r\n /**Is today Erev Yom Tov? (includes Erev second days of Sukkos and Pesach) */\r\n isErevYomTov(): boolean {\r\n return (\r\n (this.Month === 1 && Utils.has(this.Day, 14, 20)) ||\r\n (this.Month === 3 && this.Day === 5) ||\r\n (this.Month === 6 && this.Day === 29) ||\r\n (this.Month === 7 && Utils.has(this.Day, 9, 14, 21))\r\n );\r\n }\r\n\r\n /**Does the current Jewish date have candle lighting before sunset?*/\r\n hasCandleLighting(): boolean {\r\n const dow = this.getDayOfWeek();\r\n\r\n if (dow === 5) {\r\n return true;\r\n } else if (dow === 6) {\r\n //there is no \"candle lighting time\" - even if yom tov is on Motzai Shabbos\r\n return false;\r\n }\r\n\r\n return this.isErevYomTov();\r\n }\r\n\r\n /**Is the current Jewish Date the day before a yomtov that contains a Friday?*/\r\n hasEiruvTavshilin(israel: boolean): boolean {\r\n let dow = this.getDayOfWeek();\r\n return (\r\n //Eiruv Tavshilin is only on Wednesday or Thursday\r\n [3, 4].includes(dow) &&\r\n //today is Erev Yomtov\r\n this.isErevYomTov() &&\r\n //Thursday OR Wednesday when in Chu\"l or Erev Rosh Hashana anywhere\r\n (dow === 4 || (dow === 3 && (!israel || this.Month === 6))) &&\r\n //No Eiruv Tavshilin on Erev yom kippur\r\n this.Day !== 9\r\n );\r\n }\r\n\r\n /**Gets the candle lighting time for the current Jewish date for the given Location object.*/\r\n getCandleLighting(location: Location, nullIfNoCandles?: boolean) {\r\n if (!location) {\r\n throw \"To get sunrise and sunset, the location needs to be supplied\";\r\n }\r\n if (this.hasCandleLighting()) {\r\n return Zmanim.getCandleLighting(this, location);\r\n } else if (nullIfNoCandles) {\r\n return null;\r\n } else {\r\n throw \"No candle lighting on \" + this.toString();\r\n }\r\n }\r\n\r\n /**Get the sedra of the week for the current Jewish date.*/\r\n getSedra(israel: boolean) {\r\n return new Sedra(this, israel);\r\n }\r\n\r\n /**Get the prakim of Pirkei Avos for the current Jewish date.*/\r\n getPirkeiAvos(israel: boolean) {\r\n return PirkeiAvos.getPrakim(this, israel);\r\n }\r\n\r\n /**Gets sunrise and sunset time for the current Jewish date at the given Location.\r\n *\r\n * Return format: {sunrise: {hour: 6, minute: 18}, sunset: {hour: 19, minute: 41}}*/\r\n getSunriseSunset(location: Location, ignoreElevation?: boolean) {\r\n if (!location) {\r\n throw \"To get sunrise and sunset, the location needs to be supplied\";\r\n }\r\n return Zmanim.getSunTimes(this, location, !ignoreElevation);\r\n }\r\n\r\n /**Gets Chatzos for both the day and the night for the current Jewish date at the given Location.\r\n *\r\n *Return format: {hour: 11, minute: 48}*/\r\n getChatzos(location: Location) {\r\n if (!location) {\r\n throw \"To get Chatzos, the location needs to be supplied\";\r\n }\r\n return Zmanim.getChatzos(this, location);\r\n }\r\n\r\n /**Gets the length of a single Sha'a Zmanis in minutes for the current Jewish date at the given Location.*/\r\n getShaaZmanis(location: Location, offset: number) {\r\n if (!location) {\r\n throw \"To get the Shaa Zmanis, the location needs to be supplied\";\r\n }\r\n return Zmanim.getShaaZmanis(this, location, offset);\r\n }\r\n\r\n /**Returns the daily daf in English. For example: Sukkah, Daf 3.*/\r\n getDafYomi() {\r\n return DafYomi.toString(this) || \"\";\r\n }\r\n\r\n /**Gets the daily daf in Hebrew. For example: 'סוכה דף כ.*/\r\n getDafyomiHeb() {\r\n return DafYomi.toStringHeb(this) || \"\";\r\n }\r\n\r\n /**\r\n * Converts its argument/s to a Jewish Date.\r\n * Samples of use:\r\n * To get the current Jewish Date: jDate.toJDate(new Date()).\r\n * To print out the current date in English: jDate.toJDate(new Date()).toString()\r\n * To print out the current date in Hebrew: jDate.toJDate(new Date()).toStringHeb()\r\n *\r\n * Arguments to the jDate.toJDate function can be one of the following:\r\n * jDate.toJDate() - Sets the Jewish Date for the current system date\r\n * jDate.toJDate(Date) - Sets to the Jewish date on the given Javascript Date object\r\n * jDate.toJDate(\"January 1 2045\") - Accepts any valid Javascript Date string (uses string constructor of Date object)\r\n * jDate.toJDate(jewishYear, jewishMonth, jewishDay) - Months start at 1. Nissan is month 1 Adara Sheini is 13.\r\n * jDate.toJDate(jewishYear, jewishMonth) - Same as above, with Day defaulting to 1\r\n * jDate.toJDate(jewishYear) - sets to the first day of Rosh Hashana on the given year\r\n * jDate.toJDate( { year: 5776, month: 4, day: 5 } ) - Months start at 1. Nissan is month 1 Adara Sheini is 13.\r\n * jDate.toJDate( { year: 5776, month: 4 } ) - Same as above, with Day defaulting to 1\r\n * jDate.toJDate( { year: 5776 } ) - sets to the first day of Rosh Hashana on the given year\r\n * jDate.toJDate(jewishYear, jewishMonth, jewishDay, absoluteDate) - Most efficient. Needs no calculations at all. The absoluteDate is the number of days elapsed since the theoretical date Sunday, December 31, 0001 BCE.\r\n * jDate.toJDate( { year: 5776, month: 4, day: 5, abs: 122548708 } ) - same as jDate.toJDate(jewishYear, jewishMonth, jewishDay, absoluteDate)\r\n ****************************************************************************************************************/\r\n static toJDate(\r\n arg?:\r\n | number\r\n | Date\r\n | string\r\n | { year: number; month: number; day: number }\r\n | [number, number, number, number],\r\n month?: number,\r\n day?: number,\r\n abs?: number\r\n ): jDate {\r\n if (arguments.length === 0) {\r\n return new jDate();\r\n }\r\n // If just the year is set, then the date is set to Rosh Hashana of that year.\r\n // In the above scenario, we can't just pass the args along, as the constructor will treat it as an absolute date.\r\n //...and that folks, is actually the whole point of this function...\r\n else if (Utils.isNumber(arg) && arguments.length === 1) {\r\n return new jDate(arg, 7, 1);\r\n } else {\r\n return new jDate(arg, month, day, abs);\r\n }\r\n }\r\n\r\n static now(): jDate {\r\n return new jDate();\r\n }\r\n\r\n /**Calculate the Jewish year, month and day for the given absolute date.*/\r\n static fromAbs(absDay: number): { year: number; month: number; day: number } {\r\n //To save on calculations, start with a few years before date\r\n let year = 3761 + Utils.toInt(absDay / (absDay > 0 ? 366 : 300)),\r\n month: number,\r\n day: number;\r\n\r\n // Search forward for year from the approximation year.\r\n while (absDay >= jDate.absJd(year + 1, 7, 1)) {\r\n year++;\r\n }\r\n // Search forward for month from either Tishrei or Nissan.\r\n month = absDay < jDate.absJd(year, 1, 1) ? 7 : 1;\r\n while (absDay > jDate.absJd(year, month, jDate.daysJMonth(year, month))) {\r\n month++;\r\n }\r\n // Calculate the day by subtraction.\r\n day = absDay - jDate.absJd(year, month, 1) + 1;\r\n\r\n return { year, month, day };\r\n }\r\n /**\r\n * Gets the absolute date of the given javascript Date object.\r\n * @param {Date} date\r\n */\r\n static absSd(date: Date): number {\r\n //Get the correct number of milliseconds since 1/1/1970 00:00:00 UTC until current system time\r\n const ms = date.valueOf() - date.getTimezoneOffset() * 60000,\r\n //The number of full days since 1/1/1970.\r\n numFullDays = Math.floor(ms / MS_PER_DAY);\r\n //Add that to the number of days from 1/1/0001 until 1/1/1970 00:00:00 UTC\r\n return JS_START_DATE_ABS + numFullDays;\r\n }\r\n\r\n /**Calculate the absolute date for the given Jewish Date.*/\r\n static absJd(year: number, month: number, day: number): number {\r\n //The number of total days.\r\n let dayInYear = day; // day is the number of days so far this month.\r\n if (month < 7) {\r\n // Before Tishrei, so add days in prior months this year before and after Nissan.\r\n let m = 7;\r\n while (m <= jDate.monthsJYear(year)) {\r\n dayInYear += jDate.daysJMonth(year, m);\r\n m++;\r\n }\r\n m = 1;\r\n while (m < month) {\r\n dayInYear += jDate.daysJMonth(year, m);\r\n m++;\r\n }\r\n } else {\r\n // Add days in prior months this year\r\n let m = 7;\r\n while (m < month) {\r\n dayInYear += jDate.daysJMonth(year, m);\r\n m++;\r\n }\r\n }\r\n // Days elapsed before absolute date 1. - Days in prior years.\r\n return dayInYear + (jDate.tDays(year) + -1373429);\r\n }\r\n\r\n /**\r\n * Gets a javascript date from an absolute date\r\n */\r\n static sdFromAbs(abs: number): Date {\r\n //The \"zero hour\" for Javascript is 1/1/1970 0:00:00 UTC.\r\n //If the time zone offset was more than 0, the current time zone was earlier than UTC at the time.\r\n //As the \"zero hour\" is at midnight, so if the current time was earlier than that, than it was during the previous date.\r\n //So we will need to add another day to get the correct date.\r\n const offset = JS_START_OFFSET > 0 ? 1 : 0,\r\n //Get the number of days from the \"zero hour\" until the given date.\r\n //This is done by taking the given absolute date and removing the\r\n //number of days from absolute date 0 until the js \"zero hour\" - keeping into\r\n //account the previously calculated possible day offset.\r\n daysSinceStart = abs - JS_START_DATE_ABS + offset;\r\n //Create a javascript date from the number of milliseconds since the \"zero hour\"\r\n return new Date(daysSinceStart * MS_PER_DAY);\r\n }\r\n\r\n /**number of days in the given Jewish Month. Nissan is 1 and Adar Sheini is 13.*/\r\n static daysJMonth(year: number, month: number): number {\r\n switch (month) {\r\n //Nissan, Sivan, Av, Tishrei and Shvat always have 30 days\r\n case 1:\r\n case 3:\r\n case 5:\r\n case 7:\r\n case 11:\r\n return 30;\r\n //Iyyar, Tammuz, Ellul, Teves and Adar Sheini always have 29 days.\r\n case 2:\r\n case 4:\r\n case 6:\r\n case 10:\r\n case 13:\r\n return 29;\r\n //Cheshvan sometimes has 29 days and sometimes 30 days.\r\n case 8:\r\n return jDate.isLongCheshvan(year) ? 30 : 29;\r\n //Kislev sometimes has 29 days and sometimes 30 days.\r\n case 9:\r\n return jDate.isShortKislev(year) ? 29 : 30;\r\n //Adar has 29 days unless it is Adar Rishon.\r\n case 12:\r\n return jDate.isJdLeapY(year) ? 30 : 29;\r\n }\r\n return 0;\r\n }\r\n\r\n /**Elapsed days since creation of the world until Rosh Hashana of the given year*/\r\n static tDays(year: number): number {\r\n /*As this function is called many times, often on the same year for all types of calculations,\r\n we save a list of years with their elapsed values.*/\r\n const cached = _yearCache.find((y) => !!y && y.year === year);\r\n //If this year was already calculated and cached, then we return the cached value.\r\n if (cached) {\r\n return cached.elapsed;\r\n }\r\n\r\n const months = Utils.toInt(\r\n 235 * Utils.toInt((year - 1) / 19) + // Leap months this cycle\r\n 12 * ((year - 1) % 19) + // Regular months in this cycle.\r\n (7 * ((year - 1) % 19) + 1) / 19\r\n ), // Months in complete cycles so far.\r\n parts = 204 + 793 * (months % 1080),\r\n hours = 5 + 12 * months + 793 * Utils.toInt(months / 1080) + Utils.toInt(parts / 1080),\r\n conjDay = Utils.toInt(1 + 29 * months + hours / 24),\r\n conjParts = 1080 * (hours % 24) + (parts % 1080);\r\n\r\n let altDay;\r\n /* at the end of a leap year - 15 hours, 589 parts or later... -\r\n ... or is on a Monday at... - ...of a common year, -\r\n at 9 hours, 204 parts or later... - ...or is on a Tuesday... -\r\n If new moon is at or after midday,*/\r\n if (\r\n conjParts >= 19440 ||\r\n (conjDay % 7 === 2 && conjParts >= 9924 && !jDate.isJdLeapY(year)) ||\r\n (conjDay % 7 === 1 && conjParts >= 16789 && jDate.isJdLeapY(year - 1))\r\n ) {\r\n // Then postpone Rosh HaShanah one day\r\n altDay = conjDay + 1;\r\n } else {\r\n altDay = conjDay;\r\n }\r\n\r\n // A day is added if Rosh HaShanah would occur on Sunday, Friday or Wednesday,\r\n if (Utils.has(altDay % 7, 0, 3, 5)) {\r\n altDay += 1;\r\n }\r\n\r\n //Add this year to the cache to save on calculations later on\r\n _yearCache.push({ year: year, elapsed: altDay });\r\n\r\n return altDay;\r\n }\r\n\r\n /**number of days in the given Jewish Year.*/\r\n static daysJYear(year: number): number {\r\n return jDate.tDays(year + 1) - jDate.tDays(year);\r\n }\r\n\r\n /**Does Cheshvan for the given Jewish Year have 30 days?*/\r\n static isLongCheshvan(year: number): boolean {\r\n return jDate.daysJYear(year) % 10 === 5;\r\n }\r\n\r\n /**Does Kislev for the given Jewish Year have 29 days?*/\r\n static isShortKislev(year: number): boolean {\r\n return jDate.daysJYear(year) % 10 === 3;\r\n }\r\n\r\n /**Does the given Jewish Year have 13 months?*/\r\n static isJdLeapY(year: number): boolean {\r\n return (7 * year + 1) % 19 < 7;\r\n }\r\n\r\n /**number of months in Jewish Year.*/\r\n static monthsJYear(year: number): number {\r\n return jDate.isJdLeapY(year) ? 13 : 12;\r\n }\r\n}\r\n","\r\nimport {Utils} from '../Utils.js';\r\nimport jDate from './jDate.js';\r\nimport Location from './Location.js';\r\nimport { SunTimes, Time } from '../jcal-zmanim.js';\r\n\r\n/**\r\n * Computes the daily Zmanim for any single date at any location.\r\n * The astronomical and mathematical calculations were directly adapted from the excellent\r\n * Jewish calendar calculation in C# Copyright © by Ulrich and Ziporah Greve (2005)\r\n */\r\nexport default class Zmanim {\r\n /**\r\n * Gets sunrise and sunset time for given date and Location.\r\n * Accepts a javascript Date object, a string for creating a javascript date object or a jDate object.\r\n * Location object is required.\r\n * @returns {SunTimes}\r\n * @param {Date | jDate} date A Javascript Date or Jewish Date for which to calculate the sun times.\r\n * @param {Location} location Where on the globe to calculate the sun times for.\r\n * @param {Boolean} considerElevation\r\n */\r\n static getSunTimes(date: Date | jDate, location: Location, considerElevation = true): SunTimes {\r\n if (date instanceof jDate) {\r\n date = date.getDate();\r\n }\r\n else if (date instanceof String) {\r\n date = new Date(date);\r\n }\r\n\r\n if (!Utils.isValidDate(date)) {\r\n throw 'Zmanim.getSunTimes: supplied date parameter cannot be converted to a Date';\r\n }\r\n\r\n let sunrise, sunset,\r\n zenithDeg = 90, zenithMin = 50, lonHour = 0, longitude = 0, latitude = 0,\r\n cosLat = 0, sinLat = 0, cosZen = 0, sinDec = 0, cosDec = 0,\r\n xmRise = 0, xmSet = 0, xlRise = 0, xlSet = 0, aRise = 0, aSet = 0, ahrRise = 0, ahrSet = 0,\r\n hRise = 0, hSet = 0, tRise = 0, tSet = 0, utRise = 0, utSet = 0;\r\n\r\n const day = Zmanim.dayOfYear(date),\r\n earthRadius = 6356900,\r\n zenithAtElevation = Zmanim.degToDec(zenithDeg, zenithMin) +\r\n Zmanim.radToDeg(Math.acos(earthRadius / (earthRadius +\r\n (considerElevation ? location.Elevation : 0))));\r\n\r\n zenithDeg = Math.floor(zenithAtElevation);\r\n zenithMin = (zenithAtElevation - zenithDeg) * 60;\r\n cosZen = Math.cos(0.01745 * Zmanim.degToDec(zenithDeg, zenithMin));\r\n longitude = location.Longitude;\r\n lonHour = longitude / 15;\r\n latitude = location.Latitude;\r\n cosLat = Math.cos(0.01745 * latitude);\r\n sinLat = Math.sin(0.01745 * latitude);\r\n tRise = day + (6 + lonHour) / 24;\r\n tSet = day + (18 + lonHour) / 24;\r\n xmRise = Zmanim.M(tRise);\r\n xlRise = Zmanim.L(xmRise);\r\n xmSet = Zmanim.M(tSet);\r\n xlSet = Zmanim.L(xmSet);\r\n aRise = 57.29578 * Math.atan(0.91746 * Math.tan(0.01745 * xlRise));\r\n aSet = 57.29578 * Math.atan(0.91746 * Math.tan(0.01745 * xlSet));\r\n if (Math.abs(aRise + 360 - xlRise) > 90) {\r\n aRise += 180;\r\n }\r\n if (aRise > 360) {\r\n aRise -= 360;\r\n }\r\n if (Math.abs(aSet + 360 - xlSet) > 90) {\r\n aSet += 180;\r\n }\r\n if (aSet > 360) {\r\n aSet -= 360;\r\n }\r\n ahrRise = aRise / 15;\r\n sinDec = 0.39782 * Math.sin(0.01745 * xlRise);\r\n cosDec = Math.sqrt(1 - sinDec * sinDec);\r\n hRise = (cosZen - sinDec * sinLat) / (cosDec * cosLat);\r\n ahrSet = aSet / 15;\r\n sinDec = 0.39782 * Math.sin(0.01745 * xlSet);\r\n cosDec = Math.sqrt(1 - sinDec * sinDec);\r\n hSet = (cosZen - sinDec * sinLat) / (cosDec * cosLat);\r\n if (Math.abs(hRise) <= 1) {\r\n hRise = 57.29578 * Math.acos(hRise);\r\n utRise = ((360 - hRise) / 15) + ahrRise + Zmanim.adj(tRise) + lonHour;\r\n sunrise = Zmanim.timeAdj(utRise + location.UTCOffset, date, location);\r\n if (sunrise.hour > 12) {\r\n sunrise.hour -= 12;\r\n }\r\n }\r\n\r\n if (Math.abs(hSet) <= 1) {\r\n hSet = 57.29578 * Math.acos(hSet);\r\n utSet = (hRise / 15) + ahrSet + Zmanim.adj(tSet) + lonHour;\r\n sunset = Zmanim.timeAdj(utSet + location.UTCOffset, date, location);\r\n if (sunset.hour > 0 && sunset.hour < 12) {\r\n sunset.hour += 12;\r\n }\r\n }\r\n\r\n return { sunrise: sunrise, sunset: sunset };\r\n }\r\n\r\n /**\r\n * @param {jDate | Date} date\r\n * @param {Location} location\r\n */\r\n static getChatzos(date: jDate | Date, location: Location) {\r\n return Zmanim.getChatzosFromSuntimes(\r\n Zmanim.getSunTimes(date, location, false));\r\n }\r\n\r\n /**\r\n * @param {SunTimes} sunTimes\r\n */\r\n static getChatzosFromSuntimes(sunTimes: SunTimes): Time {\r\n const rise = sunTimes.sunrise,\r\n set = sunTimes.sunset;\r\n\r\n if (rise === undefined || isNaN(rise.hour) || set === undefined || isNaN(set.hour)) {\r\n return { hour: NaN, minute: NaN };\r\n }\r\n const chatz = Utils.toInt((Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 2);\r\n return Utils.addSeconds(rise, chatz);\r\n }\r\n\r\n /**\r\n * @param {jDate | Date} date\r\n * @param {Location} location\r\n * @param {any} offset\r\n */\r\n static getShaaZmanis(date: jDate | Date, location: Location, offset: number): number {\r\n return Zmanim.getShaaZmanisFromSunTimes(\r\n Zmanim.getSunTimes(date, location, false),\r\n offset);\r\n }\r\n\r\n /**\r\n * @param {{ sunrise: any; sunset: any; }} sunTimes\r\n * @param {number} [offset]\r\n */\r\n static getShaaZmanisFromSunTimes(sunTimes: SunTimes, offset?: number): number {\r\n if (!sunTimes || !sunTimes.sunrise || !sunTimes.sunset) {\r\n return 0;\r\n }\r\n let rise = sunTimes.sunrise,\r\n set = sunTimes.sunset;\r\n\r\n if (!rise || isNaN(rise.hour) || !set || isNaN(set.hour)) {\r\n return NaN;\r\n }\r\n\r\n if (offset) {\r\n rise = Utils.addMinutes(rise, -offset) as Time;\r\n set = Utils.addMinutes(set, offset) as Time;\r\n }\r\n\r\n return (Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 720;\r\n }\r\n\r\n /**\r\n * @param {{ sunrise: any; sunset: any; }} sunTimes\r\n * @param {boolean} israel\r\n */\r\n static getShaaZmanisMga(sunTimes: SunTimes, israel: boolean) {\r\n const minutes = israel ? 90 : 72;\r\n let rise = sunTimes.sunrise && Utils.addMinutes(sunTimes.sunrise, -minutes),\r\n set = sunTimes.sunset && Utils.addMinutes(sunTimes.sunset, minutes);\r\n\r\n if (!rise || isNaN(rise.hour) || !set || isNaN(set.hour)) {\r\n return NaN;\r\n }\r\n\r\n return (Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 720;\r\n }\r\n\r\n /**\r\n * @param {jDate | Date} date\r\n * @param {Location} location\r\n */\r\n static getCandleLighting(date: Date | jDate, location: Location) {\r\n return Zmanim.getCandleLightingFromSunTimes(\r\n Zmanim.getSunTimes(date, location),\r\n location);\r\n }\r\n\r\n /**\r\n * @param {SunTimes} sunTimes\r\n * @param {any} location\r\n */\r\n static getCandleLightingFromSunTimes(sunTimes: SunTimes, location: Location) {\r\n return sunTimes.sunset && Zmanim.getCandleLightingFromSunset(sunTimes.sunset, location);\r\n }\r\n\r\n\r\n /**\r\n * @param {Time} sunset\r\n * @param {Location} location\r\n */\r\n static getCandleLightingFromSunset(sunset: Time, location: Location) {\r\n return Utils.addMinutes(sunset, -(location.CandleLighting || 0));\r\n }\r\n\r\n /**\r\n * @param {Date} date\r\n */\r\n static dayOfYear(date: Date) {\r\n const month = date.getMonth(),\r\n isLeap = () => Utils.isSecularLeapYear(date.getFullYear()),\r\n yearDay = [0, 1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\r\n return yearDay[month + 1] + date.getDate() + ((month > 1 && isLeap()) ? 1 : 0);\r\n }\r\n\r\n /**\r\n * @param {number} deg\r\n * @param {number} min\r\n */\r\n static degToDec(deg: number, min: number) {\r\n return (deg + min / 60);\r\n }\r\n\r\n /**\r\n * @param {number} x\r\n */\r\n static M(x: number) {\r\n return (0.9856 * x - 3.251);\r\n }\r\n\r\n /**\r\n * @param {number} x\r\n */\r\n static L(x: number) {\r\n return (x + 1.916 * Math.sin(0.01745 * x) + 0.02 * Math.sin(2 * 0.01745 * x) + 282.565);\r\n }\r\n\r\n /**\r\n * @param {number} x\r\n */\r\n static adj(x: number) {\r\n return (-0.06571 * x - 6.62);\r\n }\r\n\r\n /**\r\n * @param {number} rad\r\n */\r\n static radToDeg(rad: number) {\r\n return 57.29578 * rad;\r\n }\r\n\r\n /**\r\n * @param {number} time\r\n * @param {Date} date\r\n * @param {Location} location\r\n */\r\n static timeAdj(time: number, date: Date, location: Location) {\r\n if (time < 0) {\r\n time += 24;\r\n }\r\n let hour = Utils.toInt(time);\r\n const minFloat = (time - hour) * 60 + 0.5,\r\n min = Utils.toInt(minFloat),\r\n sec = Math.round(60.0 * (minFloat - min));\r\n\r\n if (Utils.isDST(location, date)) {\r\n hour++;\r\n }\r\n\r\n return Utils.fixTime({ hour: hour, minute: min, second: sec });\r\n }\r\n}","import Zmanim from './JCal/Zmanim.js';\r\nimport jDate from './JCal/jDate.js';\r\nimport Location from './JCal/Location.js';\r\nimport { Time } from './jcal-zmanim.js';\r\n\r\nconst __DEV__ = process.env.NODE_ENV === 'development';\r\n\r\nexport const DaysOfWeek = Object.freeze({\r\n SUNDAY: 0,\r\n MONDAY: 1,\r\n TUESDAY: 2,\r\n WEDNESDAY: 3,\r\n THURSDAY: 4,\r\n FRIDAY: 5,\r\n SHABBOS: 6,\r\n});\r\nexport const JewishMonthsNames = Object.freeze({\r\n NISSAN: 1,\r\n IYAR: 2,\r\n SIVAN: 3,\r\n TAMUZ: 4,\r\n AV: 5,\r\n ELLUL: 6,\r\n TISHREI: 7,\r\n CHESHVAN: 8,\r\n KISLEV: 9,\r\n TEVES: 10,\r\n SHVAT: 11,\r\n ADAR: 12,\r\n ADAR_SHEINI: 13\r\n});\r\nexport const JewishMonthsEng = [\r\n '',\r\n 'Nissan',\r\n 'Iyar',\r\n 'Sivan',\r\n 'Tamuz',\r\n 'Av',\r\n 'Ellul',\r\n 'Tishrei',\r\n 'Cheshvan',\r\n 'Kislev',\r\n 'Teves',\r\n 'Shvat',\r\n 'Adar',\r\n 'Adar Sheini',\r\n];\r\nexport const JewishMonthsHeb = [\r\n '',\r\n 'ניסן',\r\n 'אייר',\r\n 'סיון',\r\n 'תמוז',\r\n 'אב',\r\n 'אלול',\r\n 'תשרי',\r\n 'חשון',\r\n 'כסלו',\r\n 'טבת',\r\n 'שבט',\r\n 'אדר',\r\n 'אדר שני',\r\n];\r\nexport const SecularMonthsEng = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n];\r\nexport const DaysOfWeekEng = [\r\n 'Sunday',\r\n 'Monday',\r\n 'Tuesday',\r\n 'Wednesday',\r\n 'Thursday',\r\n 'Erev Shabbos',\r\n 'Shabbos Kodesh',\r\n];\r\nexport const DaysOfWeekHeb = [\r\n 'יום ראשון',\r\n 'יום שני',\r\n 'יום שלישי',\r\n 'יום רביעי',\r\n 'יום חמישי',\r\n 'ערב שבת קודש',\r\n 'שבת קודש',\r\n];\r\nexport class Utils {\r\n static jsd = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט'];\r\n static jtd = ['י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ'];\r\n static jhd = ['ק', 'ר', 'ש', 'ת'];\r\n static jsnum = [\r\n '',\r\n 'אחד',\r\n 'שנים',\r\n 'שלשה',\r\n 'ארבעה',\r\n 'חמשה',\r\n 'ששה',\r\n 'שבעה',\r\n 'שמונה',\r\n 'תשעה',\r\n ];\r\n static jtnum = ['', 'עשר', 'עשרים', 'שלושים', 'ארבעים'];\r\n\r\n /**\r\n * Gets the Jewish representation of a number (365 = שס\"ה)\r\n * Minimum number is 1 and maximum is 9999.\r\n * @param {Number} number\r\n */\r\n static toJewishNumber(number: number) {\r\n if (number < 1) {\r\n throw 'Min value is 1';\r\n }\r\n\r\n if (number > 9999) {\r\n throw 'Max value is 9999';\r\n }\r\n\r\n let n = number,\r\n retval = '';\r\n\r\n if (n >= 1000) {\r\n retval += Utils.jsd[Utils.toInt((n - (n % 1000)) / 1000) - 1] + \"'\";\r\n n = n % 1000;\r\n }\r\n\r\n while (n >= 400) {\r\n retval += 'ת';\r\n n -= 400;\r\n }\r\n\r\n if (n >= 100) {\r\n retval += Utils.jhd[Utils.toInt((n - (n % 100)) / 100) - 1];\r\n n = n % 100;\r\n }\r\n\r\n if (n == 15) {\r\n retval += 'טו';\r\n } else if (n == 16) {\r\n retval += 'טז';\r\n } else {\r\n if (n > 9) {\r\n retval += Utils.jtd[Utils.toInt((n - (n % 10)) / 10) - 1];\r\n }\r\n if (n % 10 > 0) {\r\n retval += Utils.jsd[(n % 10) - 1];\r\n }\r\n }\r\n if (number > 999 && number % 1000 < 10) {\r\n retval = \"'\" + retval;\r\n } else if (retval.length > 1) {\r\n retval = retval.slice(0, -1) + '\"' + retval[retval.length - 1];\r\n }\r\n return retval;\r\n }\r\n\r\n /**\r\n * Returns the javascript date in the format: Thursday, the 3rd of January 2018.\r\n * @param {Date} date\r\n * @param {Boolean} hideDayOfWeek\r\n * @param {Boolean} dontCapitalize\r\n */\r\n static toStringDate(date: Date, hideDayOfWeek: boolean, dontCapitalize: boolean) {\r\n if (!date) return;\r\n return (\r\n (hideDayOfWeek\r\n ? dontCapitalize\r\n ? 't'\r\n : 'T'\r\n : DaysOfWeekEng[date.getDay()] + ', t') +\r\n 'he ' +\r\n Utils.toSuffixed(date.getDate()) +\r\n ' of ' +\r\n SecularMonthsEng[date.getMonth()] +\r\n ' ' +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n\r\n /**\r\n * Returns the javascript date in the format: 1/3/2020.\r\n * @param {Date} date\r\n * @param {Boolean} monthFirst\r\n */\r\n static toShortStringDate(date: Date, monthFirst: boolean) {\r\n if (!date) return;\r\n const dayNum = date.getDate(),\r\n monthNum = date.getMonth() + 1;\r\n return (\r\n (monthFirst\r\n ? `${monthNum}/${dayNum}`\r\n : `${dayNum < 10 ? '0' : ''}${dayNum}/${monthNum < 10 ? '0' : ''\r\n }${monthNum}`) +\r\n '/' +\r\n date.getFullYear().toString()\r\n );\r\n }\r\n\r\n /**\r\n * Add two character suffix to number. e.g. 21st, 102nd, 93rd, 500th\r\n * @param {Number} num\r\n */\r\n static toSuffixed(num: number) {\r\n const t = num.toString();\r\n let suffix = 'th';\r\n if (t.length === 1 || t[t.length - 2] !== '1') {\r\n switch (t[t.length - 1]) {\r\n case '1':\r\n suffix = 'st';\r\n break;\r\n case '2':\r\n suffix = 'nd';\r\n break;\r\n case '3':\r\n suffix = 'rd';\r\n break;\r\n }\r\n }\r\n return t + suffix;\r\n }\r\n\r\n /**\r\n * Returns if the given full secular year has a February 29th\r\n * @param {Number} year\r\n */\r\n static isSecularLeapYear(year: number) {\r\n return !(year % 400) || (!!(year % 100) && !(year % 4));\r\n }\r\n\r\n /**\r\n * Get day of week using Javascripts getDay function.\r\n * Important note: months starts at 1 not 0 like javascript\r\n * The DOW returned has Sunday = 0\r\n * @param {Number} year\r\n * @param {Number} month\r\n * @param {Number} day\r\n */\r\n static getSdDOW(year: number, month: number, day: number) {\r\n return new Date(year, month - 1, day).getDay();\r\n }\r\n\r\n /**\r\n * Makes sure hour is between 0 and 23 and minute is between 0 and 59.\r\n * Overlaps get added/subtracted.\r\n * The argument needs to be an object in the format {hour : 12, minute : 42, second : 18}\r\n * @param {Time} time\r\n */\r\n static fixTime(time: Time) {\r\n //make a copy - javascript sends object parameters by reference\r\n const result = {\r\n hour: time.hour,\r\n minute: time.minute,\r\n second: time.second || 0,\r\n };\r\n while (result.second >= 60) {\r\n result.minute += 1;\r\n result.second -= 60;\r\n }\r\n while (result.second < 0) {\r\n result.minute -= 1;\r\n result.second += 60;\r\n }\r\n while (result.minute < 0) {\r\n result.minute += 60;\r\n result.hour--;\r\n }\r\n while (result.minute >= 60) {\r\n result.minute -= 60;\r\n result.hour++;\r\n }\r\n if (result.hour < 0) {\r\n result.hour = 24 + (result.hour % 24);\r\n }\r\n if (result.hour > 23) {\r\n result.hour = result.hour % 24;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Add the given number of minutes to the given time.\r\n * The argument needs to be an object in the format {hour : 12, minute : 42, second : 18 }\r\n *\r\n * @param {Time} time\r\n * @param {Number} minutes\r\n */\r\n static addMinutes(time?: Time, minutes?: number): Time | undefined {\r\n if (!time) return time;\r\n return (\r\n time &&\r\n Utils.fixTime({\r\n hour: time.hour,\r\n minute: time.minute + (minutes || 0),\r\n second: time.second,\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Add the given number of seconds to the given time.\r\n * The argument needs to be an object in the format {hour : 12, minute :42, second : 18}\r\n *\r\n * @param {Time} time\r\n * @param {Number} seconds\r\n */\r\n static addSeconds(time: Time, seconds: number) {\r\n return Utils.fixTime({\r\n hour: time.hour,\r\n minute: time.minute,\r\n second: (time.second || 0) + seconds,\r\n });\r\n }\r\n\r\n /**\r\n * Gets the time difference between two times of day.\r\n * If showNegative is falsey, assumes that the earlier time is always before the later time.\r\n * So, if laterTime is less than earlierTime, the returned diff is until the next day.\r\n * Both arguments need to be an object in the format {hour : 12, minute : 42, second : 18 }\r\n * @param {Time} earlierTime\r\n * @param {Time} laterTime\r\n * @param {Boolean} [showNegative] show negative values or assume second value is next day?\r\n * @returns{{hour:number, minute:number, second:number, sign:1|-1}}\r\n */\r\n static timeDiff(earlierTime: Time, laterTime: Time, showNegative = false) {\r\n const earlySec = Utils.totalSeconds(earlierTime),\r\n laterSec = Utils.totalSeconds(laterTime),\r\n time = Utils.fixTime({\r\n hour: 0,\r\n minute: 0,\r\n second:\r\n earlySec <= laterSec\r\n ? laterSec - earlySec\r\n : showNegative\r\n ? earlySec - laterSec\r\n : 86400 - earlySec + laterSec,\r\n });\r\n\r\n return {\r\n ...time,\r\n sign: earlySec <= laterSec || !showNegative ? 1 : -1,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the total number of minutes in the given time.\r\n * @param {Time} time An object in the format {hour : 12, minute :42, second : 18}\r\n */\r\n static totalMinutes(time: Time) {\r\n return time ? time.hour * 60 + time.minute : 0;\r\n }\r\n\r\n /**\r\n * Gets the total number of seconds in the given time.\r\n * @param {Time} time An object in the format {hour : 12, minute :42, second : 18}\r\n */\r\n static totalSeconds(time: Time) {\r\n return time ? Utils.totalMinutes(time) * 60 + (time.second || 0) : 0;\r\n }\r\n\r\n /**\r\n * Returns the time of the given javascript date as an object in the format of {hour : 23, minute :42, second: 18 }\r\n * @param {Date} sdate\r\n * @returns {{hour :number, minute :number, second:number }}\r\n */\r\n static timeFromDate(sdate: Date) {\r\n return {\r\n hour: sdate.getHours(),\r\n minute: sdate.getMinutes(),\r\n second: sdate.getSeconds(),\r\n };\r\n }\r\n\r\n /**\r\n * Determines if the second given time is after (or at) the first given time\r\n * @param {{hour :number, minute :number, second:number }} beforeTime\r\n * @param {{hour :number, minute :number, second:number }} afterTime\r\n */\r\n static isTimeAfter(beforeTime?: Time, afterTime?: Time) {\r\n if (!beforeTime || !afterTime) return false;\r\n return Utils.totalSeconds(afterTime) >= Utils.totalSeconds(beforeTime);\r\n }\r\n\r\n /**\r\n * Returns the given time interval in a formatted string.\r\n * @param {{hour:number, minute:number,second:number,sign?: 1 | -1}} time An object in the format {hour : 23, minute :42, second: 18 }\r\n */\r\n static getTimeIntervalTextStringHeb(time: Time) {\r\n let t = '';\r\n if (time.hour > 0) {\r\n t += `${time.hour.toString()} ${time.hour === 1 ? 'שעה' : 'שעות'}`;\r\n }\r\n if (time.minute > 0) {\r\n if (t.length) {\r\n t += ' ';\r\n }\r\n t += `${time.minute.toString()} ${time.minute === 1 ? 'דקה' : 'דקות'\r\n }`;\r\n }\r\n if ((time.second || 0) > 0) {\r\n if (t.length) {\r\n t += ' ';\r\n }\r\n t += `${Math.trunc(time.second || 0).toString()} ${time.second === 1 ? 'שנייה' : 'שניות'\r\n }`;\r\n }\r\n return t;\r\n }\r\n\r\n /**\r\n * Returns the given time interval in a formatted string.\r\n * @param {{hour:number, minute:number,second:number,sign?: 1 | -1}} time An object in the format {hour : 23, minute :42, second: 18 }\r\n */\r\n static getTimeIntervalTextString(time: Time) {\r\n let t = '';\r\n if (time.hour > 0) {\r\n t += `${time.hour.toString()} ${time.hour === 1 ? 'hour' : 'hours'\r\n }`;\r\n }\r\n if (time.minute > 0) {\r\n if (t.length) {\r\n t += ' ';\r\n }\r\n t += `${time.minute.toString()} ${time.minute === 1 ? 'minute' : 'minutes'\r\n }`;\r\n }\r\n if ((time.second || 0) > 0) {\r\n if (t.length) {\r\n t += ' ';\r\n }\r\n t += `${Math.trunc(time.second || 0).toString()} ${time.second === 1 ? 'second' : 'seconds'\r\n }`;\r\n }\r\n return t;\r\n }\r\n\r\n /**\r\n * Returns the nusach for Sefiras Ha'omer for the given day and minhag\r\n * @param {number} dayOfOmer The day of the Omer for which to get the nusach for\r\n * @param {'ashkenaz'|'sefard'|'sefardi'} nusach Should it be La'Omer (\"sefard\") or Ba'Omer (\"ashkenaz\") or \"sefardi\" (Eidot Hamizrach)?\r\n */\r\n static getOmerNusach(dayOfOmer: number, nusach: 'ashkenaz' | 'sefard' | 'sefardi') {\r\n const weeks = Utils.toInt(dayOfOmer / 7),\r\n days = dayOfOmer % 7;\r\n let txt = 'היום ';\r\n\r\n if (dayOfOmer === 1) {\r\n txt += 'יום אחד ';\r\n } else {\r\n if (dayOfOmer === 2) {\r\n txt += 'שני ';\r\n } else {\r\n if (dayOfOmer === 10) {\r\n txt += 'עשרה ';\r\n } else {\r\n txt += Utils.jsnum[Utils.toInt(dayOfOmer % 10)] + ' ';\r\n if (dayOfOmer > 10) {\r\n if (dayOfOmer > 20 && dayOfOmer % 10 > 0) {\r\n txt += 'ו';\r\n }\r\n txt += Utils.jtnum[Utils.toInt(dayOfOmer / 10)] + ' ';\r\n }\r\n }\r\n }\r\n txt += (dayOfOmer >= 11 ? 'יום' : 'ימים') + ' ';\r\n\r\n if (nusach === 'sefardi') {\r\n txt += 'לעומר' + ' ';\r\n }\r\n\r\n if (dayOfOmer >= 7) {\r\n txt += 'שהם ';\r\n if (weeks === 1) {\r\n txt += 'שבוע אחד ';\r\n } else if (weeks === 2) {\r\n txt += 'שני שבועות ';\r\n } else if (weeks > 0) {\r\n txt += Utils.jsnum[Utils.toInt(weeks)] + ' שבועות ';\r\n }\r\n if (days === 1) {\r\n txt += 'ויום אחד ';\r\n } else if (days === 2) {\r\n txt += 'ושני ימים ';\r\n } else if (days > 0) {\r\n txt += 'ו' + Utils.jsnum[days] + ' ימים ';\r\n }\r\n }\r\n }\r\n if (nusach === 'sefard') {\r\n txt += 'לעומר';\r\n } else if (nusach === 'ashkenaz') {\r\n txt += 'בעומר';\r\n }\r\n return txt;\r\n }\r\n\r\n /**\r\n * Returns the given time in a formatted string.\r\n * @param {Time} time An object in the format {hour : 23, minute :42, second: 18 }\r\n * @param {1 | -1} [sign] \r\n * @param {Boolean} [army] If falsey, the returned string will be: 11:42:18 PM otherwise it will be 23:42:18\r\n * @param {Boolean} [roundUp] If falsey, the numbers will converted to a whole number by rounding down, otherwise, up.\r\n */\r\n static getTimeString(time: Time, sign?: 1 | -1, army?: boolean, roundUp?: boolean) {\r\n const round = roundUp ? Math.ceil : Math.floor;\r\n time = {\r\n hour: round(time.hour),\r\n minute: round(time.minute),\r\n second: round(time.second || 0),\r\n };\r\n if (army) {\r\n return (\r\n (sign && sign < 0 ? '-' : '') +\r\n (time.hour.toString() +\r\n ':' +\r\n (time.minute < 10\r\n ? '0' + time.minute.toString()\r\n : time.minute.toString()) +\r\n ':' +\r\n ((time.second || 0) < 10\r\n ? '0' + (time.second || 0).toString()\r\n : (time.second || 0).toString()))\r\n );\r\n } else {\r\n return (\r\n (sign && sign < 0 ? '-' : '') +\r\n (time.hour <= 12\r\n ? time.hour == 0\r\n ? 12\r\n : time.hour\r\n : time.hour - 12\r\n ).toString() +\r\n ':' +\r\n (time.minute < 10\r\n ? '0' + time.minute.toString()\r\n : time.minute.toString()) +\r\n ':' +\r\n ((time.second || 0) < 10\r\n ? '0' + (time.second || 0).toString()\r\n : (time.second || 0).toString()) +\r\n (time.hour < 12 ? ' AM' : ' PM')\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Gets the UTC offset in whole hours for the users time zone.\r\n * Note: this is not affected by DST - unlike javascripts getTimezoneOffset() function which gives you the current offset.\r\n */\r\n static currUtcOffset() {\r\n const date = new Date(),\r\n jan = new Date(date.getFullYear(), 0, 1),\r\n jul = new Date(date.getFullYear(), 6, 1);\r\n return -Utils.toInt(\r\n Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()) / 60,\r\n );\r\n }\r\n\r\n /** Determines if the given date is within DST on the users system */\r\n static isDateDST(date: Date) {\r\n return (\r\n -Utils.toInt(date.getTimezoneOffset() / 60) !==\r\n Utils.currUtcOffset()\r\n );\r\n }\r\n\r\n /**\r\n * Determines if the given date is within DST in the given location\r\n * Note: This may not be correct if the user has set the Location to a\r\n * time zone outside Israel or the USA which is not the current system time zone.\r\n */\r\n static isDST(location: Location, date: Date) {\r\n //If the current system time zone is the same as the given locations time zone\r\n if (location.UTCOffset === Utils.currUtcOffset()) {\r\n //We can use the system data to determine if the given date is within DST\r\n return Utils.isDateDST(date);\r\n } else if (location.Israel) {\r\n return Utils.isIsrael_DST(date);\r\n } else {\r\n return Utils.isUSA_DST(date);\r\n }\r\n }\r\n\r\n /**\r\n * Determines if the given javascript date is during DST according to the USA rules\r\n * @param {Date} date A javascript Date object\r\n */\r\n static isUSA_DST(date: Date) {\r\n const year = date.getFullYear(),\r\n month = date.getMonth() + 1,\r\n day = date.getDate(),\r\n hour = date.getHours();\r\n\r\n if (month < 3 || month == 12) {\r\n return false;\r\n } else if (month > 3 && month < 11) {\r\n return true;\r\n }\r\n\r\n //DST starts at 2 AM on the second Sunday in March\r\n else if (month === 3) {\r\n //March\r\n //Gets day of week on March 1st\r\n const firstDOW = Utils.getSdDOW(year, 3, 1),\r\n //Gets date of second Sunday\r\n targetDate = firstDOW == 0 ? 8 : 7 - ((firstDOW + 7) % 7) + 8;\r\n\r\n return day > targetDate || (day === targetDate && hour >= 2);\r\n }\r\n //DST ends at 2 AM on the first Sunday in November //dt.Month == 11 / November\r\n else {\r\n //Gets day of week on November 1st\r\n const firstDOW = Utils.getSdDOW(year, 11, 1),\r\n //Gets date of first Sunday\r\n targetDate = firstDOW === 0 ? 1 : 7 - ((firstDOW + 7) % 7) + 1;\r\n\r\n return day < targetDate || (day === targetDate && hour < 2);\r\n }\r\n }\r\n\r\n //\r\n /**\r\n * Determines if the given Javascript date is during DST according to the current (5776) Israeli rules\r\n * @param {Date} date A Javascript Date object\r\n */\r\n static isIsrael_DST(date: Date) {\r\n const year = date.getFullYear(),\r\n month = date.getMonth() + 1,\r\n day = date.getDate(),\r\n hour = date.getHours();\r\n\r\n if (month > 10 || month < 3) {\r\n return false;\r\n } else if (month > 3 && month < 10) {\r\n return true;\r\n }\r\n //DST starts at 2 AM on the Friday before the last Sunday in March\r\n else if (month === 3) {\r\n //March\r\n //Gets date of the Friday before the last Sunday\r\n const lastFriday = 31 - Utils.getSdDOW(year, 3, 31) - 2;\r\n return day > lastFriday || (day === lastFriday && hour >= 2);\r\n }\r\n //DST ends at 2 AM on the last Sunday in October //dt.Month === 10 / October\r\n else {\r\n //Gets date of last Sunday in October\r\n const lastSunday = 31 - Utils.getSdDOW(year, 10, 31);\r\n return day < lastSunday || (day === lastSunday && hour < 2);\r\n }\r\n }\r\n\r\n /** The current time in Israel - determined by the current users system time and time zone offset*/\r\n static getSdNowInIsrael() {\r\n const now = new Date(),\r\n //first determine the hour differential between this user and Israel time\r\n israelTimeOffset = 2 + -Utils.currUtcOffset();\r\n //This will give us the current correct date and time in Israel\r\n now.setHours(now.getHours() + israelTimeOffset);\r\n return now;\r\n }\r\n /**\r\n * Adds the given number of days to the given javascript date and returns the new date\r\n * @param {Date} sdate\r\n * @param {Number} days\r\n */\r\n static addDaysToSdate(sdate: Date, days: number) {\r\n return new Date(sdate.valueOf() + 8.64e7 * days);\r\n }\r\n /**\r\n * Compares two js dates to se if they both refer to the same day - time is ignored.\r\n * @param {Date} sdate1\r\n * @param {Date} sdate2\r\n */\r\n static isSameSdate(sdate1: Date, sdate2: Date) {\r\n return (\r\n sdate1 && sdate2 && sdate1.toDateString() === sdate2.toDateString()\r\n );\r\n }\r\n /**\r\n * Compares two jDates to se if they both refer to the same day - time is ignored.\r\n * @param {jDate} jdate1\r\n * @param {jDate} jdate2\r\n */\r\n static isSameJdate(jdate1: jDate, jdate2: jDate) {\r\n return (\r\n jdate1 &&\r\n jdate2 &&\r\n jdate1.Abs &&\r\n jdate2.Abs &&\r\n jdate1.Abs === jdate2.Abs\r\n );\r\n }\r\n /**\r\n * Compares two jDates to see if they both refer to the same Jewish Month.\r\n * @param {jDate} jdate1\r\n * @param {jDate} jdate2\r\n */\r\n static isSameJMonth(jdate1: jDate, jdate2: jDate) {\r\n return jdate1.Month === jdate2.Month && jdate1.Year === jdate2.Year;\r\n }\r\n /**\r\n * Compares two dates to se if they both refer to the same Secular Month.\r\n * @param {Date} sdate1\r\n * @param {Date} sdate2\r\n */\r\n static isSameSMonth(sdate1: Date, sdate2: Date) {\r\n return (\r\n sdate1.getMonth() === sdate2.getMonth() &&\r\n sdate1.getFullYear() === sdate2.getFullYear()\r\n );\r\n }\r\n /**\r\n * Determines if the time of the given Date() is after sunset at the given Location\r\n * @param {Date} sdate\r\n * @param {Location} location\r\n */\r\n static isAfterSunset(sdate: Date, location: Location) {\r\n const shkia = Zmanim.getSunTimes(sdate, location).sunset,\r\n now = Utils.timeFromDate(sdate);\r\n return shkia && Utils.isTimeAfter(shkia, now);\r\n }\r\n /**\r\n * Gets the current Jewish Date at the given Location\r\n * @param {Location} location\r\n */\r\n static nowAtLocation(location: Location) {\r\n let sdate = new Date();\r\n //if isAfterSunset a day is added.\r\n if (Utils.isAfterSunset(sdate, location)) {\r\n sdate.setDate(sdate.getDate() + 1);\r\n }\r\n return new jDate(sdate);\r\n }\r\n /**\r\n * Converts the given complex number to an integer by removing the decimal part.\r\n * Returns same results as Math.floor for positive numbers and Math.ceil for negative ones.\r\n * Almost identical functionality to Math.trunc and parseInt.\r\n * The difference is if the argument is NaN. Math.trunc returns NaN while ths fuction returns 0.\r\n * In performance tests, this function was found to be quicker than the alternatives.\r\n * @param {Number} float The complex number to convert to an integer\r\n */\r\n static toInt(float: number) {\r\n return float | 0;\r\n }\r\n\r\n /***\r\n * Takes either a jDate or a Date and returns both\r\n * @param date {Date |jDate}\r\n * @returns {{ sdate:Date, jdate:jDate }}\r\n */\r\n static bothDates(date: Date | jDate) {\r\n const jdate = date instanceof Date\r\n ? new jDate(date as Date)\r\n : date as jDate;\r\n const sdate = date instanceof Date\r\n ? date as Date\r\n : jdate.getDate();\r\n return { sdate, jdate };\r\n }\r\n /** Returns true if \"thing\" is either a string primitive or String object.*/\r\n static isString(thing: unknown) {\r\n return typeof thing === 'string' || thing instanceof String;\r\n }\r\n /** Returns true if \"thing\" is either a number primitive or a Number object.*/\r\n static isNumber(thing: unknown) {\r\n return typeof thing === 'number' || thing instanceof Number;\r\n }\r\n /** Returns true if \"thing\" is a Date object containing a valid date.*/\r\n static isValidDate(thing: unknown) {\r\n return thing instanceof Date && !isNaN(thing.valueOf());\r\n }\r\n /** Returns whether or not the given, array, string, or argument list contains the given item or substring.\r\n *\r\n * This function is awfully similar to Array.includes, but has the added plus of accepting any number or type of arguments.*/\r\n static has(o: unknown, ...arr: unknown[]) {\r\n if (arr.length === 1 && (Array.isArray(arr[0]) || Utils.isString(arr[0]))) {\r\n return (arr[0] as unknown[]).includes(o);\r\n } else {\r\n return arr.includes(o);\r\n }\r\n }\r\n /** Returns the first value unless it is undefined, null or NaN.\r\n *\r\n * This is very useful for boolean, string and integer parameters\r\n * where we want to keep false, \"\" and 0 if they were supplied.\r\n *\r\n * Similar purpose to default parameters with the difference being that this function will return\r\n * the second value if the first is NaN or null, while default params will give give you the NaN or the null.\r\n */\r\n static setDefault(paramValue: unknown, defValue: unknown) {\r\n if (\r\n typeof paramValue === 'undefined' ||\r\n paramValue === null ||\r\n isNaN(paramValue as number)\r\n ) {\r\n return defValue;\r\n } else {\r\n return paramValue;\r\n }\r\n }\r\n /**\r\n * Returns an array containing a range of integers.\r\n * @param {Number} [start] The number to start at. The start number is included in the results.\r\n * If only one argument is supplied, start will be set to 1.\r\n * @param {Number} end The top end of the range.\r\n * Unlike Pythons range function, The end number is included in the results.\r\n * @returns {[Number]}\r\n */\r\n static range(start: number, end?: number) {\r\n const startNumber = typeof (end) === 'undefined' ? 1 : start,\r\n endNumber = typeof (end) === 'undefined' ? start : end;\r\n\r\n return Array.from({ length: endNumber - startNumber + 1 }, (v, i) => startNumber + i);\r\n }\r\n /**\r\n * Log message to console\r\n * @param {string} txt\r\n */\r\n static log(txt: string, ...optionalItems: any[]) {\r\n if (__DEV__) {\r\n console.log(txt, ...optionalItems);\r\n }\r\n }\r\n /**\r\n * Warn message to console\r\n * @param {string} txt\r\n */\r\n static warn(txt: string, ...optionalItems: any[]) {\r\n if (__DEV__) {\r\n console.warn(txt, ...optionalItems);\r\n }\r\n }\r\n /**\r\n * Error message to console\r\n * @param {*} txt\r\n */\r\n static error(txt: string, ...optionalItems: any[]) {\r\n if (__DEV__) {\r\n console.error(txt, ...optionalItems);\r\n }\r\n }\r\n}\r\n","/** Represents a geographic Location. Needed for calculating Zmanim.\r\nIf Israel is undefined, if the given coordinates are near the vicinity of Israel it will be assumed that it is in Israel.\r\nUTCOffset is the time zone. Israel is always 2 and the US East coast is -5. England is 0 of course.\r\nIf UTCOffset is not specifically supplied, the longitude will be used to get a quasi-educated guess.*/\r\nexport default class Location {\r\n Name: string;\r\n NameHebrew?: string;\r\n Israel: boolean;\r\n Latitude: number;\r\n Longitude: number;\r\n UTCOffset: number;\r\n Elevation: number;\r\n CandleLighting?: number;\r\n /**\r\n * Describe a new Location.\r\n * @param {String} name The name of the Location\r\n * @param {String} nameHeb The name of the Location\r\n * @param {Boolean} israel Is this Location in Israel?\r\n * @param {Number} latitude\r\n * @param {Number} longitude\r\n * @param {Number} utcOffset The time zone. Israel is 2 and New York is -5.\r\n * @param {Number} elevation Elevation in meters\r\n * @param {Number} [candleLighting] Number of minutes before sunset the candles are lit on Friday\r\n */\r\n constructor(name: string, nameHeb: string | undefined, israel: boolean, latitude: number, longitude: number, utcOffset: number, elevation: number, candleLighting?: number) {\r\n //If the israel argument was not set at all.\r\n if (typeof israel === 'undefined' || israel === null) {\r\n //If the user is within Israels general coordinates,\r\n //we feel pretty safe assuming they are in Israel.\r\n //Where else on the map is the user? (Note, the probability of our users Jewishness: 99.99%)\r\n //Sinai, Lebanon, Syria, Jordan, in a submarine under the Mediterranean ...\r\n israel = (latitude > 29.45 && latitude < 33 && longitude < -34.23 && longitude > -35.9);\r\n }\r\n if (israel) {\r\n //Israel has only one immutable time zone\r\n utcOffset = 2;\r\n }\r\n //If the utcOffset argument was not set at all.\r\n else if (typeof utcOffset === 'undefined' || utcOffset === null) {\r\n //Try to determine the \"correct\" time zone using the simple fact that Greenwich is both TZ 0 and longitude 0.\r\n //Even though technically this is the way it should be,\r\n //it will be often incorrect as time zones are almost always tweaked to accommodate the closest border.\r\n utcOffset = -Math.round(longitude / 15);\r\n }\r\n\r\n this.Name = (name || 'Unknown Location');\r\n this.NameHebrew = nameHeb;\r\n this.Israel = !!israel;\r\n this.Latitude = latitude;\r\n this.Longitude = longitude;\r\n this.UTCOffset = utcOffset || 0;\r\n this.Elevation = elevation || 0;\r\n this.CandleLighting = candleLighting || Location.getCandles(this);\r\n }\r\n\r\n static clone(location: Location) {\r\n return new Location(\r\n location.Name,\r\n location.NameHebrew,\r\n location.Israel,\r\n location.Latitude,\r\n location.Longitude,\r\n location.UTCOffset,\r\n location.Elevation,\r\n location.CandleLighting || 0);\r\n }\r\n\r\n static getCandles(location: Location) {\r\n if (location.CandleLighting) {\r\n return location.CandleLighting;\r\n }\r\n else if (!location.Israel) {\r\n return 18;\r\n }\r\n else {\r\n const special = [{ names: ['jerusalem', 'yerush', 'petach', 'petah', 'petak', 'beit shemesh', 'ירושלים', 'פתח תקוה', 'בית שמש'], min: 40 },\r\n { names: ['haifa', 'chaifa', 'be\\'er sheva', 'beersheba', 'חיפה', 'באר שבע'], min: 22 }],\r\n loclc = location.Name.toLowerCase(),\r\n city = special.find(sp => {\r\n return sp.names.find(spi => {\r\n return loclc.indexOf(spi) > -1;\r\n });\r\n });\r\n return city ? city.min : 30;\r\n }\r\n }\r\n\r\n /**Gets the Location for Jerusalem.*/\r\n static getJerusalem() {\r\n return new Location('Jerusalem', 'ירושלים', true, 31.78, -35.22, 2, 800, 40);\r\n }\r\n /**Gets the Location for Lakewood NJ*/\r\n static getLakewood() {\r\n return new Location('Lakewood NJ', undefined, false, 40.1, 74.23, -5, 0, 18);\r\n }\r\n}","import Location from './JCal/Location.js';\r\nimport { distance } from 'closest-match';\r\nimport locations from './locations.json';\r\n/**\r\n * NOTE: South and East are negative.\r\n */\r\ntype Point = { latitude: number, longitude: number };\r\n\r\n\r\nconst Locations = locations.map((l) =>\r\n new Location(l.name, l.heb, !!l.il, l.lat, l.lon, l.tz, l.el || 0, l.cl));\r\n\r\n//Sort the Locations by name\r\nLocations.sort(function (a: Location, b: Location) {\r\n return a.Name > b.Name ? 1 : b.Name > a.Name ? -1 : 0;\r\n});\r\n//The location names and indexes - until the first comma and in lowercase.\r\nconst justNames: { name: string, index: number }[] = [];\r\nfor (let i = 0; i < Locations.length - 1; i++) {\r\n const l = Locations[i];\r\n justNames.push({\r\n name: l.Name.split(',', 1)[0].toLowerCase(), index: i\r\n });\r\n if (!!l.NameHebrew) {\r\n justNames.push({\r\n name: l.NameHebrew, index: i\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Get the distance between two points in Kilometers\r\n * @param {Point} point1 \r\n * @param {Point} point2 \r\n * @returns {number}\r\n */\r\nfunction distancePointToPoint(point1: Point, point2: Point): number {\r\n if ((point1.latitude == point2.latitude) && (point1.longitude == point2.longitude)) {\r\n return 0;\r\n }\r\n else {\r\n var radlat1 = Math.PI * point1.latitude / 180;\r\n var radlat2 = Math.PI * point2.latitude / 180;\r\n var theta = point1.longitude - point2.longitude;\r\n var radtheta = Math.PI * theta / 180;\r\n var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\r\n if (dist > 1) {\r\n dist = 1;\r\n }\r\n dist = Math.acos(dist);\r\n dist = dist * 180 / Math.PI;\r\n dist = dist * 60 * 1.1515;\r\n dist = dist * 1.609344\r\n return dist;\r\n }\r\n}\r\n\r\n/**\r\n * Find the Location (city) that is the closest to the given point of coordinates.\r\n * @param {Point} point \r\n * @returns \r\n */\r\nfunction closestDistanceMatch(point: Point): Location | undefined {\r\n let curr: { dist: number, location?: Location } = { dist: 100000 };\r\n for (let location of Locations) {\r\n const dist = distancePointToPoint(point, { latitude: location.Latitude, longitude: location.Longitude });\r\n if (dist < curr.dist) {\r\n curr = { dist, location };\r\n }\r\n }\r\n return curr.location;\r\n}\r\n\r\n/**\r\n * Find the Location (city) who's city name is the closest match to the given point of coordinates.\r\n * @param {string} val\r\n * @returns \r\n */\r\nfunction closestNameMatch(val: string): Location | undefined {\r\n let curr: {\r\n dist: number, location?: { name: string, index: number }\r\n } = { dist: 100000 };\r\n for (let location of justNames) {\r\n const dist = distance(val.toLowerCase(), location.name);\r\n if (dist < curr.dist) {\r\n curr = { dist, location };\r\n }\r\n }\r\n return curr.location ? Locations[curr.location.index] : undefined;\r\n}\r\n\r\n/**\r\n * Option 1: Find a location with the given name\r\n * Option 2: Find the location with the name that is most similar to the given name\r\n * Option 3: Find the Location with the given coordinates\r\n * Option 4: Find the location closest to the given coordinates\r\n * @param {String|Point} nameOrCoordinates\r\n */\r\nfunction findLocation(nameOrCoordinates: string | Point): Location | undefined {\r\n if (typeof nameOrCoordinates === 'string') {\r\n //First simply try to find an exact (case insensitive) match\r\n const exactNameMatch = Locations.find((l: Location) =>\r\n l.Name.toLowerCase() === nameOrCoordinates.toLowerCase() || l.NameHebrew === nameOrCoordinates);\r\n if (!!exactNameMatch) {\r\n return exactNameMatch;\r\n }\r\n //Next, we try to find an exact (case insensitive) match up untill the first comma\r\n const cityOnlyNameMatch = justNames.find(l =>\r\n l.name === nameOrCoordinates.toLowerCase());\r\n if (!!cityOnlyNameMatch) {\r\n return Locations[cityOnlyNameMatch.index];\r\n }\r\n //As a last resort, try to use some fancy algorithm to get the closest name match\r\n return closestNameMatch(nameOrCoordinates.toLowerCase(),)\r\n }\r\n else { //The given parameter is a Point of coordinates\r\n const exactCoordinateMatch = Locations.find((l: Location) =>\r\n l.Latitude === nameOrCoordinates.latitude &&\r\n l.Longitude === nameOrCoordinates.longitude);\r\n if (!!exactCoordinateMatch) {\r\n return exactCoordinateMatch;\r\n }\r\n return closestDistanceMatch(nameOrCoordinates);\r\n }\r\n}\r\n\r\nexport { Locations, findLocation, closestDistanceMatch, closestNameMatch };\r\n","[{\"name\":\"Ofakim\",\"heb\":\"אופקים\",\"il\":true,\"tz\":2,\"el\":170,\"lat\":31.32,\"lon\":-34.62},{\"name\":\"Eilat\",\"heb\":\"אילת\",\"il\":true,\"tz\":2,\"lat\":29.55,\"lon\":-34.95},{\"name\":\"Elad\",\"heb\":\"אלעד\",\"il\":true,\"tz\":2,\"el\":150,\"lat\":32.05,\"lon\":-34.95},{\"name\":\"Ashdod\",\"heb\":\"אשדוד\",\"il\":true,\"tz\":2,\"lat\":31.78,\"lon\":-34.63},{\"name\":\"Ashkelon\",\"heb\":\"אשקלון\",\"il\":true,\"tz\":2,\"lat\":31.65,\"lon\":-34.57},{\"name\":\"Be'er Ya'akov\",\"heb\":\"באר יעקב\",\"il\":true,\"tz\":2,\"lat\":31.93,\"lon\":-34.83},{\"name\":\"Bersheba\",\"heb\":\"באר שבע\",\"il\":true,\"tz\":2,\"el\":270,\"lat\":31.23,\"lon\":-34.78},{\"name\":\"Beit She'an\",\"heb\":\"בית שאן\",\"il\":true,\"tz\":2,\"el\":0,\"lat\":32.5,\"lon\":-35.5},{\"name\":\"Beit Shemesh\",\"heb\":\"בית שמש\",\"il\":true,\"tz\":2,\"el\":300,\"lat\":31.73,\"lon\":-34.98},{\"name\":\"Beitar Illit\",\"heb\":\"ביתר עלית\",\"il\":true,\"tz\":2,\"el\":800,\"lat\":31.68,\"lon\":-35.12},{\"name\":\"Bnei Brak\",\"heb\":\"בני ברק\",\"il\":true,\"tz\":2,\"el\":70,\"lat\":32.08,\"lon\":-34.82,\"cl\":21},{\"name\":\"Binyamina\",\"heb\":\"בנימינה\",\"il\":true,\"tz\":2,\"lat\":32.52,\"lon\":-34.95},{\"name\":\"Bat Yam\",\"heb\":\"בת ים\",\"il\":true,\"tz\":2,\"lat\":32.02,\"lon\":-34.73},{\"name\":\"Givat Zeev\",\"heb\":\"גבעת זאב\",\"il\":true,\"tz\":2,\"lat\":31.87,\"lon\":-35.17},{\"name\":\"Givatayim\",\"heb\":\"גבתיים\",\"il\":true,\"tz\":2,\"lat\":32.05,\"lon\":-34.8},{\"name\":\"Dimona\",\"heb\":\"דימונה\",\"il\":true,\"tz\":2,\"lat\":31.07,\"lon\":-35.03},{\"name\":\"Hertzeliya\",\"heb\":\"הרצליה\",\"il\":true,\"tz\":2,\"lat\":32.17,\"lon\":-34.83},{\"name\":\"Zichron Ya'akov\",\"heb\":\"זכרון יעקב\",\"il\":true,\"tz\":2,\"el\":170,\"lat\":32.57,\"lon\":-34.95},{\"name\":\"Hebron\",\"heb\":\"חברון\",\"il\":true,\"tz\":2,\"el\":950,\"lat\":31.53,\"lon\":-35.08},{\"name\":\"Hadera\",\"heb\":\"חדרה\",\"il\":true,\"tz\":2,\"lat\":32.43,\"lon\":-34.92},{\"name\":\"Holon\",\"heb\":\"חולון\",\"il\":true,\"tz\":2,\"lat\":32.02,\"lon\":-34.75},{\"name\":\"Chispin\",\"heb\":\"חיספין\",\"il\":true,\"tz\":2,\"lat\":32.85,\"lon\":-35.77},{\"name\":\"Haifa\",\"heb\":\"חיפה\",\"il\":true,\"tz\":2,\"el\":370,\"lat\":32.8,\"lon\":-34.98},{\"name\":\"Chafetz Chaim\",\"heb\":\"חפץ חיים\",\"il\":true,\"tz\":2,\"el\":80,\"lat\":31.48,\"lon\":-34.47},{\"name\":\"Tiberius\",\"heb\":\"טבריה\",\"il\":true,\"tz\":2,\"lat\":32.78,\"lon\":-35.53},{\"name\":\"Telz Stone\",\"heb\":\"טלז סטון\",\"il\":true,\"tz\":2,\"el\":720,\"lat\":31.78,\"lon\":-35.1},{\"name\":\"Yerucham\",\"heb\":\"ירוחם\",\"il\":true,\"tz\":2,\"lat\":30.98,\"lon\":-34.92},{\"name\":\"Jerusalem\",\"heb\":\"ירושלים\",\"il\":true,\"tz\":2,\"el\":775,\"lat\":31.77,\"lon\":-35.23,\"cl\":40},{\"name\":\"Kfar Chabad\",\"heb\":\"כפר חבד\",\"il\":true,\"tz\":2,\"lat\":31.97,\"lon\":-34.8},{\"name\":\"Kfar Chasidim\",\"heb\":\"כפר חסידים\",\"il\":true,\"tz\":2,\"el\":154,\"lat\":32.73,\"lon\":-35.08},{\"name\":\"Kfar Mimon\",\"heb\":\"כפר מיימון\",\"il\":true,\"tz\":2,\"lat\":31.42,\"lon\":-34.58},{\"name\":\"Karmiel\",\"heb\":\"כרמיאל\",\"il\":true,\"tz\":2,\"lat\":32.92,\"lon\":-35.3},{\"name\":\"Lod\",\"heb\":\"לוד\",\"il\":true,\"tz\":2,\"lat\":31.95,\"lon\":-34.88},{\"name\":\"Migdal Ha'Emek\",\"heb\":\"מגדל העמק\",\"il\":true,\"tz\":2,\"lat\":32.67,\"lon\":-35.23},{\"name\":\"Meron\",\"heb\":\"מירון\",\"il\":true,\"tz\":2,\"el\":900,\"lat\":32.98,\"lon\":-35.43},{\"name\":\"Ma'agalim\",\"heb\":\"מעגלים\",\"il\":true,\"tz\":2,\"el\":150,\"lat\":31.48,\"lon\":-34.67},{\"name\":\"Ma'aleh Adumim\",\"heb\":\"מעלה אדומים\",\"il\":true,\"tz\":2,\"lat\":31.77,\"lon\":-35.3},{\"name\":\"Mitzpeh Ramon\",\"heb\":\"מצפה רמון\",\"il\":true,\"tz\":2,\"el\":892,\"lat\":30.62,\"lon\":-34.8},{\"name\":\"Ne'halel\",\"heb\":\"נהלל\",\"il\":true,\"tz\":2,\"lat\":32.67,\"lon\":-35.23},{\"name\":\"Nahariya\",\"heb\":\"נהריה\",\"il\":true,\"tz\":2,\"el\":25,\"lat\":33.02,\"lon\":-35.1},{\"name\":\"Nir Eztyon\",\"heb\":\"ניר עציון\",\"il\":true,\"tz\":2,\"el\":220,\"lat\":32.7,\"lon\":-34.98},{\"name\":\"Nesher\",\"heb\":\"נשר\",\"il\":true,\"tz\":2,\"lat\":32.73,\"lon\":-35.08},{\"name\":\"Netivot\",\"heb\":\"נתיבות\",\"il\":true,\"tz\":2,\"el\":142,\"lat\":31.42,\"lon\":-34.58},{\"name\":\"Netanya\",\"heb\":\"נתניה\",\"il\":true,\"tz\":2,\"lat\":32.33,\"lon\":-34.87},{\"name\":\"Ein Bokek\",\"heb\":\"עין בוקק\",\"il\":true,\"tz\":2,\"lat\":31.2,\"lon\":-35.37},{\"name\":\"Acre\",\"heb\":\"עכו\",\"il\":true,\"tz\":2,\"lat\":32.93,\"lon\":-35.08},{\"name\":\"Eli\",\"heb\":\"עלי\",\"il\":true,\"tz\":2,\"el\":720,\"lat\":32.07,\"lon\":-35.27},{\"name\":\"Afula\",\"heb\":\"עפולה\",\"il\":true,\"tz\":2,\"el\":60,\"lat\":32.6,\"lon\":-35.28},{\"name\":\"Etzyon Gaver\",\"heb\":\"עציון גבר\",\"il\":true,\"tz\":2,\"el\":5,\"lat\":29.53,\"lon\":-34.95},{\"name\":\"Arad\",\"heb\":\"ערד\",\"il\":true,\"tz\":2,\"el\":640,\"lat\":31.27,\"lon\":-35.22},{\"name\":\"Pardes Chana\",\"heb\":\"פרדס חנה\",\"il\":true,\"tz\":2,\"lat\":32.47,\"lon\":-34.97},{\"name\":\"Petach Tikvah\",\"heb\":\"פתח תקווה\",\"il\":true,\"tz\":2,\"lat\":32.08,\"lon\":-34.88,\"cl\":40},{\"name\":\"Safed\",\"heb\":\"צפת\",\"il\":true,\"tz\":2,\"el\":850,\"lat\":32.97,\"lon\":-35.5},{\"name\":\"Kedumim\",\"heb\":\"קדומים\",\"il\":true,\"tz\":2,\"el\":487,\"lat\":32.22,\"lon\":-35.15},{\"name\":\"Komemiyut\",\"heb\":\"קוממיות\",\"il\":true,\"tz\":2,\"el\":76,\"lat\":31.65,\"lon\":-34.73},{\"name\":\"Kiryat Arba\",\"heb\":\"קרית ארבע\",\"il\":true,\"tz\":2,\"el\":987,\"lat\":31.52,\"lon\":-35.1},{\"name\":\"Kiryat Gat\",\"heb\":\"קרית גת\",\"il\":true,\"tz\":2,\"el\":159,\"lat\":31.62,\"lon\":-34.77},{\"name\":\"Kityat Tivon\",\"heb\":\"קרית טבעון\",\"il\":true,\"tz\":2,\"el\":39,\"lat\":32.73,\"lon\":-35.08},{\"name\":\"Kiryat Yam\",\"heb\":\"קרית ים\",\"il\":true,\"tz\":2,\"lat\":32.83,\"lon\":-35.07},{\"name\":\"Kiryat Malachi\",\"heb\":\"קרית מלאכי\",\"il\":true,\"tz\":2,\"lat\":31.73,\"lon\":-34.75},{\"name\":\"Modi'in Illit\",\"heb\":\"מודיעין עילית\",\"il\":true,\"tz\":2,\"el\":240,\"lat\":31.93,\"lon\":-35.04,\"cl\":30},{\"name\":\"Kiryat Shmona\",\"heb\":\"קרית שמונה\",\"il\":true,\"tz\":2,\"lat\":33.2,\"lon\":-35.57},{\"name\":\"Rosh Ha'ayin\",\"heb\":\"ראש העין\",\"il\":true,\"tz\":2,\"el\":90,\"lat\":32.08,\"lon\":-34.95},{\"name\":\"Rosh Pina\",\"heb\":\"ראש פינה\",\"il\":true,\"tz\":2,\"el\":131,\"lat\":32.97,\"lon\":-35.48},{\"name\":\"Rishon Le'Tzion\",\"heb\":\"ראשון לציון\",\"il\":true,\"tz\":2,\"lat\":31.97,\"lon\":-34.8},{\"name\":\"Rehovot\",\"heb\":\"רחובות\",\"il\":true,\"tz\":2,\"el\":76,\"lat\":31.88,\"lon\":-34.82},{\"name\":\"Ramla\",\"heb\":\"רמלה\",\"il\":true,\"tz\":2,\"lat\":31.92,\"lon\":-34.87},{\"name\":\"Ramat Hasharon\",\"heb\":\"רמת השרון\",\"il\":true,\"tz\":2,\"el\":85,\"lat\":32.17,\"lon\":-34.85},{\"name\":\"Ramat Magshimim\",\"heb\":\"רמת מגשימים\",\"il\":true,\"tz\":2,\"el\":450,\"lat\":32.83,\"lon\":-35.82},{\"name\":\"Ra'anana\",\"heb\":\"רעננה\",\"il\":true,\"tz\":2,\"el\":71,\"lat\":32.17,\"lon\":-34.85},{\"name\":\"Shvi tzion\",\"heb\":\"שבי ציון\",\"il\":true,\"tz\":2,\"lat\":33.02,\"lon\":-35.1},{\"name\":\"Nablus\",\"heb\":\"שכם\",\"il\":true,\"tz\":2,\"el\":667,\"lat\":32.22,\"lon\":-35.27},{\"name\":\"Shalavim\",\"heb\":\"שלעבים\",\"il\":true,\"tz\":2,\"el\":194,\"lat\":31.87,\"lon\":34.98},{\"name\":\"Tushiya\",\"heb\":\"תושיה\",\"il\":true,\"tz\":2,\"lat\":31.42,\"lon\":-34.58},{\"name\":\"Tel Aviv\",\"heb\":\"תל אביב\",\"il\":true,\"tz\":2,\"el\":20,\"lat\":32.07,\"lon\":-34.77,\"cl\":21},{\"name\":\"Tifrach\",\"heb\":\"תפרח\",\"il\":true,\"tz\":2,\"el\":173,\"lat\":31.32,\"lon\":-34.67},{\"name\":\"Nazereth\",\"heb\":\"נצרת\",\"il\":true,\"tz\":2,\"lat\":32.7,\"lon\":-35.32},{\"name\":\"Menachemya\",\"heb\":\"מנחמיה\",\"il\":true,\"tz\":2,\"lat\":32.6,\"lon\":-35.55},{\"name\":\"Ramot\",\"heb\":\"רמות\",\"il\":true,\"tz\":2,\"el\":800,\"lat\":31.82,\"lon\":-35.18},{\"name\":\"Katzrin\",\"heb\":\"קצרין\",\"il\":true,\"tz\":2,\"lat\":32.98,\"lon\":-35.68},{\"name\":\"Hashmonaim\",\"heb\":\"חשמונאים\",\"il\":true,\"tz\":2,\"el\":255,\"lat\":31.93,\"lon\":-35.02},{\"name\":\"Laniado\",\"heb\":\"לניאדו / נתניה\",\"il\":true,\"tz\":2,\"el\":26,\"lat\":32.33,\"lon\":-34.87},{\"name\":\"Melbourne\",\"tz\":10,\"el\":35,\"lat\":-37.82,\"lon\":-144.97},{\"name\":\"Aukland\",\"tz\":12,\"lat\":-36.87,\"lon\":-174.77},{\"name\":\"Boisbriand\",\"tz\":-5,\"lat\":45.62,\"lon\":73.85},{\"name\":\"Ottawa\",\"tz\":-5,\"lat\":45.42,\"lon\":75.7},{\"name\":\"Winnipeg\",\"tz\":-6,\"lat\":49.88,\"lon\":97.13},{\"name\":\"Toronto\",\"tz\":-5,\"el\":175,\"lat\":43.68,\"lon\":79.43},{\"name\":\"Montreal\",\"tz\":-5,\"el\":30,\"lat\":45.52,\"lon\":73.57},{\"name\":\"Eidenburg\",\"tz\":0,\"el\":134,\"lat\":55.92,\"lon\":3.18},{\"name\":\"Algeria\",\"tz\":1,\"lat\":36.82,\"lon\":2.98},{\"name\":\"Bogota\",\"tz\":-5,\"lat\":4.77,\"lon\":74.1},{\"name\":\"Brasilia\",\"tz\":-3,\"lat\":15.77,\"lon\":48.02},{\"name\":\"Goteborg\",\"tz\":1,\"el\":100,\"lat\":57.7,\"lon\":-11.95},{\"name\":\"Victoria\",\"tz\":8,\"lat\":22.25,\"lon\":-114.23},{\"name\":\"Touson\",\"tz\":-7,\"lat\":32.22,\"lon\":110.97},{\"name\":\"Tunville\",\"tz\":1,\"lat\":49.4,\"lon\":-6.17},{\"name\":\"Tkuarembo\",\"tz\":-3,\"lat\":-31.7,\"lon\":55.98},{\"name\":\"Trumso\",\"tz\":1,\"lat\":69.67,\"lon\":-18.97},{\"name\":\"Johannesburg\",\"tz\":2,\"el\":1655,\"lat\":-26.3,\"lon\":-28.18},{\"name\":\"Montevideo\",\"tz\":-3,\"el\":22,\"lat\":-34.83,\"lon\":56.23},{\"name\":\"Meedan Columbia\",\"tz\":-5,\"lat\":6.23,\"lon\":75.58},{\"name\":\"Mexico City\",\"tz\":-6,\"lat\":19.45,\"lon\":98.95},{\"name\":\"New Delhi\",\"tz\":5,\"lat\":28.58,\"lon\":-77.22},{\"name\":\"Narwik\",\"tz\":1,\"lat\":68.43,\"lon\":-17.42},{\"name\":\"San Jose De Mayo\",\"tz\":-3,\"lat\":-34.35,\"lon\":56.72},{\"name\":\"San Paulo\",\"tz\":-3,\"el\":790,\"lat\":-23.6,\"lon\":46.67},{\"name\":\"Sunderland\",\"tz\":0,\"lat\":54.93,\"lon\":1.43},{\"name\":\"Salford\",\"tz\":0,\"lat\":53.5,\"lon\":2.25},{\"name\":\"San Jusinto Uruguay\",\"tz\":-3,\"lat\":-34.55,\"lon\":55.87},{\"name\":\"New Square\",\"tz\":-5,\"lat\":41.1,\"lon\":74.07},{\"name\":\"Palm Springs\",\"tz\":-8,\"el\":125,\"lat\":33.83,\"lon\":116.67},{\"name\":\"Formosa\",\"tz\":-3,\"lat\":-26.18,\"lon\":58.17},{\"name\":\"Panama\",\"tz\":-5,\"lat\":9.92,\"lon\":79.93},{\"name\":\"Perta\",\"tz\":8,\"lat\":-32,\"lon\":-115.83},{\"name\":\"Peking\",\"tz\":8,\"lat\":39.97,\"lon\":-116.45},{\"name\":\"Zandiger (India)\",\"tz\":5,\"lat\":30.73,\"lon\":-76.78},{\"name\":\"The Equator\",\"tz\":0,\"lat\":0,\"lon\":0},{\"name\":\"South Pole\",\"tz\":0,\"lat\":-90,\"lon\":0},{\"name\":\"North Pole\",\"tz\":0,\"lat\":90,\"lon\":0},{\"name\":\"Caracas, Venezuela\",\"tz\":-4,\"lat\":10.37,\"lon\":66.88},{\"name\":\"Robonimi\",\"tz\":1,\"lat\":66.48,\"lon\":-25.7},{\"name\":\"Rio De Jinero\",\"tz\":-3,\"lat\":-22.85,\"lon\":43.68},{\"name\":\"Phoenix\",\"tz\":-7,\"lat\":33.43,\"lon\":112.07},{\"name\":\"Lucerne\",\"tz\":1,\"lat\":47.05,\"lon\":-8.32},{\"name\":\"Odessa\",\"tz\":2,\"lat\":46.48,\"lon\":-30.72},{\"name\":\"Uman\",\"tz\":2,\"lat\":48.73,\"lon\":-30.23},{\"name\":\"Ifran\",\"tz\":0,\"lat\":33.53,\"lon\":5.1},{\"name\":\"Alsund Norway\",\"tz\":1,\"lat\":62.47,\"lon\":-6.18},{\"name\":\"Athens\",\"tz\":2,\"lat\":37.97,\"lon\":-23.72},{\"name\":\"Bad\",\"tz\":1,\"lat\":50.2,\"lon\":-10.08},{\"name\":\"Bucharest\",\"tz\":2,\"lat\":44.38,\"lon\":-26.4},{\"name\":\"Gomel\",\"tz\":2,\"lat\":52.38,\"lon\":-30.83},{\"name\":\"Gibraltar\",\"tz\":1,\"lat\":36.13,\"lon\":5.35},{\"name\":\"Gateside\",\"tz\":0,\"lat\":54.95,\"lon\":1.6},{\"name\":\"Vienna\",\"tz\":1,\"lat\":48.22,\"lon\":-16.37},{\"name\":\"Venice\",\"tz\":1,\"lat\":45.38,\"lon\":-12.47},{\"name\":\"Warsaw\",\"tz\":1,\"lat\":52.23,\"lon\":-21},{\"name\":\"Toulon\",\"tz\":1,\"lat\":43.15,\"lon\":-5.87},{\"name\":\"Torberey Scotland\",\"tz\":0,\"lat\":55.3,\"lon\":4.82},{\"name\":\"Lusan\",\"tz\":1,\"el\":375,\"lat\":46.53,\"lon\":-6.62},{\"name\":\"London\",\"tz\":0,\"el\":45,\"lat\":51.6,\"lon\":0.1},{\"name\":\"Luxenbourg\",\"tz\":1,\"lat\":49.67,\"lon\":-6.17},{\"name\":\"Liverpool\",\"tz\":0,\"lat\":53.42,\"lon\":2.98},{\"name\":\"Leeds\",\"tz\":0,\"lat\":53.8,\"lon\":1.57},{\"name\":\"Medisimo Italy\",\"tz\":1,\"el\":1500,\"lat\":46.43,\"lon\":-9.33},{\"name\":\"Madrid\",\"tz\":1,\"lat\":40.4,\"lon\":3.7},{\"name\":\"Monterrey, Mexico\",\"tz\":1,\"lat\":46.4,\"lon\":-6.87},{\"name\":\"Moscow\",\"tz\":3,\"el\":154,\"lat\":55.75,\"lon\":-37.62},{\"name\":\"Milano\",\"tz\":1,\"el\":122,\"lat\":45.45,\"lon\":-9.18},{\"name\":\"Minsk\",\"tz\":2,\"lat\":53.87,\"lon\":-27.82},{\"name\":\"Malaga\",\"tz\":1,\"lat\":36.7,\"lon\":4.42},{\"name\":\"Manchester\",\"tz\":0,\"lat\":53.5,\"lon\":2.23},{\"name\":\"Meknes\",\"tz\":0,\"lat\":33.9,\"lon\":5.57},{\"name\":\"Marseille\",\"tz\":1,\"lat\":43.3,\"lon\":-5.32},{\"name\":\"Marrakech\",\"tz\":0,\"lat\":31.6,\"lon\":7.98},{\"name\":\"New Castle\",\"tz\":0,\"lat\":54.95,\"lon\":1.62},{\"name\":\"Nice France\",\"tz\":1,\"lat\":43.7,\"lon\":-7.18},{\"name\":\"Fes\",\"tz\":0,\"lat\":34.03,\"lon\":4.98},{\"name\":\"Prague\",\"tz\":1,\"el\":180,\"lat\":50.08,\"lon\":-14.42},{\"name\":\"Frankfurt\",\"tz\":1,\"lat\":50.12,\"lon\":-8.65},{\"name\":\"Frankfurt On Maine\",\"tz\":1,\"lat\":50.1,\"lon\":-8.68},{\"name\":\"Zurich\",\"tz\":1,\"el\":410,\"lat\":47.37,\"lon\":-8.53},{\"name\":\"Copenhagen\",\"tz\":1,\"lat\":55.77,\"lon\":-12.33},{\"name\":\"Casablanca\",\"tz\":0,\"lat\":33.58,\"lon\":7.58},{\"name\":\"Kiev\",\"tz\":2,\"lat\":50.43,\"lon\":-30.52},{\"name\":\"Colon\",\"tz\":1,\"el\":46,\"lat\":50.9,\"lon\":-6.93},{\"name\":\"Robet\",\"tz\":0,\"lat\":34.02,\"lon\":6.8},{\"name\":\"Rodes\",\"tz\":2,\"lat\":36.4,\"lon\":-28.18},{\"name\":\"Rome\",\"tz\":1,\"lat\":41.9,\"lon\":-12.5},{\"name\":\"Shpolgen\",\"tz\":1,\"lat\":46.55,\"lon\":-9.32},{\"name\":\"Baku\",\"tz\":2,\"lat\":40.4,\"lon\":-49.82},{\"name\":\"Tarvisio\",\"tz\":1,\"lat\":46.5,\"lon\":-13.58},{\"name\":\"windischgarsten\",\"tz\":1,\"lat\":47.72,\"lon\":-14.32},{\"name\":\"Nesslau\",\"tz\":1,\"lat\":47.2,\"lon\":-9.2},{\"name\":\"Deerfield Beach\",\"tz\":-5,\"lat\":26.32,\"lon\":80.08},{\"name\":\"Hartford CT\",\"tz\":-5,\"lat\":41.75,\"lon\":72.7},{\"name\":\"Boro Park, Brooklyn NY\",\"tz\":-5,\"lat\":40.63,\"lon\":74},{\"name\":\"Brooklyn NY\",\"tz\":-5,\"lat\":40.63,\"lon\":73.95},{\"name\":\"Denver\",\"tz\":-7,\"el\":1601,\"lat\":39.75,\"lon\":104.93},{\"name\":\"Houston\",\"tz\":-6,\"el\":29,\"lat\":29.83,\"lon\":95.35},{\"name\":\"Hollywood\",\"tz\":-5,\"el\":8,\"lat\":26.1,\"lon\":80.2},{\"name\":\"Washington DC\",\"tz\":-5,\"lat\":38.9,\"lon\":77.03},{\"name\":\"Los Angeles\",\"tz\":-8,\"lat\":34.05,\"lon\":118.23},{\"name\":\"Lakewood NJ\",\"tz\":-5,\"lat\":40.1,\"lon\":74.23},{\"name\":\"Monticello NY\",\"tz\":-5,\"lat\":41.65,\"lon\":74.73},{\"name\":\"Monsey NY\",\"tz\":-5,\"lat\":41.1,\"lon\":74.07},{\"name\":\"Miami\",\"tz\":-5,\"el\":2,\"lat\":25.83,\"lon\":80.27},{\"name\":\"Miami Beach\",\"tz\":-5,\"el\":3,\"lat\":25.78,\"lon\":80.28},{\"name\":\"Milwaukee\",\"tz\":-6,\"lat\":43.03,\"lon\":87.92},{\"name\":\"Miniappolis\",\"tz\":-6,\"el\":253,\"lat\":44.88,\"lon\":93.22},{\"name\":\"Memphis TN\",\"tz\":-6,\"lat\":35.13,\"lon\":90.03},{\"name\":\"New Orleans\",\"tz\":-6,\"el\":1,\"lat\":30,\"lon\":90.12},{\"name\":\"New Square NY\",\"tz\":-5,\"lat\":41.1,\"lon\":74.07},{\"name\":\"San Juan\",\"tz\":-8,\"lat\":37.33,\"lon\":121.88},{\"name\":\"San Diego\",\"tz\":-8,\"lat\":32.72,\"lon\":117.13},{\"name\":\"Saint Louis\",\"tz\":-6,\"lat\":38.65,\"lon\":90.32},{\"name\":\"Pittsburgh\",\"tz\":-5,\"lat\":40.4,\"lon\":80.03},{\"name\":\"Philadelphia\",\"tz\":-5,\"lat\":39.93,\"lon\":75.17},{\"name\":\"Providence RI\",\"tz\":-5,\"lat\":41.82,\"lon\":71.4},{\"name\":\"Kansas City\",\"tz\":-6,\"el\":225,\"lat\":39.1,\"lon\":94.6},{\"name\":\"Kiryas Joel NY\",\"tz\":-5,\"lat\":41.33,\"lon\":74.17},{\"name\":\"Cali\",\"tz\":-5,\"lat\":3.45,\"lon\":76.52},{\"name\":\"Medellin\",\"tz\":-5,\"lat\":6.25,\"lon\":75.57},{\"name\":\"Honolulu\",\"tz\":-10,\"lat\":21.32,\"lon\":157.83},{\"name\":\"Santiago de Chile\",\"tz\":-4,\"lat\":-33.45,\"lon\":70.67},{\"name\":\"Nairobi\",\"tz\":3,\"lat\":-1.28,\"lon\":-36.82},{\"name\":\"Taipei\",\"tz\":8,\"lat\":25.05,\"lon\":-121.5},{\"name\":\"Rangun (GMT+6)\",\"tz\":6,\"lat\":16.78,\"lon\":-96.17},{\"name\":\"Rangun (GMT+7)\",\"tz\":7,\"lat\":16.78,\"lon\":-96.17},{\"name\":\"Rio de Janeiro\",\"tz\":-3,\"lat\":-22.9,\"lon\":43.25},{\"name\":\"Kapstadt (Capetown)\",\"tz\":2,\"lat\":-33.9,\"lon\":-18.37},{\"name\":\"San Juan (P.R.)\",\"tz\":-4,\"lat\":18.47,\"lon\":66.1},{\"name\":\"Elizabeth, N.J, US\",\"tz\":-5,\"lat\":40.67,\"lon\":74.18},{\"name\":\"Aach\",\"tz\":1,\"lat\":47.83,\"lon\":-8.85},{\"name\":\"Adelsheim\",\"tz\":1,\"lat\":49.4,\"lon\":-9.38},{\"name\":\"Altlandsberg\",\"tz\":1,\"lat\":52.55,\"lon\":-13.72},{\"name\":\"Angermünde\",\"tz\":1,\"lat\":53.02,\"lon\":-14},{\"name\":\"Anklam\",\"tz\":1,\"lat\":53.85,\"lon\":-13.68},{\"name\":\"Annaberg\",\"tz\":1,\"lat\":57.52,\"lon\":-13.43},{\"name\":\"Ansbach\",\"tz\":1,\"lat\":49.28,\"lon\":-10.57},{\"name\":\"Apolda\",\"tz\":1,\"lat\":51.02,\"lon\":-11.52},{\"name\":\"Arnstadt\",\"tz\":1,\"lat\":50.83,\"lon\":-10.95},{\"name\":\"Aschersleben\",\"tz\":1,\"lat\":51.75,\"lon\":-11.45},{\"name\":\"Bad Berka\",\"tz\":1,\"lat\":50.9,\"lon\":-11.28},{\"name\":\"Bad Cannstatt\",\"tz\":1,\"lat\":48.8,\"lon\":-9.18},{\"name\":\"Bad Freienwalde\",\"tz\":1,\"lat\":52.78,\"lon\":-14.02},{\"name\":\"Bad Gottleuba\",\"tz\":1,\"lat\":50.85,\"lon\":-13.93},{\"name\":\"Bad Krozingen\",\"tz\":1,\"lat\":47.92,\"lon\":-7.72},{\"name\":\"Bad Mergenheim\",\"tz\":1,\"lat\":49.5,\"lon\":-9.77},{\"name\":\"Bad Mingolsheim\",\"tz\":1,\"lat\":49.23,\"lon\":-8.65},{\"name\":\"Bad Rappenau\",\"tz\":1,\"lat\":49.32,\"lon\":-9.1},{\"name\":\"Bad Salzungen\",\"tz\":1,\"lat\":50.8,\"lon\":-10.22},{\"name\":\"Bad Wilznack\",\"tz\":1,\"lat\":52.95,\"lon\":-11.95},{\"name\":\"Bad Wimpfen\",\"tz\":1,\"lat\":49.23,\"lon\":-9.15},{\"name\":\"Baiersdorf\",\"tz\":1,\"lat\":49.65,\"lon\":-11.02},{\"name\":\"Ballenstedt\",\"tz\":1,\"lat\":51.72,\"lon\":-11.23},{\"name\":\"Barby\",\"tz\":1,\"lat\":51.97,\"lon\":-11.88},{\"name\":\"Bautzen\",\"tz\":1,\"lat\":51.18,\"lon\":-14.43},{\"name\":\"Beelitz\",\"tz\":1,\"lat\":52.23,\"lon\":-12.97},{\"name\":\"Beeskow\",\"tz\":1,\"lat\":52.17,\"lon\":-14.23},{\"name\":\"Bernau\",\"tz\":1,\"lat\":47.8,\"lon\":-12.37},{\"name\":\"Bernburg\",\"tz\":1,\"lat\":51.8,\"lon\":-11.73},{\"name\":\"Biesenthal\",\"tz\":1,\"lat\":52.77,\"lon\":-13.62},{\"name\":\"Bleicherode\",\"tz\":1,\"lat\":51.43,\"lon\":-10.57},{\"name\":\"Boizenburg\",\"tz\":1,\"lat\":53.37,\"lon\":-10.72},{\"name\":\"Borna\",\"tz\":1,\"lat\":51.32,\"lon\":-13.18},{\"name\":\"Breisach\",\"tz\":1,\"lat\":48.02,\"lon\":-7.67},{\"name\":\"Brüel\",\"tz\":1,\"lat\":53.73,\"lon\":-11.72},{\"name\":\"Burg\",\"tz\":1,\"lat\":52.27,\"lon\":-11.85},{\"name\":\"Bützow\",\"tz\":1,\"lat\":53.83,\"lon\":-11.98},{\"name\":\"Calbe\",\"tz\":1,\"lat\":51.9,\"lon\":-11.77},{\"name\":\"Calvörde\",\"tz\":1,\"lat\":52.38,\"lon\":-11.28},{\"name\":\"Caputh\",\"tz\":1,\"lat\":52.35,\"lon\":-13},{\"name\":\"Coesfeld\",\"tz\":1,\"lat\":51.93,\"lon\":-7.17},{\"name\":\"Coswig\",\"tz\":1,\"lat\":51.88,\"lon\":-12.43},{\"name\":\"Crivitz\",\"tz\":1,\"lat\":53.58,\"lon\":-11.63},{\"name\":\"Dargun\",\"tz\":1,\"lat\":53.9,\"lon\":-12.85},{\"name\":\"Deggendorf\",\"tz\":1,\"lat\":48.85,\"lon\":-12.98},{\"name\":\"Delitzsch\",\"tz\":1,\"lat\":51.52,\"lon\":-12.33},{\"name\":\"Aachen\",\"tz\":1,\"lat\":50.78,\"lon\":-6.08},{\"name\":\"Altensteig\",\"tz\":1,\"lat\":48.58,\"lon\":-8.6},{\"name\":\"Amberg\",\"tz\":1,\"lat\":49.45,\"lon\":-11.87},{\"name\":\"Augsburg\",\"tz\":1,\"lat\":48.38,\"lon\":-10.88},{\"name\":\"Aurich\",\"tz\":1,\"lat\":53.47,\"lon\":-7.48},{\"name\":\"Bad Kissingen\",\"tz\":1,\"lat\":50.2,\"lon\":-10.05},{\"name\":\"Bad Kreuznach\",\"tz\":1,\"lat\":49.87,\"lon\":-7.85},{\"name\":\"Bad Nauheim\",\"tz\":1,\"lat\":50.37,\"lon\":-8.73},{\"name\":\"Baden-Baden\",\"tz\":1,\"lat\":48.77,\"lon\":-8.23},{\"name\":\"Bamberg\",\"tz\":1,\"lat\":49.88,\"lon\":-10.88},{\"name\":\"Bayreuth\",\"tz\":1,\"lat\":49.95,\"lon\":-11.58},{\"name\":\"Berlin\",\"tz\":1,\"lat\":52.52,\"lon\":-13.38},{\"name\":\"Bielefeld\",\"tz\":1,\"lat\":52.02,\"lon\":-8.52},{\"name\":\"Bonn\",\"tz\":1,\"lat\":50.73,\"lon\":-7.1},{\"name\":\"Brandenburg\",\"tz\":1,\"lat\":52.4,\"lon\":-12.53},{\"name\":\"Braunschweig\",\"tz\":1,\"lat\":52.27,\"lon\":-10.52},{\"name\":\"Bremen\",\"tz\":1,\"lat\":53.07,\"lon\":-8.82},{\"name\":\"Bremerhaven\",\"tz\":1,\"lat\":53.55,\"lon\":-8.57},{\"name\":\"Calw\",\"tz\":1,\"lat\":48.72,\"lon\":-8.73},{\"name\":\"Celle\",\"tz\":1,\"lat\":52.62,\"lon\":-10.08},{\"name\":\"Chemnitz\",\"tz\":1,\"lat\":50.83,\"lon\":-12.92},{\"name\":\"Cottbus\",\"tz\":1,\"lat\":51.75,\"lon\":-14.32},{\"name\":\"Dachau\",\"tz\":1,\"lat\":48.25,\"lon\":-11.45},{\"name\":\"Darmstadt\",\"tz\":1,\"lat\":49.88,\"lon\":-8.67},{\"name\":\"Dessau\",\"tz\":1,\"lat\":51.83,\"lon\":-12.23},{\"name\":\"Dortmund\",\"tz\":1,\"lat\":51.52,\"lon\":-7.47},{\"name\":\"Dresden\",\"tz\":1,\"lat\":51.05,\"lon\":-13.73},{\"name\":\"Duisburg\",\"tz\":1,\"lat\":51.42,\"lon\":-6.77},{\"name\":\"Düsseldorf\",\"tz\":1,\"lat\":51.2,\"lon\":-6.78},{\"name\":\"Emmendingen\",\"tz\":1,\"lat\":48.12,\"lon\":-7.83},{\"name\":\"Erfurt\",\"tz\":1,\"lat\":50.97,\"lon\":-11.02},{\"name\":\"Essen/Ruhr\",\"tz\":1,\"lat\":51.47,\"lon\":-7.02},{\"name\":\"Frankfurt/Main\",\"tz\":1,\"lat\":50.12,\"lon\":-8.67},{\"name\":\"Frankfurt/Oder\",\"tz\":1,\"lat\":52.33,\"lon\":-14.55},{\"name\":\"Freiburg i. Br.\",\"tz\":1,\"lat\":47.98,\"lon\":-7.85},{\"name\":\"Fürth\",\"tz\":1,\"lat\":49.47,\"lon\":-10.98},{\"name\":\"Fulda\",\"tz\":1,\"lat\":50.55,\"lon\":-9.68},{\"name\":\"Gelsenkirchen\",\"tz\":1,\"lat\":51.52,\"lon\":-7.12},{\"name\":\"Gießen\",\"tz\":1,\"lat\":50.58,\"lon\":-8.67},{\"name\":\"Göttingen\",\"tz\":1,\"lat\":51.53,\"lon\":-9.92},{\"name\":\"Grabow\",\"tz\":1,\"lat\":53.27,\"lon\":-11.57},{\"name\":\"Hagen (Westf)\",\"tz\":1,\"lat\":51.37,\"lon\":-7.47},{\"name\":\"Halle/Saale\",\"tz\":1,\"lat\":51.48,\"lon\":-11.97},{\"name\":\"Hamburg\",\"tz\":1,\"lat\":53.55,\"lon\":-9.98},{\"name\":\"Hameln\",\"tz\":1,\"lat\":52.1,\"lon\":-9.35},{\"name\":\"Hannover\",\"tz\":1,\"lat\":52.4,\"lon\":-9.73},{\"name\":\"Havelberg\",\"tz\":1,\"lat\":52.83,\"lon\":-12.07},{\"name\":\"Heidelberg\",\"tz\":1,\"lat\":49.42,\"lon\":-8.72},{\"name\":\"Herford\",\"tz\":1,\"lat\":52.1,\"lon\":-8.67},{\"name\":\"Hessisch Oldendorf\",\"tz\":1,\"lat\":52.17,\"lon\":-9.25},{\"name\":\"Hildesheim\",\"tz\":1,\"lat\":52.15,\"lon\":-9.95},{\"name\":\"Hof\",\"tz\":1,\"lat\":50.3,\"lon\":-11.92},{\"name\":\"Idar-Oberstein\",\"tz\":1,\"lat\":49.7,\"lon\":-7.32},{\"name\":\"Kaiserslautern\",\"tz\":1,\"lat\":49.43,\"lon\":-7.77},{\"name\":\"Karlsruhe\",\"tz\":1,\"lat\":49.05,\"lon\":-8.4},{\"name\":\"Kassel\",\"tz\":1,\"lat\":51.32,\"lon\":-9.47},{\"name\":\"Kiel\",\"tz\":1,\"lat\":54.33,\"lon\":-10.13},{\"name\":\"Kleinmachnow\",\"tz\":1,\"lat\":52.4,\"lon\":-13.25},{\"name\":\"Koblenz\",\"tz\":1,\"lat\":50.35,\"lon\":-7.58},{\"name\":\"Köln\",\"tz\":1,\"lat\":50.93,\"lon\":-6.98},{\"name\":\"Krefeld\",\"tz\":1,\"lat\":51.33,\"lon\":-6.57},{\"name\":\"Leipzig\",\"tz\":1,\"lat\":51.32,\"lon\":-12.33},{\"name\":\"Lörrach\",\"tz\":1,\"lat\":47.62,\"lon\":-7.67},{\"name\":\"Lübeck\",\"tz\":1,\"lat\":53.87,\"lon\":-10.67},{\"name\":\"Ludwigshafen\",\"tz\":1,\"lat\":49.48,\"lon\":-8.43},{\"name\":\"Ludwigslust\",\"tz\":1,\"lat\":53.32,\"lon\":-11.5},{\"name\":\"Magdeburg\",\"tz\":1,\"lat\":52.12,\"lon\":-11.63},{\"name\":\"Mainz\",\"tz\":1,\"lat\":50.02,\"lon\":-8.27},{\"name\":\"Mannheim\",\"tz\":1,\"lat\":49.48,\"lon\":-8.47},{\"name\":\"Marburg\",\"tz\":1,\"lat\":50.82,\"lon\":-8.77},{\"name\":\"Minden\",\"tz\":1,\"lat\":52.28,\"lon\":-8.92},{\"name\":\"Mönchengladbach\",\"tz\":1,\"lat\":51.2,\"lon\":-6.47},{\"name\":\"München\",\"tz\":1,\"lat\":48.13,\"lon\":-11.57},{\"name\":\"Nagold\",\"tz\":1,\"lat\":48.55,\"lon\":-8.72},{\"name\":\"Neumünster\",\"tz\":1,\"lat\":54.07,\"lon\":-9.98},{\"name\":\"Neuruppin\",\"tz\":1,\"lat\":52.92,\"lon\":-12.8},{\"name\":\"Neustadt/Weinstraße\",\"tz\":1,\"lat\":49.35,\"lon\":-8.13},{\"name\":\"Neustrelitz\",\"tz\":1,\"lat\":53.35,\"lon\":-13.07},{\"name\":\"Nürnberg\",\"tz\":1,\"lat\":49.45,\"lon\":-11.07},{\"name\":\"Offenbach\",\"tz\":1,\"lat\":50.13,\"lon\":-8.78},{\"name\":\"Oldenburg\",\"tz\":1,\"lat\":53.13,\"lon\":-8.22},{\"name\":\"Oldenburg in Holstein\",\"tz\":1,\"lat\":54.28,\"lon\":-10.87},{\"name\":\"Osnabrück\",\"tz\":1,\"lat\":52.27,\"lon\":-8.03},{\"name\":\"Paderborn\",\"tz\":1,\"lat\":51.72,\"lon\":-8.73},{\"name\":\"Perleberg\",\"tz\":1,\"lat\":53.07,\"lon\":-11.85},{\"name\":\"Pforzheim\",\"tz\":1,\"lat\":48.9,\"lon\":-8.7},{\"name\":\"Potsdam\",\"tz\":1,\"lat\":52.4,\"lon\":-13.07},{\"name\":\"Pritzwalk\",\"tz\":1,\"lat\":53.15,\"lon\":-12.17},{\"name\":\"Rathenow\",\"tz\":1,\"lat\":52.6,\"lon\":-12.33},{\"name\":\"Recklinghausen\",\"tz\":1,\"lat\":51.6,\"lon\":-7.22},{\"name\":\"Regensburg\",\"tz\":1,\"lat\":49.02,\"lon\":-12.1},{\"name\":\"Rinteln\",\"tz\":1,\"lat\":52.18,\"lon\":-9.05},{\"name\":\"Rostock\",\"tz\":1,\"lat\":54.08,\"lon\":-12.12},{\"name\":\"Saarbrücken\",\"tz\":1,\"lat\":49.23,\"lon\":-6.98},{\"name\":\"Salzgitter\",\"tz\":1,\"lat\":52.17,\"lon\":-10.42},{\"name\":\"Schwerin\",\"tz\":1,\"lat\":53.63,\"lon\":-11.42},{\"name\":\"Sobernheim\",\"tz\":1,\"lat\":49.78,\"lon\":-7.63},{\"name\":\"Stendal\",\"tz\":1,\"lat\":52.6,\"lon\":-11.85},{\"name\":\"Straubing\",\"tz\":1,\"lat\":48.88,\"lon\":-12.57},{\"name\":\"Strausberg\",\"tz\":1,\"lat\":52.58,\"lon\":-13.88},{\"name\":\"Stuttgart\",\"tz\":1,\"lat\":48.77,\"lon\":-9.18},{\"name\":\"Trier\",\"tz\":1,\"lat\":49.75,\"lon\":-6.63},{\"name\":\"Tübingen\",\"tz\":1,\"lat\":48.52,\"lon\":-9.03},{\"name\":\"Weiden in der Oberpfalz\",\"tz\":1,\"lat\":49.68,\"lon\":-12.17},{\"name\":\"Wiesbaden\",\"tz\":1,\"lat\":50.08,\"lon\":-8.23},{\"name\":\"Wismar\",\"tz\":1,\"lat\":53.88,\"lon\":-11.47},{\"name\":\"Wittenberg\",\"tz\":1,\"lat\":51.87,\"lon\":-12.65},{\"name\":\"Wittenberge\",\"tz\":1,\"lat\":53,\"lon\":-11.73},{\"name\":\"Wittstock\",\"tz\":1,\"lat\":53.17,\"lon\":-12.48},{\"name\":\"Wörlitz\",\"tz\":1,\"lat\":51.83,\"lon\":-12.42},{\"name\":\"Wuppertal\",\"tz\":1,\"lat\":51.27,\"lon\":-7.18},{\"name\":\"Würzburg\",\"tz\":1,\"lat\":49.8,\"lon\":-9.93},{\"name\":\"Basel\",\"tz\":1,\"lat\":47.63,\"lon\":-7.67},{\"name\":\"Bern\",\"tz\":1,\"lat\":46.95,\"lon\":-7.43},{\"name\":\"Bremgarten\",\"tz\":1,\"lat\":47.35,\"lon\":-8.35},{\"name\":\"Geneve\",\"tz\":1,\"lat\":46.2,\"lon\":-6.15},{\"name\":\"Münsingen\",\"tz\":1,\"lat\":46.88,\"lon\":-7.57},{\"name\":\"Sankt Gallen\",\"tz\":1,\"lat\":47.42,\"lon\":-9.38},{\"name\":\"Vevey\",\"tz\":1,\"lat\":46.47,\"lon\":-6.85},{\"name\":\"Winterthur\",\"tz\":1,\"lat\":47.5,\"lon\":-8.72},{\"name\":\"Zug\",\"tz\":1,\"lat\":47.17,\"lon\":-8.52},{\"name\":\"Zürich\",\"tz\":1,\"lat\":47.38,\"lon\":-8.53},{\"name\":\"Graz\",\"tz\":1,\"lat\":47.08,\"lon\":-15.45},{\"name\":\"Innsbruck\",\"tz\":1,\"lat\":47.27,\"lon\":-11.4},{\"name\":\"Linz\",\"tz\":1,\"lat\":48.3,\"lon\":-14.3},{\"name\":\"Salzburg\",\"tz\":1,\"lat\":47.8,\"lon\":-13.03},{\"name\":\"Wien\",\"tz\":1,\"lat\":48.22,\"lon\":-16.33},{\"name\":\"Antwerpen\",\"tz\":1,\"lat\":51.22,\"lon\":-4.42},{\"name\":\"Arlon\",\"tz\":1,\"lat\":49.68,\"lon\":-5.82},{\"name\":\"Brüssel\",\"tz\":1,\"lat\":50.83,\"lon\":-4.33},{\"name\":\"Charleroi\",\"tz\":1,\"lat\":50.42,\"lon\":-4.43},{\"name\":\"Gent\",\"tz\":1,\"lat\":51.05,\"lon\":-3.72},{\"name\":\"Knokke\",\"tz\":1,\"lat\":51.35,\"lon\":-3.28},{\"name\":\"Liége\",\"tz\":1,\"lat\":50.63,\"lon\":-5.57},{\"name\":\"Mons\",\"tz\":1,\"lat\":50.45,\"lon\":-3.93},{\"name\":\"Ostende\",\"tz\":1,\"lat\":51.22,\"lon\":-2.9},{\"name\":\"Amersfoort\",\"tz\":1,\"lat\":52.15,\"lon\":-5.4},{\"name\":\"Amsterdam\",\"tz\":1,\"lat\":52.37,\"lon\":-4.9},{\"name\":\"Arnheim\",\"tz\":1,\"lat\":52.02,\"lon\":-5.88},{\"name\":\"Bussum\",\"tz\":1,\"lat\":52.27,\"lon\":-5.15},{\"name\":\"Den Haag\",\"tz\":1,\"lat\":52.1,\"lon\":-4.3},{\"name\":\"Eindhoven\",\"tz\":1,\"lat\":51.43,\"lon\":-5.47},{\"name\":\"Enschede\",\"tz\":1,\"lat\":52.2,\"lon\":-6.88},{\"name\":\"Groningen\",\"tz\":1,\"lat\":53.22,\"lon\":-6.55},{\"name\":\"Hilversum\",\"tz\":1,\"lat\":52.23,\"lon\":-5.15},{\"name\":\"Leiden\",\"tz\":1,\"lat\":52.15,\"lon\":-4.5},{\"name\":\"Maastricht\",\"tz\":1,\"lat\":50.87,\"lon\":-5.72},{\"name\":\"Rotterdam\",\"tz\":1,\"lat\":51.92,\"lon\":-4.47},{\"name\":\"Tilburg\",\"tz\":1,\"lat\":51.57,\"lon\":-5.08},{\"name\":\"Utrecht\",\"tz\":1,\"lat\":52.08,\"lon\":-5.13},{\"name\":\"Zwolle\",\"tz\":1,\"lat\":52.5,\"lon\":-6.08},{\"name\":\"Crossen\",\"tz\":1,\"lat\":50.75,\"lon\":-12.48},{\"name\":\"Krakau\",\"tz\":1,\"lat\":50.05,\"lon\":-19.95},{\"name\":\"Lodz\",\"tz\":1,\"lat\":51.77,\"lon\":-19.22},{\"name\":\"Tarnów\",\"tz\":1,\"lat\":52.78,\"lon\":-14.97},{\"name\":\"Warschau\",\"tz\":1,\"lat\":52.25,\"lon\":-21},{\"name\":\"Wroczlaw (Breslau)\",\"tz\":1,\"lat\":51.1,\"lon\":-17},{\"name\":\"Birobidzan\",\"tz\":9,\"lat\":48.8,\"lon\":-132.95},{\"name\":\"Irkutsk\",\"tz\":8,\"lat\":52.27,\"lon\":-104.33},{\"name\":\"Kiew\",\"tz\":2,\"lat\":50.43,\"lon\":-30.52},{\"name\":\"Moskau\",\"tz\":3,\"lat\":55.75,\"lon\":-37.58},{\"name\":\"St. Petersburg\",\"tz\":3,\"lat\":59.92,\"lon\":-30.25},{\"name\":\"Taschkent\",\"tz\":6,\"lat\":41.33,\"lon\":-69.3},{\"name\":\"Tblisi\",\"tz\":3,\"lat\":41.72,\"lon\":-44.82},{\"name\":\"Montreal, Fr.\",\"tz\":1,\"lat\":47.53,\"lon\":-4.02},{\"name\":\"Lausanne\",\"tz\":1,\"lat\":46.52,\"lon\":-6.63},{\"name\":\"Nice\",\"tz\":1,\"lat\":43.7,\"lon\":-7.25},{\"name\":\"Paris\",\"tz\":1,\"lat\":48.87,\"lon\":-2.33},{\"name\":\"Birmingham\",\"tz\":0,\"lat\":52.5,\"lon\":1.83},{\"name\":\"Bradford\",\"tz\":0,\"lat\":53.8,\"lon\":1.75},{\"name\":\"Bristol\",\"tz\":0,\"lat\":51.45,\"lon\":2.58},{\"name\":\"Edinburgh\",\"tz\":0,\"lat\":55.95,\"lon\":3.22},{\"name\":\"Gateshead\",\"tz\":0,\"lat\":54.97,\"lon\":1.62},{\"name\":\"Glasgow\",\"tz\":0,\"lat\":55.88,\"lon\":4.25},{\"name\":\"Sheffield\",\"tz\":0,\"lat\":53.38,\"lon\":1.5},{\"name\":\"Belfast\",\"tz\":0,\"lat\":54.58,\"lon\":5.92},{\"name\":\"Dublin\",\"tz\":0,\"lat\":53.33,\"lon\":6.25},{\"name\":\"Tralee\",\"tz\":0,\"lat\":52.27,\"lon\":9.7},{\"name\":\"Atlanta (Ga., US)\",\"tz\":-5,\"lat\":33.75,\"lon\":84.38},{\"name\":\"Baltimore, MD\",\"tz\":-5,\"lat\":39.28,\"lon\":76.62},{\"name\":\"Bentonville, Arkansas\",\"tz\":-6,\"lat\":36.37,\"lon\":94.22},{\"name\":\"Boston, MA\",\"tz\":-5,\"lat\":42.35,\"lon\":71.07},{\"name\":\"Buffalo\",\"tz\":-5,\"lat\":42.9,\"lon\":78.88},{\"name\":\"Burlington (VT, US)\",\"tz\":-5,\"lat\":44.48,\"lon\":73.22},{\"name\":\"Canton, Ohio\",\"tz\":-5,\"lat\":40.78,\"lon\":81.37},{\"name\":\"Charleston (S.C., US)\",\"tz\":-5,\"lat\":32.78,\"lon\":79.93},{\"name\":\"Charlotte (N.C., US)\",\"tz\":-5,\"lat\":35.23,\"lon\":80.83},{\"name\":\"Chicago\",\"tz\":-6,\"lat\":41.88,\"lon\":87.63},{\"name\":\"Cincinnati, OH\",\"tz\":-5,\"lat\":39.1,\"lon\":84.63},{\"name\":\"Cleveland (Ohio, US)\",\"tz\":-5,\"lat\":41.5,\"lon\":81.68},{\"name\":\"Columbus, OH\",\"tz\":-5,\"lat\":39.95,\"lon\":83},{\"name\":\"Dallas, TX\",\"tz\":-6,\"lat\":32.78,\"lon\":96.8},{\"name\":\"Denver (Colo., US)\",\"tz\":-7,\"lat\":39.72,\"lon\":105.02},{\"name\":\"Detroit, MI\",\"tz\":-5,\"lat\":42.33,\"lon\":83.05},{\"name\":\"Essexville, MI\",\"tz\":-5,\"lat\":43.62,\"lon\":83.83},{\"name\":\"Fairbanks, AK\",\"tz\":-10,\"lat\":64.85,\"lon\":147.72},{\"name\":\"Flagstaff, Arizona\",\"tz\":-7,\"lat\":35.18,\"lon\":111.65},{\"name\":\"Hartford (Conn., US)\",\"tz\":-5,\"lat\":41.77,\"lon\":72.68},{\"name\":\"Houston, TX\",\"tz\":-6,\"lat\":29.77,\"lon\":95.37},{\"name\":\"Indianapolis, Indiana\",\"tz\":-6,\"lat\":-19.03,\"lon\":47.92},{\"name\":\"Kansas City (Kans., US)\",\"tz\":-6,\"lat\":39.12,\"lon\":94.65},{\"name\":\"Little Rock\",\"tz\":-6,\"lat\":34.73,\"lon\":92.25},{\"name\":\"Los Angeles (LA)\",\"tz\":-8,\"lat\":34.05,\"lon\":118.25},{\"name\":\"Louisville (Ky., US)\",\"tz\":-5,\"lat\":38.25,\"lon\":85.75},{\"name\":\"Madison (Wis., US)\",\"tz\":-6,\"lat\":43.08,\"lon\":89.37},{\"name\":\"Memphis (Tenn., US)\",\"tz\":-6,\"lat\":35.13,\"lon\":90.05},{\"name\":\"Miami, FL\",\"tz\":-5,\"lat\":25.77,\"lon\":80.2},{\"name\":\"Miami Beach, FL\",\"tz\":-5,\"lat\":25.78,\"lon\":80.13},{\"name\":\"Milwaukee (Wis., US)\",\"tz\":-6,\"lat\":43.03,\"lon\":87.92},{\"name\":\"Minneapolis, Minnesota\",\"tz\":-6,\"lat\":44.98,\"lon\":93.22},{\"name\":\"Mobile\",\"tz\":-6,\"lat\":30.7,\"lon\":88.08},{\"name\":\"Monticello\",\"tz\":-5,\"lat\":41.65,\"lon\":74.7},{\"name\":\"Naples (Fla., US)\",\"tz\":-5,\"lat\":26.13,\"lon\":81.8},{\"name\":\"Nashville (Tenn., US)\",\"tz\":-6,\"lat\":36.15,\"lon\":86.8},{\"name\":\"New Brunswick\",\"tz\":-5,\"lat\":40.48,\"lon\":74.45},{\"name\":\"New Haven (Conn., US)\",\"tz\":-5,\"lat\":41.3,\"lon\":72.93},{\"name\":\"New Orleans, Louisiana\",\"tz\":-6,\"lat\":29.97,\"lon\":90.12},{\"name\":\"New York, NY\",\"tz\":-5,\"lat\":40.72,\"lon\":74.02},{\"name\":\"New York, Brooklyn\",\"tz\":-5,\"lat\":40.7,\"lon\":74},{\"name\":\"Newark (N.J., US)\",\"tz\":-5,\"lat\":40.73,\"lon\":74.15},{\"name\":\"Newport (R.I., US)\",\"tz\":-5,\"lat\":41.22,\"lon\":71.3},{\"name\":\"Omaha, Nebraska\",\"tz\":-6,\"lat\":41.27,\"lon\":95.95},{\"name\":\"Orlando, FL\",\"tz\":-5,\"lat\":28.53,\"lon\":81.38},{\"name\":\"Philadelphia, Pennsylvania\",\"tz\":-5,\"lat\":39.95,\"lon\":75.1},{\"name\":\"Phoenix, Arizona\",\"tz\":-7,\"lat\":33.45,\"lon\":112.08},{\"name\":\"Pittsburgh, Pennsylvania\",\"tz\":-5,\"lat\":40.43,\"lon\":80},{\"name\":\"Portland (Maine, US)\",\"tz\":-5,\"lat\":43.65,\"lon\":70.28},{\"name\":\"Portland (Oreg, US)\",\"tz\":-8,\"lat\":45.55,\"lon\":112.6},{\"name\":\"Providence, RI\",\"tz\":-5,\"lat\":41.83,\"lon\":71.42},{\"name\":\"Salt Lake City, Utah\",\"tz\":-7,\"lat\":40.77,\"lon\":111.88},{\"name\":\"San Antonio, TX\",\"tz\":-6,\"lat\":29.47,\"lon\":98.52},{\"name\":\"San Francisco\",\"tz\":-8,\"lat\":37.78,\"lon\":122.4},{\"name\":\"Santa Fe (N.Mex., US)\",\"tz\":-7,\"lat\":35.7,\"lon\":106.95},{\"name\":\"Seattle, WA\",\"tz\":-8,\"lat\":47.6,\"lon\":122.33},{\"name\":\"Silver Spring\",\"tz\":-5,\"lat\":39.03,\"lon\":77.05},{\"name\":\"Springfield (Mass., US)\",\"tz\":-5,\"lat\":42.12,\"lon\":72.6},{\"name\":\"Stamford, CA\",\"tz\":-5,\"lat\":41.05,\"lon\":73.55},{\"name\":\"St. Louis\",\"tz\":-6,\"lat\":38.63,\"lon\":90.18},{\"name\":\"Tampa, FL\",\"tz\":-5,\"lat\":27.95,\"lon\":82.45},{\"name\":\"Topeka (KS, US)\",\"tz\":-6,\"lat\":39.05,\"lon\":95.68},{\"name\":\"Tucson\",\"tz\":-7,\"lat\":32.22,\"lon\":110.97},{\"name\":\"Washington, DC\",\"tz\":-5,\"lat\":38.9,\"lon\":77.02},{\"name\":\"Wichita, TX\",\"tz\":-6,\"lat\":37.67,\"lon\":97.33},{\"name\":\"Yellowstone Lake\",\"tz\":-7,\"lat\":44.42,\"lon\":110.37},{\"name\":\"Ancona\",\"tz\":1,\"lat\":43.63,\"lon\":-13.5},{\"name\":\"Asti\",\"tz\":1,\"lat\":44.9,\"lon\":-8.18},{\"name\":\"Bologna\",\"tz\":1,\"lat\":44.48,\"lon\":-11.33},{\"name\":\"Ferrara\",\"tz\":1,\"lat\":44.83,\"lon\":-11.58},{\"name\":\"Florenz\",\"tz\":1,\"lat\":43.77,\"lon\":-11.25},{\"name\":\"Genua\",\"tz\":1,\"lat\":44.42,\"lon\":-8.95},{\"name\":\"Livorno\",\"tz\":1,\"lat\":43.55,\"lon\":-10.32},{\"name\":\"Mantova\",\"tz\":1,\"lat\":45.15,\"lon\":-10.8},{\"name\":\"Meran\",\"tz\":1,\"lat\":46.67,\"lon\":-11.15},{\"name\":\"Mailand\",\"tz\":1,\"lat\":45.47,\"lon\":-9.18},{\"name\":\"Modena\",\"tz\":1,\"lat\":44.67,\"lon\":-10.92},{\"name\":\"Neapel\",\"tz\":1,\"lat\":40.85,\"lon\":-14.28},{\"name\":\"Padova\",\"tz\":1,\"lat\":45.42,\"lon\":-11.88},{\"name\":\"Parma\",\"tz\":1,\"lat\":44.8,\"lon\":-10.32},{\"name\":\"Perugia\",\"tz\":1,\"lat\":43.13,\"lon\":-12.37},{\"name\":\"Pisa\",\"tz\":1,\"lat\":43.72,\"lon\":-10.38},{\"name\":\"Rom\",\"tz\":1,\"lat\":41.9,\"lon\":-12.48},{\"name\":\"Siena\",\"tz\":1,\"lat\":43.32,\"lon\":-11.35},{\"name\":\"Spiazzo\",\"tz\":1,\"lat\":46.12,\"lon\":-10.67},{\"name\":\"Trieste\",\"tz\":1,\"lat\":45.67,\"lon\":-13.77},{\"name\":\"Turin\",\"tz\":1,\"lat\":45.07,\"lon\":-7.67},{\"name\":\"Venedig\",\"tz\":1,\"lat\":45.45,\"lon\":-12.35},{\"name\":\"Verona\",\"tz\":1,\"lat\":45.45,\"lon\":-11},{\"name\":\"Alburquerque\",\"tz\":1,\"lat\":39.22,\"lon\":7},{\"name\":\"Alicante\",\"tz\":1,\"lat\":38.35,\"lon\":0.47},{\"name\":\"Barcelona\",\"tz\":1,\"lat\":41.38,\"lon\":-2.18},{\"name\":\"Mallorca\",\"tz\":1,\"lat\":39.48,\"lon\":-3},{\"name\":\"Marbella\",\"tz\":1,\"lat\":36.52,\"lon\":4.88},{\"name\":\"Sevilla\",\"tz\":1,\"lat\":37.37,\"lon\":5.98},{\"name\":\"Torremolinos\",\"tz\":1,\"lat\":36.6,\"lon\":4.5},{\"name\":\"Valencia\",\"tz\":1,\"lat\":39.47,\"lon\":0.37},{\"name\":\"Belmonte\",\"tz\":0,\"lat\":40.37,\"lon\":7.37},{\"name\":\"Lissabon\",\"tz\":0,\"lat\":38.72,\"lon\":9.13},{\"name\":\"Porto\",\"tz\":0,\"lat\":41.18,\"lon\":8.6},{\"name\":\"Athen\",\"tz\":2,\"lat\":37.97,\"lon\":-23.72},{\"name\":\"Korfu\",\"tz\":2,\"lat\":39.6,\"lon\":-19.92},{\"name\":\"Rhodos\",\"tz\":2,\"lat\":36.17,\"lon\":-28},{\"name\":\"Saloniki\",\"tz\":2,\"lat\":40.65,\"lon\":-23.02},{\"name\":\"Trikala\",\"tz\":2,\"lat\":39.57,\"lon\":-21.77},{\"name\":\"Volos\",\"tz\":2,\"lat\":39.35,\"lon\":-22.93},{\"name\":\"Ankara\",\"tz\":2,\"lat\":39.93,\"lon\":-32.87},{\"name\":\"Bursa\",\"tz\":2,\"lat\":40.18,\"lon\":-29.07},{\"name\":\"Istanbul\",\"tz\":2,\"lat\":41.02,\"lon\":-28.97},{\"name\":\"Izmir\",\"tz\":2,\"lat\":38.42,\"lon\":-27.15},{\"name\":\"Esch-sur-Alzette\",\"tz\":1,\"lat\":49.5,\"lon\":-5.98},{\"name\":\"Luxemburg\",\"tz\":1,\"lat\":49.6,\"lon\":-6.15},{\"name\":\"Kopenhagen\",\"tz\":1,\"lat\":55.67,\"lon\":-12.58},{\"name\":\"Boras\",\"tz\":1,\"lat\":57.72,\"lon\":-12.92},{\"name\":\"Göteborg\",\"tz\":1,\"lat\":57.72,\"lon\":-11.97},{\"name\":\"Lund\",\"tz\":1,\"lat\":55.7,\"lon\":-13.18},{\"name\":\"Malmö\",\"tz\":1,\"lat\":55.6,\"lon\":-13},{\"name\":\"Stockholm\",\"tz\":1,\"lat\":59.33,\"lon\":-18.05},{\"name\":\"Oslo\",\"tz\":1,\"lat\":59.92,\"lon\":-10.75},{\"name\":\"Trondheim\",\"tz\":1,\"lat\":63.42,\"lon\":-10.42},{\"name\":\"Helsinki\",\"tz\":2,\"lat\":60.17,\"lon\":-24.97},{\"name\":\"Turku\",\"tz\":2,\"lat\":60.45,\"lon\":-22.28},{\"name\":\"Pazardjik\",\"tz\":2,\"lat\":42.2,\"lon\":-24.33},{\"name\":\"Plovdiv\",\"tz\":2,\"lat\":42.15,\"lon\":-24.75},{\"name\":\"Ruse\",\"tz\":2,\"lat\":43.83,\"lon\":-25.95},{\"name\":\"Sofia\",\"tz\":2,\"lat\":42.68,\"lon\":-23.32},{\"name\":\"Bacau\",\"tz\":2,\"lat\":46.57,\"lon\":-26.92},{\"name\":\"Botosani\",\"tz\":2,\"lat\":47.75,\"lon\":-26.67},{\"name\":\"Brasov\",\"tz\":2,\"lat\":45.65,\"lon\":-25.62},{\"name\":\"Cluj\",\"tz\":2,\"lat\":46.78,\"lon\":-23.6},{\"name\":\"Constanta\",\"tz\":2,\"lat\":44.18,\"lon\":-28.65},{\"name\":\"Dorohoi\",\"tz\":2,\"lat\":47.95,\"lon\":-26.4},{\"name\":\"Galati\",\"tz\":2,\"lat\":45.43,\"lon\":-28.05},{\"name\":\"Iasi\",\"tz\":2,\"lat\":47.17,\"lon\":-27.58},{\"name\":\"Oradea\",\"tz\":2,\"lat\":47.05,\"lon\":-21.95},{\"name\":\"Piatra Neamt\",\"tz\":2,\"lat\":46.93,\"lon\":-26.37},{\"name\":\"Radauti\",\"tz\":2,\"lat\":47.85,\"lon\":-25.92},{\"name\":\"Satu Mare\",\"tz\":2,\"lat\":47.8,\"lon\":-22.88},{\"name\":\"Sighetul Marmatiei\",\"tz\":2,\"lat\":47.93,\"lon\":-23.9},{\"name\":\"Suceava\",\"tz\":2,\"lat\":47.65,\"lon\":-26.32},{\"name\":\"Timisoara\",\"tz\":2,\"lat\":45.75,\"lon\":-21.22},{\"name\":\"Tirgu Mures\",\"tz\":2,\"lat\":46.55,\"lon\":-24.55},{\"name\":\"Budapest\",\"tz\":1,\"lat\":47.5,\"lon\":-19.08},{\"name\":\"Sopron\",\"tz\":1,\"lat\":47.68,\"lon\":-16.6},{\"name\":\"Brünn\",\"tz\":1,\"lat\":49.2,\"lon\":-16.62},{\"name\":\"Karlsbad\",\"tz\":1,\"lat\":50.18,\"lon\":-12.87},{\"name\":\"Liberec\",\"tz\":1,\"lat\":50.77,\"lon\":-15.05},{\"name\":\"Olomouc\",\"tz\":1,\"lat\":49.6,\"lon\":-17.27},{\"name\":\"Ostrava\",\"tz\":1,\"lat\":49.83,\"lon\":-18.28},{\"name\":\"Pilsen\",\"tz\":1,\"lat\":49.75,\"lon\":-13.38},{\"name\":\"Prag\",\"tz\":1,\"lat\":50.08,\"lon\":-14.43},{\"name\":\"Teplice\",\"tz\":1,\"lat\":50.65,\"lon\":-13.8},{\"name\":\"Usti nad Labem\",\"tz\":1,\"lat\":50.67,\"lon\":-14.03},{\"name\":\"Bratislava\",\"tz\":1,\"lat\":48.15,\"lon\":-17.12},{\"name\":\"Galanta\",\"tz\":1,\"lat\":48.2,\"lon\":-17.72},{\"name\":\"Kosice\",\"tz\":1,\"lat\":48.72,\"lon\":-21.25},{\"name\":\"Piestany\",\"tz\":1,\"lat\":48.6,\"lon\":-17.83},{\"name\":\"Presov\",\"tz\":1,\"lat\":49,\"lon\":-21.25},{\"name\":\"Trnava\",\"tz\":1,\"lat\":48.38,\"lon\":-17.58},{\"name\":\"Belgrad\",\"tz\":1,\"lat\":44.83,\"lon\":-20.5},{\"name\":\"Novi Sad\",\"tz\":1,\"lat\":45.25,\"lon\":-19.83},{\"name\":\"Subotica\",\"tz\":1,\"lat\":46.1,\"lon\":-19.65},{\"name\":\"Dubrovnik\",\"tz\":1,\"lat\":42.63,\"lon\":-18.12},{\"name\":\"Rijeka\",\"tz\":1,\"lat\":45.33,\"lon\":-14.45},{\"name\":\"Split\",\"tz\":1,\"lat\":43.52,\"lon\":-16.45},{\"name\":\"Zagreb\",\"tz\":1,\"lat\":45.8,\"lon\":-15.97},{\"name\":\"Skopje\",\"tz\":1,\"lat\":41.98,\"lon\":-21.43},{\"name\":\"Sarajevo\",\"tz\":1,\"lat\":43.87,\"lon\":-18.42},{\"name\":\"Ljubljana\",\"tz\":1,\"lat\":46.05,\"lon\":-14.52},{\"name\":\"Teheran (GMT+3)\",\"tz\":3,\"lat\":35.67,\"lon\":-51.43},{\"name\":\"Teheran (GMT+4)\",\"tz\":4,\"lat\":35.67,\"lon\":-51.43},{\"name\":\"Tokyo\",\"tz\":9,\"lat\":35.7,\"lon\":-139.77},{\"name\":\"Asuncion\",\"tz\":-4,\"lat\":-25.27,\"lon\":57.67},{\"name\":\"Sao Paulo\",\"tz\":-3,\"lat\":-23.53,\"lon\":46.62},{\"name\":\"Buenos Aires\",\"tz\":-3,\"lat\":-34.6,\"lon\":58.45},{\"name\":\"Guangzhou (Canton)\",\"tz\":8,\"lat\":23.1,\"lon\":-113.27},{\"name\":\"Hong Kong\",\"tz\":8,\"lat\":25.25,\"lon\":-114.17},{\"name\":\"Peking (Beijing)\",\"tz\":8,\"lat\":39.9,\"lon\":-116.42},{\"name\":\"Shanghai\",\"tz\":8,\"lat\":31.23,\"lon\":-121.47},{\"name\":\"Shenyang\",\"tz\":8,\"lat\":41.8,\"lon\":-123.45},{\"name\":\"Bangkok\",\"tz\":7,\"lat\":13.58,\"lon\":-100.48},{\"name\":\"Neu Dehli (GMT+5)\",\"tz\":5,\"lat\":28.3,\"lon\":-77.47},{\"name\":\"Neu Dehli (GMT+6)\",\"tz\":6,\"lat\":28.3,\"lon\":-77.47},{\"name\":\"Kairo\",\"tz\":2,\"lat\":29.67,\"lon\":-31.02},{\"name\":\"Damaskus\",\"tz\":3,\"lat\":33.13,\"lon\":-36.43},{\"name\":\"Amman\",\"tz\":2,\"lat\":31.7,\"lon\":-35.88},{\"name\":\"Ar-Rijad (Riyadh)\",\"tz\":3,\"lat\":24.63,\"lon\":-46.72},{\"name\":\"Beirut\",\"tz\":2,\"lat\":33.33,\"lon\":-35.37},{\"name\":\"Pjongjang (P´yongyang)\",\"tz\":9,\"lat\":39.02,\"lon\":-125.75},{\"name\":\"Seoul (Soul)\",\"tz\":9,\"lat\":37.55,\"lon\":-126.97},{\"name\":\"Singapur\",\"tz\":8,\"lat\":11.37,\"lon\":-103.8},{\"name\":\"Lima\",\"tz\":-5,\"lat\":-12.05,\"lon\":77.05},{\"name\":\"Havana\",\"tz\":-5,\"lat\":23.13,\"lon\":82.37},{\"name\":\"Brisbane\",\"tz\":10,\"lat\":-27.47,\"lon\":-153.03},{\"name\":\"Canberra\",\"tz\":10,\"lat\":-35.28,\"lon\":-149.13},{\"name\":\"Sydney\",\"tz\":10,\"lat\":-33.87,\"lon\":-151.22},{\"name\":\"Halifax, N.S., Can.\",\"tz\":-4,\"lat\":44.65,\"lon\":63.6},{\"name\":\"Montreal, Quebec, Can.\",\"tz\":-5,\"lat\":45.52,\"lon\":73.57},{\"name\":\"Quebec\",\"tz\":-5,\"lat\":46.82,\"lon\":71.23},{\"name\":\"Vancouver\",\"tz\":-8,\"lat\":49.27,\"lon\":123.12},{\"name\":\"Demmin\",\"tz\":1,\"lat\":53.9,\"lon\":-13.03},{\"name\":\"Dieburg\",\"tz\":1,\"lat\":49.9,\"lon\":-8.83},{\"name\":\"Dömitz\",\"tz\":1,\"lat\":53.13,\"lon\":-11.23},{\"name\":\"Durlach\",\"tz\":1,\"lat\":49,\"lon\":-8.45},{\"name\":\"Landau\",\"tz\":1,\"lat\":49.2,\"lon\":-8.12},{\"name\":\"Landau an der Isar\",\"tz\":1,\"lat\":48.67,\"lon\":-12.72},{\"name\":\"Parchim\",\"tz\":1,\"lat\":53.42,\"lon\":-11.85},{\"name\":\"Suhl\",\"tz\":1,\"lat\":50.62,\"lon\":-10.68},{\"name\":\"Worms\",\"tz\":1,\"lat\":49.63,\"lon\":-8.37},{\"name\":\"Strasbourg\",\"tz\":1,\"lat\":48.58,\"lon\":-7.75},{\"name\":\"Kaunas\",\"tz\":2,\"lat\":54.9,\"lon\":-23.9},{\"name\":\"Königsberg\",\"tz\":2,\"lat\":54.72,\"lon\":-20.5},{\"name\":\"Riga\",\"tz\":2,\"lat\":56.95,\"lon\":-24.1},{\"name\":\"Tallinn\",\"tz\":2,\"lat\":59.42,\"lon\":-24.75},{\"name\":\"Vilnius\",\"tz\":2,\"lat\":54.68,\"lon\":-25.32},{\"name\":\"Blackpool\",\"tz\":0,\"lat\":53.83,\"lon\":3.05},{\"name\":\"Bournemouth\",\"tz\":0,\"lat\":50.72,\"lon\":1.9},{\"name\":\"Brighton\",\"tz\":0,\"lat\":50.83,\"lon\":0.13},{\"name\":\"Cambridge\",\"tz\":0,\"lat\":52.22,\"lon\":-0.13},{\"name\":\"Coventry\",\"tz\":0,\"lat\":52.42,\"lon\":1.5},{\"name\":\"Croydon\",\"tz\":0,\"lat\":51.38,\"lon\":0.1},{\"name\":\"Eastbourne\",\"tz\":0,\"lat\":50.77,\"lon\":-0.28},{\"name\":\"Exeter\",\"tz\":0,\"lat\":50.72,\"lon\":3.52},{\"name\":\"Grimsby\",\"tz\":0,\"lat\":53.58,\"lon\":0.08},{\"name\":\"Guildford\",\"tz\":0,\"lat\":51.23,\"lon\":0.58},{\"name\":\"Harlow\",\"tz\":0,\"lat\":51.78,\"lon\":-0.13},{\"name\":\"Harrogate\",\"tz\":0,\"lat\":54,\"lon\":1.55},{\"name\":\"Hemel Hempstead\",\"tz\":0,\"lat\":51.77,\"lon\":0.47},{\"name\":\"Hove\",\"tz\":0,\"lat\":50.82,\"lon\":0.17},{\"name\":\"Leicester\",\"tz\":0,\"lat\":52.63,\"lon\":1.08},{\"name\":\"Luton\",\"tz\":0,\"lat\":51.88,\"lon\":0.42},{\"name\":\"Newcastle\",\"tz\":0,\"lat\":54.2,\"lon\":5.75},{\"name\":\"Norwich\",\"tz\":0,\"lat\":52.63,\"lon\":-1.3},{\"name\":\"Nottingham\",\"tz\":0,\"lat\":52.97,\"lon\":1.17},{\"name\":\"Oxford\",\"tz\":0,\"lat\":51.77,\"lon\":1.23},{\"name\":\"Plymouth\",\"tz\":0,\"lat\":50.38,\"lon\":4.15},{\"name\":\"Portsmouth\",\"tz\":0,\"lat\":50.8,\"lon\":1.08},{\"name\":\"Ramsgate\",\"tz\":0,\"lat\":51.33,\"lon\":-1.42},{\"name\":\"Reading\",\"tz\":0,\"lat\":51.47,\"lon\":0.98},{\"name\":\"Rochester\",\"tz\":0,\"lat\":51.4,\"lon\":-0.5},{\"name\":\"Saint Anne's\",\"tz\":0,\"lat\":53.75,\"lon\":3.03},{\"name\":\"Solihull\",\"tz\":0,\"lat\":52.42,\"lon\":1.75},{\"name\":\"Southend-on-SEA\",\"tz\":0,\"lat\":51.55,\"lon\":-0.72},{\"name\":\"Southport\",\"tz\":0,\"lat\":53.65,\"lon\":3.02},{\"name\":\"Watford\",\"tz\":0,\"lat\":51.67,\"lon\":0.42},{\"name\":\"Agen\",\"tz\":1,\"lat\":44.2,\"lon\":-0.62},{\"name\":\"Aix-en-Provence\",\"tz\":1,\"lat\":43.53,\"lon\":-5.43},{\"name\":\"Aix-les-Bains\",\"tz\":1,\"lat\":45.7,\"lon\":-5.75},{\"name\":\"Annecy\",\"tz\":1,\"lat\":45.9,\"lon\":-6.12},{\"name\":\"Antibes\",\"tz\":1,\"lat\":43.58,\"lon\":-7.12},{\"name\":\"Arcachon\",\"tz\":1,\"lat\":44.62,\"lon\":1.2},{\"name\":\"Bayonne\",\"tz\":1,\"lat\":43.48,\"lon\":1.48},{\"name\":\"Belfort\",\"tz\":1,\"lat\":47.63,\"lon\":-6.87},{\"name\":\"Benfeld\",\"tz\":1,\"lat\":48.37,\"lon\":-7.6},{\"name\":\"Besancon\",\"tz\":1,\"lat\":47.25,\"lon\":-6.03},{\"name\":\"Biarritz\",\"tz\":1,\"lat\":43.48,\"lon\":1.57},{\"name\":\"Bordeuax\",\"tz\":1,\"lat\":44.83,\"lon\":0.57},{\"name\":\"Boulay-Moselle\",\"tz\":1,\"lat\":49.18,\"lon\":-6.5},{\"name\":\"Boulogne-Sur-Mer\",\"tz\":1,\"lat\":50.72,\"lon\":-1.62},{\"name\":\"Brest, Fr.\",\"tz\":1,\"lat\":48.4,\"lon\":4.48},{\"name\":\"Caen\",\"tz\":1,\"lat\":49.18,\"lon\":0.35},{\"name\":\"Caluire et Cuire\",\"tz\":1,\"lat\":45.8,\"lon\":-4.85},{\"name\":\"Cannes\",\"tz\":1,\"lat\":43.55,\"lon\":-7.02},{\"name\":\"Carpentras\",\"tz\":1,\"lat\":44.05,\"lon\":-5.05},{\"name\":\"Cavaillon\",\"tz\":1,\"lat\":43.83,\"lon\":-5.02},{\"name\":\"Chalons-Sur-Marne\",\"tz\":1,\"lat\":48.95,\"lon\":-4.37},{\"name\":\"Chalons-Sur-Saone\",\"tz\":1,\"lat\":46.78,\"lon\":-4.85},{\"name\":\"Clermont-Ferrand\",\"tz\":1,\"lat\":45.78,\"lon\":-3.08},{\"name\":\"Colmar\",\"tz\":1,\"lat\":58.08,\"lon\":-7.37},{\"name\":\"Dijon\",\"tz\":1,\"lat\":47.32,\"lon\":-5.02},{\"name\":\"Evian-Les-Bains\",\"tz\":1,\"lat\":46.38,\"lon\":-6.58},{\"name\":\"Grasse\",\"tz\":1,\"lat\":43.67,\"lon\":-6.92},{\"name\":\"Grenoble\",\"tz\":1,\"lat\":45.17,\"lon\":-5.72},{\"name\":\"Haguenau\",\"tz\":1,\"lat\":48.82,\"lon\":-7.78},{\"name\":\"La Rochelle\",\"tz\":1,\"lat\":46.17,\"lon\":1.17},{\"name\":\"La Seyne-Sur-Mer\",\"tz\":1,\"lat\":43.1,\"lon\":-5.88},{\"name\":\"Le Havre\",\"tz\":1,\"lat\":49.5,\"lon\":-0.13},{\"name\":\"Lille\",\"tz\":1,\"lat\":50.63,\"lon\":-3.07},{\"name\":\"Limoges\",\"tz\":1,\"lat\":45.83,\"lon\":-1.25},{\"name\":\"Lyon\",\"tz\":1,\"lat\":45.75,\"lon\":-4.85},{\"name\":\"Mâcon, Fr.\",\"tz\":1,\"lat\":46.3,\"lon\":-4.83},{\"name\":\"Menton\",\"tz\":1,\"lat\":43.78,\"lon\":-7.5},{\"name\":\"Metz\",\"tz\":1,\"lat\":49.13,\"lon\":-6.17},{\"name\":\"Montpellier\",\"tz\":1,\"lat\":43.6,\"lon\":-3.88},{\"name\":\"Mülhausen im Täle\",\"tz\":1,\"lat\":48.57,\"lon\":-9.65},{\"name\":\"Nancy\",\"tz\":1,\"lat\":48.68,\"lon\":-6.2},{\"name\":\"Nîmes\",\"tz\":1,\"lat\":43.83,\"lon\":-4.35},{\"name\":\"Nizza Monferrato\",\"tz\":1,\"lat\":44.77,\"lon\":-8.35},{\"name\":\"Orléans, Fr.\",\"tz\":1,\"lat\":47.92,\"lon\":-1.9},{\"name\":\"Perpignan\",\"tz\":1,\"lat\":42.68,\"lon\":-2.87},{\"name\":\"Reims\",\"tz\":1,\"lat\":49.25,\"lon\":-4.02},{\"name\":\"Rouen\",\"tz\":1,\"lat\":49.43,\"lon\":-1.08},{\"name\":\"Saint-Louis, Fr.\",\"tz\":1,\"lat\":47.58,\"lon\":-7.57},{\"name\":\"Sens\",\"tz\":1,\"lat\":48.2,\"lon\":-3.28},{\"name\":\"Toulouse\",\"tz\":1,\"lat\":43.6,\"lon\":-1.43},{\"name\":\"Tours\",\"tz\":1,\"lat\":47.38,\"lon\":-0.68},{\"name\":\"Troyes\",\"tz\":1,\"lat\":48.3,\"lon\":-4.08},{\"name\":\"Versailles, Fr.\",\"tz\":1,\"lat\":48.8,\"lon\":-2.13},{\"name\":\"Vittel\",\"tz\":1,\"lat\":48.2,\"lon\":-5.95},{\"name\":\"Wasselonne\",\"tz\":1,\"lat\":48.63,\"lon\":-7.45},{\"name\":\"Rothenburg ob der Tauber\",\"tz\":1,\"lat\":49.38,\"lon\":-10.17},{\"name\":\"Rothenburg\",\"tz\":1,\"lat\":51.33,\"lon\":-14.97},{\"name\":\"Rothenburg an der Oder\",\"tz\":1,\"lat\":52.02,\"lon\":-15.42},{\"name\":\"Alexandria, Egypt\",\"tz\":2,\"lat\":31.18,\"lon\":-29.93},{\"name\":\"Anchorage, AK\",\"tz\":-9,\"lat\":61.22,\"lon\":149.88},{\"name\":\"Ann Arbor, MI\",\"tz\":-5,\"lat\":42.3,\"lon\":83.75},{\"name\":\"Augusta, GA\",\"tz\":-5,\"lat\":33.48,\"lon\":81.93},{\"name\":\"Baghdad, Iraq\",\"tz\":3,\"lat\":33.35,\"lon\":-44.42},{\"name\":\"Birmingham, AL\",\"tz\":-6,\"lat\":33.52,\"lon\":86.82},{\"name\":\"Bombay, India (GMT+5)\",\"tz\":5,\"lat\":18.95,\"lon\":-72.83},{\"name\":\"Bombay, India (GMT+6)\",\"tz\":6,\"lat\":18.95,\"lon\":-72.83},{\"name\":\"Casablanca, Marokko\",\"tz\":0,\"lat\":33.65,\"lon\":7.58},{\"name\":\"Djakarta, Indonesia\",\"tz\":7,\"lat\":-6.17,\"lon\":-106.8},{\"name\":\"Desmoines, IA\",\"tz\":-6,\"lat\":41.58,\"lon\":93.62},{\"name\":\"Dubayy\",\"tz\":4,\"lat\":25.3,\"lon\":-55.3},{\"name\":\"Fort Lauderdale, FL\",\"tz\":-5,\"lat\":26.12,\"lon\":80.13},{\"name\":\"Jacksonsville, FL\",\"tz\":-5,\"lat\":30.33,\"lon\":81.67},{\"name\":\"Karachi\",\"tz\":5,\"lat\":24.87,\"lon\":-67.05},{\"name\":\"Kuala Lumpur, Malaysia\",\"tz\":8,\"lat\":3.15,\"lon\":-101.72},{\"name\":\"Kuwait, Kuwait\",\"tz\":3,\"lat\":29.5,\"lon\":-47.75},{\"name\":\"Lagos, Nigeria\",\"tz\":1,\"lat\":6.45,\"lon\":-3.4},{\"name\":\"Las Vegas, NV\",\"tz\":-8,\"lat\":36.18,\"lon\":115.13},{\"name\":\"Mauritius\",\"tz\":4,\"lat\":-20.28,\"lon\":-57.55},{\"name\":\"Panama, Panama\",\"tz\":-5,\"lat\":8.97,\"lon\":79.52},{\"name\":\"Peoria, IL\",\"tz\":-6,\"lat\":40.7,\"lon\":89.6},{\"name\":\"Raleigh, NC\",\"tz\":-5,\"lat\":35.78,\"lon\":78.65},{\"name\":\"Redmond, WA\",\"tz\":-8,\"lat\":47.4,\"lon\":122.07},{\"name\":\"Sacramento, CA\",\"tz\":-8,\"lat\":38.58,\"lon\":121.5},{\"name\":\"Tenerife, Spain\",\"tz\":1,\"lat\":28.03,\"lon\":-16.57},{\"name\":\"Durres, Albania\",\"tz\":1,\"lat\":41.32,\"lon\":-19.43},{\"name\":\"Lushnje, Albania\",\"tz\":1,\"lat\":40.93,\"lon\":-19.7},{\"name\":\"Lugoj, Romania\",\"tz\":2,\"lat\":45.68,\"lon\":-21.9},{\"name\":\"Shkoder, Albania\",\"tz\":1,\"lat\":42.08,\"lon\":-19.5},{\"name\":\"Addis Abeba\",\"tz\":3,\"lat\":9.15,\"lon\":-38.77},{\"name\":\"Aden, Jemen\",\"tz\":3,\"lat\":12.78,\"lon\":-45.03},{\"name\":\"Boca Raton, FL\",\"tz\":-5,\"lat\":26.35,\"lon\":80.08},{\"name\":\"Buchara\",\"tz\":5,\"lat\":39.77,\"lon\":-64.42},{\"name\":\"Gondar, Ethiopia\",\"tz\":3,\"lat\":12.6,\"lon\":-37.48},{\"name\":\"Jekaterinburg\",\"tz\":5,\"lat\":56.83,\"lon\":-60.5},{\"name\":\"Kaifeng, China\",\"tz\":8,\"lat\":34.78,\"lon\":-114.43},{\"name\":\"Krasnojarsk\",\"tz\":7,\"lat\":56,\"lon\":-92.98},{\"name\":\"Mbale, Uganda\",\"tz\":3,\"lat\":1.07,\"lon\":-34.18},{\"name\":\"New Bedfort, MA\",\"tz\":-5,\"lat\":41.63,\"lon\":70.93},{\"name\":\"Nicosia, Cyprus\",\"tz\":2,\"lat\":34.78,\"lon\":-33.48},{\"name\":\"Nowgorod\",\"tz\":3,\"lat\":58.58,\"lon\":-31.23},{\"name\":\"Omsk\",\"tz\":6,\"lat\":54.95,\"lon\":-73.33},{\"name\":\"Plano, TX\",\"tz\":-6,\"lat\":33.03,\"lon\":96.7},{\"name\":\"Perm\",\"tz\":5,\"lat\":57.92,\"lon\":-56.05},{\"name\":\"Sana, Jemen\",\"tz\":3,\"lat\":15.18,\"lon\":-44.02},{\"name\":\"Skokie, IL\",\"tz\":-6,\"lat\":42.03,\"lon\":87.77},{\"name\":\"Woronesch, Russia\",\"tz\":3,\"lat\":51.7,\"lon\":-39.25},{\"name\":\"Allentown, PA\",\"tz\":-5,\"lat\":40.6,\"lon\":75.48},{\"name\":\"Capetown, South Africa\",\"tz\":2,\"lat\":-33.9,\"lon\":-18.37},{\"name\":\"Chapel Hill, NC\",\"tz\":-5,\"lat\":35.9,\"lon\":79.07},{\"name\":\"Ft. Walton Beach, FL\",\"tz\":-5,\"lat\":30.4,\"lon\":86.52},{\"name\":\"Greenwich Meridian\",\"tz\":0,\"lat\":0,\"lon\":0},{\"name\":\"Monsey, NY\",\"tz\":-5,\"lat\":41.12,\"lon\":74.07},{\"name\":\"Ramat Gan\",\"tz\":2,\"lat\":32.07,\"lon\":-34.82},{\"name\":\"Lugano\",\"tz\":1,\"lat\":46.02,\"lon\":-8.97},{\"name\":\"Baden, Austria\",\"tz\":1,\"lat\":48,\"lon\":-16.23},{\"name\":\"Gadsten, AL\",\"tz\":-6,\"lat\":34.02,\"lon\":86.02},{\"name\":\"Huntsville, AL\",\"tz\":-6,\"lat\":34.73,\"lon\":86.58},{\"name\":\"Montgomery, AL\",\"tz\":-6,\"lat\":32.37,\"lon\":86.32},{\"name\":\"Juneau, AK\",\"tz\":-10,\"lat\":58.3,\"lon\":134.42},{\"name\":\"Nome, AK\",\"tz\":-10,\"lat\":64.5,\"lon\":165.42},{\"name\":\"Algiers\",\"tz\":1,\"lat\":36.48,\"lon\":-3},{\"name\":\"Luanda\",\"tz\":1,\"lat\":-8.5,\"lon\":-13.15},{\"name\":\"Yuma, Arizona\",\"tz\":-7,\"lat\":32.72,\"lon\":114.62},{\"name\":\"Ft Smith, Arkansas\",\"tz\":-6,\"lat\":35.37,\"lon\":94.43},{\"name\":\"Perth\",\"tz\":8,\"lat\":-31.83,\"lon\":-116.17},{\"name\":\"Porto Novo\",\"tz\":1,\"lat\":6.3,\"lon\":-2.45},{\"name\":\"Ouagadougou\",\"tz\":0,\"lat\":12.2,\"lon\":1.4},{\"name\":\"Bujumbura\",\"tz\":2,\"lat\":-3.22,\"lon\":-29.18},{\"name\":\"Bakersfield, CA\",\"tz\":-8,\"lat\":35.37,\"lon\":119.02},{\"name\":\"Berkeley, CA\",\"tz\":-8,\"lat\":37.87,\"lon\":122.27},{\"name\":\"Eureka, CA\",\"tz\":-8,\"lat\":40.78,\"lon\":124.17},{\"name\":\"Fresno, CA\",\"tz\":-8,\"lat\":36.73,\"lon\":119.78},{\"name\":\"Long Beach, CA\",\"tz\":-8,\"lat\":33.77,\"lon\":118.18},{\"name\":\"Oakland, CA\",\"tz\":-8,\"lat\":37.78,\"lon\":122.27},{\"name\":\"Pasadena, CA\",\"tz\":-8,\"lat\":34.15,\"lon\":118.15},{\"name\":\"San Bernardino, CA\",\"tz\":-8,\"lat\":34.12,\"lon\":117.47},{\"name\":\"San Jose, CA\",\"tz\":-8,\"lat\":37.33,\"lon\":121.88},{\"name\":\"Santa Barbara, CA\",\"tz\":-8,\"lat\":34.42,\"lon\":119.7},{\"name\":\"Santa Cruz, CA\",\"tz\":-8,\"lat\":36.97,\"lon\":122.02},{\"name\":\"Stockton, CA\",\"tz\":-8,\"lat\":37.97,\"lon\":121.28},{\"name\":\"Yaounde\",\"tz\":1,\"lat\":3.52,\"lon\":-11.32},{\"name\":\"Calgary\",\"tz\":-7,\"lat\":51.05,\"lon\":114.05},{\"name\":\"Edmondton\",\"tz\":-7,\"lat\":53.55,\"lon\":113.48},{\"name\":\"Lethbridge\",\"tz\":-7,\"lat\":49.7,\"lon\":112.83},{\"name\":\"Prince Rupert, British Columbia\",\"tz\":-8,\"lat\":54.32,\"lon\":130.32},{\"name\":\"Victoria, British Columbia\",\"tz\":-8,\"lat\":48.43,\"lon\":123.37},{\"name\":\"Brandon\",\"tz\":-6,\"lat\":49.85,\"lon\":99.95},{\"name\":\"Churchill\",\"tz\":-6,\"lat\":58.75,\"lon\":94.17},{\"name\":\"Fredericton\",\"tz\":-4,\"lat\":45.97,\"lon\":66.65},{\"name\":\"Moncton\",\"tz\":-4,\"lat\":46.08,\"lon\":64.78},{\"name\":\"St John\",\"tz\":-4,\"lat\":45.27,\"lon\":66.07},{\"name\":\"St John's\",\"tz\":-4,\"lat\":47.57,\"lon\":52.72},{\"name\":\"Yellowknife\",\"tz\":-7,\"lat\":62.45,\"lon\":114.38},{\"name\":\"Sydney, Canada\",\"tz\":-4,\"lat\":46.13,\"lon\":60.2},{\"name\":\"Belleville\",\"tz\":-5,\"lat\":44.17,\"lon\":77.38},{\"name\":\"Brantford\",\"tz\":-5,\"lat\":43.15,\"lon\":80.27},{\"name\":\"Burlington\",\"tz\":-5,\"lat\":43.33,\"lon\":79.8},{\"name\":\"Guelph\",\"tz\":-5,\"lat\":43.55,\"lon\":80.25},{\"name\":\"Hamilton\",\"tz\":-5,\"lat\":43.25,\"lon\":79.88},{\"name\":\"Kingston\",\"tz\":-5,\"lat\":44.23,\"lon\":76.48},{\"name\":\"Kitchener\",\"tz\":-5,\"lat\":43.45,\"lon\":80.48},{\"name\":\"London, Ontario\",\"tz\":-5,\"lat\":42.98,\"lon\":81.23},{\"name\":\"Mississauga\",\"tz\":-5,\"lat\":43.55,\"lon\":79.57},{\"name\":\"North Bay\",\"tz\":-5,\"lat\":46.32,\"lon\":79.47},{\"name\":\"Oshawa\",\"tz\":-5,\"lat\":43.9,\"lon\":78.87},{\"name\":\"Peterborough\",\"tz\":-5,\"lat\":44.32,\"lon\":78.32},{\"name\":\"St Catherines\",\"tz\":-5,\"lat\":43.17,\"lon\":79.25},{\"name\":\"Sault St Marie\",\"tz\":-5,\"lat\":46.5,\"lon\":84.33},{\"name\":\"Sudbury\",\"tz\":-5,\"lat\":46.48,\"lon\":80.98},{\"name\":\"Thunder Bay\",\"tz\":-5,\"lat\":48.38,\"lon\":89.25},{\"name\":\"Windsor\",\"tz\":-5,\"lat\":42.32,\"lon\":83.03},{\"name\":\"Hull\",\"tz\":-5,\"lat\":45.43,\"lon\":75.72},{\"name\":\"La Salle\",\"tz\":-5,\"lat\":45.43,\"lon\":73.67},{\"name\":\"Laval\",\"tz\":-5,\"lat\":45.22,\"lon\":73.75},{\"name\":\"Sherbrooke\",\"tz\":-5,\"lat\":45.4,\"lon\":71.85},{\"name\":\"Trois Riveres\",\"tz\":-5,\"lat\":46.35,\"lon\":72.55},{\"name\":\"Dawson\",\"tz\":-8,\"lat\":64.07,\"lon\":139.43},{\"name\":\"Whitehorse\",\"tz\":-8,\"lat\":60.72,\"lon\":135.05},{\"name\":\"Moose Jaw\",\"tz\":-6,\"lat\":50.4,\"lon\":105.53},{\"name\":\"Regina\",\"tz\":-6,\"lat\":50.45,\"lon\":104.62},{\"name\":\"Saskatoon\",\"tz\":-6,\"lat\":52.13,\"lon\":106.67},{\"name\":\"Bangui\",\"tz\":1,\"lat\":4.22,\"lon\":-18.37},{\"name\":\"N'Djamena\",\"tz\":1,\"lat\":12.1,\"lon\":-14.58},{\"name\":\"Grand Junction\",\"tz\":-7,\"lat\":39.07,\"lon\":108.57},{\"name\":\"Pueblo\",\"tz\":-7,\"lat\":38.25,\"lon\":104.62},{\"name\":\"Brazzaville\",\"tz\":1,\"lat\":-4.13,\"lon\":-15.13},{\"name\":\"Bridgeport\",\"tz\":-5,\"lat\":41.18,\"lon\":73.18},{\"name\":\"Abidjan\",\"tz\":0,\"lat\":5.18,\"lon\":4.02},{\"name\":\"Wilmington, Delaware\",\"tz\":-5,\"lat\":39.75,\"lon\":75.55},{\"name\":\"Quito\",\"tz\":-5,\"lat\":-0.28,\"lon\":78.52},{\"name\":\"Daytona Beach, FL\",\"tz\":-5,\"lat\":29.22,\"lon\":81.02},{\"name\":\"Gainesville, FL\",\"tz\":-5,\"lat\":29.65,\"lon\":82.32},{\"name\":\"Key West, FL\",\"tz\":-5,\"lat\":24.57,\"lon\":81.8},{\"name\":\"Pensacola, FL\",\"tz\":-5,\"lat\":30.42,\"lon\":87.22},{\"name\":\"St. Petersburg, FL\",\"tz\":-5,\"lat\":27.78,\"lon\":82.63},{\"name\":\"Sarasota, FL\",\"tz\":-5,\"lat\":27.33,\"lon\":82.55},{\"name\":\"Tallahassee, FL\",\"tz\":-5,\"lat\":30.45,\"lon\":84.45},{\"name\":\"W. Palm Beach, FL\",\"tz\":-5,\"lat\":26.72,\"lon\":80.05},{\"name\":\"Libreville\",\"tz\":1,\"lat\":0.23,\"lon\":-9.25},{\"name\":\"Banjul\",\"tz\":0,\"lat\":13.28,\"lon\":16.38},{\"name\":\"Augusta, Georgia\",\"tz\":-5,\"lat\":33.47,\"lon\":81.97},{\"name\":\"Columbus, Georgia\",\"tz\":-5,\"lat\":32.47,\"lon\":84.98},{\"name\":\"Macon, Georgia\",\"tz\":-5,\"lat\":32.83,\"lon\":83.63},{\"name\":\"Savannah, Georgia\",\"tz\":-5,\"lat\":32.07,\"lon\":81.1},{\"name\":\"Accra\",\"tz\":0,\"lat\":5.33,\"lon\":0.15},{\"name\":\"Conakry\",\"tz\":0,\"lat\":9.32,\"lon\":-13.17},{\"name\":\"Hilo\",\"tz\":10,\"lat\":19.73,\"lon\":155.08},{\"name\":\"Lihue\",\"tz\":10,\"lat\":21.98,\"lon\":159.37},{\"name\":\"Victoria, Hongkong\",\"tz\":8,\"lat\":22.17,\"lon\":-114.3},{\"name\":\"Reykjavik\",\"tz\":0,\"lat\":64.15,\"lon\":21.65},{\"name\":\"Boise, Idaho\",\"tz\":-7,\"lat\":43.62,\"lon\":116.2},{\"name\":\"Pocatello, Idaho\",\"tz\":-7,\"lat\":42.87,\"lon\":112.45},{\"name\":\"Bloomington, IL\",\"tz\":-6,\"lat\":40.48,\"lon\":89},{\"name\":\"Champaign, IL\",\"tz\":-6,\"lat\":40.12,\"lon\":88.25},{\"name\":\"Decatur, IL\",\"tz\":-6,\"lat\":39.85,\"lon\":88.95},{\"name\":\"Moline, IL\",\"tz\":-6,\"lat\":41.52,\"lon\":90.52},{\"name\":\"Rockford, IL\",\"tz\":-6,\"lat\":42.27,\"lon\":89.1},{\"name\":\"Springfield, IL\",\"tz\":-6,\"lat\":39.78,\"lon\":89.65},{\"name\":\"Urbana, IL\",\"tz\":-6,\"lat\":40.12,\"lon\":88.2},{\"name\":\"Evansville, Indiana\",\"tz\":-6,\"lat\":37.97,\"lon\":87.57},{\"name\":\"Ft. Wayne, Indiana\",\"tz\":-6,\"lat\":41.07,\"lon\":85.13},{\"name\":\"Gary, Indiana\",\"tz\":-6,\"lat\":41.62,\"lon\":87.33},{\"name\":\"Lafayette, Indiana\",\"tz\":-6,\"lat\":40.42,\"lon\":86.9},{\"name\":\"Muncie, Indiana\",\"tz\":-6,\"lat\":40.18,\"lon\":85.38},{\"name\":\"South Bend, Indiana\",\"tz\":-6,\"lat\":41.68,\"lon\":86.25},{\"name\":\"Terre Houte, Indiana\",\"tz\":-6,\"lat\":39.47,\"lon\":87.4},{\"name\":\"Cedar Rapids, IA\",\"tz\":-6,\"lat\":41.97,\"lon\":91.67},{\"name\":\"Davenport, IA\",\"tz\":-6,\"lat\":41.52,\"lon\":90.58},{\"name\":\"Dubuque, IA\",\"tz\":-6,\"lat\":42.5,\"lon\":90.67},{\"name\":\"Iowa City, IA\",\"tz\":-6,\"lat\":41.67,\"lon\":91.53},{\"name\":\"Sioux City, IA\",\"tz\":-6,\"lat\":42.5,\"lon\":96.42},{\"name\":\"Waterloo, IA\",\"tz\":-6,\"lat\":42.5,\"lon\":92.33},{\"name\":\"Dodge City (Kans., US)\",\"tz\":-6,\"lat\":37.75,\"lon\":100.02},{\"name\":\"Salina (Kans., US)\",\"tz\":-6,\"lat\":38.85,\"lon\":97.62},{\"name\":\"Wichita (Kans., US)\",\"tz\":-6,\"lat\":37.7,\"lon\":97.33},{\"name\":\"Ashland, KY\",\"tz\":-5,\"lat\":38.48,\"lon\":82.63},{\"name\":\"Bowling Green, KY\",\"tz\":-5,\"lat\":37,\"lon\":86.45},{\"name\":\"Lexington, KY\",\"tz\":-5,\"lat\":38.05,\"lon\":84.5},{\"name\":\"Paducah, KY\",\"tz\":-5,\"lat\":37.07,\"lon\":88.6},{\"name\":\"Maseru\",\"tz\":2,\"lat\":-29.18,\"lon\":-27.28},{\"name\":\"Monrovia\",\"tz\":0,\"lat\":6.2,\"lon\":10.47},{\"name\":\"Tripoli\",\"tz\":1,\"lat\":32.83,\"lon\":-13.22},{\"name\":\"Baton Rouge, Louisiana\",\"tz\":-6,\"lat\":30.45,\"lon\":91.18},{\"name\":\"Shreveport, Louisiana\",\"tz\":-6,\"lat\":32.52,\"lon\":93.75},{\"name\":\"Antananarivo\",\"tz\":3,\"lat\":-18.5,\"lon\":-47.3},{\"name\":\"Augusta, Maine\",\"tz\":-5,\"lat\":44.32,\"lon\":69.75},{\"name\":\"Bangor, Maine\",\"tz\":-5,\"lat\":44.8,\"lon\":68.75},{\"name\":\"Lilongwe\",\"tz\":2,\"lat\":-13.58,\"lon\":-33.48},{\"name\":\"Bamako\",\"tz\":0,\"lat\":12.4,\"lon\":7.58},{\"name\":\"Brockton, MA\",\"tz\":-5,\"lat\":42.08,\"lon\":71.02},{\"name\":\"Cambridge, MA\",\"tz\":-5,\"lat\":42.37,\"lon\":71.1},{\"name\":\"Fall River, MA\",\"tz\":-5,\"lat\":41.7,\"lon\":71.15},{\"name\":\"Holyoke, MA\",\"tz\":-5,\"lat\":42.2,\"lon\":72.62},{\"name\":\"Lawrence, MA\",\"tz\":-5,\"lat\":42.7,\"lon\":71.15},{\"name\":\"Lowell, MA\",\"tz\":-5,\"lat\":42.63,\"lon\":71.32},{\"name\":\"Pittsfield, MA\",\"tz\":-5,\"lat\":42.45,\"lon\":73.25},{\"name\":\"Somerville, MA\",\"tz\":-5,\"lat\":42.38,\"lon\":71.1},{\"name\":\"Worcester, MA\",\"tz\":-5,\"lat\":42.27,\"lon\":71.8},{\"name\":\"Nouakchott\",\"tz\":0,\"lat\":18.08,\"lon\":15.58},{\"name\":\"Battle Creek, MI\",\"tz\":-5,\"lat\":42.32,\"lon\":85.18},{\"name\":\"Bay City, MI\",\"tz\":-5,\"lat\":43.6,\"lon\":83.88},{\"name\":\"Flint, MI\",\"tz\":-5,\"lat\":43.02,\"lon\":83.7},{\"name\":\"Grand Rapids, MI\",\"tz\":-5,\"lat\":42.97,\"lon\":85.67},{\"name\":\"Jackson, MI\",\"tz\":-5,\"lat\":42.25,\"lon\":84.4},{\"name\":\"Kalamazoo, MI\",\"tz\":-5,\"lat\":42.28,\"lon\":85.58},{\"name\":\"Lansing, MI\",\"tz\":-5,\"lat\":42.73,\"lon\":84.55},{\"name\":\"Saginaw, MI\",\"tz\":-5,\"lat\":43.43,\"lon\":83.93},{\"name\":\"Duluth, Minnesota\",\"tz\":-6,\"lat\":46.78,\"lon\":92.1},{\"name\":\"Rochester, Minnesota\",\"tz\":-6,\"lat\":44.02,\"lon\":92.47},{\"name\":\"St. Cloud, Minnesota\",\"tz\":-6,\"lat\":45.57,\"lon\":94.17},{\"name\":\"St. Paul, Minnesota\",\"tz\":-6,\"lat\":44.95,\"lon\":93.1},{\"name\":\"Biloxi, Mississippi\",\"tz\":-6,\"lat\":30.4,\"lon\":88.88},{\"name\":\"Gulfport, Mississippi\",\"tz\":-6,\"lat\":30.37,\"lon\":89.1},{\"name\":\"Jackson, Mississippi\",\"tz\":-6,\"lat\":32.3,\"lon\":90.18},{\"name\":\"Natchez, Mississippi\",\"tz\":-6,\"lat\":31.57,\"lon\":91.38},{\"name\":\"Columbia, Missouri\",\"tz\":-6,\"lat\":38.95,\"lon\":92.33},{\"name\":\"Joplin, Missouri\",\"tz\":-6,\"lat\":37.07,\"lon\":94.5},{\"name\":\"Kansas City, Missouri\",\"tz\":-6,\"lat\":39.07,\"lon\":94.58},{\"name\":\"St. Joseph, Missouri\",\"tz\":-6,\"lat\":39.77,\"lon\":94.85},{\"name\":\"St. Louis, Missouri\",\"tz\":-6,\"lat\":38.63,\"lon\":90.2},{\"name\":\"Springfield, Missouri\",\"tz\":-6,\"lat\":37.22,\"lon\":93.3},{\"name\":\"Billings, Montana\",\"tz\":-7,\"lat\":45.78,\"lon\":108.5},{\"name\":\"Butte, Montana\",\"tz\":-7,\"lat\":46.02,\"lon\":112.53},{\"name\":\"Great Falls, Montana\",\"tz\":-7,\"lat\":47.5,\"lon\":111.3},{\"name\":\"Helena, Montana\",\"tz\":-7,\"lat\":46.6,\"lon\":112.03},{\"name\":\"Rabat\",\"tz\":1,\"lat\":34.02,\"lon\":6.52},{\"name\":\"Maputo\",\"tz\":2,\"lat\":-25.58,\"lon\":-32.35},{\"name\":\"Windhoek\",\"tz\":2,\"lat\":-22.33,\"lon\":-17.07},{\"name\":\"Lincoln, Nebraska\",\"tz\":-6,\"lat\":40.82,\"lon\":96.7},{\"name\":\"Carson City, NV\",\"tz\":-8,\"lat\":39.17,\"lon\":119.77},{\"name\":\"Reno, NV\",\"tz\":-8,\"lat\":39.52,\"lon\":119.82},{\"name\":\"Concord, New Hampshire\",\"tz\":-5,\"lat\":43.2,\"lon\":71.52},{\"name\":\"Manchester, New Hampshire\",\"tz\":-5,\"lat\":42.98,\"lon\":71.47},{\"name\":\"Portsmouth, New Hampshire\",\"tz\":-5,\"lat\":43.07,\"lon\":70.75},{\"name\":\"Atlantic City, NJ\",\"tz\":-5,\"lat\":39.37,\"lon\":74.43},{\"name\":\"Camdon, NJ\",\"tz\":-5,\"lat\":39.95,\"lon\":75.1},{\"name\":\"Jersey City, NJ\",\"tz\":-5,\"lat\":40.73,\"lon\":74.07},{\"name\":\"Paterson, NJ\",\"tz\":-5,\"lat\":40.9,\"lon\":74.15},{\"name\":\"Trenton, NJ\",\"tz\":-5,\"lat\":40.22,\"lon\":74.8},{\"name\":\"Albuquerque, NM\",\"tz\":-7,\"lat\":35.07,\"lon\":106.65},{\"name\":\"Gallup, NM\",\"tz\":-7,\"lat\":35.52,\"lon\":108.73},{\"name\":\"Santa Fe, NM\",\"tz\":-7,\"lat\":35.67,\"lon\":105.93},{\"name\":\"Albany, NY\",\"tz\":-5,\"lat\":42.65,\"lon\":73.75},{\"name\":\"Binghamton, NY\",\"tz\":-5,\"lat\":42.1,\"lon\":86.82},{\"name\":\"Buffalo, NY\",\"tz\":-5,\"lat\":42.88,\"lon\":78.87},{\"name\":\"Central Islip, NY\",\"tz\":-5,\"lat\":40.78,\"lon\":73.2},{\"name\":\"Niagra Falls, NY\",\"tz\":-5,\"lat\":43.1,\"lon\":79.05},{\"name\":\"Rochester, NY\",\"tz\":-5,\"lat\":43.17,\"lon\":77.6},{\"name\":\"Schenectady, NY\",\"tz\":-5,\"lat\":42.82,\"lon\":73.93},{\"name\":\"Syracuse, NY\",\"tz\":-5,\"lat\":43.05,\"lon\":76.15},{\"name\":\"Troy, NY\",\"tz\":-5,\"lat\":42.73,\"lon\":73.68},{\"name\":\"Utica, NY\",\"tz\":-5,\"lat\":43.1,\"lon\":75.23},{\"name\":\"White Plains, NY\",\"tz\":-5,\"lat\":41.03,\"lon\":73.75},{\"name\":\"Yonkers, NY\",\"tz\":-5,\"lat\":40.93,\"lon\":73.9},{\"name\":\"Auckland\",\"tz\":12,\"lat\":-36.88,\"lon\":-174.75},{\"name\":\"Niamey\",\"tz\":1,\"lat\":13.32,\"lon\":-2.03},{\"name\":\"Lagos\",\"tz\":1,\"lat\":6.27,\"lon\":-3.28},{\"name\":\"Ashlville, NC\",\"tz\":-5,\"lat\":35.6,\"lon\":82.55},{\"name\":\"Durham, NC\",\"tz\":-5,\"lat\":36,\"lon\":78.92},{\"name\":\"Greensboro, NC\",\"tz\":-5,\"lat\":36.07,\"lon\":79.78},{\"name\":\"Wilmington, NC\",\"tz\":-5,\"lat\":34.23,\"lon\":77.93},{\"name\":\"Winston Salem, NC\",\"tz\":-5,\"lat\":36.1,\"lon\":80.25},{\"name\":\"Bismark, N. Dakota\",\"tz\":-7,\"lat\":46.8,\"lon\":100.78},{\"name\":\"Fargo, N. Dakota\",\"tz\":-7,\"lat\":46.88,\"lon\":96.78},{\"name\":\"Minot, N. Dakota\",\"tz\":-7,\"lat\":48.23,\"lon\":101.3},{\"name\":\"Akron, OH\",\"tz\":-5,\"lat\":41.08,\"lon\":81.52},{\"name\":\"Dayton, OH\",\"tz\":-5,\"lat\":39.77,\"lon\":84.2},{\"name\":\"Hamilton, OH\",\"tz\":-5,\"lat\":39.4,\"lon\":84.57},{\"name\":\"Lima, OH\",\"tz\":-5,\"lat\":40.75,\"lon\":84.1},{\"name\":\"Lorain, OH\",\"tz\":-5,\"lat\":41.47,\"lon\":82.18},{\"name\":\"Springfield, OH\",\"tz\":-5,\"lat\":39.95,\"lon\":83.8},{\"name\":\"Stuebenville, OH\",\"tz\":-5,\"lat\":40.37,\"lon\":80.62},{\"name\":\"Toledo, OH\",\"tz\":-5,\"lat\":41.65,\"lon\":83.55},{\"name\":\"Youngstown, OH\",\"tz\":-5,\"lat\":41.1,\"lon\":80.65},{\"name\":\"Zanesville, OH\",\"tz\":-5,\"lat\":39.93,\"lon\":82.52},{\"name\":\"Enid, Oklahoma\",\"tz\":-6,\"lat\":36.4,\"lon\":97.88},{\"name\":\"Oklahoma City\",\"tz\":-6,\"lat\":35.47,\"lon\":97.52},{\"name\":\"Tulsa, Oklahoma\",\"tz\":-6,\"lat\":36.15,\"lon\":96},{\"name\":\"Eugene (Oreg, US)\",\"tz\":-8,\"lat\":44.05,\"lon\":123.1},{\"name\":\"Salem (Oreg, US)\",\"tz\":-8,\"lat\":44.93,\"lon\":123.03},{\"name\":\"Altonna, Pennsylvania\",\"tz\":-5,\"lat\":40.52,\"lon\":78.38},{\"name\":\"Bethlehem, Pennsylvania\",\"tz\":-5,\"lat\":40.6,\"lon\":75.38},{\"name\":\"Erie, Pennsylvania\",\"tz\":-5,\"lat\":42.12,\"lon\":80.08},{\"name\":\"Harrisburg, Pennsylvania\",\"tz\":-5,\"lat\":40.25,\"lon\":76.88},{\"name\":\"Johnstown, Pennsylvania\",\"tz\":-5,\"lat\":40.33,\"lon\":78.92},{\"name\":\"Lancaster, Pennsylvania\",\"tz\":-5,\"lat\":40.03,\"lon\":76.3},{\"name\":\"Reading, Pennsylvania\",\"tz\":-5,\"lat\":40.33,\"lon\":75.93},{\"name\":\"Scranton, Pennsylvania\",\"tz\":-5,\"lat\":41.42,\"lon\":75.67},{\"name\":\"WilkesEBarre, Pennsylvania\",\"tz\":-5,\"lat\":41.25,\"lon\":75.88},{\"name\":\"York, Pennsylvania\",\"tz\":-5,\"lat\":39.97,\"lon\":76.73},{\"name\":\"Manila\",\"tz\":8,\"lat\":14.62,\"lon\":-121},{\"name\":\"Kigali\",\"tz\":2,\"lat\":-1.57,\"lon\":-3.03},{\"name\":\"Dakar\",\"tz\":0,\"lat\":14.38,\"lon\":17.27},{\"name\":\"Mogadishu\",\"tz\":3,\"lat\":2,\"lon\":-45.22},{\"name\":\"Columbia, SC\",\"tz\":-5,\"lat\":34,\"lon\":81.03},{\"name\":\"Greenville, SC\",\"tz\":-5,\"lat\":34.85,\"lon\":82.4},{\"name\":\"Spartanburg, SC\",\"tz\":-5,\"lat\":34.95,\"lon\":81.93},{\"name\":\"Pierre, South Dakota\",\"tz\":-6,\"lat\":44.37,\"lon\":100.35},{\"name\":\"Rapid City, South Dakota\",\"tz\":-6,\"lat\":44.08,\"lon\":103.22},{\"name\":\"Sioux Falls, South Dakota\",\"tz\":-6,\"lat\":43.55,\"lon\":96.73},{\"name\":\"Khartoum\",\"tz\":2,\"lat\":15.33,\"lon\":-32.22},{\"name\":\"Daressalam\",\"tz\":3,\"lat\":-6.52,\"lon\":-39.18},{\"name\":\"Chattanooga (Tenn., US)\",\"tz\":-6,\"lat\":35.05,\"lon\":85.32},{\"name\":\"Knoxville (Tenn., US)\",\"tz\":-6,\"lat\":35.97,\"lon\":83.92},{\"name\":\"Abilene, TX\",\"tz\":-6,\"lat\":32.45,\"lon\":99.73},{\"name\":\"Amarillo, TX\",\"tz\":-6,\"lat\":35.18,\"lon\":101.83},{\"name\":\"Austin, TX\",\"tz\":-6,\"lat\":30.27,\"lon\":97.75},{\"name\":\"Beaumont, TX\",\"tz\":-6,\"lat\":30.08,\"lon\":94.1},{\"name\":\"Brownsville, TX\",\"tz\":-6,\"lat\":25.9,\"lon\":97.5},{\"name\":\"Corpus Christi, TX\",\"tz\":-6,\"lat\":27.8,\"lon\":97.4},{\"name\":\"El Paso, TX\",\"tz\":-6,\"lat\":31.77,\"lon\":106.48},{\"name\":\"Ft Worth, TX\",\"tz\":-6,\"lat\":32.75,\"lon\":97.33},{\"name\":\"Galveston, TX\",\"tz\":-6,\"lat\":29.3,\"lon\":94.8},{\"name\":\"Laredo, TX\",\"tz\":-6,\"lat\":27.5,\"lon\":99.52},{\"name\":\"Lubbock, TX\",\"tz\":-6,\"lat\":33.58,\"lon\":101.85},{\"name\":\"Marshall, TX\",\"tz\":-6,\"lat\":32.55,\"lon\":94.38},{\"name\":\"Port Arthur, TX\",\"tz\":-6,\"lat\":29.88,\"lon\":93.93},{\"name\":\"San Angelo, TX\",\"tz\":-6,\"lat\":31.47,\"lon\":100.43},{\"name\":\"Texarkana, TX\",\"tz\":-6,\"lat\":33.43,\"lon\":94.05},{\"name\":\"Waco, TX\",\"tz\":-6,\"lat\":31.55,\"lon\":97.13},{\"name\":\"Lhasa\",\"tz\":8,\"lat\":29.68,\"lon\":-92.2},{\"name\":\"Lome\",\"tz\":0,\"lat\":6.1,\"lon\":-1.2},{\"name\":\"Tunis\",\"tz\":1,\"lat\":36.48,\"lon\":-10.13},{\"name\":\"Kampala\",\"tz\":3,\"lat\":0.2,\"lon\":-32.35},{\"name\":\"Logan, Utah\",\"tz\":-7,\"lat\":41.73,\"lon\":111.83},{\"name\":\"Ogden, Utah\",\"tz\":-7,\"lat\":41.23,\"lon\":111.97},{\"name\":\"Provo, Utah\",\"tz\":-7,\"lat\":40.23,\"lon\":111.65},{\"name\":\"Brattleboro, VT\",\"tz\":-5,\"lat\":42.85,\"lon\":72.57},{\"name\":\"Montpelier, VT\",\"tz\":-5,\"lat\":44.27,\"lon\":72.55},{\"name\":\"Hanoi\",\"tz\":7,\"lat\":21.07,\"lon\":-105.83},{\"name\":\"Norfolk, Virginia\",\"tz\":-5,\"lat\":36.85,\"lon\":76.28},{\"name\":\"Portsmouth, Virginia\",\"tz\":-5,\"lat\":36.83,\"lon\":76.28},{\"name\":\"Richmond, Virginia\",\"tz\":-5,\"lat\":37.53,\"lon\":77.43},{\"name\":\"Roanooke, Virginia\",\"tz\":-5,\"lat\":37.25,\"lon\":79.93},{\"name\":\"Bellingham, WA\",\"tz\":-8,\"lat\":48.77,\"lon\":122.48},{\"name\":\"Spokane, WA\",\"tz\":-8,\"lat\":47.67,\"lon\":117.43},{\"name\":\"Tacoma, WA\",\"tz\":-8,\"lat\":47.25,\"lon\":122.43},{\"name\":\"Walla Walla, WA\",\"tz\":-8,\"lat\":46.07,\"lon\":118.33},{\"name\":\"Yakima, WA\",\"tz\":-8,\"lat\":46.6,\"lon\":120.52},{\"name\":\"Laayoune\",\"tz\":1,\"lat\":27.1,\"lon\":13.12},{\"name\":\"Charleston, West Virginia\",\"tz\":-5,\"lat\":38.35,\"lon\":81.63},{\"name\":\"Huntington, West Virginia\",\"tz\":-5,\"lat\":38.42,\"lon\":82.45},{\"name\":\"Wheeling, West Virginia\",\"tz\":-5,\"lat\":40.07,\"lon\":80.72},{\"name\":\"Eau Claire (Wis., US)\",\"tz\":-6,\"lat\":44.82,\"lon\":91.5},{\"name\":\"Green Bay (Wis., US)\",\"tz\":-6,\"lat\":44.52,\"lon\":88.02},{\"name\":\"Kenosha (Wis., US)\",\"tz\":-6,\"lat\":42.6,\"lon\":87.83},{\"name\":\"Racine (Wis., US)\",\"tz\":-6,\"lat\":42.73,\"lon\":87.78},{\"name\":\"Sheboygan (Wis., US)\",\"tz\":-6,\"lat\":43.75,\"lon\":87.72},{\"name\":\"Superior (Wis., US)\",\"tz\":-6,\"lat\":46.72,\"lon\":92.1},{\"name\":\"Cheyenne, Wyoming\",\"tz\":-7,\"lat\":41.13,\"lon\":104.82},{\"name\":\"Sheridan, Wyoming\",\"tz\":-7,\"lat\":44.8,\"lon\":106.95},{\"name\":\"Lusaka\",\"tz\":2,\"lat\":-15.28,\"lon\":-28.17},{\"name\":\"Kinshasa\",\"tz\":1,\"lat\":-4.18,\"lon\":-15.18},{\"name\":\"Harare\",\"tz\":2,\"lat\":-17.5,\"lon\":-31.03},{\"name\":\"Abu Dhabi\",\"tz\":4,\"lat\":24.33,\"lon\":-54.57},{\"name\":\"Acapulco\",\"tz\":-6,\"lat\":17.08,\"lon\":100.13},{\"name\":\"Agana, Guam\",\"tz\":10,\"lat\":13.48,\"lon\":-144.73},{\"name\":\"Al-Manamah, Bharain\",\"tz\":3,\"lat\":26.22,\"lon\":-50.55},{\"name\":\"Andorra, Spain\",\"tz\":1,\"lat\":40.97,\"lon\":0.47},{\"name\":\"Asmara, Eritrea\",\"tz\":3,\"lat\":15.02,\"lon\":-38.48},{\"name\":\"Baku, Aserbaidschan\",\"tz\":4,\"lat\":40.35,\"lon\":-49.82},{\"name\":\"Bergen, The Netherlands\",\"tz\":1,\"lat\":51.62,\"lon\":-6.07},{\"name\":\"Bischkek, Kirgistan\",\"tz\":6,\"lat\":43.02,\"lon\":-74.97},{\"name\":\"Bridgetown (Barbados)\",\"tz\":-4,\"lat\":13.08,\"lon\":59.47},{\"name\":\"Brno\",\"tz\":1,\"lat\":49.2,\"lon\":-16.58},{\"name\":\"Broken Hill, Australia\",\"tz\":10,\"lat\":-31.87,\"lon\":-141.17},{\"name\":\"Bukavu, Zaire\",\"tz\":2,\"lat\":-2.55,\"lon\":-28.65},{\"name\":\"Kanarische Inseln\",\"tz\":0,\"lat\":28.47,\"lon\":15.05},{\"name\":\"Cayenne (French - Guyana)\",\"tz\":-3,\"lat\":4.78,\"lon\":-52.47},{\"name\":\"Cebu, Phillipines\",\"tz\":8,\"lat\":10.18,\"lon\":-123.75},{\"name\":\"Cordoba, Spain\",\"tz\":1,\"lat\":57.87,\"lon\":4.83},{\"name\":\"Cordoba, Argentinia\",\"tz\":-3,\"lat\":-31.15,\"lon\":64.25},{\"name\":\"Cordova, Alaska, U.S.A.\",\"tz\":-9,\"lat\":60.55,\"lon\":145.73},{\"name\":\"Dalian, China\",\"tz\":8,\"lat\":38.9,\"lon\":-121.65},{\"name\":\"Dakar, Senegal\",\"tz\":0,\"lat\":14.78,\"lon\":16.95},{\"name\":\"Dhaka, Bangladesh\",\"tz\":6,\"lat\":23.48,\"lon\":-90.4},{\"name\":\"Durban, South Africa\",\"tz\":2,\"lat\":-29.87,\"lon\":-30.9},{\"name\":\"Dushanbe, Tadschikistan\",\"tz\":6,\"lat\":38.6,\"lon\":-69.1},{\"name\":\"Er Riad\",\"tz\":3,\"lat\":24.65,\"lon\":-46.7},{\"name\":\"Firenze, Italy\",\"tz\":1,\"lat\":43.77,\"lon\":-11.23},{\"name\":\"Freetown, Sierra Leone\",\"tz\":0,\"lat\":8.5,\"lon\":13.22},{\"name\":\"Georgetown, Gambia\",\"tz\":0,\"lat\":13.22,\"lon\":14.75},{\"name\":\"Guatemala City\",\"tz\":-6,\"lat\":14.58,\"lon\":90.67},{\"name\":\"Hermosillo, Mexico\",\"tz\":-6,\"lat\":29.18,\"lon\":110.98},{\"name\":\"Jakarta, Indonesia\",\"tz\":7,\"lat\":-6.28,\"lon\":-106.65},{\"name\":\"Katmandu, Nepal\",\"tz\":6,\"lat\":27.67,\"lon\":-85.47},{\"name\":\"Khabarovsk, Russia\",\"tz\":10,\"lat\":48.07,\"lon\":-134.63},{\"name\":\"Khartoum, Sudan\",\"tz\":2,\"lat\":15.23,\"lon\":-32.57},{\"name\":\"La Paz, Argentinia\",\"tz\":-3,\"lat\":-30.75,\"lon\":59.67},{\"name\":\"La Plata, Argentinia\",\"tz\":-3,\"lat\":-34.97,\"lon\":57.97},{\"name\":\"Limerick, Ireland\",\"tz\":0,\"lat\":52.7,\"lon\":8.67},{\"name\":\"Macao, China\",\"tz\":8,\"lat\":22.22,\"lon\":-113.6},{\"name\":\"Managua, Nikaragva\",\"tz\":-6,\"lat\":12.15,\"lon\":86.32},{\"name\":\"Manaus\",\"tz\":-4,\"lat\":-2.87,\"lon\":60.12},{\"name\":\"Maracaibo, Venezuela\",\"tz\":-4,\"lat\":10.52,\"lon\":71.97},{\"name\":\"Mbabane, Swasiland\",\"tz\":2,\"lat\":-26.07,\"lon\":-31.15},{\"name\":\"Monte Carlo, Monaco\",\"tz\":1,\"lat\":43.73,\"lon\":-7.42},{\"name\":\"Nassau, Germany\",\"tz\":1,\"lat\":50.32,\"lon\":-7.8},{\"name\":\"Nandi, Simbabwe\",\"tz\":2,\"lat\":-20.98,\"lon\":-31.78},{\"name\":\"Nantes, France\",\"tz\":1,\"lat\":47.23,\"lon\":1.48},{\"name\":\"Noumea, New Caledonia\",\"tz\":11,\"lat\":-22.12,\"lon\":-166.5},{\"name\":\"Nizhniy Novgorod\",\"tz\":4,\"lat\":56.33,\"lon\":-44.17},{\"name\":\"Odense, Denmark\",\"tz\":1,\"lat\":55.43,\"lon\":10.3},{\"name\":\"Osaka, Japan\",\"tz\":9,\"lat\":34.75,\"lon\":-135.47},{\"name\":\"Paramaribo, Surinam\",\"tz\":-3,\"lat\":5.77,\"lon\":55.25},{\"name\":\"Phnom Penh, Kambodscha\",\"tz\":7,\"lat\":11.53,\"lon\":-104.78},{\"name\":\"Port Au Prince, Haiti\",\"tz\":-5,\"lat\":18.57,\"lon\":72.33},{\"name\":\"Port Louis, Mauritius\",\"tz\":4,\"lat\":-20.15,\"lon\":-57.5},{\"name\":\"Port Moresby, Papua-Neuguinea\",\"tz\":10,\"lat\":-9.43,\"lon\":-147},{\"name\":\"Port Said, Egypt\",\"tz\":2,\"lat\":30.9,\"lon\":-32.07},{\"name\":\"Pretoria, South Africa\",\"tz\":2,\"lat\":-25.63,\"lon\":-28.33},{\"name\":\"San Salvador, El Salvador\",\"tz\":-6,\"lat\":13.98,\"lon\":89.18},{\"name\":\"Santo Domingo, Dominican Republic\",\"tz\":-4,\"lat\":18.5,\"lon\":69.93},{\"name\":\"Suez, Egypt\",\"tz\":2,\"lat\":29.97,\"lon\":-32.55},{\"name\":\"Szeged, Hungary\",\"tz\":1,\"lat\":46.32,\"lon\":-20.08},{\"name\":\"Tahiti, Polynesia\",\"tz\":-10,\"lat\":-18.3,\"lon\":149.43},{\"name\":\"Tegucigalpa, Honduras\",\"tz\":-6,\"lat\":14.28,\"lon\":87.4},{\"name\":\"Thessalonikia, Greece\",\"tz\":2,\"lat\":40.65,\"lon\":-23.02},{\"name\":\"Thimbu, Bhutan\",\"tz\":6,\"lat\":27.47,\"lon\":-89.63},{\"name\":\"Tirana, Albania\",\"tz\":1,\"lat\":41.35,\"lon\":-19.8},{\"name\":\"Tijuana, Mexico\",\"tz\":-6,\"lat\":32.48,\"lon\":117.03},{\"name\":\"Ulan Bator, Mongolia\",\"tz\":8,\"lat\":47.45,\"lon\":-106.4},{\"name\":\"Vaduz, Liechtenstein\",\"tz\":1,\"lat\":47.13,\"lon\":-9.53},{\"name\":\"Vientiane, Laos\",\"tz\":7,\"lat\":17.88,\"lon\":-102.63},{\"name\":\"Wellington, New Zealand\",\"tz\":12,\"lat\":-41.3,\"lon\":-174.98},{\"name\":\"Yerevan, Armenia\",\"tz\":4,\"lat\":39.93,\"lon\":-44.75},{\"name\":\"Towson, MD\",\"tz\":-5,\"lat\":39.28,\"lon\":76.62},{\"name\":\"Florina\",\"tz\":2,\"lat\":40.78,\"lon\":-21.42},{\"name\":\"Kishinew, Moldova\",\"tz\":2,\"lat\":47,\"lon\":-28.83},{\"name\":\"Belts, Moldova\",\"tz\":2,\"lat\":47.75,\"lon\":-27.92},{\"name\":\"Bendery, Moldova\",\"tz\":2,\"lat\":46.83,\"lon\":-29.47},{\"name\":\"Cahul, Moldova\",\"tz\":2,\"lat\":45.9,\"lon\":-28.2},{\"name\":\"Taraclia, Moldova\",\"tz\":2,\"lat\":45.9,\"lon\":-28.68},{\"name\":\"Alexandria, Greece\",\"tz\":2,\"lat\":40.63,\"lon\":-22.52},{\"name\":\"Chalkis, Greece\",\"tz\":2,\"lat\":38.47,\"lon\":-23.6},{\"name\":\"Drama, Greece\",\"tz\":2,\"lat\":41.15,\"lon\":-24.17},{\"name\":\"Kilkis, Greece\",\"tz\":2,\"lat\":41,\"lon\":-22.9},{\"name\":\"Larissa, Greece\",\"tz\":2,\"lat\":39.63,\"lon\":-22.42},{\"name\":\"Thessaloniki, Greece\",\"tz\":2,\"lat\":40.63,\"lon\":-22.97},{\"name\":\"Äli Bayramli, Aserbaidschan\",\"tz\":4,\"lat\":39.93,\"lon\":-48.92},{\"name\":\"Puta, Aserbaidschan\",\"tz\":4,\"lat\":40.3,\"lon\":-49.68},{\"name\":\"Sumqayit, Aserbaidschan\",\"tz\":4,\"lat\":40.6,\"lon\":-49.75},{\"name\":\"Siyäzän, Aserbaidschan\",\"tz\":4,\"lat\":41.07,\"lon\":-49.1},{\"name\":\"Decin\",\"tz\":1,\"lat\":50.8,\"lon\":-14.22},{\"name\":\"Karlovy Vary\",\"tz\":1,\"lat\":50.18,\"lon\":-12.87},{\"name\":\"Zilina\",\"tz\":1,\"lat\":49.23,\"lon\":-18.77},{\"name\":\"Appenweier\",\"tz\":1,\"lat\":48.53,\"lon\":-7.97},{\"name\":\"Denzlingen\",\"tz\":1,\"lat\":48.07,\"lon\":-7.87},{\"name\":\"Ettenheim\",\"tz\":1,\"lat\":48.25,\"lon\":-7.82},{\"name\":\"Kehl\",\"tz\":1,\"lat\":48.58,\"lon\":-7.83},{\"name\":\"Kenzingen\",\"tz\":1,\"lat\":48.18,\"lon\":-7.77},{\"name\":\"Lahr\",\"tz\":1,\"lat\":48.33,\"lon\":-7.87},{\"name\":\"Oberkirch\",\"tz\":1,\"lat\":48.52,\"lon\":-8.08},{\"name\":\"Offenburg\",\"tz\":1,\"lat\":48.47,\"lon\":-7.95},{\"name\":\"Rust, Germany\",\"tz\":1,\"lat\":48.27,\"lon\":-7.72},{\"name\":\"Waldkirch\",\"tz\":1,\"lat\":48.08,\"lon\":-7.95},{\"name\":\"Königs Wusterhausen\",\"tz\":1,\"lat\":52.3,\"lon\":-13.62},{\"name\":\"Oderberg\",\"tz\":1,\"lat\":52.87,\"lon\":-14.03},{\"name\":\"Oranienburg\",\"tz\":1,\"lat\":52.75,\"lon\":-13.23},{\"name\":\"Schwedt/Oder\",\"tz\":1,\"lat\":53.05,\"lon\":-14.28},{\"name\":\"Harrow, United Kingdom\",\"tz\":0,\"lat\":51.58,\"lon\":0.37},{\"name\":\"Markkleeberg\",\"tz\":1,\"lat\":51.28,\"lon\":-12.38},{\"name\":\"Gap, France\",\"tz\":1,\"lat\":44.57,\"lon\":-6.08},{\"name\":\"Amiens, France\",\"tz\":1,\"lat\":49.9,\"lon\":-2.3},{\"name\":\"Angers, France\",\"tz\":1,\"lat\":47.47,\"lon\":0.55},{\"name\":\"Bischeim, France\",\"tz\":1,\"lat\":48.62,\"lon\":-7.75},{\"name\":\"Chambery, France\",\"tz\":1,\"lat\":45.57,\"lon\":-6.08},{\"name\":\"Deauville, France\",\"tz\":1,\"lat\":49.37,\"lon\":-0.07},{\"name\":\"Dieuze, France\",\"tz\":1,\"lat\":48.82,\"lon\":-6.72},{\"name\":\"Dunkerque, France\",\"tz\":1,\"lat\":51.05,\"lon\":-2.37},{\"name\":\"Elbeuf, France\",\"tz\":1,\"lat\":49.28,\"lon\":-1},{\"name\":\"Epernay, France\",\"tz\":1,\"lat\":49.05,\"lon\":-3.95},{\"name\":\"Epinal, France\",\"tz\":1,\"lat\":48.18,\"lon\":-6.45},{\"name\":\"Forbach, France\",\"tz\":1,\"lat\":49.18,\"lon\":-6.9},{\"name\":\"Ingwiller, France\",\"tz\":1,\"lat\":48.87,\"lon\":-7.48},{\"name\":\"Saint-Laurent-du-Var, France (1)\",\"tz\":1,\"lat\":45.38,\"lon\":-5.73},{\"name\":\"La Ciotat, France\",\"tz\":1,\"lat\":43.17,\"lon\":-5.6},{\"name\":\"Le Mans, France\",\"tz\":1,\"lat\":48,\"lon\":-0.2},{\"name\":\"Libourne, France\",\"tz\":1,\"lat\":44.92,\"lon\":0.23},{\"name\":\"Luneville, France\",\"tz\":1,\"lat\":48.6,\"lon\":-6.5},{\"name\":\"Marignane, France\",\"tz\":1,\"lat\":43.42,\"lon\":-5.22},{\"name\":\"Melun, France\",\"tz\":1,\"lat\":48.53,\"lon\":-2.67},{\"name\":\"Merlebach, France\",\"tz\":1,\"lat\":49.15,\"lon\":-6.8},{\"name\":\"Montauban, France\",\"tz\":1,\"lat\":44.02,\"lon\":-1.35},{\"name\":\"Montbeliard, France\",\"tz\":1,\"lat\":47.52,\"lon\":-6.8},{\"name\":\"Obernai, France\",\"tz\":1,\"lat\":48.47,\"lon\":-7.48},{\"name\":\"Pau, France\",\"tz\":1,\"lat\":43.3,\"lon\":0.37},{\"name\":\"Perigueux, France\",\"tz\":1,\"lat\":45.18,\"lon\":-0.72},{\"name\":\"Phalsbourg, France\",\"tz\":1,\"lat\":48.77,\"lon\":-7.27},{\"name\":\"Poitiers, France\",\"tz\":1,\"lat\":46.58,\"lon\":-0.33},{\"name\":\"Reims, France\",\"tz\":1,\"lat\":49.25,\"lon\":-4.02},{\"name\":\"Rennes, France\",\"tz\":1,\"lat\":48.08,\"lon\":1.68},{\"name\":\"Roanne, France\",\"tz\":1,\"lat\":46.03,\"lon\":-4.07},{\"name\":\"Saint-Avold, France\",\"tz\":1,\"lat\":49.1,\"lon\":-6.7},{\"name\":\"Saint-Die, France\",\"tz\":1,\"lat\":48.28,\"lon\":-6.95},{\"name\":\"Saint-Etienne, France\",\"tz\":1,\"lat\":45.43,\"lon\":-4.4},{\"name\":\"Saint-Fons, France\",\"tz\":1,\"lat\":45.7,\"lon\":-4.85},{\"name\":\"Saint-Laurent-du-Var, France (2)\",\"tz\":1,\"lat\":43.67,\"lon\":-7.18},{\"name\":\"Saint-Quentin, France\",\"tz\":1,\"lat\":49.85,\"lon\":-3.28},{\"name\":\"Sarrebourg, France\",\"tz\":1,\"lat\":48.73,\"lon\":-7.05},{\"name\":\"Sarreguemines, France\",\"tz\":1,\"lat\":49.1,\"lon\":-7.05},{\"name\":\"Saverne, France\",\"tz\":1,\"lat\":48.73,\"lon\":-7.37},{\"name\":\"Sedan, France\",\"tz\":1,\"lat\":49.7,\"lon\":-4.95},{\"name\":\"Selestat, France\",\"tz\":1,\"lat\":48.27,\"lon\":-7.45},{\"name\":\"Tarbes, France\",\"tz\":1,\"lat\":43.23,\"lon\":-0.08},{\"name\":\"Thionville, France\",\"tz\":1,\"lat\":49.37,\"lon\":-6.17},{\"name\":\"Toul, France\",\"tz\":1,\"lat\":48.68,\"lon\":-5.9},{\"name\":\"Toulon, France\",\"tz\":1,\"lat\":43.12,\"lon\":-5.93},{\"name\":\"Valence, France\",\"tz\":1,\"lat\":44.93,\"lon\":-4.9},{\"name\":\"Valenciennes, France\",\"tz\":1,\"lat\":50.35,\"lon\":-3.53},{\"name\":\"Venissieux, France\",\"tz\":1,\"lat\":54.68,\"lon\":-4.88},{\"name\":\"Verdun, France\",\"tz\":1,\"lat\":49.17,\"lon\":-5.38},{\"name\":\"Vichy, France\",\"tz\":1,\"lat\":46.13,\"lon\":-3.43},{\"name\":\"Berdicev, Ukraine\",\"tz\":2,\"lat\":49.9,\"lon\":-28.6},{\"name\":\"Bershad, Ukraine\",\"tz\":2,\"lat\":48.37,\"lon\":-29.53},{\"name\":\"Chernigov, Ukraine\",\"tz\":2,\"lat\":50.83,\"lon\":-24.13},{\"name\":\"Czernowitz, Chernovtsy, Ukraine\",\"tz\":2,\"lat\":48.28,\"lon\":-25.97},{\"name\":\"Dnepropetrovsk, Ukraine\",\"tz\":2,\"lat\":48.45,\"lon\":-35.03},{\"name\":\"Donetsk, Ukraine\",\"tz\":2,\"lat\":48,\"lon\":-37.78},{\"name\":\"Charkow, Ukraine\",\"tz\":2,\"lat\":49.92,\"lon\":-36.17},{\"name\":\"Cherson, Ukraine\",\"tz\":2,\"lat\":46.65,\"lon\":-32.6},{\"name\":\"Korosten, Ukraine\",\"tz\":2,\"lat\":50.95,\"lon\":-28.63},{\"name\":\"Kremenchug, Ukraine\",\"tz\":2,\"lat\":49.07,\"lon\":-33.42},{\"name\":\"Lemberg, Lwow, Ukraine\",\"tz\":2,\"lat\":49.83,\"lon\":-24.03},{\"name\":\"Mukacevo, Ukraine\",\"tz\":2,\"lat\":48.45,\"lon\":-22.72},{\"name\":\"Nikolayev, Ukraine\",\"tz\":2,\"lat\":49.52,\"lon\":-23.97},{\"name\":\"Rachki, Ukraine\",\"tz\":2,\"lat\":49.5,\"lon\":-29.9},{\"name\":\"Simferopol, Ukraine\",\"tz\":2,\"lat\":44.95,\"lon\":-34.1},{\"name\":\"Slavuta, Ukraine\",\"tz\":2,\"lat\":50.3,\"lon\":-26.87},{\"name\":\"Zhitomir, Ukraine\",\"tz\":2,\"lat\":50.25,\"lon\":-28.67},{\"name\":\"Beregovoye, Ukraine\",\"tz\":2,\"lat\":44.9,\"lon\":-33.6},{\"name\":\"Tinton Falls, NJ\",\"tz\":-5,\"lat\":40.28,\"lon\":74.1},{\"name\":\"Warendorf\",\"tz\":1,\"lat\":51.95,\"lon\":-7.98},{\"name\":\"Münster\",\"tz\":1,\"lat\":51.95,\"lon\":-7.62},{\"name\":\"Neu Fahrland\",\"tz\":1,\"lat\":52.45,\"lon\":-13.05},{\"name\":\"Charlottesville, Virginia\",\"tz\":-5,\"lat\":38.03,\"lon\":78.48},{\"name\":\"Hagenow\",\"tz\":1,\"lat\":53.43,\"lon\":-11.18},{\"name\":\"Verl\",\"tz\":1,\"lat\":51.88,\"lon\":-8.52},{\"name\":\"Röbel\",\"tz\":1,\"lat\":53.37,\"lon\":-12.6},{\"name\":\"Nordhausen\",\"tz\":1,\"lat\":51.5,\"lon\":-10.78},{\"name\":\"Aschaffenburg\",\"tz\":1,\"lat\":49.98,\"lon\":-9.15},{\"name\":\"Ahrweiler\",\"tz\":1,\"lat\":50.55,\"lon\":-7.13},{\"name\":\"Cedar Grove, NJ (1)\",\"tz\":-5,\"lat\":40.85,\"lon\":74.23},{\"name\":\"Cedar Grove, NJ (2)\",\"tz\":-5,\"lat\":39.97,\"lon\":74.15},{\"name\":\"Encinitas, CA\",\"tz\":-8,\"lat\":33.03,\"lon\":117.28},{\"name\":\"Calabasas, AZ\",\"tz\":-7,\"lat\":31.47,\"lon\":110.97},{\"name\":\"Calabasas, CA\",\"tz\":-8,\"lat\":34.15,\"lon\":118.63},{\"name\":\"Rottweil\",\"tz\":1,\"lat\":48.17,\"lon\":-8.62}]\r\n","import { ZmanToShow } from './jcal-zmanim.js';\r\n/**\r\n * List of ZmanTypeIds. Use as an enum.\r\n */\r\nexport const ZmanTypeIds = Object.freeze({\r\n ChatzosLayla: 0,\r\n Alos90: 1,\r\n Alos72: 2,\r\n TalisTefillin: 3,\r\n NetzAtElevation: 4,\r\n NetzMishor: 5,\r\n szksMga: 6,\r\n szksGra: 7,\r\n sztMga: 8,\r\n sztGra: 9,\r\n chatzosDay: 10,\r\n minGed: 11,\r\n minKet: 12,\r\n plag: 13,\r\n shkiaAtSeaLevel: 14,\r\n shkiaElevation: 15,\r\n tzais45: 16,\r\n tzais50: 17,\r\n tzais72: 18,\r\n rabbeinuTamZmanios: 19,\r\n rabbeinuTamZmaniosMga: 20,\r\n candleLighting: 21,\r\n SofZmanEatingChometz: 22,\r\n SofZmanBurnChometz: 23,\r\n});\r\n\r\n/**\r\n * List of Zman Types. Used to acquire the Zmanim for a particular day. \r\n */\r\nexport const ZmanTypes: ZmanToShow[] = [\r\n {\r\n id: ZmanTypeIds.ChatzosLayla,\r\n desc: 'חצות הלילה',\r\n eng: 'Chatzos - Midnight',\r\n heb: 'חצות הלילה',\r\n },\r\n {\r\n id: ZmanTypeIds.Alos90,\r\n desc: 'עלות השחר - 90 דקות',\r\n eng: 'Alos Hashachar - 90',\r\n heb: 'עלות השחר (90)',\r\n },\r\n {\r\n id: ZmanTypeIds.Alos72,\r\n desc: 'עלות השחר - 72 דקות',\r\n eng: 'Alos Hashachar - 72',\r\n heb: 'עלות השחר (72)',\r\n },\r\n {\r\n id: ZmanTypeIds.TalisTefillin,\r\n desc: 'זמן עטיפת טלית ותפילין - 36 דקות',\r\n eng: 'Taliss and Tefillin',\r\n heb: 'טלית ותפילין',\r\n },\r\n {\r\n id: ZmanTypeIds.NetzAtElevation,\r\n desc: 'הנץ החמה בגובה המיקום',\r\n eng: 'Sunrise at current elevation',\r\n heb: 'הנץ החמה - מגובה',\r\n },\r\n {\r\n id: ZmanTypeIds.NetzMishor,\r\n desc: 'הנץ החמה בגובה פני הים',\r\n eng: 'Sunrise',\r\n heb: 'הנץ החמה',\r\n },\r\n {\r\n id: ZmanTypeIds.szksMga,\r\n desc: 'סזק\"ש מג\"א',\r\n eng: 'Zman Krias Shma - MG\"A',\r\n heb: 'סזק\"ש מג\"א',\r\n },\r\n {\r\n id: ZmanTypeIds.szksGra,\r\n desc: 'סזק\"ש הגר\"א',\r\n eng: 'Zman Krias Shma - GR\"A',\r\n heb: 'סזק\"ש הגר\"א',\r\n },\r\n {\r\n id: ZmanTypeIds.sztMga,\r\n desc: 'סז\"ת מג\"א',\r\n eng: 'Zman Tefilla - MG\"A',\r\n heb: 'סז\"ת מג\"א',\r\n },\r\n {\r\n id: ZmanTypeIds.sztGra,\r\n desc: 'סז\"ת הגר\"א',\r\n eng: 'Zman Tefilla - GR\"A',\r\n heb: 'סז\"ת הגר\"א',\r\n },\r\n {\r\n id: ZmanTypeIds.chatzosDay,\r\n desc: 'חצות היום',\r\n eng: 'Chatzos - Midday',\r\n heb: 'חצות היום',\r\n },\r\n {\r\n id: ZmanTypeIds.minGed,\r\n desc: 'מנחה גדולה',\r\n eng: 'Mincha Gedola',\r\n heb: 'מנחה גדולה',\r\n },\r\n {\r\n id: ZmanTypeIds.minKet,\r\n desc: 'מנחה קטנה',\r\n eng: 'Mincha Ketana',\r\n heb: 'מנחה קטנה',\r\n },\r\n {\r\n id: ZmanTypeIds.plag,\r\n desc: 'פלג המנחה',\r\n eng: 'Plag HaMincha',\r\n heb: 'פלג המנחה',\r\n },\r\n {\r\n id: ZmanTypeIds.shkiaAtSeaLevel,\r\n desc: 'שקיעת החמה מגובה פני הים',\r\n eng: 'Sunset at sea level',\r\n heb: 'שקיעת החמה - ממישור',\r\n },\r\n {\r\n id: ZmanTypeIds.shkiaElevation,\r\n desc: 'שקיעת החמה מגובה המיקום',\r\n eng: 'Sunset',\r\n heb: 'שקיעת החמה',\r\n },\r\n {\r\n id: ZmanTypeIds.tzais45,\r\n desc: '45 דקות אחרי שקיעה',\r\n eng: 'Nightfall - 45',\r\n heb: 'צאת הכוכבים (45)',\r\n },\r\n {\r\n id: ZmanTypeIds.tzais50,\r\n desc: '50 דקות אחרי שקיעה',\r\n eng: 'Nightfall - 50',\r\n heb: 'צאת הכוכבים (50)',\r\n },\r\n {\r\n id: ZmanTypeIds.tzais72,\r\n desc: '72 דקות אחרי שקיעה',\r\n eng: 'Rabbeinu Tam',\r\n heb: 'צה\"כ ר\"ת - 72 דקות',\r\n },\r\n {\r\n id: ZmanTypeIds.rabbeinuTamZmanios,\r\n desc: '72 דקות זמניות אחרי שקיעה',\r\n eng: 'Rabbeinu Tam - Zmanios',\r\n heb: 'צה\"כ ר\"ת - זמניות',\r\n },\r\n {\r\n id: ZmanTypeIds.rabbeinuTamZmaniosMga,\r\n desc: '72 דקות זמניות אחרי שקיעה - מג\"א',\r\n eng: 'Rabbeinu Tam - Zmanios MG\"A',\r\n heb: 'צה\"כ ר\"ת - זמניות מג\"א',\r\n },\r\n {\r\n id: ZmanTypeIds.candleLighting,\r\n desc: 'זמן הדלקת נרות',\r\n eng: 'Candle lighting time',\r\n heb: 'זמן הדלקת נרות',\r\n },\r\n {\r\n id: ZmanTypeIds.SofZmanEatingChometz,\r\n desc: 'סוף זמן אכילת חמץ',\r\n eng: 'Stop eating Chometz',\r\n heb: 'סוף זמן אכילת חמץ',\r\n },\r\n {\r\n id: ZmanTypeIds.SofZmanBurnChometz,\r\n desc: 'סוף זמן ביעור חמץ',\r\n eng: 'Destroy Chometz',\r\n heb: 'סוף זמן ביעור חמץ',\r\n },\r\n];\r\n\r\n/**\r\n * Get the ZmanType with the given id, name (Hebrew or English) or description.\r\n * @param {number|string} idOrName\r\n * @returns {ZmanToShow}\r\n */\r\nexport function getZmanType(idOrName: number | string): ZmanToShow | undefined {\r\n return ZmanTypes.find(zt => zt.id === idOrName || zt.eng === idOrName || zt.heb === idOrName || zt.desc === idOrName);\r\n}\r\n","import {Utils, DaysOfWeekHeb, DaysOfWeekEng} from '../Utils.js';\r\nimport jDate from './jDate.js';\r\nimport Location from './Location.js';\r\nimport { Time } from '../jcal-zmanim.js';\r\n\r\n/**\r\n * Gets the molad for the given jewish month and year.\r\n * Algorithm was adapted from Hebcal by Danny Sadinoff\r\n *\r\n * Example of use:\r\n * const moladString = Molad.getString(5776, 10);\r\n */\r\nexport default class Molad {\r\n /**\r\n * @param {Number} month\r\n * @param {Number} year\r\n * @returns {{jDate:jDate,time:Time,chalakim:number}}\r\n */\r\n static getMolad(month: number, year: number): { jDate: jDate, time: Time, chalakim: number } {\r\n let totalMonths, partsElapsed, hoursElapsed, parts, monthAdj = month - 7;\r\n\r\n if (monthAdj < 0) {\r\n monthAdj += jDate.monthsJYear(year);\r\n }\r\n totalMonths = Utils.toInt(monthAdj + 235 * Utils.toInt((year - 1) / 19) + 12 * ((year - 1) % 19) +\r\n ((((year - 1) % 19) * 7) + 1) / 19);\r\n partsElapsed = 204 + (793 * (totalMonths % 1080));\r\n hoursElapsed = 5 + (12 * totalMonths) + 793 * Utils.toInt(totalMonths / 1080) +\r\n Utils.toInt(partsElapsed / 1080) - 6;\r\n parts = Utils.toInt((partsElapsed % 1080) + 1080 * (hoursElapsed % 24));\r\n\r\n return {\r\n jDate: new jDate((1 + (29 * Utils.toInt(totalMonths))) + Utils.toInt((hoursElapsed / 24))),\r\n time: { hour: Utils.toInt(hoursElapsed) % 24, minute: Utils.toInt((parts % 1080) / 18), second: 0 },\r\n chalakim: parts % 18\r\n };\r\n }\r\n\r\n /**\r\n * Returns the time of the molad as a string in the format: Monday Night, 8:33 PM and 12 Chalakim\r\n * The molad is always in Jerusalem so we use the Jerusalem sunset times\r\n * to determine whether to display \"Night\" or \"Motzai Shabbos\" etc. (check this...)\r\n * @param {Number} year\r\n * @param {Number} month\r\n */\r\n static getString(year: number, month: number): string {\r\n const molad = Molad.getMolad(month, year),\r\n zmanim = molad.jDate.getSunriseSunset(Location.getJerusalem()),\r\n isNight = Utils.isTimeAfter(zmanim.sunset, molad.time),\r\n dow = molad.jDate.getDayOfWeek();\r\n let str = '';\r\n\r\n if (!zmanim.sunset || isNaN(zmanim.sunset.hour)) {\r\n str += DaysOfWeekEng[dow];\r\n }\r\n else if (dow === 6 && isNight) {\r\n str += 'Motzai Shabbos,';\r\n }\r\n else if (dow === 5 && isNight) {\r\n str += 'Shabbos Night,';\r\n }\r\n else {\r\n str += DaysOfWeekEng[dow] + (isNight ? ' Night' : '');\r\n }\r\n str += ' ' + Utils.getTimeString(molad.time) + ' and ' +\r\n molad.chalakim.toString() + ' Chalakim';\r\n\r\n return str;\r\n }\r\n\r\n /**\r\n * Returns the time of the molad as a string in the format: ליל שני 20:33 12 חלקים\r\n * The molad is always in Jerusalem so we use the Jerusalem sunset times\r\n * to determine whether to display \"ליל/יום\" or \"מוצאי שב\"ק\" etc.\r\n * @param {Number} year\r\n * @param {Number} month\r\n */\r\n static getStringHeb(year: number, month: number): string {\r\n const molad = Molad.getMolad(month, year),\r\n zmanim = molad.jDate.getSunriseSunset(Location.getJerusalem()),\r\n isNight = Utils.isTimeAfter(zmanim.sunset, molad.time) &&\r\n Utils.isTimeAfter(molad.time, zmanim.sunrise),\r\n dow = molad.jDate.getDayOfWeek();\r\n let str = '';\r\n\r\n if (dow === 6) {\r\n str += (isNight ? 'מוצאי שב\"ק' : 'יום שב\"ק');\r\n }\r\n else if (dow === 5) {\r\n str += (isNight ? 'ליל שב\"ק' : 'ערב שב\"ק');\r\n }\r\n else {\r\n str += (isNight ? 'ליל' : 'יום') +\r\n DaysOfWeekHeb[dow].replace('יום', '');\r\n }\r\n str += ' ' + Utils.getTimeString(molad.time, 1, true) + ' ' +\r\n molad.chalakim.toString() + ' חלקים';\r\n\r\n return str;\r\n }\r\n}","import {Utils, DaysOfWeek} from '../Utils.js';\r\nimport Zmanim from './Zmanim.js';\r\nimport Location from './Location.js';\r\nimport jDate from './jDate.js';\r\nimport { ZmanTypes, ZmanTypeIds, getZmanType } from '../ZmanTypes.js';\r\nimport { SunTimes, Time, ZmanToShow } from '../jcal-zmanim.js';\r\n\r\ntype ZmanTime = {\r\n date: Date,\r\n location: Location,\r\n sunrise: Time | undefined,\r\n sunset: Time | undefined,\r\n suntimesMishor: SunTimes | undefined,\r\n sunriseMishor: Time | undefined,\r\n sunsetMishor: Time | undefined,\r\n mishorNeg90: Time | undefined,\r\n chatzos: Time | undefined,\r\n shaaZmanis: number | undefined,\r\n shaaZmanisMga: number | undefined,\r\n};\r\nexport const WhichDaysFlags = Object.freeze({\r\n SUNDAY: 1,\r\n MONDAY: 2,\r\n TUESDAY: 4,\r\n WEDNESDAY: 8,\r\n THURSDAY: 16,\r\n FRIDAY: 32,\r\n SHABBOS: 64,\r\n YOMTOV: 128,\r\n});\r\n\r\nexport default class ZmanimUtils {\r\n static zmanTimesCache: ZmanTime[] = []; \r\n\r\n /**\r\n * Gets the zmanim for all the types in the given list.\r\n * @param {[ZmanToShow]} zmanTypes An array of ZmanTypes to get the zman for.\r\n * @param {Date} date The secular date to get the zmanim for\r\n * @param {jDate} jdate The jewish date to get the zmanim for\r\n * @param {Location} location The location for which to get the zmanim\r\n * @returns{[{zmanType:{id:number,offset:?number,desc:string,eng:string,heb:string },time:Time}]}\r\n */\r\n static getZmanTimes(zmanTypes: ZmanToShow[], date: Date, jdate: jDate, location: Location): { zmanType: ZmanToShow, time?: Time }[] {\r\n const mem = ZmanimUtils.zmanTimesCache.find(\r\n (z) =>\r\n Utils.isSameSdate(z.date, date) &&\r\n z.location.Name === location.Name,\r\n ),\r\n zmanTimes: { zmanType: ZmanToShow, time?: Time }[] = [],\r\n whichDay = ZmanimUtils.getWhichDays(date, jdate, location);\r\n let sunrise: Time | undefined,\r\n sunset: Time | undefined,\r\n suntimesMishor: SunTimes | undefined,\r\n sunriseMishor: Time | undefined,\r\n sunsetMishor: Time | undefined,\r\n mishorNeg90: Time | undefined,\r\n chatzos: Time | undefined,\r\n shaaZmanis: number | undefined,\r\n shaaZmanisMga: number | undefined;\r\n if (mem) {\r\n sunrise = mem.sunrise;\r\n sunset = mem.sunset;\r\n suntimesMishor = mem.suntimesMishor;\r\n sunriseMishor = mem.sunriseMishor;\r\n sunsetMishor = mem.sunsetMishor;\r\n mishorNeg90 = mem.mishorNeg90;\r\n chatzos = mem.chatzos;\r\n shaaZmanis = mem.shaaZmanis;\r\n shaaZmanisMga = mem.shaaZmanisMga;\r\n } else {\r\n const suntimes = Zmanim.getSunTimes(date, location, true);\r\n sunrise = suntimes.sunrise;\r\n sunset = suntimes.sunset;\r\n suntimesMishor = Zmanim.getSunTimes(date, location, false);\r\n sunriseMishor = suntimesMishor.sunrise;\r\n sunsetMishor = suntimesMishor.sunset;\r\n mishorNeg90 = Utils.addMinutes(sunriseMishor, -90);\r\n chatzos =\r\n sunriseMishor &&\r\n sunsetMishor &&\r\n Zmanim.getChatzosFromSuntimes(suntimesMishor);\r\n shaaZmanis =\r\n sunriseMishor &&\r\n sunsetMishor &&\r\n Zmanim.getShaaZmanisFromSunTimes(suntimesMishor);\r\n shaaZmanisMga =\r\n sunriseMishor &&\r\n sunsetMishor &&\r\n Zmanim.getShaaZmanisMga(suntimesMishor, true);\r\n\r\n ZmanimUtils.zmanTimesCache.push({\r\n date,\r\n location,\r\n sunrise,\r\n sunset,\r\n suntimesMishor,\r\n sunriseMishor,\r\n sunsetMishor,\r\n mishorNeg90,\r\n chatzos,\r\n shaaZmanis,\r\n shaaZmanisMga,\r\n });\r\n }\r\n for (let zmanType of zmanTypes) {\r\n const offset = zmanType.offset &&\r\n (!zmanType.whichDaysFlags || zmanType.whichDaysFlags & whichDay)\r\n ? zmanType.offset\r\n : 0;\r\n switch (zmanType.id) {\r\n case ZmanTypeIds.ChatzosLayla: // chatzosNight\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(chatzos, 720 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.Alos90: // alos90\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(mishorNeg90, offset)\r\n : mishorNeg90,\r\n });\r\n break;\r\n case ZmanTypeIds.Alos72: // alos72\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(sunriseMishor, -72 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.TalisTefillin: //talisTefillin\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(sunriseMishor, -36 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.NetzAtElevation: //netzElevation\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(sunrise, offset)\r\n : sunrise,\r\n });\r\n break;\r\n case ZmanTypeIds.NetzMishor: // netzMishor:\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(sunriseMishor, offset)\r\n : sunriseMishor,\r\n });\r\n break;\r\n case ZmanTypeIds.szksMga: //szksMga\r\n if (shaaZmanisMga)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n mishorNeg90,\r\n Math.floor(shaaZmanisMga * 3) + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.szksGra: //szksGra\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunriseMishor,\r\n Math.floor(shaaZmanis * 3) + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.sztMga: // sztMga\r\n if (shaaZmanisMga)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n mishorNeg90,\r\n Math.floor(shaaZmanisMga * 4) + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.sztGra: //sztGra\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunriseMishor,\r\n Math.floor(shaaZmanis * 4) + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.chatzosDay: //chatzos\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(chatzos, offset)\r\n : chatzos,\r\n });\r\n break;\r\n case ZmanTypeIds.minGed: //minGed\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n chatzos,\r\n shaaZmanis * 0.5 + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.minKet: //minKet\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunriseMishor,\r\n shaaZmanis * 9.5 + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.plag: //plag\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunriseMishor,\r\n shaaZmanis * 10.75 + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.shkiaAtSeaLevel: //shkiaMishor\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(sunsetMishor, offset)\r\n : sunsetMishor,\r\n });\r\n break;\r\n case ZmanTypeIds.shkiaElevation: //shkiaElevation\r\n zmanTimes.push({\r\n zmanType,\r\n time: offset\r\n ? Utils.addMinutes(sunset, offset)\r\n : sunset,\r\n });\r\n break;\r\n case ZmanTypeIds.tzais45: // tzais45\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(sunset, 45 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.tzais50: //tzais50\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(sunset, 50 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.tzais72: //tzais72\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(sunset, 72 + offset),\r\n });\r\n break;\r\n case ZmanTypeIds.rabbeinuTamZmanios: //tzais72Zmaniot\r\n if (shaaZmanis)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunset,\r\n shaaZmanis * 1.2 + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.rabbeinuTamZmaniosMga: //tzais72ZmaniotMA\r\n if (shaaZmanisMga)\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunset,\r\n shaaZmanisMga * 1.2 + offset,\r\n ),\r\n });\r\n break;\r\n case ZmanTypeIds.candleLighting: //candleLighting\r\n if (sunset && jdate.hasCandleLighting()) {\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n Zmanim.getCandleLightingFromSunset(\r\n sunset,\r\n location,\r\n ),\r\n offset,\r\n ),\r\n });\r\n }\r\n break;\r\n case ZmanTypeIds.SofZmanEatingChometz: //Sof Zman Achilas Chometz\r\n if (shaaZmanisMga && jdate.Month === 1 &&\r\n jdate.Day === 14 &&\r\n Utils.isTimeAfter(sunrise, Utils.timeFromDate(date))) {\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunrise,\r\n -90 + offset + shaaZmanisMga * 4,\r\n ),\r\n });\r\n }\r\n break;\r\n case ZmanTypeIds.SofZmanBurnChometz: //Sof Zman Biur Chometz\r\n if (shaaZmanisMga &&\r\n jdate.Month === 1 &&\r\n (jdate.Day === 14 ||\r\n (jdate.DayOfWeek === DaysOfWeek.FRIDAY &&\r\n jdate.Day === 13)) &&\r\n Utils.isTimeAfter(sunrise, Utils.timeFromDate(date))\r\n ) {\r\n zmanTimes.push({\r\n zmanType,\r\n time: Utils.addMinutes(\r\n sunrise,\r\n -90 + offset + shaaZmanisMga * 5,\r\n ),\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n return zmanTimes;\r\n }\r\n /**\r\n * Get the WhichDaysFlags for the given secular date\r\n * @param {Date} date\r\n * @param {jDate} jdate\r\n * @param {Location} location\r\n */\r\n static getWhichDays(date: Date, jdate: jDate, location: Location) {\r\n if (jdate.isYomTov(!!location.Israel)) {\r\n return WhichDaysFlags.YOMTOV;\r\n }\r\n switch (date.getDay()) {\r\n case DaysOfWeek.SUNDAY:\r\n return WhichDaysFlags.SUNDAY;\r\n case DaysOfWeek.MONDAY:\r\n return WhichDaysFlags.MONDAY;\r\n case DaysOfWeek.TUESDAY:\r\n return WhichDaysFlags.TUESDAY;\r\n case DaysOfWeek.WEDNESDAY:\r\n return WhichDaysFlags.WEDNESDAY;\r\n case DaysOfWeek.THURSDAY:\r\n return WhichDaysFlags.THURSDAY;\r\n case DaysOfWeek.FRIDAY:\r\n return WhichDaysFlags.FRIDAY;\r\n case DaysOfWeek.SHABBOS:\r\n return WhichDaysFlags.SHABBOS;\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Returns the zmanim necessary for showing basic shul notifications: chatzosHayom, chatzosHalayla, alos\r\n * @param {jDate|Date} date\r\n * @param {Location} location\r\n * @returns {{chatzosHayom:Time, chatzosHalayla:Time, alos:Time, shkia:Time }}\r\n */\r\n static getBasicShulZmanim(date: jDate | Date, location: Location) {\r\n const { sdate, jdate } = Utils.bothDates(date);\r\n const zmanim = ZmanimUtils.getZmanTimes(\r\n [\r\n getZmanType(ZmanTypeIds.chatzosDay) as ZmanToShow, //Chatzos hayom\r\n getZmanType(ZmanTypeIds.Alos90) as ZmanToShow, //alos90\r\n getZmanType(ZmanTypeIds.shkiaElevation) as ZmanToShow, //shkiaElevation,\r\n getZmanType(ZmanTypeIds.candleLighting) as ZmanToShow, //candleLighting,\r\n ],\r\n sdate,\r\n jdate,\r\n location,\r\n );\r\n return {\r\n chatzosHayom: zmanim[0].time,\r\n chatzosHalayla: Utils.addMinutes(zmanim[0].time, 720),\r\n alos: zmanim[1].time,\r\n shkia: zmanim[2].time,\r\n };\r\n }\r\n\r\n /**\r\n * Returns all the zmanim for the given day \r\n * @param {Date|jDate} date\r\n * @param {Location} location\r\n * @returns {{zmanType:ZmanToShow, time?:Time }[]}\r\n */\r\n static getAllZmanim(date: jDate | Date, location: Location) {\r\n const { sdate, jdate } = Utils.bothDates(date);\r\n return ZmanimUtils.getZmanTimes(ZmanTypes, sdate, jdate, location,);\r\n }\r\n}\r\n","import { Utils, DaysOfWeek, JewishMonthsNames as m } from \"./Utils.js\";\r\nimport jDate from \"./JCal/jDate.js\";\r\nimport Molad from \"./JCal/Molad.js\";\r\nimport PirkeiAvos from \"./JCal/PirkeiAvos.js\";\r\nimport ZmanimUtils from \"./JCal/ZmanimUtils.js\";\r\nimport Location from \"./JCal/Location.js\";\r\nimport { Time } from \"./jcal-zmanim.js\";\r\n\r\ntype DayInfo = {\r\n jdate: jDate;\r\n sdate: Date;\r\n month: number;\r\n day: number;\r\n dow: number;\r\n isAfterChatzosHayom: boolean;\r\n isAfterChatzosHalayla: boolean;\r\n isAfterAlos: boolean;\r\n isAfterShkia: boolean;\r\n isDaytime: boolean;\r\n isNightTime: boolean;\r\n isMorning: boolean;\r\n isAfternoon: boolean;\r\n isYomTov: boolean;\r\n isLeapYear: boolean;\r\n noTachnun: boolean;\r\n location: Location;\r\n};\r\nconst dayNotes: string[] = [];\r\nconst tefillahNotes: string[] = [];\r\nlet showEnglish = false,\r\n dayInfo: DayInfo,\r\n showGaonShirShelYom = true,\r\n israel = true;\r\n\r\n/**\r\n * Get shul notifications for the given date and location\r\n * @param date\r\n * @param time\r\n * @param location\r\n * @param english\r\n * @param showGaonShir\r\n * @param showDafYomi\r\n * @returns {{ dayNotes: string[], tefillahNotes: string[]}}\r\n */\r\nexport function getNotifications(\r\n date: jDate | Date,\r\n time: Time,\r\n location: Location,\r\n english: boolean,\r\n showGaonShir?: boolean,\r\n showDafYomi?: boolean\r\n) {\r\n const { sdate, jdate } = Utils.bothDates(date);\r\n dayNotes.length = 0;\r\n tefillahNotes.length = 0;\r\n const month = jdate.Month,\r\n day = jdate.Day,\r\n dow = jdate.DayOfWeek,\r\n { chatzosHayom, chatzosHalayla, alos, shkia } = ZmanimUtils.getBasicShulZmanim(date, location),\r\n isAfterChatzosHayom = Utils.isTimeAfter(chatzosHayom, time),\r\n isAfterChatzosHalayla =\r\n typeof chatzosHalayla !== \"undefined\" &&\r\n (Utils.isTimeAfter(chatzosHalayla, time) || (chatzosHalayla.hour > 12 && time.hour < 12)), //Chatzos is before 0:00 and time is after 0:00\r\n isAfterAlos = Utils.isTimeAfter(alos, time),\r\n isAfterShkia = Utils.isTimeAfter(shkia, time),\r\n isDaytime = isAfterAlos && !isAfterShkia,\r\n isNightTime = !isDaytime,\r\n isNotBeinHasmashos = !isAfterShkia || Utils.isTimeAfter(Utils.addMinutes(shkia, 18), time),\r\n isMorning = isDaytime && !isAfterChatzosHayom,\r\n isAfternoon = isDaytime && isAfterChatzosHayom,\r\n isYomTov = jdate.isYomTovOrCholHamoed(location.Israel),\r\n isLeapYear = jDate.isJdLeapY(jdate.Year),\r\n noTachnun = isAfternoon && (dow === DaysOfWeek.FRIDAY || day === 29);\r\n\r\n dayInfo = {\r\n jdate,\r\n sdate,\r\n month,\r\n day,\r\n dow,\r\n isAfterChatzosHayom,\r\n isAfterChatzosHalayla,\r\n isAfterAlos,\r\n isAfterShkia,\r\n isDaytime,\r\n isNightTime,\r\n isMorning,\r\n isAfternoon,\r\n isYomTov,\r\n isLeapYear,\r\n noTachnun,\r\n location,\r\n };\r\n showEnglish = english;\r\n israel = location.Israel;\r\n showGaonShirShelYom = typeof showGaonShir === \"undefined\" ? israel : !!showGaonShir;\r\n\r\n if (dow === DaysOfWeek.SHABBOS) {\r\n getShabbosNotifications();\r\n } else {\r\n getWeekDayNotifications();\r\n }\r\n getAroundTheYearNotifications();\r\n\r\n if (dayInfo.noTachnun && isDaytime && !isYomTov) {\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"No Tachnun\", 'א\"א תחנון');\r\n } else if (isAfternoon) {\r\n addTefillahNote(\"No Tzidkascha\", 'א\"א צדקתך');\r\n } else if (\r\n !((month === m.NISSAN && day > 21) || month === m.IYAR || (month === m.SIVAN && day < 6))\r\n ) {\r\n addTefillahNote(\"No Av Harachamim\", 'א\"א אב הרחמים');\r\n }\r\n }\r\n if (showDafYomi !== false) {\r\n addDayNote(jdate.getDafYomi(), jdate.getDafyomiHeb());\r\n }\r\n\r\n //If it is after the earliest Nacht during Sefiras Ha'omer\r\n if (\r\n isNotBeinHasmashos &&\r\n ((month === m.NISSAN && day > 15) || month === m.IYAR || (month === m.SIVAN && day < 6))\r\n ) {\r\n const dayOfSefirah = jdate.getDayOfOmer();\r\n if (dayOfSefirah > 0) {\r\n addTefillahNote(Utils.getOmerNusach(dayOfSefirah, \"ashkenaz\"));\r\n }\r\n }\r\n\r\n //return only unique values\r\n return {\r\n dayNotes: [...new Set(dayNotes)],\r\n tefillahNotes: [...new Set(tefillahNotes)],\r\n };\r\n}\r\n\r\nfunction getShabbosNotifications() {\r\n const { month, day, isLeapYear, isMorning, isYomTov, jdate, isDaytime, isAfternoon } = dayInfo;\r\n if (month === m.NISSAN && day > 7 && day < 15) {\r\n addDayNote(\"Shabbos Hagadol\", \"שבת הגדול\");\r\n } else if (month === m.TISHREI && day > 2 && day < 10) {\r\n addDayNote(\"Shabbos Shuva\", \"שבת שובה\");\r\n } else if (month === m.AV && day > 2 && day < 10) {\r\n addDayNote(\"Shabbos Chazon\", \"שבת חזון\");\r\n } else if (\r\n (month === (isLeapYear ? m.ADAR : m.SHVAT) && day > 24) ||\r\n (month === (isLeapYear ? m.ADAR_SHEINI : m.ADAR) && day === 1)\r\n ) {\r\n addDayNote(\"Parshas Shkalim\", \"פרשת שקלים\");\r\n } else if (month === (isLeapYear ? m.ADAR_SHEINI : m.ADAR) && day > 7 && day < 14) {\r\n addDayNote(\"Parshas Zachor\", \"פרשת זכור\");\r\n } else if (month === (isLeapYear ? m.ADAR_SHEINI : m.ADAR) && day > 16 && day < 24) {\r\n addDayNote(\"Parshas Parah\", \"פרשת פרה\");\r\n } else if (\r\n (month === (isLeapYear ? m.ADAR_SHEINI : m.ADAR) && day > 23 && day < 30) ||\r\n (month === m.NISSAN && day === 1)\r\n ) {\r\n addDayNote(\"Parshas Hachodesh\", \"פרשת החודש\");\r\n }\r\n if (isMorning && !isYomTov) {\r\n const sedra = jdate.getSedra(israel);\r\n if (sedra.sedras.length > 0) {\r\n addTefillahNote(\r\n `Kriyas Hatorah Parshas ${sedra.toString()}`,\r\n `קה\"ת פרשת ${sedra.toStringHeb()}`\r\n );\r\n }\r\n //All months but Tishrei have Shabbos Mevarchim on the Shabbos before Rosh Chodesh\r\n if (month !== m.ELLUL && day > 22 && day < 30) {\r\n const nextMonth = jdate.addMonths(1);\r\n addTefillahNote(\r\n \"The molad will be \" + Molad.getString(nextMonth.Year, nextMonth.Month),\r\n \"המולד יהיה ב\" + Molad.getStringHeb(nextMonth.Year, nextMonth.Month)\r\n );\r\n addTefillahNote(\"Bircas Hachodesh\", \"מברכים החודש\");\r\n //Rosh Chodesh Bentching during Sefira, we do say Av Harachamim\r\n if (month !== m.NISSAN && month !== m.IYAR) {\r\n addTefillahNote(\"No Av Harachamim\", 'א\"א אב הרחמים');\r\n }\r\n }\r\n }\r\n //Rosh Chodesh\r\n if (month !== m.TISHREI && (day === 1 || day === 30)) {\r\n addDayNote(\"Rosh Chodesh\", \"ראש חודש\");\r\n addTefillahNote(\"Ya`aleh Viyavo\", \"יעלה ויבא\");\r\n if (showGaonShirShelYom && isDaytime) {\r\n addTefillahNote(\"Barchi Nafshi\", 'שיר של יום - קי\"ד - ברכי נפשי');\r\n }\r\n //Rosh Chodesh Teves is during Chanuka\r\n if (isDaytime && month !== m.TEVES && !(month === m.KISLEV && day === 30)) {\r\n addTefillahNote(\"Chatzi Hallel\", \"חצי הלל\");\r\n }\r\n addTefillahNote(\"No Av Harachamim\", 'א\"א אב הרחמים');\r\n } else if (isYomTov) {\r\n addTefillahNote(\"No Av Harachamim\", 'א\"א אב הרחמים');\r\n if (showGaonShirShelYom && isDaytime) {\r\n addTefillahNote(\"שיר של יום - מזמור שיר ליום השבת\");\r\n }\r\n }\r\n //Kriyas Hatora - Shabbos by mincha - besides for Yom Kippur\r\n if (isAfternoon && !(month === m.TISHREI && day === 10)) {\r\n const sedra = jdate.addDays(1).getSedra(israel);\r\n addTefillahNote(\r\n \"Kriyas Hatorah Mincha Parshas \" + sedra.sedras[0].eng,\r\n 'קה\"ת במנחה פרשת ' + sedra.sedras[0].heb\r\n );\r\n }\r\n if (\r\n isAfternoon &&\r\n ((month === m.NISSAN && day > 21) ||\r\n (month <= m.ELLUL && !(month === m.AV && [8, 9].includes(day))))\r\n ) {\r\n const prakim = PirkeiAvos.getPrakim(jdate, israel);\r\n if (prakim.length > 0) {\r\n addDayNote(\r\n \"Pirkei Avos - \" +\r\n prakim.map((s: number) => `Perek ${Utils.toJewishNumber(s)}`).join(\" and \"),\r\n \"פרקי אבות - \" + prakim.map((s: number) => `פרק ${Utils.toJewishNumber(s)}`).join(\" ו\")\r\n );\r\n }\r\n }\r\n}\r\n\r\nfunction getWeekDayNotifications() {\r\n const {\r\n isNightTime,\r\n dow,\r\n isYomTov,\r\n month,\r\n day,\r\n isMorning,\r\n jdate,\r\n location,\r\n isDaytime,\r\n isAfternoon,\r\n } = dayInfo;\r\n\r\n //מוצאי שבת\r\n if (isNightTime && dow === DaysOfWeek.SUNDAY) {\r\n //הבדלה בתפילה for מוצאי שבת\r\n addTefillahNote(\r\n (month === m.NISSAN && day === 15) || (month === m.SIVAN && day === 6)\r\n ? \"ותודיעינו\"\r\n : \"אתה חוננתנו\"\r\n );\r\n //Motzai Shabbos before Yom Tov - no ויהי נועם\r\n if (\r\n (month === m.ELLUL && day > 22) ||\r\n (month === m.TISHREI && day > 4 && day < 22) ||\r\n (month === m.NISSAN && day > 8 && day < 15) ||\r\n (month === m.SIVAN && day < 6)\r\n ) {\r\n addTefillahNote(\"No Vihi Noam\", 'א\"א ויהי נועם');\r\n }\r\n }\r\n //אתה חוננתנו for מוצאי יו\"ט\r\n else if (\r\n isNightTime &&\r\n ((month === m.NISSAN && (day === 16 || day === 22)) ||\r\n (month === m.SIVAN && day === 7) ||\r\n (month === m.TISHREI && [3, 11, 16, 23].includes(day)))\r\n ) {\r\n addTefillahNote(\"Ata Chonantanu\", \"אתה חוננתנו\");\r\n }\r\n //Kriyas hatorah for monday and thursday\r\n //when it's not chol hamoed, chanuka, purim, a fast day or rosh chodesh\r\n if (\r\n isMorning &&\r\n !isYomTov &&\r\n (dow === DaysOfWeek.MONDAY || dow === DaysOfWeek.THURSDAY) &&\r\n !hasOwnKriyasHatorah(jdate, location)\r\n ) {\r\n const sedra = jdate.getSedra(israel);\r\n if (sedra.sedras.length > 0) {\r\n addTefillahNote(\r\n `Kriyas Hatorah Parshas ${sedra.sedras[0].eng}`,\r\n `קה\"ת פרשת ${sedra.sedras[0].heb}`\r\n );\r\n }\r\n }\r\n //Rosh Chodesh\r\n if ((month !== m.TISHREI && day === 1) || day === 30) {\r\n dayInfo.noTachnun = true;\r\n addDayNote(\"Rosh Chodesh\", \"ראש חודש\");\r\n addTefillahNote(\"Ya`aleh Viyavo\", \"יעלה ויבא\");\r\n if (showGaonShirShelYom && isDaytime) {\r\n addTefillahNote(\"Barchi Nafshi\", 'שיר של יום - קי\"ד - ברכי נפשי');\r\n }\r\n //Rosh Chodesh Teves is during Chanuka\r\n if (isDaytime && month !== m.TEVES && !(month === m.KISLEV && day === 30)) {\r\n addTefillahNote(\"Chatzi Hallel\", \"חצי הלל\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n }\r\n }\r\n //Yom Kippur Kattan\r\n else if (\r\n month !== m.ELLUL &&\r\n ((dow < DaysOfWeek.FRIDAY && day === 29) || (dow === DaysOfWeek.THURSDAY && day === 28)) &&\r\n isAfternoon\r\n ) {\r\n addTefillahNote(\"Yom Kippur Kattan\", 'יו\"כ קטן');\r\n }\r\n if (jdate.hasEiruvTavshilin(israel)) {\r\n addDayNote(\"Eruv Tavshilin\", \"עירוב תבשילין\");\r\n }\r\n}\r\n\r\nfunction getAroundTheYearNotifications() {\r\n const {\r\n month,\r\n day,\r\n isNightTime,\r\n dow,\r\n isAfternoon,\r\n isDaytime,\r\n isMorning,\r\n isAfterChatzosHalayla,\r\n jdate,\r\n sdate,\r\n isLeapYear,\r\n location,\r\n } = dayInfo;\r\n\r\n /**\r\n * A flag indicating whether to show \"V'sain Tal U'Matar\" in Chutz La'aretz.\r\n * If the Jewish year is divisible by 4, then it is said from the 6th of December.\r\n * Otherwise it is said from the 5th of December.\r\n */\r\n let showVsainTalUmatarInChul = false;\r\n\r\n if (!location.Israel && sdate.getMonth() === 11 && sdate.getDate() > 4) {\r\n const startVsainTalUmatar = jdate.Year % 4 === 0 ? 6 : 5;\r\n showVsainTalUmatarInChul =\r\n sdate.getDate() >= startVsainTalUmatar && sdate.getDate() <= startVsainTalUmatar + 14;\r\n }\r\n\r\n switch (month) {\r\n case m.NISSAN:\r\n dayInfo.noTachnun = true;\r\n if (day > 15) {\r\n addTefillahNote(\"Morid Hatal\", \"מוריד הטל\");\r\n }\r\n if (dow !== DaysOfWeek.SHABBOS && day > 15 && day !== 21) {\r\n addTefillahNote(\"Vesain Bracha\", \"ותן ברכה\");\r\n }\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS && [14, 16, 17, 18, 19, 20].includes(day)) {\r\n addTefillahNote(\"No Mizmor Lesodah\", 'א\"א מזמור לתודה');\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n }\r\n if (day === 15) {\r\n addDayNote(\"First Day of Pesach\", 'יו\"ט ראשון של פסח');\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n if (isAfternoon) {\r\n addTefillahNote(\"Morid Hatal\", \"מוריד הטל\");\r\n }\r\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - קי\"ד - בצאת ישראל');\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n } else if (day === 16 && !israel) {\r\n addDayNote(\"Second Day of Pesach\", 'יו\"ט שני של פסח');\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n addTefillahNote(\"Morid Hatal\", \"מוריד הטל\");\r\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - קי\"ד - בצאת ישראל');\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n } else if ([16, 17, 18, 19, 20, 21].includes(day)) {\r\n if (day === 21) {\r\n addDayNote(\"Shvi`i Shel Pesach\", \"שביעי של פםח\");\r\n if (isDaytime) {\r\n if (israel) {\r\n addTefillahNote(\"Yizkor\", \"יזכור\");\r\n }\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"שיר של יום - י\\\"ח - למנצח לעבד ה'\");\r\n }\r\n }\r\n } else {\r\n addDayNote(\"Chol Ha`moed Pesach\", \"פסח - חול המועד\");\r\n addTefillahNote(\"Ya`aleh Viyavo\", \"יעלה ויבא\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) noLaminatzeach();\r\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\r\n switch (day) {\r\n case 16:\r\n if (dow === DaysOfWeek.SUNDAY) {\r\n addTefillahNote('שיר של יום - קי\"ד - בצאת ישראל');\r\n } else {\r\n addTefillahNote('שיר של יום - ע\"ח - משכיל לאסף');\r\n }\r\n break;\r\n case 17:\r\n if (dow === DaysOfWeek.MONDAY) {\r\n addTefillahNote('שיר של יום - ע\"ח - משכיל לאסף');\r\n } else {\r\n addTefillahNote(\"שיר של יום - פ' - למנצח אל שושנים\");\r\n }\r\n break;\r\n case 18:\r\n if (dow === DaysOfWeek.TUESDAY || dow === DaysOfWeek.SUNDAY) {\r\n addTefillahNote(\"שיר של יום - פ' - למנצח אל שושנים\");\r\n } else {\r\n addTefillahNote(\"שיר של יום - ק\\\"ה - הודו לה'\");\r\n }\r\n break;\r\n case 19:\r\n if (dow === DaysOfWeek.THURSDAY) {\r\n addTefillahNote('שיר של יום - קל\"ה - הללוי-ה הללו את שם');\r\n } else {\r\n addTefillahNote(\"שיר של יום - ק\\\"ה - הודו לה'\");\r\n }\r\n break;\r\n case 20:\r\n if (dow === DaysOfWeek.FRIDAY) {\r\n addTefillahNote('שיר של יום - ס\"ו - למנצח שיר מזמור');\r\n } else {\r\n addTefillahNote('שיר של יום - קל\"ה - הללוי-ה הללו את שם');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n if (isDaytime) addTefillahNote(\"Half Hallel\", \"חצי הלל\");\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n }\r\n if (day === 22) {\r\n if (israel) {\r\n addDayNote(\"Isru Chag\", \"איסרו חג\");\r\n } else {\r\n addDayNote(\"Acharon Shel Pesach\", \"אחרון של פסח\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Yizkor\", \"יזכור\");\r\n addTefillahNote(\"Half Hallel\", \"חצי הלל\");\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n }\r\n if (dow !== DaysOfWeek.SHABBOS && isMorning) {\r\n noLaminatzeach();\r\n }\r\n }\r\n if (\r\n dow === DaysOfWeek.SHABBOS &&\r\n ([15, 16, 17, 18, 19, 20, 21].includes(day) || (!israel && day === 22))\r\n ) {\r\n addTefillahNote(\"Shir Hashirim\", \"מגילת שיר השירים\");\r\n }\r\n break;\r\n case m.IYAR:\r\n if (day <= 15) {\r\n addTefillahNote(\"Morid Hatal\", \"מוריד הטל\");\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"V`sain Bracha\", \"ותן ברכה\");\r\n }\r\n }\r\n //Pesach Sheini and Lag Ba'Omer\r\n if (day === 14 || (day === 13 && isAfternoon) || day === 18 || (day === 17 && isAfternoon)) {\r\n dayInfo.noTachnun = true;\r\n if (day === 14) {\r\n addDayNote(\"Pesach Sheini\", \"פסח שני\");\r\n }\r\n }\r\n //Baha\"b\r\n if (\r\n isMorning &&\r\n ((dow === DaysOfWeek.MONDAY && day > 3 && day < 13) ||\r\n (dow === DaysOfWeek.THURSDAY && day > 6 && day < 14) ||\r\n (dow === DaysOfWeek.MONDAY && day > 10 && day < 18 && day !== 14))\r\n ) {\r\n addTefillahNote(\"Ba`hab\", 'סליחות בה\"ב');\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n }\r\n break;\r\n case m.SIVAN:\r\n if (day < 13) {\r\n dayInfo.noTachnun = true;\r\n }\r\n\r\n if (day === 6) {\r\n addDayNote(\"Shavuos\", \"יום טוב של שבועות\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n addTefillahNote(\"Megilas Rus\", \"מגילת רות\");\r\n addTefillahNote(\"Akdamus\", \"אקדמות\");\r\n if (israel) addTefillahNote(\"Yizkor\", \"יזכור\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote('שיר של יום - י\"ט - ..השמים מספרים..');\r\n }\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n } else if (day === 7) {\r\n if (israel) {\r\n addDayNote(\"Issru Chag\", \"איסרו חג\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n } else {\r\n addDayNote(\"Shavuos Second Day\", \"יום טוב של שבועות\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n addTefillahNote(\"Yizkor\", \"יזכור\");\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n }\r\n }\r\n\r\n break;\r\n case m.TAMUZ:\r\n if (\r\n isDaytime &&\r\n ((day === 17 && DaysOfWeek.SHABBOS !== 6) || (day === 18 && dow === DaysOfWeek.SUNDAY))\r\n ) {\r\n if (isDaytime) {\r\n addDayNote(\"Shiva Asar B`Tamuz\", 'י\"ז בתמוז');\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n }\r\n if (isMorning) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n }\r\n break;\r\n case m.AV:\r\n if (isAfternoon && day === 8 && dow !== DaysOfWeek.FRIDAY) {\r\n dayInfo.noTachnun = true;\r\n } else if (\r\n (day === 9 && dow !== DaysOfWeek.SHABBOS) ||\r\n (day === 10 && dow === DaysOfWeek.SUNDAY)\r\n ) {\r\n addDayNote(\"Tish B`Av\", \"תשעה באב\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Kinos\", \"קינות\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n } else {\r\n addTefillahNote(\"Megilas Eicha\", \"מגילת איכה\");\r\n if (isNightTime && dow === DaysOfWeek.SUNDAY) {\r\n addTefillahNote(\"No Vihi Noam\", 'א\"א ויהי נועם');\r\n }\r\n }\r\n dayInfo.noTachnun = true;\r\n } else if (isAfternoon && day === 14) {\r\n dayInfo.noTachnun = true;\r\n } else if (day === 15) {\r\n addDayNote(\"Tu B`Av\", 'ט\"ו באב');\r\n dayInfo.noTachnun = true;\r\n }\r\n break;\r\n case m.ELLUL:\r\n addTefillahNote(\"L`Dovid Hashem Ori\", \"לדוד ה\");\r\n if (day > 20 && dow !== DaysOfWeek.SHABBOS && (isAfterChatzosHalayla || isMorning)) {\r\n let startedSelichos = day >= 26;\r\n if (day < 26) {\r\n const daysToRH = 30 - day,\r\n dowRH = (daysToRH + dow) % 7;\r\n switch (dowRH) {\r\n case DaysOfWeek.MONDAY:\r\n startedSelichos = day >= 22;\r\n break;\r\n case DaysOfWeek.TUESDAY:\r\n startedSelichos = day >= 21;\r\n break;\r\n case DaysOfWeek.SHABBOS:\r\n startedSelichos = day >= 24;\r\n break;\r\n }\r\n }\r\n if (startedSelichos) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n }\r\n if (day === 29) {\r\n dayInfo.noTachnun = true;\r\n }\r\n break;\r\n case m.TISHREI:\r\n if (day < 11) {\r\n addTefillahNote(\"Hamelech Hakadosh\", \"המלך הקדוש\");\r\n if (dow !== DaysOfWeek.SHABBOS && day !== 9) {\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n }\r\n }\r\n //Days of Rosh Hashana, Tzom Gedaliah and Yom Kippur are dealt with individually below.\r\n if (day > 4 && day < 10 && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n addTefillahNote(\"Hamelech Hamishpat\", \"המלך המשפט\");\r\n }\r\n if (dow === DaysOfWeek.SHABBOS && day > 2 && day < 10) {\r\n addDayNote(\"Shabbos Shuva\", \"שבת שובה\");\r\n }\r\n if (day >= 10) {\r\n dayInfo.noTachnun = true;\r\n }\r\n switch (day) {\r\n case 1:\r\n addDayNote(\"Rosh Hashana\", \"ראש השנה\");\r\n if (dow !== DaysOfWeek.SHABBOS && isDaytime) {\r\n addTefillahNote(\"Tekias Shofar\", \"תקיעת שופר\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote('שיר של יום - פ\"א - למנצח על הגתית');\r\n }\r\n if (isAfternoon) {\r\n addDayNote(\"Tashlich\", \"תשליך\");\r\n }\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n break;\r\n case 2:\r\n addDayNote(\"Rosh Hashana\", \"ראש השנה\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Tekias Shofar\", \"תקיעת שופר\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote('שיר של יום - פ\"א - למנצח על הגתית');\r\n }\r\n if (dow === DaysOfWeek.SUNDAY && isAfternoon) {\r\n addDayNote(\"Tashlich\", \"תשליך\");\r\n }\r\n }\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n break;\r\n case 3:\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n if (isDaytime) {\r\n addDayNote(\"Fast of Tzom Gedalya\", \"צום גדליה\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n }\r\n if (isAfterChatzosHalayla || isMorning) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n addTefillahNote(\"Hamelech Hamishpat\", \"המלך המשפט\");\r\n }\r\n break;\r\n case 4:\r\n if (dow === DaysOfWeek.SUNDAY) {\r\n if (isDaytime) {\r\n addDayNote(\"Fast of Tzom Gedalya\", \"צום גדליה\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n }\r\n if (isAfterChatzosHalayla || isMorning) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n addTefillahNote(\"Hamelech Hamishpat\", \"המלך המשפט\");\r\n } else if (dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"Hamelech Hamishpat\", \"המלך המשפט\");\r\n if (isAfterChatzosHalayla || isMorning) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n }\r\n break;\r\n case 9:\r\n addDayNote(\"Erev Yom Kippur\", \"ערב יום כיפור\");\r\n if (isMorning) {\r\n addTefillahNote(\"No Mizmor L`Sodah\", 'א\"א מזמור לתודה');\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n if (dow === DaysOfWeek.FRIDAY) {\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n }\r\n } else if (isAfternoon) {\r\n addTefillahNote(\"Vidduy\", \"ודוי בעמידה\");\r\n }\r\n if (isDaytime && dow !== DaysOfWeek.FRIDAY) {\r\n addTefillahNote(\"No Avinu Malkeinu\", 'א\"א אבינו מלכנו');\r\n }\r\n dayInfo.noTachnun = true;\r\n break;\r\n case 10:\r\n addDayNote(\"Yom Kippur\", \"יום הכיפורים\");\r\n addDayNote(\"לפני ה' תטהרו\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Yizkor\", \"יזכור\");\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - ל\"ב - לדוד משכיל');\r\n }\r\n }\r\n if (isAfternoon) {\r\n //only Yom Kippur has its own Kriyas Hatorah\r\n addTefillahNote('קה\"ת במנחה סוף פרשת אח\"מ');\r\n }\r\n break;\r\n case 11:\r\n if (isNightTime) {\r\n addDayNote(\"לך אכל בשמחה לחמך כי כבר רצה האלקים את מעשיך\");\r\n }\r\n case 15:\r\n addDayNote(\"First day of Sukkos\", 'יו\"ט ראשון של סוכות');\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"Hoshanos - למען אמתך\", \"הושענות - למען אמתך\");\r\n addTefillahNote(\"Kah Keli\", \"קה קלי\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote('שיר של יום - ע\"ו - למנצח בנגינות מזמור');\r\n }\r\n } else {\r\n addTefillahNote(\"Hoshanos - אום נצורה\", \"הושענות - אום נצורה\");\r\n }\r\n }\r\n break;\r\n case 16:\r\n case 17:\r\n case 18:\r\n case 19:\r\n case 20:\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n if (day === 16 && !israel) {\r\n addDayNote(\"Second day of Sukkos\", \"סוכות - יום טוב שני\");\r\n } else if (!israel) {\r\n addDayNote(\"Chol Hamoed Sukkos\", \"סוכות - חול המועד\");\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n }\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n switch (day) {\r\n case 16:\r\n addTefillahNote(\r\n \"הושענות - \" + (dow === DaysOfWeek.SUNDAY ? \"למען אמתך\" : \"אבן שתיה\")\r\n );\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"שיר של יום - כ\\\"ט - ..הבו לה' בני אלים\");\r\n }\r\n break;\r\n case 17:\r\n addTefillahNote(\r\n (showEnglish ? \"Hoshanos\" : \"הושענות\") +\r\n \" - \" +\r\n (dow === DaysOfWeek.SHABBOS ? \"אום נצורה\" : \"אערוך שועי\")\r\n );\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"שיר של יום - נ' - מזמור לאסף\");\r\n }\r\n break;\r\n case 18:\r\n if (dow === DaysOfWeek.SUNDAY) {\r\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"הושענות\") + \" - \" + \"אערוך שועי\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote(\"שיר של יום - נ' - מזמור לאסף\");\r\n }\r\n } else {\r\n if (dow === DaysOfWeek.TUESDAY) {\r\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"הושענות\") + \" - \" + \"אבן שתיה\");\r\n } else if (dow === DaysOfWeek.THURSDAY) {\r\n addTefillahNote(\r\n (showEnglish ? \"Hoshanos\" : \"הושענות\") + \" - \" + \"אום אני חומה\"\r\n );\r\n } else if (dow === DaysOfWeek.FRIDAY) {\r\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"הושענות\") + \" - \" + \"א-ל למושעות\");\r\n }\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - צ\"ד - ..מי יקום לי..');\r\n }\r\n }\r\n break;\r\n case 19:\r\n addTefillahNote(\r\n (showEnglish ? \"Hoshanos\" : \"הושענות\") +\r\n \" - \" +\r\n (dow === DaysOfWeek.SHABBOS ? \"אום נצורה\" : \"א-ל למושעות\")\r\n );\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n if (dow === DaysOfWeek.MONDAY) {\r\n addTefillahNote('שיר של יום - צ\"ד - ..מי יקום לי..');\r\n } else {\r\n addTefillahNote('שיר של יום - צ\"ד - א-ל נקמות.. ישרי לב');\r\n }\r\n }\r\n break;\r\n case 20:\r\n addTefillahNote(\r\n (showEnglish ? \"Hoshanos\" : \"הושענות\") +\r\n \" - \" +\r\n (dow === DaysOfWeek.SHABBOS ? \"אום נצורה\" : \"אדון המושיע\")\r\n );\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n if (dow === DaysOfWeek.THURSDAY) {\r\n addTefillahNote('שיר של יום - פ\"א - למנצח על הגתית');\r\n } else {\r\n addTefillahNote('שיר של יום - צ\"ד - א-ל נקמות.. ישרי לב');\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n case 21:\r\n addDayNote(\"Hoshana Raba\", \"הושעה רבה\");\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n if (isNightTime) {\r\n addTefillahNote(\"Mishneh Torah\", \"משנה תורה\");\r\n } else {\r\n addTefillahNote(\"Hoshanos\", \"הושענות\");\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n if (showGaonShirShelYom) {\r\n if (dow === DaysOfWeek.FRIDAY) {\r\n addTefillahNote('שיר של יום - פ\"ב - מזמור לאסף');\r\n } else {\r\n addTefillahNote('שיר של יום - פ\"א - למנצח על הגתית');\r\n }\r\n }\r\n }\r\n break;\r\n case 22:\r\n addDayNote(\"Shmini Atzeres\", \"שמיני עצרת\");\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n if (israel) {\r\n addDayNote(\"Simchas Torah\", \"שמחת תורה\");\r\n addTefillahNote(\"Hakafos\", \"הקפות\");\r\n }\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n addTefillahNote(\"Yizkor\", \"יזכור\");\r\n addTefillahNote(\"Tefilas Geshem\", \"תפילת גשם\");\r\n addTefillahNote(\"משיב הרוח ומוריד הגשם\");\r\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - י\"ב - למנצח על השמינית');\r\n }\r\n }\r\n break;\r\n }\r\n if (day === 23) {\r\n if (!israel) {\r\n addDayNote(\"Simchas Torah\", \"שמחת תורה\");\r\n addTefillahNote(\"Ya`aleh V`yavo\", \"יעלה ויבא\");\r\n addTefillahNote(\"Hakafos\", \"הקפות\");\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n } else {\r\n addDayNote(\"Issru Chag\", \"איסרו חג\");\r\n if (isNightTime) {\r\n addDayNote(\"א גוטען ווינטער\", \"חורף טוב\");\r\n } else if (dow !== DaysOfWeek.SHABBOS && isMorning) {\r\n noLaminatzeach();\r\n }\r\n }\r\n } else if (dow === DaysOfWeek.SHABBOS && [15, 17, 18, 19, 20].includes(day)) {\r\n addTefillahNote(\"Megilas Koheles\", \"מגילת קהלת\");\r\n }\r\n if (day < 22) {\r\n addTefillahNote(\"L`Dovid Hashem Ori\", \"לדוד ה\");\r\n } else if (day > 22) {\r\n addTefillahNote(\"Mashiv Haruach U`Morid Hageshem\", \"משיב הרוח ומוריד הגשם\");\r\n }\r\n break;\r\n case m.CHESHVAN:\r\n if (\r\n isDaytime &&\r\n ((dow === DaysOfWeek.MONDAY && day > 3 && day < 13) ||\r\n (dow === DaysOfWeek.THURSDAY && day > 6 && day < 14) ||\r\n (dow === DaysOfWeek.MONDAY && day > 10 && day < 18))\r\n ) {\r\n addTefillahNote(\"Ba`Hab\", 'סליחות בה\"ב');\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n }\r\n if (day <= 22) {\r\n addTefillahNote(\"Mashiv Haruach U`Morid Hageshem\", \"משיב הרוח ומוריד הגשם\");\r\n }\r\n if (\r\n ((location.Israel && day >= 7) || (!location.Israel && showVsainTalUmatarInChul)) &&\r\n dow !== DaysOfWeek.SHABBOS\r\n ) {\r\n addTefillahNote(\"V`sain Tal U`matar\", \"ותן טל ומטר\");\r\n }\r\n break;\r\n case m.KISLEV:\r\n if (\r\n ((location.Israel && day <= 7) || (!location.Israel && showVsainTalUmatarInChul)) &&\r\n dow !== DaysOfWeek.SHABBOS\r\n ) {\r\n addTefillahNote(\"V`sain Tal U`matar\", \"ותן טל ומטר\");\r\n } else if (day === 24 && dow !== DaysOfWeek.SHABBOS && isAfternoon) {\r\n dayInfo.noTachnun = true;\r\n } else if (day >= 25) {\r\n dayInfo.noTachnun = true;\r\n addDayNote(\"Chanukah\", \"חנוכה\");\r\n addTefillahNote(\"Al Hanissim\", \"על הניסים\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) noLaminatzeach();\r\n if (showGaonShirShelYom && day !== 30 && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"שיר של יום - ל' - מזמור שיר חנוכת הבית\");\r\n }\r\n }\r\n }\r\n break;\r\n case m.TEVES:\r\n if (!location.Israel && showVsainTalUmatarInChul && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote(\"V`sain Tal U`matar\", \"ותן טל ומטר\");\r\n }\r\n if (day <= (jDate.isShortKislev(jdate.Year) ? 3 : 2)) {\r\n dayInfo.noTachnun = true;\r\n addDayNote(\"Chanukah\", \"חנוכה\");\r\n addTefillahNote(\"Al Hanissim\", \"על הניסים\");\r\n if (isDaytime) {\r\n addTefillahNote(\"Full Hallel\", \"הלל השלם\");\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n if (day !== 1 && showGaonShirShelYom) {\r\n addTefillahNote(\"שיר של יום - ל' - מזמור שיר חנוכת הבית\");\r\n }\r\n }\r\n }\r\n } else if (day === 10 && isDaytime) {\r\n addDayNote(\"Fast of Asara B`Teves\", \"עשרה בטבת\");\r\n if (isMorning) {\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n }\r\n break;\r\n case m.SHVAT:\r\n if (day === 14 && isAfternoon) dayInfo.noTachnun = true;\r\n if (day === 15) {\r\n dayInfo.noTachnun = true;\r\n addDayNote(\"Tu B`Shvat\", 'ט\"ו בשבט');\r\n }\r\n break;\r\n case m.ADAR:\r\n case m.ADAR_SHEINI:\r\n if (month === m.ADAR && isLeapYear) {\r\n //Adar Rishon in a leap year\r\n if (day === 13 && isAfternoon) dayInfo.noTachnun = true;\r\n if ([14, 15].includes(day)) {\r\n addDayNote(\r\n day === 14\r\n ? showEnglish\r\n ? \"Purim Katan\"\r\n : \"פורים קטן\"\r\n : showEnglish\r\n ? \"Shushan Purim Katan\"\r\n : \"שושן פורים קטן\"\r\n );\r\n if (isDaytime) {\r\n dayInfo.noTachnun = true;\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n }\r\n }\r\n } else {\r\n //The \"real\" Adar: the only one in a non-leap-year or Adar Sheini\r\n if (\r\n isDaytime &&\r\n ((day === 11 && dow === DaysOfWeek.THURSDAY) ||\r\n (day === 13 && dow !== DaysOfWeek.SHABBOS))\r\n ) {\r\n if (isMorning) {\r\n addDayNote(\"Fast of Ta`anis Esther\", \"תענית אסתר\");\r\n addTefillahNote(\"Selichos\", \"סליחות\");\r\n }\r\n addTefillahNote(\"Avinu Malkeinu\", \"אבינו מלכנו\");\r\n addTefillahNote(\"Aneinu\", \"עננו\");\r\n } else {\r\n //Only ירושלים says על הניסים on ט\"ו\r\n const isYerushalayim = location.Name === \"Jerusalem\" || location.NameHebrew === \"ירושלים\";\r\n if (day === 14) {\r\n dayInfo.noTachnun = true;\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n //On a Purim Meshulash in Yerushalayim, מגילת אסתר is on י\"ד\r\n if (!isYerushalayim || dow === DaysOfWeek.FRIDAY) {\r\n addDayNote(\"Megilas Esther\", \"מגילת אסתר\");\r\n if (!isYerushalayim) {\r\n addDayNote(\"Purim\", \"פורים\");\r\n addTefillahNote(\"Al Hanissim\", \"על הניסים\");\r\n if (showGaonShirShelYom) {\r\n addTefillahNote('שיר של יום - כ\"ב - למנצח על אילת השחר');\r\n }\r\n } else {\r\n //On a Purim Meshulash in Yerushalayim, מתנות לאביונים is on י\"ד\r\n addDayNote(\"Matanos LeEvyonim\", \"מתנות לאביונים\");\r\n }\r\n } else {\r\n addDayNote(\"Purim D`Prazim\", \"פורים דפרזים\");\r\n }\r\n } else if (day === 15) {\r\n dayInfo.noTachnun = true;\r\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\r\n noLaminatzeach();\r\n }\r\n if (isYerushalayim) {\r\n addDayNote(\"Purim\", \"פורים\");\r\n addTefillahNote(\"Al Hanissim\", \"על הניסים\");\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n addDayNote(\"Megilas Esther\", \"מגילת אסתר\");\r\n }\r\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\r\n addTefillahNote('שיר של יום - כ\"ב - למנצח על אילת השחר');\r\n }\r\n } else if (\r\n [\r\n \"טבריה\",\r\n \"יפו\",\r\n \"עכו\",\r\n \"צפת\",\r\n \"באר שבע\",\r\n \"חיפה\",\r\n \"באר שבע\",\r\n \"בית שאן\",\r\n \"לוד\",\r\n ].includes(location.Name)\r\n ) {\r\n addDayNote(\"Purim D`Mukafin\", \"פורים דמוקפין\");\r\n if (dow !== DaysOfWeek.SHABBOS) {\r\n addDayNote(\"(Megilas Esther)\", \"(מגילת אסתר)\");\r\n }\r\n } else {\r\n addDayNote(\"Shushan Purim\", \"שושן פורים\");\r\n }\r\n } else if (day === 16 && isYerushalayim && dow === DaysOfWeek.SUNDAY) {\r\n addDayNote(\"Purim Seuda and Mishloach Manos\", \"סעודת פורים ומשלוח מנות\");\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n}\r\n\r\nfunction noLaminatzeach() {\r\n addTefillahNote(\"No Laminatzeach\", 'א\"א למנצח');\r\n}\r\n\r\nfunction addDayNote(englishOrDefaultText: string, hebrewText?: string) {\r\n const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;\r\n if (!dayNotes.includes(note)) {\r\n dayNotes.push(note);\r\n }\r\n}\r\n\r\nfunction addTefillahNote(englishOrDefaultText: string, hebrewText?: string) {\r\n const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;\r\n if (!tefillahNotes.includes(note)) {\r\n tefillahNotes.push(note);\r\n }\r\n}\r\n\r\nfunction hasOwnKriyasHatorah(jdate: jDate, location: Location) {\r\n const { Month, Day, DayOfWeek } = jdate;\r\n //Rosh chodesh\r\n if (Day === 1 || Day === 30) {\r\n return true;\r\n }\r\n switch (Month) {\r\n case 1:\r\n return Day > 14 && Day < 22;\r\n case 4:\r\n return Day === 17 || (DayOfWeek === 0 && Day === 18);\r\n case 5:\r\n return Day === 9 || (DayOfWeek === 0 && Day === 10);\r\n case 7:\r\n return [3, 16, 17, 18, 19, 20, 21].includes(Day) || (DayOfWeek === 0 && Day === 4);\r\n case 9:\r\n return Day >= 25;\r\n case 10:\r\n return Day === 10 || Day < 3 || (Day === 3 && jDate.isShortKislev(jdate.Year));\r\n case 12:\r\n case 13:\r\n return (\r\n Month === (jDate.isJdLeapY(jdate.Year) ? m.ADAR_SHEINI : m.ADAR) &&\r\n (Day === 13 || Day === (location.Name === \"ירושלים\" ? 15 : 14))\r\n );\r\n default:\r\n return false;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["c:\\repos_git\\jcal-zmanim\\dist\\index.cjs"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","src_exports","Dafyomi","DaysOfWeek","DaysOfWeekEng","DaysOfWeekHeb","JewishMonthsEng","JewishMonthsHeb","JewishMonthsNames","Location","Locations","Molad","PirkeiAvos","SecularMonthsEng","Sedra","Utils","ZmanTypeIds","ZmanTypes","Zmanim","ZmanimUtils","closestDistanceMatch","closestNameMatch","findLocation","getNotifications","getZmanType","jDate","module","exports","_Sedra","jd","israel2","Month","Day","sedras","sedraList","sedraArray","sedraOrder","getSedraOrder","Year","absDate","Abs","index","weekNum","getDayOnOrBefore","firstSatInYear","length","indexLast","i","toString","map","s","eng","join","toStringHeb","heb","day_of_week","date","year","lastCalculatedYear","israel","longCheshvon","isLongCheshvan","shortKislev","isShortKislev","roshHashana","absJd","roshHashanaDOW","Math","abs","yearType","sArray","isJdLeapY","shabbos_short","shabbos_long","mon_short","mon_long","thu_normal_Israel","thu_normal","thu_long","shabbos_short_leap","shabbos_long_leap","mon_short_leap_Israel","mon_short_leap","mon_long_leap_Israel","mon_long_leap","thu_short_leap","thu_long_leap","retobj","_PirkeiAvos","getPrakim","getDayOfWeek","jMonth","jDay","_get1stPerek","_ellul","jYear","pes1","shb1","cShb","toInt","prk","prakim","day1","day1DOW","shabbos1Day","shabbos1Date","_Dafyomi","getDaf","jdate","absoluteDate","dafcnt","cno","dno","osday","nsday","total","count","j","blatt","absSd","Date","masechtaList","daf","masechet","d","toJewishNumber","_yearCache","JS_START_DATE_ABS","MS_PER_DAY","JS_START_OFFSET","getTimezoneOffset","_jDate","arg","month","day","NaN","arguments","fromAbs","isValidDate","Array","isArray","isString","isNumber","argObj","absolute","ymd","getDate","sdFromAbs","DayOfWeek","addDays","days","addMonths","months","miy","monthsJYear","daysJMonth","addYears","years","addSecularMonths","secDate","valueOf","setMonth","getMonth","addSecularYears","setFullYear","getFullYear","diffDays","diffMonths","diffFullMonths","diffYears","diff","diffFullYears","hideDayOfWeek","dontCapitalize","toSuffixed","monthName","toShortstring","showDow","showYear","getDayOfOmer","dayOfOmer","first","isYomTovOrCholHamoed","isYomTov","includes","isErevYomTov","has","hasCandleLighting","dow","hasEiruvTavshilin","getCandleLighting","location","nullIfNoCandles","getSedra","getPirkeiAvos","getSunriseSunset","ignoreElevation","getSunTimes","getChatzos","getShaaZmanis","offset","getDafYomi","getDafyomiHeb","toJDate","now","absDay","ms","numFullDays","floor","dayInYear","m","tDays","daysSinceStart","cached","find","y","elapsed","parts","hours","conjDay","conjParts","altDay","push","daysJYear","_Zmanim","considerElevation","String","sunrise","sunset","zenithDeg","zenithMin","lonHour","longitude","latitude","cosLat","sinLat","cosZen","sinDec","cosDec","xmRise","xmSet","xlRise","xlSet","aRise","aSet","ahrRise","ahrSet","hRise","hSet","tRise","tSet","utRise","utSet","dayOfYear","earthRadius","zenithAtElevation","degToDec","radToDeg","acos","Elevation","cos","Longitude","Latitude","sin","M","L","atan","tan","sqrt","adj","timeAdj","UTCOffset","hour","getChatzosFromSuntimes","sunTimes","rise","set","isNaN","minute","chatz","totalSeconds","addSeconds","getShaaZmanisFromSunTimes","addMinutes","getShaaZmanisMga","minutes","getCandleLightingFromSunTimes","getCandleLightingFromSunset","CandleLighting","isLeap","isSecularLeapYear","yearDay","deg","min","x","rad","time","minFloat","sec","round","isDST","fixTime","second","__DEV__","process","env","NODE_ENV","freeze","SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SHABBOS","NISSAN","IYAR","SIVAN","TAMUZ","AV","ELLUL","TISHREI","CHESHVAN","KISLEV","TEVES","SHVAT","ADAR","ADAR_SHEINI","_Utils","number","n","retval","jsd","jhd","jtd","slice","toStringDate","getDay","toShortStringDate","monthFirst","dayNum","monthNum","num","t","suffix","getSdDOW","result","seconds","timeDiff","earlierTime","laterTime","showNegative","earlySec","laterSec","sign","totalMinutes","timeFromDate","sdate","getHours","getMinutes","getSeconds","isTimeAfter","beforeTime","afterTime","getTimeIntervalTextStringHeb","trunc","getTimeIntervalTextString","getOmerNusach","nusach","weeks","txt","jsnum","jtnum","getTimeString","army","roundUp","ceil","currUtcOffset","jan","jul","max","isDateDST","Israel","isIsrael_DST","isUSA_DST","firstDOW","targetDate","lastFriday","lastSunday","getSdNowInIsrael","israelTimeOffset","setHours","addDaysToSdate","isSameSdate","sdate1","sdate2","toDateString","isSameJdate","jdate1","jdate2","isSameJMonth","isSameSMonth","isAfterSunset","shkia","nowAtLocation","setDate","float","bothDates","thing","Number","o","arr","setDefault","paramValue","defValue","range","start","end","startNumber","endNumber","v","log","optionalItems","console","warn","error","_Location","nameHeb","utcOffset","elevation","candleLighting","Name","NameHebrew","getCandles","clone","special","names","loclc","toLowerCase","city","sp","spi","indexOf","getJerusalem","getLakewood","import_closest_match","require","locations_default","il","tz","el","lat","lon","cl","l","sort","a","b","justNames","split","distancePointToPoint","point1","point2","radlat1","PI","radlat2","theta","radtheta","dist","point","curr","val","distance","nameOrCoordinates","exactNameMatch","cityOnlyNameMatch","exactCoordinateMatch","ChatzosLayla","Alos90","Alos72","TalisTefillin","NetzAtElevation","NetzMishor","szksMga","szksGra","sztMga","sztGra","chatzosDay","minGed","minKet","plag","shkiaAtSeaLevel","shkiaElevation","tzais45","tzais50","tzais72","rabbeinuTamZmanios","rabbeinuTamZmaniosMga","SofZmanEatingChometz","SofZmanBurnChometz","id","idOrName","zt","_Molad","getMolad","totalMonths","partsElapsed","hoursElapsed","monthAdj","chalakim","getString","molad","zmanim","isNight","str","getStringHeb","replace","WhichDaysFlags","YOMTOV","_ZmanimUtils","getZmanTimes","zmanTypes","mem","zmanTimesCache","z","zmanTimes","whichDay","getWhichDays","suntimesMishor","sunriseMishor","sunsetMishor","mishorNeg90","chatzos","shaaZmanis","shaaZmanisMga","suntimes","zmanType","whichDaysFlags","getBasicShulZmanim","chatzosHayom","chatzosHalayla","alos","getAllZmanim","dayNotes","tefillahNotes","showEnglish","dayInfo","showGaonShirShelYom","english","showGaonShir","showDafYomi","isAfterChatzosHayom","isAfterChatzosHalayla","isAfterAlos","isAfterShkia","isDaytime","isNightTime","isNotBeinHasmashos","isMorning","isAfternoon","isLeapYear","noTachnun","getShabbosNotifications","getWeekDayNotifications","getAroundTheYearNotifications","addTefillahNote","addDayNote","dayOfSefirah","Set","sedra","nextMonth","hasOwnKriyasHatorah","noLaminatzeach","showVsainTalUmatarInChul","startVsainTalUmatar","startedSelichos","daysToRH","dowRH","isYerushalayim","englishOrDefaultText","hebrewText","note"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n Dafyomi: () => Dafyomi,\n DaysOfWeek: () => DaysOfWeek,\n DaysOfWeekEng: () => DaysOfWeekEng,\n DaysOfWeekHeb: () => DaysOfWeekHeb,\n JewishMonthsEng: () => JewishMonthsEng,\n JewishMonthsHeb: () => JewishMonthsHeb,\n JewishMonthsNames: () => JewishMonthsNames,\n Location: () => Location,\n Locations: () => Locations,\n Molad: () => Molad,\n PirkeiAvos: () => PirkeiAvos,\n SecularMonthsEng: () => SecularMonthsEng,\n Sedra: () => Sedra,\n Utils: () => Utils,\n ZmanTypeIds: () => ZmanTypeIds,\n ZmanTypes: () => ZmanTypes,\n Zmanim: () => Zmanim,\n ZmanimUtils: () => ZmanimUtils,\n closestDistanceMatch: () => closestDistanceMatch,\n closestNameMatch: () => closestNameMatch,\n findLocation: () => findLocation,\n getNotifications: () => getNotifications,\n getZmanType: () => getZmanType,\n jDate: () => jDate\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/JCal/Sedra.ts\nvar _Sedra = class _Sedra {\n /**\n * @param {jDate} jd\n * @param {boolean} israel\n */\n constructor(jd, israel2) {\n if (jd.Month === 7 && jd.Day >= 15 && jd.Day < (israel2 ? 23 : 24)) {\n this.sedras = [_Sedra.sedraList[53]];\n return;\n }\n let sedraArray = [], sedraOrder = _Sedra.getSedraOrder(jd.Year, israel2), absDate = jd.Abs, index, weekNum;\n absDate = _Sedra.getDayOnOrBefore(6, absDate + 6);\n weekNum = (absDate - sedraOrder.firstSatInYear) / 7;\n if (sedraOrder.sedraArray && weekNum >= sedraOrder.sedraArray.length) {\n const indexLast = sedraOrder.sedraArray[sedraOrder.sedraArray.length - 1];\n if (indexLast < 0) {\n index = -indexLast + 2;\n } else {\n index = indexLast + 1;\n }\n } else {\n index = sedraOrder.sedraArray ? sedraOrder.sedraArray[weekNum] : -1;\n }\n if (index >= 0) {\n sedraArray = [_Sedra.sedraList[index]];\n } else {\n const i = -index;\n sedraArray = [_Sedra.sedraList[i], _Sedra.sedraList[i + 1]];\n }\n this.sedras = sedraArray;\n }\n /**\n * Gets the sedra/s as a string. If there are two, they are seperated by a \" - \"\n */\n toString() {\n return this.sedras.map((s) => s.eng).join(\" - \");\n }\n /**\n * Gets the sedra/s as a string. If there are two, they are seperated by a \" - \"\n */\n toStringHeb() {\n return this.sedras.map((s) => s.heb).join(\" - \");\n }\n static getDayOnOrBefore(day_of_week, date) {\n return date - (date - day_of_week) % 7;\n }\n static getSedraOrder(year, israel2) {\n if (_Sedra.lastCalculatedYear != null && _Sedra.lastCalculatedYear.year === year && _Sedra.lastCalculatedYear.israel === israel2) {\n return _Sedra.lastCalculatedYear;\n }\n const longCheshvon = jDate.isLongCheshvan(year), shortKislev = jDate.isShortKislev(year), roshHashana = jDate.absJd(year, 7, 1), roshHashanaDOW = Math.abs(roshHashana % 7), firstSatInYear = _Sedra.getDayOnOrBefore(6, roshHashana + 6);\n let yearType, sArray;\n if (longCheshvon && !shortKislev)\n yearType = \"complete\";\n else if (!longCheshvon && shortKislev)\n yearType = \"incomplete\";\n else\n yearType = \"regular\";\n if (!jDate.isJdLeapY(year)) {\n switch (roshHashanaDOW) {\n case 6:\n if (yearType === \"incomplete\") {\n sArray = _Sedra.shabbos_short;\n } else if (yearType === \"complete\") {\n sArray = _Sedra.shabbos_long;\n }\n break;\n case 1:\n if (yearType === \"incomplete\") {\n sArray = _Sedra.mon_short;\n } else if (yearType === \"complete\") {\n sArray = israel2 ? _Sedra.mon_short : _Sedra.mon_long;\n }\n break;\n case 2:\n if (yearType === \"regular\") {\n sArray = israel2 ? _Sedra.mon_short : _Sedra.mon_long;\n }\n break;\n case 4:\n if (yearType === \"regular\") {\n sArray = israel2 ? _Sedra.thu_normal_Israel : _Sedra.thu_normal;\n } else if (yearType === \"complete\") {\n sArray = _Sedra.thu_long;\n }\n break;\n default:\n throw \"improper sedra year type calculated.\";\n }\n } else {\n switch (roshHashanaDOW) {\n case 6:\n if (yearType === \"incomplete\") {\n sArray = _Sedra.shabbos_short_leap;\n } else if (yearType === \"complete\") {\n sArray = israel2 ? _Sedra.shabbos_short_leap : _Sedra.shabbos_long_leap;\n }\n break;\n case 1:\n if (yearType === \"incomplete\") {\n sArray = israel2 ? _Sedra.mon_short_leap_Israel : _Sedra.mon_short_leap;\n } else if (yearType === \"complete\") {\n sArray = israel2 ? _Sedra.mon_long_leap_Israel : _Sedra.mon_long_leap;\n }\n break;\n case 2:\n if (yearType === \"regular\") {\n sArray = israel2 ? _Sedra.mon_long_leap_Israel : _Sedra.mon_long_leap;\n }\n break;\n case 4:\n if (yearType === \"incomplete\") {\n sArray = _Sedra.thu_short_leap;\n } else if (yearType === \"complete\") {\n sArray = _Sedra.thu_long_leap;\n }\n break;\n default:\n throw \"improper sedra year type calculated.\";\n }\n }\n const retobj = {\n firstSatInYear,\n sedraArray: sArray,\n year,\n israel: israel2\n };\n _Sedra.lastCalculatedYear = retobj;\n return retobj;\n }\n};\n_Sedra.lastCalculatedYear = null;\n_Sedra.sedraList = [{ eng: \"Bereshis\", heb: \"\\u05D1\\u05E8\\u05D0\\u05E9\\u05D9\\u05EA\" }, { eng: \"Noach\", heb: \"\\u05E0\\u05D7\" }, { eng: \"Lech-Lecha\", heb: \"\\u05DC\\u05DA \\u05DC\\u05DA\" }, { eng: \"Vayera\", heb: \"\\u05D5\\u05D9\\u05E8\\u05D0\" }, { eng: \"Chayei Sara\", heb: \"\\u05D7\\u05D9\\u05D9 \\u05E9\\u05E8\\u05D4\" }, { eng: \"Toldos\", heb: \"\\u05EA\\u05D5\\u05DC\\u05D3\\u05D5\\u05EA\" }, { eng: \"Vayetzei\", heb: \"\\u05D5\\u05D9\\u05E6\\u05D0\" }, { eng: \"Vayishlach\", heb: \"\\u05D5\\u05D9\\u05E9\\u05DC\\u05D7\" }, { eng: \"Vayeishev\", heb: \"\\u05D5\\u05D9\\u05E9\\u05D1\" }, { eng: \"Mikeitz\", heb: \"\\u05DE\\u05E7\\u05E5\" }, { eng: \"Vayigash\", heb: \"\\u05D5\\u05D9\\u05D2\\u05E9\" }, { eng: \"Vayechi\", heb: \"\\u05D5\\u05D9\\u05D7\\u05D9\" }, { eng: \"Shemos\", heb: \"\\u05E9\\u05DE\\u05D5\\u05EA\" }, { eng: \"Va'era\", heb: \"\\u05D5\\u05D0\\u05E8\\u05D0\" }, { eng: \"Bo\", heb: \"\\u05D1\\u05D0\" }, { eng: \"Beshalach\", heb: \"\\u05D1\\u05E9\\u05DC\\u05D7\" }, { eng: \"Yisro\", heb: \"\\u05D9\\u05EA\\u05E8\\u05D5\" }, { eng: \"Mishpatim\", heb: \"\\u05DE\\u05E9\\u05E4\\u05D8\\u05D9\\u05DD\" }, { eng: \"Terumah\", heb: \"\\u05EA\\u05E8\\u05D5\\u05DE\\u05D4\" }, { eng: \"Tetzaveh\", heb: \"\\u05EA\\u05E6\\u05D5\\u05D4\" }, { eng: \"Ki Sisa\", heb: \"\\u05DB\\u05D9 \\u05EA\\u05E9\\u05D0\" }, { eng: \"Vayakhel\", heb: \"\\u05D5\\u05D9\\u05E7\\u05D4\\u05DC\" }, { eng: \"Pekudei\", heb: \"\\u05E4\\u05E7\\u05D5\\u05D3\\u05D9\" }, { eng: \"Vayikra\", heb: \"\\u05D5\\u05D9\\u05E7\\u05E8\\u05D0\" }, { eng: \"Tzav\", heb: \"\\u05E6\\u05D5\" }, { eng: \"Shmini\", heb: \"\\u05E9\\u05DE\\u05D9\\u05E0\\u05D9\" }, { eng: \"Tazria\", heb: \"\\u05EA\\u05D6\\u05E8\\u05D9\\u05E2\" }, { eng: \"Metzora\", heb: \"\\u05DE\\u05E6\\u05D5\\u05E8\\u05E2\" }, { eng: \"Achrei Mos\", heb: \"\\u05D0\\u05D7\\u05E8\\u05D9 \\u05DE\\u05D5\\u05EA\" }, { eng: \"Kedoshim\", heb: \"\\u05E7\\u05D3\\u05D5\\u05E9\\u05D9\\u05DD\" }, { eng: \"Emor\", heb: \"\\u05D0\\u05DE\\u05D5\\u05E8\" }, { eng: \"Behar\", heb: \"\\u05D1\\u05D4\\u05E8\" }, { eng: \"Bechukosai\", heb: \"\\u05D1\\u05D7\\u05E7\\u05D5\\u05EA\\u05D9\" }, { eng: \"Bamidbar\", heb: \"\\u05D1\\u05DE\\u05D3\\u05D1\\u05E8\" }, { eng: \"Nasso\", heb: \"\\u05E0\\u05E9\\u05D0\" }, { eng: \"Beha'aloscha\", heb: \"\\u05D1\\u05D4\\u05E2\\u05DC\\u05EA\\u05DA\" }, { eng: \"Sh'lach\", heb: \"\\u05E9\\u05DC\\u05D7\" }, { eng: \"Korach\", heb: \"\\u05E7\\u05E8\\u05D7\" }, { eng: \"Chukas\", heb: \"\\u05D7\\u05E7\\u05EA\" }, { eng: \"Balak\", heb: \"\\u05D1\\u05DC\\u05E7\" }, { eng: \"Pinchas\", heb: \"\\u05E4\\u05D9\\u05E0\\u05D7\\u05E1\" }, { eng: \"Matos\", heb: \"\\u05DE\\u05D8\\u05D5\\u05EA\" }, { eng: \"Masei\", heb: \"\\u05DE\\u05E1\\u05E2\\u05D9\" }, { eng: \"Devarim\", heb: \"\\u05D3\\u05D1\\u05E8\\u05D9\\u05DD\" }, { eng: \"Va'eschanan\", heb: \"\\u05D5\\u05D0\\u05EA\\u05D7\\u05E0\\u05DF\" }, { eng: \"Eikev\", heb: \"\\u05E2\\u05E7\\u05D1\" }, { eng: \"Re'eh\", heb: \"\\u05E8\\u05D0\\u05D4\" }, { eng: \"Shoftim\", heb: \"\\u05E9\\u05D5\\u05E4\\u05D8\\u05D9\\u05DD\" }, { eng: \"Ki Seitzei\", heb: \"\\u05DB\\u05D9 \\u05EA\\u05E6\\u05D0\" }, { eng: \"Ki Savo\", heb: \"\\u05DB\\u05D9 \\u05EA\\u05D1\\u05D0\" }, { eng: \"Nitzavim\", heb: \"\\u05E0\\u05E6\\u05D1\\u05D9\\u05DD\" }, { eng: \"Vayeilech\", heb: \"\\u05D5\\u05D9\\u05DC\\u05DA\" }, { eng: \"Ha'Azinu\", heb: \"\\u05D4\\u05D0\\u05D6\\u05D9\\u05E0\\u05D5\" }, { eng: \"Vezos Habracha\", heb: \"\\u05D5\\u05D6\\u05D0\\u05EA \\u05D4\\u05D1\\u05E8\\u05DB\\u05D4\" }];\n_Sedra.shabbos_short = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.shabbos_long = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.mon_short = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.mon_long = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.thu_normal = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.thu_normal_Israel = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -21, 23, 24, 25, 25, -26, -28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.thu_long = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, -26, -28, 30, -31, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.shabbos_short_leap = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.shabbos_long_leap = [52, 52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.mon_short_leap = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37, -38, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.mon_short_leap_Israel = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, -50];\n_Sedra.mon_long_leap = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -41, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.mon_long_leap_Israel = [51, 52, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.thu_short_leap = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];\n_Sedra.thu_long_leap = [52, 53, 53, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -50];\nvar Sedra = _Sedra;\n\n// src/JCal/PirkeiAvos.ts\nvar _PirkeiAvos = class _PirkeiAvos {\n static getPrakim(jd, israel2) {\n if (jd.getDayOfWeek() !== 6) {\n return [];\n }\n const jMonth = jd.Month, jDay = jd.Day;\n if (jMonth === 1 && jDay > (israel2 ? 21 : 22) || //All Shabbosim through Iyar, Sivan, Tamuz, Av - besides for the day/s of Shavuos and Tisha B'Av\n jMonth > 1 && jMonth < 6 && !(jMonth === 3 && jDay === 6 || !israel2 && jMonth === 3 && jDay === 7) && !(jMonth === 5 && jDay === 9)) {\n return [_PirkeiAvos._get1stPerek(jd, israel2)];\n } else if (jMonth === 6) {\n return _PirkeiAvos._ellul(jd, israel2);\n } else {\n return [];\n }\n }\n};\n_PirkeiAvos._get1stPerek = function(jd, israel2) {\n const jYear = jd.Year, jMonth = jd.Month, jDay = jd.Day, pes1 = new jDate(jYear, 1, 15), shb1 = (israel2 ? 7 : 8) + (6 - pes1.getDayOfWeek()), cShb = jMonth === 1 && jDay === shb1 + 15 ? 1 : Utils.toInt((jd.Abs - (pes1.Abs + shb1)) / 7) + 1;\n let prk = cShb % 6;\n if (prk === 0) prk = 6;\n if (!israel2 && pes1.getDayOfWeek() === 4 && (jMonth > 3 || jMonth === 3 && jDay > 6)) {\n prk = prk === 1 ? 6 : prk - 1;\n }\n if (pes1.getDayOfWeek() === 6 && (jMonth > 5 || jMonth === 5 && jDay > 9)) {\n prk = prk === 1 ? 6 : prk - 1;\n }\n return prk;\n};\n_PirkeiAvos._ellul = function(jd, israel2) {\n let prakim;\n const jYear = jd.Year, jDay = jd.Day, day1 = new jDate(jYear, 6, 1, jd.Abs - jd.Day + 1), day1DOW = day1.getDayOfWeek(), shabbos1Day = day1DOW === 6 ? 1 : 6 - (day1DOW + 6) % 6 + 1, shabbos1Date = new jDate(jYear, 6, shabbos1Day, day1.Abs + shabbos1Day - 1), cShb = jDay === shabbos1Day ? 1 : Utils.toInt((jDay - shabbos1Day) / 7) + 1;\n switch (_PirkeiAvos._get1stPerek(shabbos1Date, israel2)) {\n case 1:\n switch (cShb) {\n case 1:\n prakim = [1];\n break;\n case 2:\n prakim = [2];\n break;\n case 3:\n prakim = [3, 4];\n break;\n case 4:\n prakim = [5, 6];\n break;\n }\n break;\n case 2:\n switch (cShb) {\n case 1:\n prakim = [2];\n break;\n case 2:\n prakim = [3];\n break;\n case 3:\n prakim = [4];\n break;\n case 4:\n prakim = [5, 6];\n break;\n }\n break;\n case 3:\n switch (cShb) {\n case 1:\n prakim = [3];\n break;\n case 2:\n prakim = [4];\n break;\n case 3:\n prakim = [5];\n break;\n case 4:\n prakim = [6];\n break;\n }\n break;\n case 4:\n switch (cShb) {\n case 1:\n prakim = [4, 5];\n break;\n case 2:\n prakim = [6, 1];\n break;\n case 3:\n prakim = [2, 3];\n break;\n case 4:\n prakim = [4, 5, 6];\n break;\n }\n break;\n case 5:\n switch (cShb) {\n case 1:\n prakim = [5, 6];\n break;\n case 2:\n prakim = [1, 2];\n break;\n case 3:\n prakim = [3, 4];\n break;\n case 4:\n prakim = [5, 6];\n break;\n }\n break;\n case 6:\n switch (cShb) {\n case 1:\n prakim = [6];\n break;\n case 2:\n prakim = [1, 2];\n break;\n case 3:\n prakim = [3, 4];\n break;\n case 4:\n prakim = [5, 6];\n break;\n }\n break;\n }\n return prakim || [];\n};\nvar PirkeiAvos = _PirkeiAvos;\n\n// src/JCal/Dafyomi.ts\nvar _Dafyomi = class _Dafyomi {\n static getDaf(jdate) {\n const absoluteDate = jdate.Abs;\n let dafcnt = 40, cno, dno, osday, nsday, total, count, j, blatt;\n osday = jDate.absSd(new Date(1923, 8, 11));\n nsday = jDate.absSd(new Date(1975, 5, 24));\n if (absoluteDate < osday)\n return null;\n if (absoluteDate >= nsday) {\n cno = 8 + Utils.toInt((absoluteDate - nsday) / 2711);\n dno = (absoluteDate - nsday) % 2711;\n } else {\n cno = 1 + Utils.toInt((absoluteDate - osday) / 2702);\n dno = Utils.toInt((absoluteDate - osday) / 2702);\n }\n total = blatt = 0;\n count = -1;\n if (cno <= 7)\n _Dafyomi.masechtaList[4].daf = 13;\n else\n _Dafyomi.masechtaList[4].daf = 22;\n j = 0;\n while (j < dafcnt) {\n count++;\n total = total + _Dafyomi.masechtaList[j].daf - 1;\n if (dno < total) {\n blatt = _Dafyomi.masechtaList[j].daf + 1 - (total - dno);\n switch (count) {\n case 36:\n blatt = blatt + 21;\n break;\n case 37:\n blatt = blatt + 24;\n break;\n case 38:\n blatt = blatt + 33;\n break;\n default:\n break;\n }\n j = 1 + dafcnt;\n }\n j++;\n }\n return {\n masechet: _Dafyomi.masechtaList[count],\n daf: blatt\n };\n }\n // Returns the name of the Masechta and daf number in English, For example: Sukkah, Daf 3\n static toString(jd) {\n const d = _Dafyomi.getDaf(jd);\n if (d !== null) {\n return d.masechet.eng + \", Daf \" + d.daf.toString();\n }\n }\n //Returns the name of the Masechta and daf number in Hebrew. For example: 'סוכה דף כ.\n static toStringHeb(jd) {\n const d = _Dafyomi.getDaf(jd);\n if (d !== null) {\n return d.masechet.heb + \" \\u05D3\\u05E3 \" + Utils.toJewishNumber(d.daf);\n }\n }\n};\n_Dafyomi.masechtaList = [\n { eng: \"Berachos\", heb: \"\\u05D1\\u05E8\\u05DB\\u05D5\\u05EA\", daf: 64 },\n { eng: \"Shabbos\", heb: \"\\u05E9\\u05D1\\u05EA\", daf: 157 },\n { eng: \"Eruvin\", heb: \"\\u05E2\\u05E8\\u05D5\\u05D1\\u05D9\\u05DF\", daf: 105 },\n { eng: \"Pesachim\", heb: \"\\u05E4\\u05E1\\u05D7\\u05D9\\u05DD\", daf: 121 },\n { eng: \"Shekalim\", heb: \"\\u05E9\\u05E7\\u05DC\\u05D9\\u05DD\", daf: 22 },\n { eng: \"Yoma\", heb: \"\\u05D9\\u05D5\\u05DE\\u05D0\", daf: 88 },\n { eng: \"Sukkah\", heb: \"\\u05E1\\u05D5\\u05DB\\u05D4\", daf: 56 },\n { eng: \"Beitzah\", heb: \"\\u05D1\\u05D9\\u05E6\\u05D4\", daf: 40 },\n { eng: \"Rosh Hashana\", heb: \"\\u05E8\\u05D0\\u05E9 \\u05D4\\u05E9\\u05E0\\u05D4\", daf: 35 },\n { eng: \"Taanis\", heb: \"\\u05EA\\u05E2\\u05E0\\u05D9\\u05EA\", daf: 31 },\n { eng: \"Megillah\", heb: \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05D4\", daf: 32 },\n { eng: \"Moed Katan\", heb: \"\\u05DE\\u05D5\\u05E2\\u05D3 \\u05E7\\u05D8\\u05DF\", daf: 29 },\n { eng: \"Chagigah\", heb: \"\\u05D7\\u05D2\\u05D9\\u05D2\\u05D4\", daf: 27 },\n { eng: \"Yevamos\", heb: \"\\u05D9\\u05D1\\u05DE\\u05D5\\u05EA\", daf: 122 },\n { eng: \"Kesubos\", heb: \"\\u05DB\\u05EA\\u05D5\\u05D1\\u05D5\\u05EA\", daf: 112 },\n { eng: \"Nedarim\", heb: \"\\u05E0\\u05D3\\u05E8\\u05D9\\u05DD\", daf: 91 },\n { eng: \"Nazir\", heb: \"\\u05E0\\u05D6\\u05D9\\u05E8\", daf: 66 },\n { eng: \"Sotah\", heb: \"\\u05E1\\u05D5\\u05D8\\u05D4\", daf: 49 },\n { eng: \"Gitin\", heb: \"\\u05D2\\u05D9\\u05D8\\u05D9\\u05DF\", daf: 90 },\n { eng: \"Kiddushin\", heb: \"\\u05E7\\u05D3\\u05D5\\u05E9\\u05D9\\u05DF\", daf: 82 },\n { eng: \"Baba Kamma\", heb: \"\\u05D1\\u05D1\\u05D0 \\u05E7\\u05DE\\u05D0\", daf: 119 },\n { eng: \"Baba Metzia\", heb: \"\\u05D1\\u05D1\\u05D0 \\u05DE\\u05E6\\u05D9\\u05E2\\u05D0\", daf: 119 },\n { eng: \"Baba Basra\", heb: \"\\u05D1\\u05D1\\u05D0 \\u05D1\\u05EA\\u05E8\\u05D0\", daf: 176 },\n { eng: \"Sanhedrin\", heb: \"\\u05E1\\u05E0\\u05D4\\u05D3\\u05E8\\u05D9\\u05DF\", daf: 113 },\n { eng: \"Makkot\", heb: \"\\u05DE\\u05DB\\u05D5\\u05EA\", daf: 24 },\n { eng: \"Shevuot\", heb: \"\\u05E9\\u05D1\\u05D5\\u05E2\\u05D5\\u05EA\", daf: 49 },\n { eng: \"Avodah Zarah\", heb: \"\\u05E2\\u05D1\\u05D5\\u05D3\\u05D4 \\u05D6\\u05E8\\u05D4\", daf: 76 },\n { eng: \"Horayot\", heb: \"\\u05D4\\u05D5\\u05E8\\u05D9\\u05D5\\u05EA\", daf: 14 },\n { eng: \"Zevachim\", heb: \"\\u05D6\\u05D1\\u05D7\\u05D9\\u05DD\", daf: 120 },\n { eng: \"Menachos\", heb: \"\\u05DE\\u05E0\\u05D7\\u05D5\\u05EA\", daf: 110 },\n { eng: \"Chullin\", heb: \"\\u05D7\\u05D5\\u05DC\\u05D9\\u05DF\", daf: 142 },\n { eng: \"Bechoros\", heb: \"\\u05D1\\u05DB\\u05D5\\u05E8\\u05D5\\u05EA\", daf: 61 },\n { eng: \"Arachin\", heb: \"\\u05E2\\u05E8\\u05DB\\u05D9\\u05DF\", daf: 34 },\n { eng: \"Temurah\", heb: \"\\u05EA\\u05DE\\u05D5\\u05E8\\u05D4\", daf: 34 },\n { eng: \"Kerisos\", heb: \"\\u05DB\\u05E8\\u05D9\\u05EA\\u05D5\\u05EA\", daf: 28 },\n { eng: \"Meilah\", heb: \"\\u05DE\\u05E2\\u05D9\\u05DC\\u05D4\", daf: 22 },\n { eng: \"Kinnim\", heb: \"\\u05E7\\u05E0\\u05D9\\u05DD\", daf: 4 },\n { eng: \"Tamid\", heb: \"\\u05EA\\u05DE\\u05D9\\u05D3\", daf: 10 },\n { eng: \"Midos\", heb: \"\\u05DE\\u05D3\\u05D5\\u05EA\", daf: 4 },\n { eng: \"Niddah\", heb: \"\\u05E0\\u05D3\\u05D4\", daf: 73 }\n];\nvar Dafyomi = _Dafyomi;\n\n// src/JCal/jDate.ts\nvar _yearCache = [];\nvar JS_START_DATE_ABS = 719163;\nvar MS_PER_DAY = 864e5;\nvar JS_START_OFFSET = (/* @__PURE__ */ new Date(0)).getTimezoneOffset();\nvar jDate = class _jDate {\n /**\n * Create a new Jdate.\n * new jDate() - Sets the Jewish Date for the current system date\n * new jDate(javascriptDateObject) - Sets to the Jewish date on the given Gregorian date\n * new jDate(\"January 1 2045\") - Accepts any valid javascript Date string (uses javascripts new Date(string))\n * new jDate(jewishYear, jewishMonth, jewishDay) - Months start at 1. Nissan is month 1 Adar Sheini is 13.\n * new jDate(jewishYear, jewishMonth) - Same as above, with Day defaulting to 1\n * new jDate( { year: 5776, month: 4, day: 5 } ) - same as new jDate(jewishYear, jewishMonth, jewishDay)\n * new jDate( { year: 5776, month: 4 } ) - same as new jDate(jewishYear, jewishMonth)\n * new jDate( { year: 5776 } ) - sets to the first day of Rosh Hashana on the given year\n * new jDate(absoluteDate) - The number of days elapsed since the theoretical date Sunday, December 31, 0001 BCE\n * new jDate(jewishYear, jewishMonth, jewishDay, absoluteDate) - Most efficient constructor. Needs no calculations at all.\n * new jDate( { year: 5776, month: 4, day: 5, abs: 122548708 } ) - same as new jDate(jewishYear, jewishMonth, jewishDay, absoluteDate)\n * @param {number | Date | string | {year:number,month:number,day:number} | [number, number, number, number]} [arg] The full Jewish year number OR Javascript Date object or string OR object or array of year, month, day\n * @param {number} [month] The month of the Jewish date. Nissan is 1.\n * @param {number} [day] The day of the month\n * @param {number} [abs] The number of days that have passed since 12/31/0001\n */\n constructor(arg, month, day, abs) {\n this.Day = NaN;\n this.Month = NaN;\n this.Year = NaN;\n this.Abs = NaN;\n if (arguments.length === 0) {\n this.fromAbs(_jDate.absSd(/* @__PURE__ */ new Date()));\n } else if (arg instanceof Date) {\n if (Utils.isValidDate(arg)) {\n this.fromAbs(_jDate.absSd(arg));\n } else {\n throw \"jDate constructor: The given Date is not a valid javascript Date\";\n }\n } else if (Array.isArray(arg) && arg.length >= 3) {\n this.Day = arg[0];\n this.Month = arg[1];\n this.Year = arg[2];\n this.Abs = arg.length > 3 && arg[3] || _jDate.absJd(this.Year, this.Month, this.Day);\n } else if (arg && Utils.isString(arg)) {\n const d = new Date(arg);\n if (Utils.isValidDate(d)) {\n this.fromAbs(_jDate.absSd(d));\n } else {\n throw 'jDate constructor: The given string \"' + arg + '\" cannot be parsed into a Date';\n }\n } else if (Utils.isNumber(arg)) {\n if (arguments.length === 1) {\n this.fromAbs(arg);\n } else {\n this.Year = arg;\n this.Month = month || 7;\n this.Day = day || 1;\n this.Abs = abs || _jDate.absJd(this.Year, this.Month, this.Day);\n }\n } else if (typeof arg === \"object\") {\n const argObj = arg;\n if (Utils.isNumber(argObj.year)) {\n this.Day = argObj.day || 1;\n this.Month = argObj.month || 7;\n this.Year = argObj.year;\n this.Abs = argObj.abs || _jDate.absJd(this.Year, this.Month, this.Day);\n }\n }\n }\n /**Sets the current Jewish date from the given absolute date*/\n fromAbs(absolute) {\n const ymd = _jDate.fromAbs(absolute);\n this.Year = ymd.year;\n this.Month = ymd.month;\n this.Day = ymd.day;\n this.Abs = absolute;\n }\n /**Returns a valid javascript Date object that represents the Gregorian date\n that starts at midnight of the current Jewish date.*/\n getDate() {\n return _jDate.sdFromAbs(this.Abs);\n }\n /**\n * @returns {number} The day of the week for the current Jewish date. Sunday is 0 and Shabbos is 6.\n */\n getDayOfWeek() {\n return Math.abs(this.Abs % 7);\n }\n /**\n * @returns {number} The day of the week for the current Jewish date. Sunday is 0 and Shabbos is 6\n */\n get DayOfWeek() {\n return this.getDayOfWeek();\n }\n /**Returns a new Jewish date represented by adding the given number of days to the current Jewish date.*/\n addDays(days) {\n return new _jDate(this.Abs + days);\n }\n /**\n * Returns a new Jewish date represented by adding the given number of\n * Jewish Months to the current Jewish date.\n * If the current Day is 30 and the new month only has 29 days,\n * the 29th day of the month is returned.\n * @param {number} months\n */\n addMonths(months) {\n let year = this.Year, month = this.Month, day = this.Day, miy = _jDate.monthsJYear(year);\n for (let i = 0; i < Math.abs(months); i++) {\n if (months > 0) {\n month += 1;\n if (month > miy) {\n month = 1;\n }\n if (month === 7) {\n year += 1;\n miy = _jDate.monthsJYear(year);\n }\n } else if (months < 0) {\n month -= 1;\n if (month === 0) {\n month = miy;\n }\n if (month === 6) {\n year -= 1;\n miy = _jDate.monthsJYear(year);\n }\n }\n }\n if (day === 30 && _jDate.daysJMonth(year, month) === 29) {\n day = 29;\n }\n return new _jDate(year, month, day);\n }\n /**\n * Returns a new Jewish date represented by adding the\n * given number of Jewish Years to the current Jewish date.\n * If the current Day is 30 and the new dates month only has 29 days,\n * the 29th day of the month is returned.\n * @param {number} years\n */\n addYears(years) {\n let year = this.Year + years, month = this.Month, day = this.Day;\n if (month === 13 && !_jDate.isJdLeapY(year)) {\n month = 12;\n } else if (month === 8 && day === 30 && !_jDate.isLongCheshvan(year)) {\n month = 9;\n day = 1;\n } else if (month === 9 && day === 30 && _jDate.isShortKislev(year)) {\n month = 10;\n day = 1;\n }\n if (day === 30 && _jDate.daysJMonth(year, month) === 29) {\n day = 29;\n }\n return new _jDate(year, month, day);\n }\n addSecularMonths(months) {\n const secDate = new Date(this.getDate().valueOf());\n secDate.setMonth(secDate.getMonth() + months);\n return new _jDate(secDate);\n }\n addSecularYears(years) {\n const secDate = new Date(this.getDate().valueOf());\n secDate.setFullYear(secDate.getFullYear() + years);\n return new _jDate(secDate);\n }\n /**Gets the number of days separating this Jewish Date and the given one.\n *\n * If the given date is before this one, the number will be negative.\n * @param {jDate} jd\n * */\n diffDays(jd) {\n return jd.Abs - this.Abs;\n }\n /**Gets the number of months separating this Jewish Date and the given one.\n *\n * Ignores the Day property:\n *\n * jDate.toJDate(5777, 6, 29).diffMonths(jDate.toJDate(5778, 7, 1)) will return 1 even though they are a day apart.\n *\n * If the given date is before this one, the number will be negative.\n * @param {jDate} jd\n * */\n diffMonths(jd) {\n let month = jd.Month, year = jd.Year, months = 0;\n while (!(year === this.Year && month === this.Month)) {\n if (this.Abs > jd.Abs) {\n months--;\n month++;\n if (month > _jDate.monthsJYear(year)) {\n month = 1;\n } else if (month === 7) {\n year++;\n }\n } else {\n months++;\n month--;\n if (month < 1) {\n month = _jDate.monthsJYear(year);\n } else if (month === 6) {\n year--;\n }\n }\n }\n return months;\n }\n /**Gets the number of full months separating this Jewish Date and the given one.\n * If the given date is before this one, the number will be negative.\n * @param {jDate} jd\n * */\n diffFullMonths(jd) {\n let months = this.diffMonths(jd);\n if (months >= 0 && this.Day > jd.Day) {\n months--;\n } else if (months < 0 && this.Day < jd.Day) {\n months++;\n }\n return months;\n }\n /**Gets the number of years separating this Jewish Date and the given one.\n *\n * Ignores the Day and Month properties:\n *\n * jDate.toJDate(5777, 6, 29).diffYears(jDate.toJDate(5778, 7, 1)) will return 1 even though they are a day apart.\n *\n * If the given date is before this one, the number will be negative.\n * @param {jDate} jd*/\n diffYears(jd) {\n let diff = jd.Year - this.Year;\n if (this.Month < jd.Month || this.Month === jd.Month && this.Day < jd.Day) {\n diff--;\n }\n return diff;\n }\n /**Gets the number of full years separating this Jewish Date and the given one.\n * If the given date is before this one, the number will be negative.\n * @param {jDate} jd*/\n diffFullYears(jd) {\n let diff = jd.Year - this.Year;\n if (diff >= 0 && (this.Month > jd.Month || this.Month === jd.Month && this.Day > jd.Day)) {\n diff--;\n } else if (diff < 0 && (this.Month < jd.Month || this.Month === jd.Month && this.Day < jd.Day)) {\n diff++;\n }\n return diff;\n }\n /**\n * Returns the current Jewish date in the format: Thursday, the 3rd of Kislev 5776.\n * @param {boolean} hideDayOfWeek\n * @param {boolean} dontCapitalize\n */\n toString(hideDayOfWeek, dontCapitalize) {\n return (hideDayOfWeek ? dontCapitalize ? \"t\" : \"T\" : DaysOfWeekEng[this.getDayOfWeek()] + \", t\") + \"he \" + Utils.toSuffixed(this.Day) + \" of \" + this.monthName();\n }\n /**\n * Returns the current Jewish date in the format \"[Tuesday] Nissan 3, 5778\"\n * @param {boolean} showDow - show day of week?\n */\n toShortstring(showDow) {\n return (showDow ? DaysOfWeekEng[this.getDayOfWeek()] + \" \" : \"\") + JewishMonthsEng[this.Month] + \" \" + this.Day.toString() + \", \" + this.Year.toString();\n }\n /**\n * Returns the current Jewish date in the format \"Nissan 5778\"\n * @param {boolean} showYear - show the year number?\n */\n monthName(showYear = true) {\n return JewishMonthsEng[this.Month] + (this.Month === 12 && _jDate.isJdLeapY(this.Year) ? \" Rishon \" : \" \") + (showYear ? this.Year.toString() : \"\");\n }\n /**\n * Returns the current Jewish date in the format: יום חמישי כ\"א כסלו תשע\"ו\n * @param hideDayOfWeek When set to truthy, hides the day of the week\n */\n toStringHeb(hideDayOfWeek) {\n return (!hideDayOfWeek ? DaysOfWeekHeb[this.getDayOfWeek()] + \" \" : \"\") + Utils.toJewishNumber(this.Day) + \" \" + JewishMonthsHeb[this.Month] + (this.Month === 12 && _jDate.isJdLeapY(this.Year) ? \" \\u05E8\\u05D0\\u05E9\\u05D5\\u05DF \" : \" \") + Utils.toJewishNumber(this.Year % 1e3);\n }\n /**Gets the day of the omer for the current Jewish date. If the date is not during sefira, 0 is returned.*/\n getDayOfOmer() {\n let dayOfOmer = 0;\n if (this.Month === 1 && this.Day > 15 || this.Month === 2 || this.Month === 3 && this.Day < 6) {\n const first = new _jDate(this.Year, 1, 15);\n dayOfOmer = first.diffDays(this);\n }\n return dayOfOmer;\n }\n /**\n * Returns true if this day is yomtov or chol hamoed\n * @param {boolean} israel\n */\n isYomTovOrCholHamoed(israel2) {\n return this.isYomTov(israel2) || this.Month === 1 && [16, 17, 18, 19, 20].includes(this.Day) || this.Month === 7 && [16, 17, 18, 19, 20, 21].includes(this.Day);\n }\n /**\n * Returns true if this day is yomtov\n * @param {boolean} israel\n */\n isYomTov(israel2) {\n const day = this.Day;\n switch (this.Month) {\n case 1:\n if (day === 15 || day === 21) return true;\n if (!israel2 && (day === 16 || day === 22)) return true;\n break;\n case 3:\n if (day === 6 || !israel2 && day === 7) return true;\n break;\n case 7:\n if ([1, 2, 10, 15, 22].includes(day)) {\n return true;\n }\n if (!israel2 && (day === 16 || day === 23)) return true;\n break;\n }\n return false;\n }\n /**Is today Erev Yom Tov? (includes Erev second days of Sukkos and Pesach) */\n isErevYomTov() {\n return this.Month === 1 && Utils.has(this.Day, 14, 20) || this.Month === 3 && this.Day === 5 || this.Month === 6 && this.Day === 29 || this.Month === 7 && Utils.has(this.Day, 9, 14, 21);\n }\n /**Does the current Jewish date have candle lighting before sunset?*/\n hasCandleLighting() {\n const dow = this.getDayOfWeek();\n if (dow === 5) {\n return true;\n } else if (dow === 6) {\n return false;\n }\n return this.isErevYomTov();\n }\n /**Is the current Jewish Date the day before a yomtov that contains a Friday?*/\n hasEiruvTavshilin(israel2) {\n let dow = this.getDayOfWeek();\n return (\n //Eiruv Tavshilin is only on Wednesday or Thursday\n [3, 4].includes(dow) && //today is Erev Yomtov\n this.isErevYomTov() && //Thursday OR Wednesday when in Chu\"l or Erev Rosh Hashana anywhere\n (dow === 4 || dow === 3 && (!israel2 || this.Month === 6)) && //No Eiruv Tavshilin on Erev yom kippur\n this.Day !== 9\n );\n }\n /**Gets the candle lighting time for the current Jewish date for the given Location object.*/\n getCandleLighting(location, nullIfNoCandles) {\n if (!location) {\n throw \"To get sunrise and sunset, the location needs to be supplied\";\n }\n if (this.hasCandleLighting()) {\n return Zmanim.getCandleLighting(this, location);\n } else if (nullIfNoCandles) {\n return null;\n } else {\n throw \"No candle lighting on \" + this.toString();\n }\n }\n /**Get the sedra of the week for the current Jewish date.*/\n getSedra(israel2) {\n return new Sedra(this, israel2);\n }\n /**Get the prakim of Pirkei Avos for the current Jewish date.*/\n getPirkeiAvos(israel2) {\n return PirkeiAvos.getPrakim(this, israel2);\n }\n /**Gets sunrise and sunset time for the current Jewish date at the given Location.\n *\n * Return format: {sunrise: {hour: 6, minute: 18}, sunset: {hour: 19, minute: 41}}*/\n getSunriseSunset(location, ignoreElevation) {\n if (!location) {\n throw \"To get sunrise and sunset, the location needs to be supplied\";\n }\n return Zmanim.getSunTimes(this, location, !ignoreElevation);\n }\n /**Gets Chatzos for both the day and the night for the current Jewish date at the given Location.\n *\n *Return format: {hour: 11, minute: 48}*/\n getChatzos(location) {\n if (!location) {\n throw \"To get Chatzos, the location needs to be supplied\";\n }\n return Zmanim.getChatzos(this, location);\n }\n /**Gets the length of a single Sha'a Zmanis in minutes for the current Jewish date at the given Location.*/\n getShaaZmanis(location, offset) {\n if (!location) {\n throw \"To get the Shaa Zmanis, the location needs to be supplied\";\n }\n return Zmanim.getShaaZmanis(this, location, offset);\n }\n /**Returns the daily daf in English. For example: Sukkah, Daf 3.*/\n getDafYomi() {\n return Dafyomi.toString(this) || \"\";\n }\n /**Gets the daily daf in Hebrew. For example: 'סוכה דף כ.*/\n getDafyomiHeb() {\n return Dafyomi.toStringHeb(this) || \"\";\n }\n /**\n * Converts its argument/s to a Jewish Date.\n * Samples of use:\n * To get the current Jewish Date: jDate.toJDate(new Date()).\n * To print out the current date in English: jDate.toJDate(new Date()).toString()\n * To print out the current date in Hebrew: jDate.toJDate(new Date()).toStringHeb()\n *\n * Arguments to the jDate.toJDate function can be one of the following:\n * jDate.toJDate() - Sets the Jewish Date for the current system date\n * jDate.toJDate(Date) - Sets to the Jewish date on the given Javascript Date object\n * jDate.toJDate(\"January 1 2045\") - Accepts any valid Javascript Date string (uses string constructor of Date object)\n * jDate.toJDate(jewishYear, jewishMonth, jewishDay) - Months start at 1. Nissan is month 1 Adara Sheini is 13.\n * jDate.toJDate(jewishYear, jewishMonth) - Same as above, with Day defaulting to 1\n * jDate.toJDate(jewishYear) - sets to the first day of Rosh Hashana on the given year\n * jDate.toJDate( { year: 5776, month: 4, day: 5 } ) - Months start at 1. Nissan is month 1 Adara Sheini is 13.\n * jDate.toJDate( { year: 5776, month: 4 } ) - Same as above, with Day defaulting to 1\n * jDate.toJDate( { year: 5776 } ) - sets to the first day of Rosh Hashana on the given year\n * jDate.toJDate(jewishYear, jewishMonth, jewishDay, absoluteDate) - Most efficient. Needs no calculations at all. The absoluteDate is the number of days elapsed since the theoretical date Sunday, December 31, 0001 BCE.\n * jDate.toJDate( { year: 5776, month: 4, day: 5, abs: 122548708 } ) - same as jDate.toJDate(jewishYear, jewishMonth, jewishDay, absoluteDate)\n ****************************************************************************************************************/\n static toJDate(arg, month, day, abs) {\n if (arguments.length === 0) {\n return new _jDate();\n } else if (Utils.isNumber(arg) && arguments.length === 1) {\n return new _jDate(arg, 7, 1);\n } else {\n return new _jDate(arg, month, day, abs);\n }\n }\n static now() {\n return new _jDate();\n }\n /**Calculate the Jewish year, month and day for the given absolute date.*/\n static fromAbs(absDay) {\n let year = 3761 + Utils.toInt(absDay / (absDay > 0 ? 366 : 300)), month, day;\n while (absDay >= _jDate.absJd(year + 1, 7, 1)) {\n year++;\n }\n month = absDay < _jDate.absJd(year, 1, 1) ? 7 : 1;\n while (absDay > _jDate.absJd(year, month, _jDate.daysJMonth(year, month))) {\n month++;\n }\n day = absDay - _jDate.absJd(year, month, 1) + 1;\n return { year, month, day };\n }\n /**\n * Gets the absolute date of the given javascript Date object.\n * @param {Date} date\n */\n static absSd(date) {\n const ms = date.valueOf() - date.getTimezoneOffset() * 6e4, numFullDays = Math.floor(ms / MS_PER_DAY);\n return JS_START_DATE_ABS + numFullDays;\n }\n /**Calculate the absolute date for the given Jewish Date.*/\n static absJd(year, month, day) {\n let dayInYear = day;\n if (month < 7) {\n let m = 7;\n while (m <= _jDate.monthsJYear(year)) {\n dayInYear += _jDate.daysJMonth(year, m);\n m++;\n }\n m = 1;\n while (m < month) {\n dayInYear += _jDate.daysJMonth(year, m);\n m++;\n }\n } else {\n let m = 7;\n while (m < month) {\n dayInYear += _jDate.daysJMonth(year, m);\n m++;\n }\n }\n return dayInYear + (_jDate.tDays(year) + -1373429);\n }\n /**\n * Gets a javascript date from an absolute date\n */\n static sdFromAbs(abs) {\n const offset = JS_START_OFFSET > 0 ? 1 : 0, daysSinceStart = abs - JS_START_DATE_ABS + offset;\n return new Date(daysSinceStart * MS_PER_DAY);\n }\n /**number of days in the given Jewish Month. Nissan is 1 and Adar Sheini is 13.*/\n static daysJMonth(year, month) {\n switch (month) {\n //Nissan, Sivan, Av, Tishrei and Shvat always have 30 days\n case 1:\n case 3:\n case 5:\n case 7:\n case 11:\n return 30;\n //Iyyar, Tammuz, Ellul, Teves and Adar Sheini always have 29 days.\n case 2:\n case 4:\n case 6:\n case 10:\n case 13:\n return 29;\n //Cheshvan sometimes has 29 days and sometimes 30 days.\n case 8:\n return _jDate.isLongCheshvan(year) ? 30 : 29;\n //Kislev sometimes has 29 days and sometimes 30 days.\n case 9:\n return _jDate.isShortKislev(year) ? 29 : 30;\n //Adar has 29 days unless it is Adar Rishon.\n case 12:\n return _jDate.isJdLeapY(year) ? 30 : 29;\n }\n return 0;\n }\n /**Elapsed days since creation of the world until Rosh Hashana of the given year*/\n static tDays(year) {\n const cached = _yearCache.find((y) => !!y && y.year === year);\n if (cached) {\n return cached.elapsed;\n }\n const months = Utils.toInt(\n 235 * Utils.toInt((year - 1) / 19) + // Leap months this cycle\n 12 * ((year - 1) % 19) + // Regular months in this cycle.\n (7 * ((year - 1) % 19) + 1) / 19\n ), parts = 204 + 793 * (months % 1080), hours = 5 + 12 * months + 793 * Utils.toInt(months / 1080) + Utils.toInt(parts / 1080), conjDay = Utils.toInt(1 + 29 * months + hours / 24), conjParts = 1080 * (hours % 24) + parts % 1080;\n let altDay;\n if (conjParts >= 19440 || conjDay % 7 === 2 && conjParts >= 9924 && !_jDate.isJdLeapY(year) || conjDay % 7 === 1 && conjParts >= 16789 && _jDate.isJdLeapY(year - 1)) {\n altDay = conjDay + 1;\n } else {\n altDay = conjDay;\n }\n if (Utils.has(altDay % 7, 0, 3, 5)) {\n altDay += 1;\n }\n _yearCache.push({ year, elapsed: altDay });\n return altDay;\n }\n /**number of days in the given Jewish Year.*/\n static daysJYear(year) {\n return _jDate.tDays(year + 1) - _jDate.tDays(year);\n }\n /**Does Cheshvan for the given Jewish Year have 30 days?*/\n static isLongCheshvan(year) {\n return _jDate.daysJYear(year) % 10 === 5;\n }\n /**Does Kislev for the given Jewish Year have 29 days?*/\n static isShortKislev(year) {\n return _jDate.daysJYear(year) % 10 === 3;\n }\n /**Does the given Jewish Year have 13 months?*/\n static isJdLeapY(year) {\n return (7 * year + 1) % 19 < 7;\n }\n /**number of months in Jewish Year.*/\n static monthsJYear(year) {\n return _jDate.isJdLeapY(year) ? 13 : 12;\n }\n};\n\n// src/JCal/Zmanim.ts\nvar Zmanim = class _Zmanim {\n /**\n * Gets sunrise and sunset time for given date and Location.\n * Accepts a javascript Date object, a string for creating a javascript date object or a jDate object.\n * Location object is required.\n * @returns {SunTimes}\n * @param {Date | jDate} date A Javascript Date or Jewish Date for which to calculate the sun times.\n * @param {Location} location Where on the globe to calculate the sun times for.\n * @param {Boolean} considerElevation\n */\n static getSunTimes(date, location, considerElevation = true) {\n if (date instanceof jDate) {\n date = date.getDate();\n } else if (date instanceof String) {\n date = new Date(date);\n }\n if (!Utils.isValidDate(date)) {\n throw \"Zmanim.getSunTimes: supplied date parameter cannot be converted to a Date\";\n }\n let sunrise, sunset, zenithDeg = 90, zenithMin = 50, lonHour = 0, longitude = 0, latitude = 0, cosLat = 0, sinLat = 0, cosZen = 0, sinDec = 0, cosDec = 0, xmRise = 0, xmSet = 0, xlRise = 0, xlSet = 0, aRise = 0, aSet = 0, ahrRise = 0, ahrSet = 0, hRise = 0, hSet = 0, tRise = 0, tSet = 0, utRise = 0, utSet = 0;\n const day = _Zmanim.dayOfYear(date), earthRadius = 6356900, zenithAtElevation = _Zmanim.degToDec(zenithDeg, zenithMin) + _Zmanim.radToDeg(Math.acos(earthRadius / (earthRadius + (considerElevation ? location.Elevation : 0))));\n zenithDeg = Math.floor(zenithAtElevation);\n zenithMin = (zenithAtElevation - zenithDeg) * 60;\n cosZen = Math.cos(0.01745 * _Zmanim.degToDec(zenithDeg, zenithMin));\n longitude = location.Longitude;\n lonHour = longitude / 15;\n latitude = location.Latitude;\n cosLat = Math.cos(0.01745 * latitude);\n sinLat = Math.sin(0.01745 * latitude);\n tRise = day + (6 + lonHour) / 24;\n tSet = day + (18 + lonHour) / 24;\n xmRise = _Zmanim.M(tRise);\n xlRise = _Zmanim.L(xmRise);\n xmSet = _Zmanim.M(tSet);\n xlSet = _Zmanim.L(xmSet);\n aRise = 57.29578 * Math.atan(0.91746 * Math.tan(0.01745 * xlRise));\n aSet = 57.29578 * Math.atan(0.91746 * Math.tan(0.01745 * xlSet));\n if (Math.abs(aRise + 360 - xlRise) > 90) {\n aRise += 180;\n }\n if (aRise > 360) {\n aRise -= 360;\n }\n if (Math.abs(aSet + 360 - xlSet) > 90) {\n aSet += 180;\n }\n if (aSet > 360) {\n aSet -= 360;\n }\n ahrRise = aRise / 15;\n sinDec = 0.39782 * Math.sin(0.01745 * xlRise);\n cosDec = Math.sqrt(1 - sinDec * sinDec);\n hRise = (cosZen - sinDec * sinLat) / (cosDec * cosLat);\n ahrSet = aSet / 15;\n sinDec = 0.39782 * Math.sin(0.01745 * xlSet);\n cosDec = Math.sqrt(1 - sinDec * sinDec);\n hSet = (cosZen - sinDec * sinLat) / (cosDec * cosLat);\n if (Math.abs(hRise) <= 1) {\n hRise = 57.29578 * Math.acos(hRise);\n utRise = (360 - hRise) / 15 + ahrRise + _Zmanim.adj(tRise) + lonHour;\n sunrise = _Zmanim.timeAdj(utRise + location.UTCOffset, date, location);\n if (sunrise.hour > 12) {\n sunrise.hour -= 12;\n }\n }\n if (Math.abs(hSet) <= 1) {\n hSet = 57.29578 * Math.acos(hSet);\n utSet = hRise / 15 + ahrSet + _Zmanim.adj(tSet) + lonHour;\n sunset = _Zmanim.timeAdj(utSet + location.UTCOffset, date, location);\n if (sunset.hour > 0 && sunset.hour < 12) {\n sunset.hour += 12;\n }\n }\n return { sunrise, sunset };\n }\n /**\n * @param {jDate | Date} date\n * @param {Location} location\n */\n static getChatzos(date, location) {\n return _Zmanim.getChatzosFromSuntimes(\n _Zmanim.getSunTimes(date, location, false)\n );\n }\n /**\n * @param {SunTimes} sunTimes\n */\n static getChatzosFromSuntimes(sunTimes) {\n const rise = sunTimes.sunrise, set = sunTimes.sunset;\n if (rise === void 0 || isNaN(rise.hour) || set === void 0 || isNaN(set.hour)) {\n return { hour: NaN, minute: NaN };\n }\n const chatz = Utils.toInt((Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 2);\n return Utils.addSeconds(rise, chatz);\n }\n /**\n * @param {jDate | Date} date\n * @param {Location} location\n * @param {any} offset\n */\n static getShaaZmanis(date, location, offset) {\n return _Zmanim.getShaaZmanisFromSunTimes(\n _Zmanim.getSunTimes(date, location, false),\n offset\n );\n }\n /**\n * @param {{ sunrise: any; sunset: any; }} sunTimes\n * @param {number} [offset]\n */\n static getShaaZmanisFromSunTimes(sunTimes, offset) {\n if (!sunTimes || !sunTimes.sunrise || !sunTimes.sunset) {\n return 0;\n }\n let rise = sunTimes.sunrise, set = sunTimes.sunset;\n if (!rise || isNaN(rise.hour) || !set || isNaN(set.hour)) {\n return NaN;\n }\n if (offset) {\n rise = Utils.addMinutes(rise, -offset);\n set = Utils.addMinutes(set, offset);\n }\n return (Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 720;\n }\n /**\n * @param {{ sunrise: any; sunset: any; }} sunTimes\n * @param {boolean} israel\n */\n static getShaaZmanisMga(sunTimes, israel2) {\n const minutes = israel2 ? 90 : 72;\n let rise = sunTimes.sunrise && Utils.addMinutes(sunTimes.sunrise, -minutes), set = sunTimes.sunset && Utils.addMinutes(sunTimes.sunset, minutes);\n if (!rise || isNaN(rise.hour) || !set || isNaN(set.hour)) {\n return NaN;\n }\n return (Utils.totalSeconds(set) - Utils.totalSeconds(rise)) / 720;\n }\n /**\n * @param {jDate | Date} date\n * @param {Location} location\n */\n static getCandleLighting(date, location) {\n return _Zmanim.getCandleLightingFromSunTimes(\n _Zmanim.getSunTimes(date, location),\n location\n );\n }\n /**\n * @param {SunTimes} sunTimes\n * @param {any} location\n */\n static getCandleLightingFromSunTimes(sunTimes, location) {\n return sunTimes.sunset && _Zmanim.getCandleLightingFromSunset(sunTimes.sunset, location);\n }\n /**\n * @param {Time} sunset\n * @param {Location} location\n */\n static getCandleLightingFromSunset(sunset, location) {\n return Utils.addMinutes(sunset, -(location.CandleLighting || 0));\n }\n /**\n * @param {Date} date\n */\n static dayOfYear(date) {\n const month = date.getMonth(), isLeap = () => Utils.isSecularLeapYear(date.getFullYear()), yearDay = [0, 1, 32, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n return yearDay[month + 1] + date.getDate() + (month > 1 && isLeap() ? 1 : 0);\n }\n /**\n * @param {number} deg\n * @param {number} min\n */\n static degToDec(deg, min) {\n return deg + min / 60;\n }\n /**\n * @param {number} x\n */\n static M(x) {\n return 0.9856 * x - 3.251;\n }\n /**\n * @param {number} x\n */\n static L(x) {\n return x + 1.916 * Math.sin(0.01745 * x) + 0.02 * Math.sin(2 * 0.01745 * x) + 282.565;\n }\n /**\n * @param {number} x\n */\n static adj(x) {\n return -0.06571 * x - 6.62;\n }\n /**\n * @param {number} rad\n */\n static radToDeg(rad) {\n return 57.29578 * rad;\n }\n /**\n * @param {number} time\n * @param {Date} date\n * @param {Location} location\n */\n static timeAdj(time, date, location) {\n if (time < 0) {\n time += 24;\n }\n let hour = Utils.toInt(time);\n const minFloat = (time - hour) * 60 + 0.5, min = Utils.toInt(minFloat), sec = Math.round(60 * (minFloat - min));\n if (Utils.isDST(location, date)) {\n hour++;\n }\n return Utils.fixTime({ hour, minute: min, second: sec });\n }\n};\n\n// src/Utils.ts\nvar __DEV__ = process.env.NODE_ENV === \"development\";\nvar DaysOfWeek = Object.freeze({\n SUNDAY: 0,\n MONDAY: 1,\n TUESDAY: 2,\n WEDNESDAY: 3,\n THURSDAY: 4,\n FRIDAY: 5,\n SHABBOS: 6\n});\nvar JewishMonthsNames = Object.freeze({\n NISSAN: 1,\n IYAR: 2,\n SIVAN: 3,\n TAMUZ: 4,\n AV: 5,\n ELLUL: 6,\n TISHREI: 7,\n CHESHVAN: 8,\n KISLEV: 9,\n TEVES: 10,\n SHVAT: 11,\n ADAR: 12,\n ADAR_SHEINI: 13\n});\nvar JewishMonthsEng = [\n \"\",\n \"Nissan\",\n \"Iyar\",\n \"Sivan\",\n \"Tamuz\",\n \"Av\",\n \"Ellul\",\n \"Tishrei\",\n \"Cheshvan\",\n \"Kislev\",\n \"Teves\",\n \"Shvat\",\n \"Adar\",\n \"Adar Sheini\"\n];\nvar JewishMonthsHeb = [\n \"\",\n \"\\u05E0\\u05D9\\u05E1\\u05DF\",\n \"\\u05D0\\u05D9\\u05D9\\u05E8\",\n \"\\u05E1\\u05D9\\u05D5\\u05DF\",\n \"\\u05EA\\u05DE\\u05D5\\u05D6\",\n \"\\u05D0\\u05D1\",\n \"\\u05D0\\u05DC\\u05D5\\u05DC\",\n \"\\u05EA\\u05E9\\u05E8\\u05D9\",\n \"\\u05D7\\u05E9\\u05D5\\u05DF\",\n \"\\u05DB\\u05E1\\u05DC\\u05D5\",\n \"\\u05D8\\u05D1\\u05EA\",\n \"\\u05E9\\u05D1\\u05D8\",\n \"\\u05D0\\u05D3\\u05E8\",\n \"\\u05D0\\u05D3\\u05E8 \\u05E9\\u05E0\\u05D9\"\n];\nvar SecularMonthsEng = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\nvar DaysOfWeekEng = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Erev Shabbos\",\n \"Shabbos Kodesh\"\n];\nvar DaysOfWeekHeb = [\n \"\\u05D9\\u05D5\\u05DD \\u05E8\\u05D0\\u05E9\\u05D5\\u05DF\",\n \"\\u05D9\\u05D5\\u05DD \\u05E9\\u05E0\\u05D9\",\n \"\\u05D9\\u05D5\\u05DD \\u05E9\\u05DC\\u05D9\\u05E9\\u05D9\",\n \"\\u05D9\\u05D5\\u05DD \\u05E8\\u05D1\\u05D9\\u05E2\\u05D9\",\n \"\\u05D9\\u05D5\\u05DD \\u05D7\\u05DE\\u05D9\\u05E9\\u05D9\",\n \"\\u05E2\\u05E8\\u05D1 \\u05E9\\u05D1\\u05EA \\u05E7\\u05D5\\u05D3\\u05E9\",\n \"\\u05E9\\u05D1\\u05EA \\u05E7\\u05D5\\u05D3\\u05E9\"\n];\nvar _Utils = class _Utils {\n /**\n * Gets the Jewish representation of a number (365 = שס\"ה)\n * Minimum number is 1 and maximum is 9999.\n * @param {Number} number\n */\n static toJewishNumber(number) {\n if (number < 1) {\n throw \"Min value is 1\";\n }\n if (number > 9999) {\n throw \"Max value is 9999\";\n }\n let n = number, retval = \"\";\n if (n >= 1e3) {\n retval += _Utils.jsd[_Utils.toInt((n - n % 1e3) / 1e3) - 1] + \"'\";\n n = n % 1e3;\n }\n while (n >= 400) {\n retval += \"\\u05EA\";\n n -= 400;\n }\n if (n >= 100) {\n retval += _Utils.jhd[_Utils.toInt((n - n % 100) / 100) - 1];\n n = n % 100;\n }\n if (n == 15) {\n retval += \"\\u05D8\\u05D5\";\n } else if (n == 16) {\n retval += \"\\u05D8\\u05D6\";\n } else {\n if (n > 9) {\n retval += _Utils.jtd[_Utils.toInt((n - n % 10) / 10) - 1];\n }\n if (n % 10 > 0) {\n retval += _Utils.jsd[n % 10 - 1];\n }\n }\n if (number > 999 && number % 1e3 < 10) {\n retval = \"'\" + retval;\n } else if (retval.length > 1) {\n retval = retval.slice(0, -1) + '\"' + retval[retval.length - 1];\n }\n return retval;\n }\n /**\n * Returns the javascript date in the format: Thursday, the 3rd of January 2018.\n * @param {Date} date\n * @param {Boolean} hideDayOfWeek\n * @param {Boolean} dontCapitalize\n */\n static toStringDate(date, hideDayOfWeek, dontCapitalize) {\n if (!date) return;\n return (hideDayOfWeek ? dontCapitalize ? \"t\" : \"T\" : DaysOfWeekEng[date.getDay()] + \", t\") + \"he \" + _Utils.toSuffixed(date.getDate()) + \" of \" + SecularMonthsEng[date.getMonth()] + \" \" + date.getFullYear().toString();\n }\n /**\n * Returns the javascript date in the format: 1/3/2020.\n * @param {Date} date\n * @param {Boolean} monthFirst\n */\n static toShortStringDate(date, monthFirst) {\n if (!date) return;\n const dayNum = date.getDate(), monthNum = date.getMonth() + 1;\n return (monthFirst ? `${monthNum}/${dayNum}` : `${dayNum < 10 ? \"0\" : \"\"}${dayNum}/${monthNum < 10 ? \"0\" : \"\"}${monthNum}`) + \"/\" + date.getFullYear().toString();\n }\n /**\n * Add two character suffix to number. e.g. 21st, 102nd, 93rd, 500th\n * @param {Number} num\n */\n static toSuffixed(num) {\n const t = num.toString();\n let suffix = \"th\";\n if (t.length === 1 || t[t.length - 2] !== \"1\") {\n switch (t[t.length - 1]) {\n case \"1\":\n suffix = \"st\";\n break;\n case \"2\":\n suffix = \"nd\";\n break;\n case \"3\":\n suffix = \"rd\";\n break;\n }\n }\n return t + suffix;\n }\n /**\n * Returns if the given full secular year has a February 29th\n * @param {Number} year\n */\n static isSecularLeapYear(year) {\n return !(year % 400) || !!(year % 100) && !(year % 4);\n }\n /**\n * Get day of week using Javascripts getDay function.\n * Important note: months starts at 1 not 0 like javascript\n * The DOW returned has Sunday = 0\n * @param {Number} year\n * @param {Number} month\n * @param {Number} day\n */\n static getSdDOW(year, month, day) {\n return new Date(year, month - 1, day).getDay();\n }\n /**\n * Makes sure hour is between 0 and 23 and minute is between 0 and 59.\n * Overlaps get added/subtracted.\n * The argument needs to be an object in the format {hour : 12, minute : 42, second : 18}\n * @param {Time} time\n */\n static fixTime(time) {\n const result = {\n hour: time.hour,\n minute: time.minute,\n second: time.second || 0\n };\n while (result.second >= 60) {\n result.minute += 1;\n result.second -= 60;\n }\n while (result.second < 0) {\n result.minute -= 1;\n result.second += 60;\n }\n while (result.minute < 0) {\n result.minute += 60;\n result.hour--;\n }\n while (result.minute >= 60) {\n result.minute -= 60;\n result.hour++;\n }\n if (result.hour < 0) {\n result.hour = 24 + result.hour % 24;\n }\n if (result.hour > 23) {\n result.hour = result.hour % 24;\n }\n return result;\n }\n /**\n * Add the given number of minutes to the given time.\n * The argument needs to be an object in the format {hour : 12, minute : 42, second : 18 }\n *\n * @param {Time} time\n * @param {Number} minutes\n */\n static addMinutes(time, minutes) {\n if (!time) return time;\n return time && _Utils.fixTime({\n hour: time.hour,\n minute: time.minute + (minutes || 0),\n second: time.second\n });\n }\n /**\n * Add the given number of seconds to the given time.\n * The argument needs to be an object in the format {hour : 12, minute :42, second : 18}\n *\n * @param {Time} time\n * @param {Number} seconds\n */\n static addSeconds(time, seconds) {\n return _Utils.fixTime({\n hour: time.hour,\n minute: time.minute,\n second: (time.second || 0) + seconds\n });\n }\n /**\n * Gets the time difference between two times of day.\n * If showNegative is falsey, assumes that the earlier time is always before the later time.\n * So, if laterTime is less than earlierTime, the returned diff is until the next day.\n * Both arguments need to be an object in the format {hour : 12, minute : 42, second : 18 }\n * @param {Time} earlierTime\n * @param {Time} laterTime\n * @param {Boolean} [showNegative] show negative values or assume second value is next day?\n * @returns{{hour:number, minute:number, second:number, sign:1|-1}}\n */\n static timeDiff(earlierTime, laterTime, showNegative = false) {\n const earlySec = _Utils.totalSeconds(earlierTime), laterSec = _Utils.totalSeconds(laterTime), time = _Utils.fixTime({\n hour: 0,\n minute: 0,\n second: earlySec <= laterSec ? laterSec - earlySec : showNegative ? earlySec - laterSec : 86400 - earlySec + laterSec\n });\n return {\n ...time,\n sign: earlySec <= laterSec || !showNegative ? 1 : -1\n };\n }\n /**\n * Gets the total number of minutes in the given time.\n * @param {Time} time An object in the format {hour : 12, minute :42, second : 18}\n */\n static totalMinutes(time) {\n return time ? time.hour * 60 + time.minute : 0;\n }\n /**\n * Gets the total number of seconds in the given time.\n * @param {Time} time An object in the format {hour : 12, minute :42, second : 18}\n */\n static totalSeconds(time) {\n return time ? _Utils.totalMinutes(time) * 60 + (time.second || 0) : 0;\n }\n /**\n * Returns the time of the given javascript date as an object in the format of {hour : 23, minute :42, second: 18 }\n * @param {Date} sdate\n * @returns {{hour :number, minute :number, second:number }}\n */\n static timeFromDate(sdate) {\n return {\n hour: sdate.getHours(),\n minute: sdate.getMinutes(),\n second: sdate.getSeconds()\n };\n }\n /**\n * Determines if the second given time is after (or at) the first given time\n * @param {{hour :number, minute :number, second:number }} beforeTime\n * @param {{hour :number, minute :number, second:number }} afterTime\n */\n static isTimeAfter(beforeTime, afterTime) {\n if (!beforeTime || !afterTime) return false;\n return _Utils.totalSeconds(afterTime) >= _Utils.totalSeconds(beforeTime);\n }\n /**\n * Returns the given time interval in a formatted string.\n * @param {{hour:number, minute:number,second:number,sign?: 1 | -1}} time An object in the format {hour : 23, minute :42, second: 18 }\n */\n static getTimeIntervalTextStringHeb(time) {\n let t = \"\";\n if (time.hour > 0) {\n t += `${time.hour.toString()} ${time.hour === 1 ? \"\\u05E9\\u05E2\\u05D4\" : \"\\u05E9\\u05E2\\u05D5\\u05EA\"}`;\n }\n if (time.minute > 0) {\n if (t.length) {\n t += \" \";\n }\n t += `${time.minute.toString()} ${time.minute === 1 ? \"\\u05D3\\u05E7\\u05D4\" : \"\\u05D3\\u05E7\\u05D5\\u05EA\"}`;\n }\n if ((time.second || 0) > 0) {\n if (t.length) {\n t += \" \";\n }\n t += `${Math.trunc(time.second || 0).toString()} ${time.second === 1 ? \"\\u05E9\\u05E0\\u05D9\\u05D9\\u05D4\" : \"\\u05E9\\u05E0\\u05D9\\u05D5\\u05EA\"}`;\n }\n return t;\n }\n /**\n * Returns the given time interval in a formatted string.\n * @param {{hour:number, minute:number,second:number,sign?: 1 | -1}} time An object in the format {hour : 23, minute :42, second: 18 }\n */\n static getTimeIntervalTextString(time) {\n let t = \"\";\n if (time.hour > 0) {\n t += `${time.hour.toString()} ${time.hour === 1 ? \"hour\" : \"hours\"}`;\n }\n if (time.minute > 0) {\n if (t.length) {\n t += \" \";\n }\n t += `${time.minute.toString()} ${time.minute === 1 ? \"minute\" : \"minutes\"}`;\n }\n if ((time.second || 0) > 0) {\n if (t.length) {\n t += \" \";\n }\n t += `${Math.trunc(time.second || 0).toString()} ${time.second === 1 ? \"second\" : \"seconds\"}`;\n }\n return t;\n }\n /**\n * Returns the nusach for Sefiras Ha'omer for the given day and minhag\n * @param {number} dayOfOmer The day of the Omer for which to get the nusach for\n * @param {'ashkenaz'|'sefard'|'sefardi'} nusach Should it be La'Omer (\"sefard\") or Ba'Omer (\"ashkenaz\") or \"sefardi\" (Eidot Hamizrach)?\n */\n static getOmerNusach(dayOfOmer, nusach) {\n const weeks = _Utils.toInt(dayOfOmer / 7), days = dayOfOmer % 7;\n let txt = \"\\u05D4\\u05D9\\u05D5\\u05DD \";\n if (dayOfOmer === 1) {\n txt += \"\\u05D9\\u05D5\\u05DD \\u05D0\\u05D7\\u05D3 \";\n } else {\n if (dayOfOmer === 2) {\n txt += \"\\u05E9\\u05E0\\u05D9 \";\n } else {\n if (dayOfOmer === 10) {\n txt += \"\\u05E2\\u05E9\\u05E8\\u05D4 \";\n } else {\n txt += _Utils.jsnum[_Utils.toInt(dayOfOmer % 10)] + \" \";\n if (dayOfOmer > 10) {\n if (dayOfOmer > 20 && dayOfOmer % 10 > 0) {\n txt += \"\\u05D5\";\n }\n txt += _Utils.jtnum[_Utils.toInt(dayOfOmer / 10)] + \" \";\n }\n }\n }\n txt += (dayOfOmer >= 11 ? \"\\u05D9\\u05D5\\u05DD\" : \"\\u05D9\\u05DE\\u05D9\\u05DD\") + \" \";\n if (nusach === \"sefardi\") {\n txt += \"\\u05DC\\u05E2\\u05D5\\u05DE\\u05E8 \";\n }\n if (dayOfOmer >= 7) {\n txt += \"\\u05E9\\u05D4\\u05DD \";\n if (weeks === 1) {\n txt += \"\\u05E9\\u05D1\\u05D5\\u05E2 \\u05D0\\u05D7\\u05D3 \";\n } else if (weeks === 2) {\n txt += \"\\u05E9\\u05E0\\u05D9 \\u05E9\\u05D1\\u05D5\\u05E2\\u05D5\\u05EA \";\n } else if (weeks > 0) {\n txt += _Utils.jsnum[_Utils.toInt(weeks)] + \" \\u05E9\\u05D1\\u05D5\\u05E2\\u05D5\\u05EA \";\n }\n if (days === 1) {\n txt += \"\\u05D5\\u05D9\\u05D5\\u05DD \\u05D0\\u05D7\\u05D3 \";\n } else if (days === 2) {\n txt += \"\\u05D5\\u05E9\\u05E0\\u05D9 \\u05D9\\u05DE\\u05D9\\u05DD \";\n } else if (days > 0) {\n txt += \"\\u05D5\" + _Utils.jsnum[days] + \" \\u05D9\\u05DE\\u05D9\\u05DD \";\n }\n }\n }\n if (nusach === \"sefard\") {\n txt += \"\\u05DC\\u05E2\\u05D5\\u05DE\\u05E8\";\n } else if (nusach === \"ashkenaz\") {\n txt += \"\\u05D1\\u05E2\\u05D5\\u05DE\\u05E8\";\n }\n return txt;\n }\n /**\n * Returns the given time in a formatted string.\n * @param {Time} time An object in the format {hour : 23, minute :42, second: 18 }\n * @param {1 | -1} [sign] \n * @param {Boolean} [army] If falsey, the returned string will be: 11:42:18 PM otherwise it will be 23:42:18\n * @param {Boolean} [roundUp] If falsey, the numbers will converted to a whole number by rounding down, otherwise, up.\n */\n static getTimeString(time, sign, army, roundUp) {\n const round = roundUp ? Math.ceil : Math.floor;\n time = {\n hour: round(time.hour),\n minute: round(time.minute),\n second: round(time.second || 0)\n };\n if (army) {\n return (sign && sign < 0 ? \"-\" : \"\") + (time.hour.toString() + \":\" + (time.minute < 10 ? \"0\" + time.minute.toString() : time.minute.toString()) + \":\" + ((time.second || 0) < 10 ? \"0\" + (time.second || 0).toString() : (time.second || 0).toString()));\n } else {\n return (sign && sign < 0 ? \"-\" : \"\") + (time.hour <= 12 ? time.hour == 0 ? 12 : time.hour : time.hour - 12).toString() + \":\" + (time.minute < 10 ? \"0\" + time.minute.toString() : time.minute.toString()) + \":\" + ((time.second || 0) < 10 ? \"0\" + (time.second || 0).toString() : (time.second || 0).toString()) + (time.hour < 12 ? \" AM\" : \" PM\");\n }\n }\n /**\n * Gets the UTC offset in whole hours for the users time zone.\n * Note: this is not affected by DST - unlike javascripts getTimezoneOffset() function which gives you the current offset.\n */\n static currUtcOffset() {\n const date = /* @__PURE__ */ new Date(), jan = new Date(date.getFullYear(), 0, 1), jul = new Date(date.getFullYear(), 6, 1);\n return -_Utils.toInt(\n Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()) / 60\n );\n }\n /** Determines if the given date is within DST on the users system */\n static isDateDST(date) {\n return -_Utils.toInt(date.getTimezoneOffset() / 60) !== _Utils.currUtcOffset();\n }\n /**\n * Determines if the given date is within DST in the given location\n * Note: This may not be correct if the user has set the Location to a\n * time zone outside Israel or the USA which is not the current system time zone.\n */\n static isDST(location, date) {\n if (location.UTCOffset === _Utils.currUtcOffset()) {\n return _Utils.isDateDST(date);\n } else if (location.Israel) {\n return _Utils.isIsrael_DST(date);\n } else {\n return _Utils.isUSA_DST(date);\n }\n }\n /**\n * Determines if the given javascript date is during DST according to the USA rules\n * @param {Date} date A javascript Date object\n */\n static isUSA_DST(date) {\n const year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate(), hour = date.getHours();\n if (month < 3 || month == 12) {\n return false;\n } else if (month > 3 && month < 11) {\n return true;\n } else if (month === 3) {\n const firstDOW = _Utils.getSdDOW(year, 3, 1), targetDate = firstDOW == 0 ? 8 : 7 - (firstDOW + 7) % 7 + 8;\n return day > targetDate || day === targetDate && hour >= 2;\n } else {\n const firstDOW = _Utils.getSdDOW(year, 11, 1), targetDate = firstDOW === 0 ? 1 : 7 - (firstDOW + 7) % 7 + 1;\n return day < targetDate || day === targetDate && hour < 2;\n }\n }\n //\n /**\n * Determines if the given Javascript date is during DST according to the current (5776) Israeli rules\n * @param {Date} date A Javascript Date object\n */\n static isIsrael_DST(date) {\n const year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate(), hour = date.getHours();\n if (month > 10 || month < 3) {\n return false;\n } else if (month > 3 && month < 10) {\n return true;\n } else if (month === 3) {\n const lastFriday = 31 - _Utils.getSdDOW(year, 3, 31) - 2;\n return day > lastFriday || day === lastFriday && hour >= 2;\n } else {\n const lastSunday = 31 - _Utils.getSdDOW(year, 10, 31);\n return day < lastSunday || day === lastSunday && hour < 2;\n }\n }\n /** The current time in Israel - determined by the current users system time and time zone offset*/\n static getSdNowInIsrael() {\n const now = /* @__PURE__ */ new Date(), israelTimeOffset = 2 + -_Utils.currUtcOffset();\n now.setHours(now.getHours() + israelTimeOffset);\n return now;\n }\n /**\n * Adds the given number of days to the given javascript date and returns the new date\n * @param {Date} sdate\n * @param {Number} days\n */\n static addDaysToSdate(sdate, days) {\n return new Date(sdate.valueOf() + 864e5 * days);\n }\n /**\n * Compares two js dates to se if they both refer to the same day - time is ignored.\n * @param {Date} sdate1\n * @param {Date} sdate2\n */\n static isSameSdate(sdate1, sdate2) {\n return sdate1 && sdate2 && sdate1.toDateString() === sdate2.toDateString();\n }\n /**\n * Compares two jDates to se if they both refer to the same day - time is ignored.\n * @param {jDate} jdate1\n * @param {jDate} jdate2\n */\n static isSameJdate(jdate1, jdate2) {\n return jdate1 && jdate2 && jdate1.Abs && jdate2.Abs && jdate1.Abs === jdate2.Abs;\n }\n /**\n * Compares two jDates to see if they both refer to the same Jewish Month.\n * @param {jDate} jdate1\n * @param {jDate} jdate2\n */\n static isSameJMonth(jdate1, jdate2) {\n return jdate1.Month === jdate2.Month && jdate1.Year === jdate2.Year;\n }\n /**\n * Compares two dates to se if they both refer to the same Secular Month.\n * @param {Date} sdate1\n * @param {Date} sdate2\n */\n static isSameSMonth(sdate1, sdate2) {\n return sdate1.getMonth() === sdate2.getMonth() && sdate1.getFullYear() === sdate2.getFullYear();\n }\n /**\n * Determines if the time of the given Date() is after sunset at the given Location\n * @param {Date} sdate\n * @param {Location} location\n */\n static isAfterSunset(sdate, location) {\n const shkia = Zmanim.getSunTimes(sdate, location).sunset, now = _Utils.timeFromDate(sdate);\n return shkia && _Utils.isTimeAfter(shkia, now);\n }\n /**\n * Gets the current Jewish Date at the given Location\n * @param {Location} location\n */\n static nowAtLocation(location) {\n let sdate = /* @__PURE__ */ new Date();\n if (_Utils.isAfterSunset(sdate, location)) {\n sdate.setDate(sdate.getDate() + 1);\n }\n return new jDate(sdate);\n }\n /**\n * Converts the given complex number to an integer by removing the decimal part.\n * Returns same results as Math.floor for positive numbers and Math.ceil for negative ones.\n * Almost identical functionality to Math.trunc and parseInt.\n * The difference is if the argument is NaN. Math.trunc returns NaN while ths fuction returns 0.\n * In performance tests, this function was found to be quicker than the alternatives.\n * @param {Number} float The complex number to convert to an integer\n */\n static toInt(float) {\n return float | 0;\n }\n /***\n * Takes either a jDate or a Date and returns both\n * @param date {Date |jDate}\n * @returns {{ sdate:Date, jdate:jDate }}\n */\n static bothDates(date) {\n const jdate = date instanceof Date ? new jDate(date) : date;\n const sdate = date instanceof Date ? date : jdate.getDate();\n return { sdate, jdate };\n }\n /** Returns true if \"thing\" is either a string primitive or String object.*/\n static isString(thing) {\n return typeof thing === \"string\" || thing instanceof String;\n }\n /** Returns true if \"thing\" is either a number primitive or a Number object.*/\n static isNumber(thing) {\n return typeof thing === \"number\" || thing instanceof Number;\n }\n /** Returns true if \"thing\" is a Date object containing a valid date.*/\n static isValidDate(thing) {\n return thing instanceof Date && !isNaN(thing.valueOf());\n }\n /** Returns whether or not the given, array, string, or argument list contains the given item or substring.\n *\n * This function is awfully similar to Array.includes, but has the added plus of accepting any number or type of arguments.*/\n static has(o, ...arr) {\n if (arr.length === 1 && (Array.isArray(arr[0]) || _Utils.isString(arr[0]))) {\n return arr[0].includes(o);\n } else {\n return arr.includes(o);\n }\n }\n /** Returns the first value unless it is undefined, null or NaN.\n *\n * This is very useful for boolean, string and integer parameters\n * where we want to keep false, \"\" and 0 if they were supplied.\n *\n * Similar purpose to default parameters with the difference being that this function will return\n * the second value if the first is NaN or null, while default params will give give you the NaN or the null.\n */\n static setDefault(paramValue, defValue) {\n if (typeof paramValue === \"undefined\" || paramValue === null || isNaN(paramValue)) {\n return defValue;\n } else {\n return paramValue;\n }\n }\n /**\n * Returns an array containing a range of integers.\n * @param {Number} [start] The number to start at. The start number is included in the results.\n * If only one argument is supplied, start will be set to 1.\n * @param {Number} end The top end of the range.\n * Unlike Pythons range function, The end number is included in the results.\n * @returns {[Number]}\n */\n static range(start, end) {\n const startNumber = typeof end === \"undefined\" ? 1 : start, endNumber = typeof end === \"undefined\" ? start : end;\n return Array.from({ length: endNumber - startNumber + 1 }, (v, i) => startNumber + i);\n }\n /**\n * Log message to console\n * @param {string} txt\n */\n static log(txt, ...optionalItems) {\n if (__DEV__) {\n console.log(txt, ...optionalItems);\n }\n }\n /**\n * Warn message to console\n * @param {string} txt\n */\n static warn(txt, ...optionalItems) {\n if (__DEV__) {\n console.warn(txt, ...optionalItems);\n }\n }\n /**\n * Error message to console\n * @param {*} txt\n */\n static error(txt, ...optionalItems) {\n if (__DEV__) {\n console.error(txt, ...optionalItems);\n }\n }\n};\n_Utils.jsd = [\"\\u05D0\", \"\\u05D1\", \"\\u05D2\", \"\\u05D3\", \"\\u05D4\", \"\\u05D5\", \"\\u05D6\", \"\\u05D7\", \"\\u05D8\"];\n_Utils.jtd = [\"\\u05D9\", \"\\u05DB\", \"\\u05DC\", \"\\u05DE\", \"\\u05E0\", \"\\u05E1\", \"\\u05E2\", \"\\u05E4\", \"\\u05E6\"];\n_Utils.jhd = [\"\\u05E7\", \"\\u05E8\", \"\\u05E9\", \"\\u05EA\"];\n_Utils.jsnum = [\n \"\",\n \"\\u05D0\\u05D7\\u05D3\",\n \"\\u05E9\\u05E0\\u05D9\\u05DD\",\n \"\\u05E9\\u05DC\\u05E9\\u05D4\",\n \"\\u05D0\\u05E8\\u05D1\\u05E2\\u05D4\",\n \"\\u05D7\\u05DE\\u05E9\\u05D4\",\n \"\\u05E9\\u05E9\\u05D4\",\n \"\\u05E9\\u05D1\\u05E2\\u05D4\",\n \"\\u05E9\\u05DE\\u05D5\\u05E0\\u05D4\",\n \"\\u05EA\\u05E9\\u05E2\\u05D4\"\n];\n_Utils.jtnum = [\"\", \"\\u05E2\\u05E9\\u05E8\", \"\\u05E2\\u05E9\\u05E8\\u05D9\\u05DD\", \"\\u05E9\\u05DC\\u05D5\\u05E9\\u05D9\\u05DD\", \"\\u05D0\\u05E8\\u05D1\\u05E2\\u05D9\\u05DD\"];\nvar Utils = _Utils;\n\n// src/JCal/Location.ts\nvar Location = class _Location {\n /**\n * Describe a new Location.\n * @param {String} name The name of the Location\n * @param {String} nameHeb The name of the Location\n * @param {Boolean} israel Is this Location in Israel?\n * @param {Number} latitude\n * @param {Number} longitude\n * @param {Number} utcOffset The time zone. Israel is 2 and New York is -5.\n * @param {Number} elevation Elevation in meters\n * @param {Number} [candleLighting] Number of minutes before sunset the candles are lit on Friday\n */\n constructor(name, nameHeb, israel2, latitude, longitude, utcOffset, elevation, candleLighting) {\n if (typeof israel2 === \"undefined\" || israel2 === null) {\n israel2 = latitude > 29.45 && latitude < 33 && longitude < -34.23 && longitude > -35.9;\n }\n if (israel2) {\n utcOffset = 2;\n } else if (typeof utcOffset === \"undefined\" || utcOffset === null) {\n utcOffset = -Math.round(longitude / 15);\n }\n this.Name = name || \"Unknown Location\";\n this.NameHebrew = nameHeb;\n this.Israel = !!israel2;\n this.Latitude = latitude;\n this.Longitude = longitude;\n this.UTCOffset = utcOffset || 0;\n this.Elevation = elevation || 0;\n this.CandleLighting = candleLighting || _Location.getCandles(this);\n }\n static clone(location) {\n return new _Location(\n location.Name,\n location.NameHebrew,\n location.Israel,\n location.Latitude,\n location.Longitude,\n location.UTCOffset,\n location.Elevation,\n location.CandleLighting || 0\n );\n }\n static getCandles(location) {\n if (location.CandleLighting) {\n return location.CandleLighting;\n } else if (!location.Israel) {\n return 18;\n } else {\n const special = [\n { names: [\"jerusalem\", \"yerush\", \"petach\", \"petah\", \"petak\", \"beit shemesh\", \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD\", \"\\u05E4\\u05EA\\u05D7 \\u05EA\\u05E7\\u05D5\\u05D4\", \"\\u05D1\\u05D9\\u05EA \\u05E9\\u05DE\\u05E9\"], min: 40 },\n { names: [\"haifa\", \"chaifa\", \"be'er sheva\", \"beersheba\", \"\\u05D7\\u05D9\\u05E4\\u05D4\", \"\\u05D1\\u05D0\\u05E8 \\u05E9\\u05D1\\u05E2\"], min: 22 }\n ], loclc = location.Name.toLowerCase(), city = special.find((sp) => {\n return sp.names.find((spi) => {\n return loclc.indexOf(spi) > -1;\n });\n });\n return city ? city.min : 30;\n }\n }\n /**Gets the Location for Jerusalem.*/\n static getJerusalem() {\n return new _Location(\"Jerusalem\", \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD\", true, 31.78, -35.22, 2, 800, 40);\n }\n /**Gets the Location for Lakewood NJ*/\n static getLakewood() {\n return new _Location(\"Lakewood NJ\", void 0, false, 40.1, 74.23, -5, 0, 18);\n }\n};\n\n// src/Locations.ts\nvar import_closest_match = require(\"closest-match\");\n\n// src/locations.json\nvar locations_default = [{ name: \"Ofakim\", heb: \"\\u05D0\\u05D5\\u05E4\\u05E7\\u05D9\\u05DD\", il: true, tz: 2, el: 170, lat: 31.32, lon: -34.62 }, { name: \"Eilat\", heb: \"\\u05D0\\u05D9\\u05DC\\u05EA\", il: true, tz: 2, lat: 29.55, lon: -34.95 }, { name: \"Elad\", heb: \"\\u05D0\\u05DC\\u05E2\\u05D3\", il: true, tz: 2, el: 150, lat: 32.05, lon: -34.95 }, { name: \"Ashdod\", heb: \"\\u05D0\\u05E9\\u05D3\\u05D5\\u05D3\", il: true, tz: 2, lat: 31.78, lon: -34.63 }, { name: \"Ashkelon\", heb: \"\\u05D0\\u05E9\\u05E7\\u05DC\\u05D5\\u05DF\", il: true, tz: 2, lat: 31.65, lon: -34.57 }, { name: \"Be'er Ya'akov\", heb: \"\\u05D1\\u05D0\\u05E8 \\u05D9\\u05E2\\u05E7\\u05D1\", il: true, tz: 2, lat: 31.93, lon: -34.83 }, { name: \"Bersheba\", heb: \"\\u05D1\\u05D0\\u05E8 \\u05E9\\u05D1\\u05E2\", il: true, tz: 2, el: 270, lat: 31.23, lon: -34.78 }, { name: \"Beit She'an\", heb: \"\\u05D1\\u05D9\\u05EA \\u05E9\\u05D0\\u05DF\", il: true, tz: 2, el: 0, lat: 32.5, lon: -35.5 }, { name: \"Beit Shemesh\", heb: \"\\u05D1\\u05D9\\u05EA \\u05E9\\u05DE\\u05E9\", il: true, tz: 2, el: 300, lat: 31.73, lon: -34.98 }, { name: \"Beitar Illit\", heb: \"\\u05D1\\u05D9\\u05EA\\u05E8 \\u05E2\\u05DC\\u05D9\\u05EA\", il: true, tz: 2, el: 800, lat: 31.68, lon: -35.12 }, { name: \"Bnei Brak\", heb: \"\\u05D1\\u05E0\\u05D9 \\u05D1\\u05E8\\u05E7\", il: true, tz: 2, el: 70, lat: 32.08, lon: -34.82, cl: 21 }, { name: \"Binyamina\", heb: \"\\u05D1\\u05E0\\u05D9\\u05DE\\u05D9\\u05E0\\u05D4\", il: true, tz: 2, lat: 32.52, lon: -34.95 }, { name: \"Bat Yam\", heb: \"\\u05D1\\u05EA \\u05D9\\u05DD\", il: true, tz: 2, lat: 32.02, lon: -34.73 }, { name: \"Givat Zeev\", heb: \"\\u05D2\\u05D1\\u05E2\\u05EA \\u05D6\\u05D0\\u05D1\", il: true, tz: 2, lat: 31.87, lon: -35.17 }, { name: \"Givatayim\", heb: \"\\u05D2\\u05D1\\u05EA\\u05D9\\u05D9\\u05DD\", il: true, tz: 2, lat: 32.05, lon: -34.8 }, { name: \"Dimona\", heb: \"\\u05D3\\u05D9\\u05DE\\u05D5\\u05E0\\u05D4\", il: true, tz: 2, lat: 31.07, lon: -35.03 }, { name: \"Hertzeliya\", heb: \"\\u05D4\\u05E8\\u05E6\\u05DC\\u05D9\\u05D4\", il: true, tz: 2, lat: 32.17, lon: -34.83 }, { name: \"Zichron Ya'akov\", heb: \"\\u05D6\\u05DB\\u05E8\\u05D5\\u05DF \\u05D9\\u05E2\\u05E7\\u05D1\", il: true, tz: 2, el: 170, lat: 32.57, lon: -34.95 }, { name: \"Hebron\", heb: \"\\u05D7\\u05D1\\u05E8\\u05D5\\u05DF\", il: true, tz: 2, el: 950, lat: 31.53, lon: -35.08 }, { name: \"Hadera\", heb: \"\\u05D7\\u05D3\\u05E8\\u05D4\", il: true, tz: 2, lat: 32.43, lon: -34.92 }, { name: \"Holon\", heb: \"\\u05D7\\u05D5\\u05DC\\u05D5\\u05DF\", il: true, tz: 2, lat: 32.02, lon: -34.75 }, { name: \"Chispin\", heb: \"\\u05D7\\u05D9\\u05E1\\u05E4\\u05D9\\u05DF\", il: true, tz: 2, lat: 32.85, lon: -35.77 }, { name: \"Haifa\", heb: \"\\u05D7\\u05D9\\u05E4\\u05D4\", il: true, tz: 2, el: 370, lat: 32.8, lon: -34.98 }, { name: \"Chafetz Chaim\", heb: \"\\u05D7\\u05E4\\u05E5 \\u05D7\\u05D9\\u05D9\\u05DD\", il: true, tz: 2, el: 80, lat: 31.48, lon: -34.47 }, { name: \"Tiberius\", heb: \"\\u05D8\\u05D1\\u05E8\\u05D9\\u05D4\", il: true, tz: 2, lat: 32.78, lon: -35.53 }, { name: \"Telz Stone\", heb: \"\\u05D8\\u05DC\\u05D6 \\u05E1\\u05D8\\u05D5\\u05DF\", il: true, tz: 2, el: 720, lat: 31.78, lon: -35.1 }, { name: \"Yerucham\", heb: \"\\u05D9\\u05E8\\u05D5\\u05D7\\u05DD\", il: true, tz: 2, lat: 30.98, lon: -34.92 }, { name: \"Jerusalem\", heb: \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD\", il: true, tz: 2, el: 775, lat: 31.77, lon: -35.23, cl: 40 }, { name: \"Kfar Chabad\", heb: \"\\u05DB\\u05E4\\u05E8 \\u05D7\\u05D1\\u05D3\", il: true, tz: 2, lat: 31.97, lon: -34.8 }, { name: \"Kfar Chasidim\", heb: \"\\u05DB\\u05E4\\u05E8 \\u05D7\\u05E1\\u05D9\\u05D3\\u05D9\\u05DD\", il: true, tz: 2, el: 154, lat: 32.73, lon: -35.08 }, { name: \"Kfar Mimon\", heb: \"\\u05DB\\u05E4\\u05E8 \\u05DE\\u05D9\\u05D9\\u05DE\\u05D5\\u05DF\", il: true, tz: 2, lat: 31.42, lon: -34.58 }, { name: \"Karmiel\", heb: \"\\u05DB\\u05E8\\u05DE\\u05D9\\u05D0\\u05DC\", il: true, tz: 2, lat: 32.92, lon: -35.3 }, { name: \"Lod\", heb: \"\\u05DC\\u05D5\\u05D3\", il: true, tz: 2, lat: 31.95, lon: -34.88 }, { name: \"Migdal Ha'Emek\", heb: \"\\u05DE\\u05D2\\u05D3\\u05DC \\u05D4\\u05E2\\u05DE\\u05E7\", il: true, tz: 2, lat: 32.67, lon: -35.23 }, { name: \"Meron\", heb: \"\\u05DE\\u05D9\\u05E8\\u05D5\\u05DF\", il: true, tz: 2, el: 900, lat: 32.98, lon: -35.43 }, { name: \"Ma'agalim\", heb: \"\\u05DE\\u05E2\\u05D2\\u05DC\\u05D9\\u05DD\", il: true, tz: 2, el: 150, lat: 31.48, lon: -34.67 }, { name: \"Ma'aleh Adumim\", heb: \"\\u05DE\\u05E2\\u05DC\\u05D4 \\u05D0\\u05D3\\u05D5\\u05DE\\u05D9\\u05DD\", il: true, tz: 2, lat: 31.77, lon: -35.3 }, { name: \"Mitzpeh Ramon\", heb: \"\\u05DE\\u05E6\\u05E4\\u05D4 \\u05E8\\u05DE\\u05D5\\u05DF\", il: true, tz: 2, el: 892, lat: 30.62, lon: -34.8 }, { name: \"Ne'halel\", heb: \"\\u05E0\\u05D4\\u05DC\\u05DC\", il: true, tz: 2, lat: 32.67, lon: -35.23 }, { name: \"Nahariya\", heb: \"\\u05E0\\u05D4\\u05E8\\u05D9\\u05D4\", il: true, tz: 2, el: 25, lat: 33.02, lon: -35.1 }, { name: \"Nir Eztyon\", heb: \"\\u05E0\\u05D9\\u05E8 \\u05E2\\u05E6\\u05D9\\u05D5\\u05DF\", il: true, tz: 2, el: 220, lat: 32.7, lon: -34.98 }, { name: \"Nesher\", heb: \"\\u05E0\\u05E9\\u05E8\", il: true, tz: 2, lat: 32.73, lon: -35.08 }, { name: \"Netivot\", heb: \"\\u05E0\\u05EA\\u05D9\\u05D1\\u05D5\\u05EA\", il: true, tz: 2, el: 142, lat: 31.42, lon: -34.58 }, { name: \"Netanya\", heb: \"\\u05E0\\u05EA\\u05E0\\u05D9\\u05D4\", il: true, tz: 2, lat: 32.33, lon: -34.87 }, { name: \"Ein Bokek\", heb: \"\\u05E2\\u05D9\\u05DF \\u05D1\\u05D5\\u05E7\\u05E7\", il: true, tz: 2, lat: 31.2, lon: -35.37 }, { name: \"Acre\", heb: \"\\u05E2\\u05DB\\u05D5\", il: true, tz: 2, lat: 32.93, lon: -35.08 }, { name: \"Eli\", heb: \"\\u05E2\\u05DC\\u05D9\", il: true, tz: 2, el: 720, lat: 32.07, lon: -35.27 }, { name: \"Afula\", heb: \"\\u05E2\\u05E4\\u05D5\\u05DC\\u05D4\", il: true, tz: 2, el: 60, lat: 32.6, lon: -35.28 }, { name: \"Etzyon Gaver\", heb: \"\\u05E2\\u05E6\\u05D9\\u05D5\\u05DF \\u05D2\\u05D1\\u05E8\", il: true, tz: 2, el: 5, lat: 29.53, lon: -34.95 }, { name: \"Arad\", heb: \"\\u05E2\\u05E8\\u05D3\", il: true, tz: 2, el: 640, lat: 31.27, lon: -35.22 }, { name: \"Pardes Chana\", heb: \"\\u05E4\\u05E8\\u05D3\\u05E1 \\u05D7\\u05E0\\u05D4\", il: true, tz: 2, lat: 32.47, lon: -34.97 }, { name: \"Petach Tikvah\", heb: \"\\u05E4\\u05EA\\u05D7 \\u05EA\\u05E7\\u05D5\\u05D5\\u05D4\", il: true, tz: 2, lat: 32.08, lon: -34.88, cl: 40 }, { name: \"Safed\", heb: \"\\u05E6\\u05E4\\u05EA\", il: true, tz: 2, el: 850, lat: 32.97, lon: -35.5 }, { name: \"Kedumim\", heb: \"\\u05E7\\u05D3\\u05D5\\u05DE\\u05D9\\u05DD\", il: true, tz: 2, el: 487, lat: 32.22, lon: -35.15 }, { name: \"Komemiyut\", heb: \"\\u05E7\\u05D5\\u05DE\\u05DE\\u05D9\\u05D5\\u05EA\", il: true, tz: 2, el: 76, lat: 31.65, lon: -34.73 }, { name: \"Kiryat Arba\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05D0\\u05E8\\u05D1\\u05E2\", il: true, tz: 2, el: 987, lat: 31.52, lon: -35.1 }, { name: \"Kiryat Gat\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05D2\\u05EA\", il: true, tz: 2, el: 159, lat: 31.62, lon: -34.77 }, { name: \"Kityat Tivon\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05D8\\u05D1\\u05E2\\u05D5\\u05DF\", il: true, tz: 2, el: 39, lat: 32.73, lon: -35.08 }, { name: \"Kiryat Yam\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05D9\\u05DD\", il: true, tz: 2, lat: 32.83, lon: -35.07 }, { name: \"Kiryat Malachi\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05DE\\u05DC\\u05D0\\u05DB\\u05D9\", il: true, tz: 2, lat: 31.73, lon: -34.75 }, { name: \"Modi'in Illit\", heb: \"\\u05DE\\u05D5\\u05D3\\u05D9\\u05E2\\u05D9\\u05DF \\u05E2\\u05D9\\u05DC\\u05D9\\u05EA\", il: true, tz: 2, el: 240, lat: 31.93, lon: -35.04, cl: 30 }, { name: \"Kiryat Shmona\", heb: \"\\u05E7\\u05E8\\u05D9\\u05EA \\u05E9\\u05DE\\u05D5\\u05E0\\u05D4\", il: true, tz: 2, lat: 33.2, lon: -35.57 }, { name: \"Rosh Ha'ayin\", heb: \"\\u05E8\\u05D0\\u05E9 \\u05D4\\u05E2\\u05D9\\u05DF\", il: true, tz: 2, el: 90, lat: 32.08, lon: -34.95 }, { name: \"Rosh Pina\", heb: \"\\u05E8\\u05D0\\u05E9 \\u05E4\\u05D9\\u05E0\\u05D4\", il: true, tz: 2, el: 131, lat: 32.97, lon: -35.48 }, { name: \"Rishon Le'Tzion\", heb: \"\\u05E8\\u05D0\\u05E9\\u05D5\\u05DF \\u05DC\\u05E6\\u05D9\\u05D5\\u05DF\", il: true, tz: 2, lat: 31.97, lon: -34.8 }, { name: \"Rehovot\", heb: \"\\u05E8\\u05D7\\u05D5\\u05D1\\u05D5\\u05EA\", il: true, tz: 2, el: 76, lat: 31.88, lon: -34.82 }, { name: \"Ramla\", heb: \"\\u05E8\\u05DE\\u05DC\\u05D4\", il: true, tz: 2, lat: 31.92, lon: -34.87 }, { name: \"Ramat Hasharon\", heb: \"\\u05E8\\u05DE\\u05EA \\u05D4\\u05E9\\u05E8\\u05D5\\u05DF\", il: true, tz: 2, el: 85, lat: 32.17, lon: -34.85 }, { name: \"Ramat Magshimim\", heb: \"\\u05E8\\u05DE\\u05EA \\u05DE\\u05D2\\u05E9\\u05D9\\u05DE\\u05D9\\u05DD\", il: true, tz: 2, el: 450, lat: 32.83, lon: -35.82 }, { name: \"Ra'anana\", heb: \"\\u05E8\\u05E2\\u05E0\\u05E0\\u05D4\", il: true, tz: 2, el: 71, lat: 32.17, lon: -34.85 }, { name: \"Shvi tzion\", heb: \"\\u05E9\\u05D1\\u05D9 \\u05E6\\u05D9\\u05D5\\u05DF\", il: true, tz: 2, lat: 33.02, lon: -35.1 }, { name: \"Nablus\", heb: \"\\u05E9\\u05DB\\u05DD\", il: true, tz: 2, el: 667, lat: 32.22, lon: -35.27 }, { name: \"Shalavim\", heb: \"\\u05E9\\u05DC\\u05E2\\u05D1\\u05D9\\u05DD\", il: true, tz: 2, el: 194, lat: 31.87, lon: 34.98 }, { name: \"Tushiya\", heb: \"\\u05EA\\u05D5\\u05E9\\u05D9\\u05D4\", il: true, tz: 2, lat: 31.42, lon: -34.58 }, { name: \"Tel Aviv\", heb: \"\\u05EA\\u05DC \\u05D0\\u05D1\\u05D9\\u05D1\", il: true, tz: 2, el: 20, lat: 32.07, lon: -34.77, cl: 21 }, { name: \"Tifrach\", heb: \"\\u05EA\\u05E4\\u05E8\\u05D7\", il: true, tz: 2, el: 173, lat: 31.32, lon: -34.67 }, { name: \"Nazereth\", heb: \"\\u05E0\\u05E6\\u05E8\\u05EA\", il: true, tz: 2, lat: 32.7, lon: -35.32 }, { name: \"Menachemya\", heb: \"\\u05DE\\u05E0\\u05D7\\u05DE\\u05D9\\u05D4\", il: true, tz: 2, lat: 32.6, lon: -35.55 }, { name: \"Ramot\", heb: \"\\u05E8\\u05DE\\u05D5\\u05EA\", il: true, tz: 2, el: 800, lat: 31.82, lon: -35.18 }, { name: \"Katzrin\", heb: \"\\u05E7\\u05E6\\u05E8\\u05D9\\u05DF\", il: true, tz: 2, lat: 32.98, lon: -35.68 }, { name: \"Hashmonaim\", heb: \"\\u05D7\\u05E9\\u05DE\\u05D5\\u05E0\\u05D0\\u05D9\\u05DD\", il: true, tz: 2, el: 255, lat: 31.93, lon: -35.02 }, { name: \"Laniado\", heb: \"\\u05DC\\u05E0\\u05D9\\u05D0\\u05D3\\u05D5 / \\u05E0\\u05EA\\u05E0\\u05D9\\u05D4\", il: true, tz: 2, el: 26, lat: 32.33, lon: -34.87 }, { name: \"Melbourne\", tz: 10, el: 35, lat: -37.82, lon: -144.97 }, { name: \"Aukland\", tz: 12, lat: -36.87, lon: -174.77 }, { name: \"Boisbriand\", tz: -5, lat: 45.62, lon: 73.85 }, { name: \"Ottawa\", tz: -5, lat: 45.42, lon: 75.7 }, { name: \"Winnipeg\", tz: -6, lat: 49.88, lon: 97.13 }, { name: \"Toronto\", tz: -5, el: 175, lat: 43.68, lon: 79.43 }, { name: \"Montreal\", tz: -5, el: 30, lat: 45.52, lon: 73.57 }, { name: \"Eidenburg\", tz: 0, el: 134, lat: 55.92, lon: 3.18 }, { name: \"Algeria\", tz: 1, lat: 36.82, lon: 2.98 }, { name: \"Bogota\", tz: -5, lat: 4.77, lon: 74.1 }, { name: \"Brasilia\", tz: -3, lat: 15.77, lon: 48.02 }, { name: \"Goteborg\", tz: 1, el: 100, lat: 57.7, lon: -11.95 }, { name: \"Victoria\", tz: 8, lat: 22.25, lon: -114.23 }, { name: \"Touson\", tz: -7, lat: 32.22, lon: 110.97 }, { name: \"Tunville\", tz: 1, lat: 49.4, lon: -6.17 }, { name: \"Tkuarembo\", tz: -3, lat: -31.7, lon: 55.98 }, { name: \"Trumso\", tz: 1, lat: 69.67, lon: -18.97 }, { name: \"Johannesburg\", tz: 2, el: 1655, lat: -26.3, lon: -28.18 }, { name: \"Montevideo\", tz: -3, el: 22, lat: -34.83, lon: 56.23 }, { name: \"Meedan Columbia\", tz: -5, lat: 6.23, lon: 75.58 }, { name: \"Mexico City\", tz: -6, lat: 19.45, lon: 98.95 }, { name: \"New Delhi\", tz: 5, lat: 28.58, lon: -77.22 }, { name: \"Narwik\", tz: 1, lat: 68.43, lon: -17.42 }, { name: \"San Jose De Mayo\", tz: -3, lat: -34.35, lon: 56.72 }, { name: \"San Paulo\", tz: -3, el: 790, lat: -23.6, lon: 46.67 }, { name: \"Sunderland\", tz: 0, lat: 54.93, lon: 1.43 }, { name: \"Salford\", tz: 0, lat: 53.5, lon: 2.25 }, { name: \"San Jusinto Uruguay\", tz: -3, lat: -34.55, lon: 55.87 }, { name: \"New Square\", tz: -5, lat: 41.1, lon: 74.07 }, { name: \"Palm Springs\", tz: -8, el: 125, lat: 33.83, lon: 116.67 }, { name: \"Formosa\", tz: -3, lat: -26.18, lon: 58.17 }, { name: \"Panama\", tz: -5, lat: 9.92, lon: 79.93 }, { name: \"Perta\", tz: 8, lat: -32, lon: -115.83 }, { name: \"Peking\", tz: 8, lat: 39.97, lon: -116.45 }, { name: \"Zandiger (India)\", tz: 5, lat: 30.73, lon: -76.78 }, { name: \"The Equator\", tz: 0, lat: 0, lon: 0 }, { name: \"South Pole\", tz: 0, lat: -90, lon: 0 }, { name: \"North Pole\", tz: 0, lat: 90, lon: 0 }, { name: \"Caracas, Venezuela\", tz: -4, lat: 10.37, lon: 66.88 }, { name: \"Robonimi\", tz: 1, lat: 66.48, lon: -25.7 }, { name: \"Rio De Jinero\", tz: -3, lat: -22.85, lon: 43.68 }, { name: \"Phoenix\", tz: -7, lat: 33.43, lon: 112.07 }, { name: \"Lucerne\", tz: 1, lat: 47.05, lon: -8.32 }, { name: \"Odessa\", tz: 2, lat: 46.48, lon: -30.72 }, { name: \"Uman\", tz: 2, lat: 48.73, lon: -30.23 }, { name: \"Ifran\", tz: 0, lat: 33.53, lon: 5.1 }, { name: \"Alsund Norway\", tz: 1, lat: 62.47, lon: -6.18 }, { name: \"Athens\", tz: 2, lat: 37.97, lon: -23.72 }, { name: \"Bad\", tz: 1, lat: 50.2, lon: -10.08 }, { name: \"Bucharest\", tz: 2, lat: 44.38, lon: -26.4 }, { name: \"Gomel\", tz: 2, lat: 52.38, lon: -30.83 }, { name: \"Gibraltar\", tz: 1, lat: 36.13, lon: 5.35 }, { name: \"Gateside\", tz: 0, lat: 54.95, lon: 1.6 }, { name: \"Vienna\", tz: 1, lat: 48.22, lon: -16.37 }, { name: \"Venice\", tz: 1, lat: 45.38, lon: -12.47 }, { name: \"Warsaw\", tz: 1, lat: 52.23, lon: -21 }, { name: \"Toulon\", tz: 1, lat: 43.15, lon: -5.87 }, { name: \"Torberey Scotland\", tz: 0, lat: 55.3, lon: 4.82 }, { name: \"Lusan\", tz: 1, el: 375, lat: 46.53, lon: -6.62 }, { name: \"London\", tz: 0, el: 45, lat: 51.6, lon: 0.1 }, { name: \"Luxenbourg\", tz: 1, lat: 49.67, lon: -6.17 }, { name: \"Liverpool\", tz: 0, lat: 53.42, lon: 2.98 }, { name: \"Leeds\", tz: 0, lat: 53.8, lon: 1.57 }, { name: \"Medisimo Italy\", tz: 1, el: 1500, lat: 46.43, lon: -9.33 }, { name: \"Madrid\", tz: 1, lat: 40.4, lon: 3.7 }, { name: \"Monterrey, Mexico\", tz: 1, lat: 46.4, lon: -6.87 }, { name: \"Moscow\", tz: 3, el: 154, lat: 55.75, lon: -37.62 }, { name: \"Milano\", tz: 1, el: 122, lat: 45.45, lon: -9.18 }, { name: \"Minsk\", tz: 2, lat: 53.87, lon: -27.82 }, { name: \"Malaga\", tz: 1, lat: 36.7, lon: 4.42 }, { name: \"Manchester\", tz: 0, lat: 53.5, lon: 2.23 }, { name: \"Meknes\", tz: 0, lat: 33.9, lon: 5.57 }, { name: \"Marseille\", tz: 1, lat: 43.3, lon: -5.32 }, { name: \"Marrakech\", tz: 0, lat: 31.6, lon: 7.98 }, { name: \"New Castle\", tz: 0, lat: 54.95, lon: 1.62 }, { name: \"Nice France\", tz: 1, lat: 43.7, lon: -7.18 }, { name: \"Fes\", tz: 0, lat: 34.03, lon: 4.98 }, { name: \"Prague\", tz: 1, el: 180, lat: 50.08, lon: -14.42 }, { name: \"Frankfurt\", tz: 1, lat: 50.12, lon: -8.65 }, { name: \"Frankfurt On Maine\", tz: 1, lat: 50.1, lon: -8.68 }, { name: \"Zurich\", tz: 1, el: 410, lat: 47.37, lon: -8.53 }, { name: \"Copenhagen\", tz: 1, lat: 55.77, lon: -12.33 }, { name: \"Casablanca\", tz: 0, lat: 33.58, lon: 7.58 }, { name: \"Kiev\", tz: 2, lat: 50.43, lon: -30.52 }, { name: \"Colon\", tz: 1, el: 46, lat: 50.9, lon: -6.93 }, { name: \"Robet\", tz: 0, lat: 34.02, lon: 6.8 }, { name: \"Rodes\", tz: 2, lat: 36.4, lon: -28.18 }, { name: \"Rome\", tz: 1, lat: 41.9, lon: -12.5 }, { name: \"Shpolgen\", tz: 1, lat: 46.55, lon: -9.32 }, { name: \"Baku\", tz: 2, lat: 40.4, lon: -49.82 }, { name: \"Tarvisio\", tz: 1, lat: 46.5, lon: -13.58 }, { name: \"windischgarsten\", tz: 1, lat: 47.72, lon: -14.32 }, { name: \"Nesslau\", tz: 1, lat: 47.2, lon: -9.2 }, { name: \"Deerfield Beach\", tz: -5, lat: 26.32, lon: 80.08 }, { name: \"Hartford CT\", tz: -5, lat: 41.75, lon: 72.7 }, { name: \"Boro Park, Brooklyn NY\", tz: -5, lat: 40.63, lon: 74 }, { name: \"Brooklyn NY\", tz: -5, lat: 40.63, lon: 73.95 }, { name: \"Denver\", tz: -7, el: 1601, lat: 39.75, lon: 104.93 }, { name: \"Houston\", tz: -6, el: 29, lat: 29.83, lon: 95.35 }, { name: \"Hollywood\", tz: -5, el: 8, lat: 26.1, lon: 80.2 }, { name: \"Washington DC\", tz: -5, lat: 38.9, lon: 77.03 }, { name: \"Los Angeles\", tz: -8, lat: 34.05, lon: 118.23 }, { name: \"Lakewood NJ\", tz: -5, lat: 40.1, lon: 74.23 }, { name: \"Monticello NY\", tz: -5, lat: 41.65, lon: 74.73 }, { name: \"Monsey NY\", tz: -5, lat: 41.1, lon: 74.07 }, { name: \"Miami\", tz: -5, el: 2, lat: 25.83, lon: 80.27 }, { name: \"Miami Beach\", tz: -5, el: 3, lat: 25.78, lon: 80.28 }, { name: \"Milwaukee\", tz: -6, lat: 43.03, lon: 87.92 }, { name: \"Miniappolis\", tz: -6, el: 253, lat: 44.88, lon: 93.22 }, { name: \"Memphis TN\", tz: -6, lat: 35.13, lon: 90.03 }, { name: \"New Orleans\", tz: -6, el: 1, lat: 30, lon: 90.12 }, { name: \"New Square NY\", tz: -5, lat: 41.1, lon: 74.07 }, { name: \"San Juan\", tz: -8, lat: 37.33, lon: 121.88 }, { name: \"San Diego\", tz: -8, lat: 32.72, lon: 117.13 }, { name: \"Saint Louis\", tz: -6, lat: 38.65, lon: 90.32 }, { name: \"Pittsburgh\", tz: -5, lat: 40.4, lon: 80.03 }, { name: \"Philadelphia\", tz: -5, lat: 39.93, lon: 75.17 }, { name: \"Providence RI\", tz: -5, lat: 41.82, lon: 71.4 }, { name: \"Kansas City\", tz: -6, el: 225, lat: 39.1, lon: 94.6 }, { name: \"Kiryas Joel NY\", tz: -5, lat: 41.33, lon: 74.17 }, { name: \"Cali\", tz: -5, lat: 3.45, lon: 76.52 }, { name: \"Medellin\", tz: -5, lat: 6.25, lon: 75.57 }, { name: \"Honolulu\", tz: -10, lat: 21.32, lon: 157.83 }, { name: \"Santiago de Chile\", tz: -4, lat: -33.45, lon: 70.67 }, { name: \"Nairobi\", tz: 3, lat: -1.28, lon: -36.82 }, { name: \"Taipei\", tz: 8, lat: 25.05, lon: -121.5 }, { name: \"Rangun (GMT+6)\", tz: 6, lat: 16.78, lon: -96.17 }, { name: \"Rangun (GMT+7)\", tz: 7, lat: 16.78, lon: -96.17 }, { name: \"Rio de Janeiro\", tz: -3, lat: -22.9, lon: 43.25 }, { name: \"Kapstadt (Capetown)\", tz: 2, lat: -33.9, lon: -18.37 }, { name: \"San Juan (P.R.)\", tz: -4, lat: 18.47, lon: 66.1 }, { name: \"Elizabeth, N.J, US\", tz: -5, lat: 40.67, lon: 74.18 }, { name: \"Aach\", tz: 1, lat: 47.83, lon: -8.85 }, { name: \"Adelsheim\", tz: 1, lat: 49.4, lon: -9.38 }, { name: \"Altlandsberg\", tz: 1, lat: 52.55, lon: -13.72 }, { name: \"Angerm\\xFCnde\", tz: 1, lat: 53.02, lon: -14 }, { name: \"Anklam\", tz: 1, lat: 53.85, lon: -13.68 }, { name: \"Annaberg\", tz: 1, lat: 57.52, lon: -13.43 }, { name: \"Ansbach\", tz: 1, lat: 49.28, lon: -10.57 }, { name: \"Apolda\", tz: 1, lat: 51.02, lon: -11.52 }, { name: \"Arnstadt\", tz: 1, lat: 50.83, lon: -10.95 }, { name: \"Aschersleben\", tz: 1, lat: 51.75, lon: -11.45 }, { name: \"Bad Berka\", tz: 1, lat: 50.9, lon: -11.28 }, { name: \"Bad Cannstatt\", tz: 1, lat: 48.8, lon: -9.18 }, { name: \"Bad Freienwalde\", tz: 1, lat: 52.78, lon: -14.02 }, { name: \"Bad Gottleuba\", tz: 1, lat: 50.85, lon: -13.93 }, { name: \"Bad Krozingen\", tz: 1, lat: 47.92, lon: -7.72 }, { name: \"Bad Mergenheim\", tz: 1, lat: 49.5, lon: -9.77 }, { name: \"Bad Mingolsheim\", tz: 1, lat: 49.23, lon: -8.65 }, { name: \"Bad Rappenau\", tz: 1, lat: 49.32, lon: -9.1 }, { name: \"Bad Salzungen\", tz: 1, lat: 50.8, lon: -10.22 }, { name: \"Bad Wilznack\", tz: 1, lat: 52.95, lon: -11.95 }, { name: \"Bad Wimpfen\", tz: 1, lat: 49.23, lon: -9.15 }, { name: \"Baiersdorf\", tz: 1, lat: 49.65, lon: -11.02 }, { name: \"Ballenstedt\", tz: 1, lat: 51.72, lon: -11.23 }, { name: \"Barby\", tz: 1, lat: 51.97, lon: -11.88 }, { name: \"Bautzen\", tz: 1, lat: 51.18, lon: -14.43 }, { name: \"Beelitz\", tz: 1, lat: 52.23, lon: -12.97 }, { name: \"Beeskow\", tz: 1, lat: 52.17, lon: -14.23 }, { name: \"Bernau\", tz: 1, lat: 47.8, lon: -12.37 }, { name: \"Bernburg\", tz: 1, lat: 51.8, lon: -11.73 }, { name: \"Biesenthal\", tz: 1, lat: 52.77, lon: -13.62 }, { name: \"Bleicherode\", tz: 1, lat: 51.43, lon: -10.57 }, { name: \"Boizenburg\", tz: 1, lat: 53.37, lon: -10.72 }, { name: \"Borna\", tz: 1, lat: 51.32, lon: -13.18 }, { name: \"Breisach\", tz: 1, lat: 48.02, lon: -7.67 }, { name: \"Br\\xFCel\", tz: 1, lat: 53.73, lon: -11.72 }, { name: \"Burg\", tz: 1, lat: 52.27, lon: -11.85 }, { name: \"B\\xFCtzow\", tz: 1, lat: 53.83, lon: -11.98 }, { name: \"Calbe\", tz: 1, lat: 51.9, lon: -11.77 }, { name: \"Calv\\xF6rde\", tz: 1, lat: 52.38, lon: -11.28 }, { name: \"Caputh\", tz: 1, lat: 52.35, lon: -13 }, { name: \"Coesfeld\", tz: 1, lat: 51.93, lon: -7.17 }, { name: \"Coswig\", tz: 1, lat: 51.88, lon: -12.43 }, { name: \"Crivitz\", tz: 1, lat: 53.58, lon: -11.63 }, { name: \"Dargun\", tz: 1, lat: 53.9, lon: -12.85 }, { name: \"Deggendorf\", tz: 1, lat: 48.85, lon: -12.98 }, { name: \"Delitzsch\", tz: 1, lat: 51.52, lon: -12.33 }, { name: \"Aachen\", tz: 1, lat: 50.78, lon: -6.08 }, { name: \"Altensteig\", tz: 1, lat: 48.58, lon: -8.6 }, { name: \"Amberg\", tz: 1, lat: 49.45, lon: -11.87 }, { name: \"Augsburg\", tz: 1, lat: 48.38, lon: -10.88 }, { name: \"Aurich\", tz: 1, lat: 53.47, lon: -7.48 }, { name: \"Bad Kissingen\", tz: 1, lat: 50.2, lon: -10.05 }, { name: \"Bad Kreuznach\", tz: 1, lat: 49.87, lon: -7.85 }, { name: \"Bad Nauheim\", tz: 1, lat: 50.37, lon: -8.73 }, { name: \"Baden-Baden\", tz: 1, lat: 48.77, lon: -8.23 }, { name: \"Bamberg\", tz: 1, lat: 49.88, lon: -10.88 }, { name: \"Bayreuth\", tz: 1, lat: 49.95, lon: -11.58 }, { name: \"Berlin\", tz: 1, lat: 52.52, lon: -13.38 }, { name: \"Bielefeld\", tz: 1, lat: 52.02, lon: -8.52 }, { name: \"Bonn\", tz: 1, lat: 50.73, lon: -7.1 }, { name: \"Brandenburg\", tz: 1, lat: 52.4, lon: -12.53 }, { name: \"Braunschweig\", tz: 1, lat: 52.27, lon: -10.52 }, { name: \"Bremen\", tz: 1, lat: 53.07, lon: -8.82 }, { name: \"Bremerhaven\", tz: 1, lat: 53.55, lon: -8.57 }, { name: \"Calw\", tz: 1, lat: 48.72, lon: -8.73 }, { name: \"Celle\", tz: 1, lat: 52.62, lon: -10.08 }, { name: \"Chemnitz\", tz: 1, lat: 50.83, lon: -12.92 }, { name: \"Cottbus\", tz: 1, lat: 51.75, lon: -14.32 }, { name: \"Dachau\", tz: 1, lat: 48.25, lon: -11.45 }, { name: \"Darmstadt\", tz: 1, lat: 49.88, lon: -8.67 }, { name: \"Dessau\", tz: 1, lat: 51.83, lon: -12.23 }, { name: \"Dortmund\", tz: 1, lat: 51.52, lon: -7.47 }, { name: \"Dresden\", tz: 1, lat: 51.05, lon: -13.73 }, { name: \"Duisburg\", tz: 1, lat: 51.42, lon: -6.77 }, { name: \"D\\xFCsseldorf\", tz: 1, lat: 51.2, lon: -6.78 }, { name: \"Emmendingen\", tz: 1, lat: 48.12, lon: -7.83 }, { name: \"Erfurt\", tz: 1, lat: 50.97, lon: -11.02 }, { name: \"Essen/Ruhr\", tz: 1, lat: 51.47, lon: -7.02 }, { name: \"Frankfurt/Main\", tz: 1, lat: 50.12, lon: -8.67 }, { name: \"Frankfurt/Oder\", tz: 1, lat: 52.33, lon: -14.55 }, { name: \"Freiburg i. Br.\", tz: 1, lat: 47.98, lon: -7.85 }, { name: \"F\\xFCrth\", tz: 1, lat: 49.47, lon: -10.98 }, { name: \"Fulda\", tz: 1, lat: 50.55, lon: -9.68 }, { name: \"Gelsenkirchen\", tz: 1, lat: 51.52, lon: -7.12 }, { name: \"Gie\\xDFen\", tz: 1, lat: 50.58, lon: -8.67 }, { name: \"G\\xF6ttingen\", tz: 1, lat: 51.53, lon: -9.92 }, { name: \"Grabow\", tz: 1, lat: 53.27, lon: -11.57 }, { name: \"Hagen (Westf)\", tz: 1, lat: 51.37, lon: -7.47 }, { name: \"Halle/Saale\", tz: 1, lat: 51.48, lon: -11.97 }, { name: \"Hamburg\", tz: 1, lat: 53.55, lon: -9.98 }, { name: \"Hameln\", tz: 1, lat: 52.1, lon: -9.35 }, { name: \"Hannover\", tz: 1, lat: 52.4, lon: -9.73 }, { name: \"Havelberg\", tz: 1, lat: 52.83, lon: -12.07 }, { name: \"Heidelberg\", tz: 1, lat: 49.42, lon: -8.72 }, { name: \"Herford\", tz: 1, lat: 52.1, lon: -8.67 }, { name: \"Hessisch Oldendorf\", tz: 1, lat: 52.17, lon: -9.25 }, { name: \"Hildesheim\", tz: 1, lat: 52.15, lon: -9.95 }, { name: \"Hof\", tz: 1, lat: 50.3, lon: -11.92 }, { name: \"Idar-Oberstein\", tz: 1, lat: 49.7, lon: -7.32 }, { name: \"Kaiserslautern\", tz: 1, lat: 49.43, lon: -7.77 }, { name: \"Karlsruhe\", tz: 1, lat: 49.05, lon: -8.4 }, { name: \"Kassel\", tz: 1, lat: 51.32, lon: -9.47 }, { name: \"Kiel\", tz: 1, lat: 54.33, lon: -10.13 }, { name: \"Kleinmachnow\", tz: 1, lat: 52.4, lon: -13.25 }, { name: \"Koblenz\", tz: 1, lat: 50.35, lon: -7.58 }, { name: \"K\\xF6ln\", tz: 1, lat: 50.93, lon: -6.98 }, { name: \"Krefeld\", tz: 1, lat: 51.33, lon: -6.57 }, { name: \"Leipzig\", tz: 1, lat: 51.32, lon: -12.33 }, { name: \"L\\xF6rrach\", tz: 1, lat: 47.62, lon: -7.67 }, { name: \"L\\xFCbeck\", tz: 1, lat: 53.87, lon: -10.67 }, { name: \"Ludwigshafen\", tz: 1, lat: 49.48, lon: -8.43 }, { name: \"Ludwigslust\", tz: 1, lat: 53.32, lon: -11.5 }, { name: \"Magdeburg\", tz: 1, lat: 52.12, lon: -11.63 }, { name: \"Mainz\", tz: 1, lat: 50.02, lon: -8.27 }, { name: \"Mannheim\", tz: 1, lat: 49.48, lon: -8.47 }, { name: \"Marburg\", tz: 1, lat: 50.82, lon: -8.77 }, { name: \"Minden\", tz: 1, lat: 52.28, lon: -8.92 }, { name: \"M\\xF6nchengladbach\", tz: 1, lat: 51.2, lon: -6.47 }, { name: \"M\\xFCnchen\", tz: 1, lat: 48.13, lon: -11.57 }, { name: \"Nagold\", tz: 1, lat: 48.55, lon: -8.72 }, { name: \"Neum\\xFCnster\", tz: 1, lat: 54.07, lon: -9.98 }, { name: \"Neuruppin\", tz: 1, lat: 52.92, lon: -12.8 }, { name: \"Neustadt/Weinstra\\xDFe\", tz: 1, lat: 49.35, lon: -8.13 }, { name: \"Neustrelitz\", tz: 1, lat: 53.35, lon: -13.07 }, { name: \"N\\xFCrnberg\", tz: 1, lat: 49.45, lon: -11.07 }, { name: \"Offenbach\", tz: 1, lat: 50.13, lon: -8.78 }, { name: \"Oldenburg\", tz: 1, lat: 53.13, lon: -8.22 }, { name: \"Oldenburg in Holstein\", tz: 1, lat: 54.28, lon: -10.87 }, { name: \"Osnabr\\xFCck\", tz: 1, lat: 52.27, lon: -8.03 }, { name: \"Paderborn\", tz: 1, lat: 51.72, lon: -8.73 }, { name: \"Perleberg\", tz: 1, lat: 53.07, lon: -11.85 }, { name: \"Pforzheim\", tz: 1, lat: 48.9, lon: -8.7 }, { name: \"Potsdam\", tz: 1, lat: 52.4, lon: -13.07 }, { name: \"Pritzwalk\", tz: 1, lat: 53.15, lon: -12.17 }, { name: \"Rathenow\", tz: 1, lat: 52.6, lon: -12.33 }, { name: \"Recklinghausen\", tz: 1, lat: 51.6, lon: -7.22 }, { name: \"Regensburg\", tz: 1, lat: 49.02, lon: -12.1 }, { name: \"Rinteln\", tz: 1, lat: 52.18, lon: -9.05 }, { name: \"Rostock\", tz: 1, lat: 54.08, lon: -12.12 }, { name: \"Saarbr\\xFCcken\", tz: 1, lat: 49.23, lon: -6.98 }, { name: \"Salzgitter\", tz: 1, lat: 52.17, lon: -10.42 }, { name: \"Schwerin\", tz: 1, lat: 53.63, lon: -11.42 }, { name: \"Sobernheim\", tz: 1, lat: 49.78, lon: -7.63 }, { name: \"Stendal\", tz: 1, lat: 52.6, lon: -11.85 }, { name: \"Straubing\", tz: 1, lat: 48.88, lon: -12.57 }, { name: \"Strausberg\", tz: 1, lat: 52.58, lon: -13.88 }, { name: \"Stuttgart\", tz: 1, lat: 48.77, lon: -9.18 }, { name: \"Trier\", tz: 1, lat: 49.75, lon: -6.63 }, { name: \"T\\xFCbingen\", tz: 1, lat: 48.52, lon: -9.03 }, { name: \"Weiden in der Oberpfalz\", tz: 1, lat: 49.68, lon: -12.17 }, { name: \"Wiesbaden\", tz: 1, lat: 50.08, lon: -8.23 }, { name: \"Wismar\", tz: 1, lat: 53.88, lon: -11.47 }, { name: \"Wittenberg\", tz: 1, lat: 51.87, lon: -12.65 }, { name: \"Wittenberge\", tz: 1, lat: 53, lon: -11.73 }, { name: \"Wittstock\", tz: 1, lat: 53.17, lon: -12.48 }, { name: \"W\\xF6rlitz\", tz: 1, lat: 51.83, lon: -12.42 }, { name: \"Wuppertal\", tz: 1, lat: 51.27, lon: -7.18 }, { name: \"W\\xFCrzburg\", tz: 1, lat: 49.8, lon: -9.93 }, { name: \"Basel\", tz: 1, lat: 47.63, lon: -7.67 }, { name: \"Bern\", tz: 1, lat: 46.95, lon: -7.43 }, { name: \"Bremgarten\", tz: 1, lat: 47.35, lon: -8.35 }, { name: \"Geneve\", tz: 1, lat: 46.2, lon: -6.15 }, { name: \"M\\xFCnsingen\", tz: 1, lat: 46.88, lon: -7.57 }, { name: \"Sankt Gallen\", tz: 1, lat: 47.42, lon: -9.38 }, { name: \"Vevey\", tz: 1, lat: 46.47, lon: -6.85 }, { name: \"Winterthur\", tz: 1, lat: 47.5, lon: -8.72 }, { name: \"Zug\", tz: 1, lat: 47.17, lon: -8.52 }, { name: \"Z\\xFCrich\", tz: 1, lat: 47.38, lon: -8.53 }, { name: \"Graz\", tz: 1, lat: 47.08, lon: -15.45 }, { name: \"Innsbruck\", tz: 1, lat: 47.27, lon: -11.4 }, { name: \"Linz\", tz: 1, lat: 48.3, lon: -14.3 }, { name: \"Salzburg\", tz: 1, lat: 47.8, lon: -13.03 }, { name: \"Wien\", tz: 1, lat: 48.22, lon: -16.33 }, { name: \"Antwerpen\", tz: 1, lat: 51.22, lon: -4.42 }, { name: \"Arlon\", tz: 1, lat: 49.68, lon: -5.82 }, { name: \"Br\\xFCssel\", tz: 1, lat: 50.83, lon: -4.33 }, { name: \"Charleroi\", tz: 1, lat: 50.42, lon: -4.43 }, { name: \"Gent\", tz: 1, lat: 51.05, lon: -3.72 }, { name: \"Knokke\", tz: 1, lat: 51.35, lon: -3.28 }, { name: \"Li\\xE9ge\", tz: 1, lat: 50.63, lon: -5.57 }, { name: \"Mons\", tz: 1, lat: 50.45, lon: -3.93 }, { name: \"Ostende\", tz: 1, lat: 51.22, lon: -2.9 }, { name: \"Amersfoort\", tz: 1, lat: 52.15, lon: -5.4 }, { name: \"Amsterdam\", tz: 1, lat: 52.37, lon: -4.9 }, { name: \"Arnheim\", tz: 1, lat: 52.02, lon: -5.88 }, { name: \"Bussum\", tz: 1, lat: 52.27, lon: -5.15 }, { name: \"Den Haag\", tz: 1, lat: 52.1, lon: -4.3 }, { name: \"Eindhoven\", tz: 1, lat: 51.43, lon: -5.47 }, { name: \"Enschede\", tz: 1, lat: 52.2, lon: -6.88 }, { name: \"Groningen\", tz: 1, lat: 53.22, lon: -6.55 }, { name: \"Hilversum\", tz: 1, lat: 52.23, lon: -5.15 }, { name: \"Leiden\", tz: 1, lat: 52.15, lon: -4.5 }, { name: \"Maastricht\", tz: 1, lat: 50.87, lon: -5.72 }, { name: \"Rotterdam\", tz: 1, lat: 51.92, lon: -4.47 }, { name: \"Tilburg\", tz: 1, lat: 51.57, lon: -5.08 }, { name: \"Utrecht\", tz: 1, lat: 52.08, lon: -5.13 }, { name: \"Zwolle\", tz: 1, lat: 52.5, lon: -6.08 }, { name: \"Crossen\", tz: 1, lat: 50.75, lon: -12.48 }, { name: \"Krakau\", tz: 1, lat: 50.05, lon: -19.95 }, { name: \"Lodz\", tz: 1, lat: 51.77, lon: -19.22 }, { name: \"Tarn\\xF3w\", tz: 1, lat: 52.78, lon: -14.97 }, { name: \"Warschau\", tz: 1, lat: 52.25, lon: -21 }, { name: \"Wroczlaw (Breslau)\", tz: 1, lat: 51.1, lon: -17 }, { name: \"Birobidzan\", tz: 9, lat: 48.8, lon: -132.95 }, { name: \"Irkutsk\", tz: 8, lat: 52.27, lon: -104.33 }, { name: \"Kiew\", tz: 2, lat: 50.43, lon: -30.52 }, { name: \"Moskau\", tz: 3, lat: 55.75, lon: -37.58 }, { name: \"St. Petersburg\", tz: 3, lat: 59.92, lon: -30.25 }, { name: \"Taschkent\", tz: 6, lat: 41.33, lon: -69.3 }, { name: \"Tblisi\", tz: 3, lat: 41.72, lon: -44.82 }, { name: \"Montreal, Fr.\", tz: 1, lat: 47.53, lon: -4.02 }, { name: \"Lausanne\", tz: 1, lat: 46.52, lon: -6.63 }, { name: \"Nice\", tz: 1, lat: 43.7, lon: -7.25 }, { name: \"Paris\", tz: 1, lat: 48.87, lon: -2.33 }, { name: \"Birmingham\", tz: 0, lat: 52.5, lon: 1.83 }, { name: \"Bradford\", tz: 0, lat: 53.8, lon: 1.75 }, { name: \"Bristol\", tz: 0, lat: 51.45, lon: 2.58 }, { name: \"Edinburgh\", tz: 0, lat: 55.95, lon: 3.22 }, { name: \"Gateshead\", tz: 0, lat: 54.97, lon: 1.62 }, { name: \"Glasgow\", tz: 0, lat: 55.88, lon: 4.25 }, { name: \"Sheffield\", tz: 0, lat: 53.38, lon: 1.5 }, { name: \"Belfast\", tz: 0, lat: 54.58, lon: 5.92 }, { name: \"Dublin\", tz: 0, lat: 53.33, lon: 6.25 }, { name: \"Tralee\", tz: 0, lat: 52.27, lon: 9.7 }, { name: \"Atlanta (Ga., US)\", tz: -5, lat: 33.75, lon: 84.38 }, { name: \"Baltimore, MD\", tz: -5, lat: 39.28, lon: 76.62 }, { name: \"Bentonville, Arkansas\", tz: -6, lat: 36.37, lon: 94.22 }, { name: \"Boston, MA\", tz: -5, lat: 42.35, lon: 71.07 }, { name: \"Buffalo\", tz: -5, lat: 42.9, lon: 78.88 }, { name: \"Burlington (VT, US)\", tz: -5, lat: 44.48, lon: 73.22 }, { name: \"Canton, Ohio\", tz: -5, lat: 40.78, lon: 81.37 }, { name: \"Charleston (S.C., US)\", tz: -5, lat: 32.78, lon: 79.93 }, { name: \"Charlotte (N.C., US)\", tz: -5, lat: 35.23, lon: 80.83 }, { name: \"Chicago\", tz: -6, lat: 41.88, lon: 87.63 }, { name: \"Cincinnati, OH\", tz: -5, lat: 39.1, lon: 84.63 }, { name: \"Cleveland (Ohio, US)\", tz: -5, lat: 41.5, lon: 81.68 }, { name: \"Columbus, OH\", tz: -5, lat: 39.95, lon: 83 }, { name: \"Dallas, TX\", tz: -6, lat: 32.78, lon: 96.8 }, { name: \"Denver (Colo., US)\", tz: -7, lat: 39.72, lon: 105.02 }, { name: \"Detroit, MI\", tz: -5, lat: 42.33, lon: 83.05 }, { name: \"Essexville, MI\", tz: -5, lat: 43.62, lon: 83.83 }, { name: \"Fairbanks, AK\", tz: -10, lat: 64.85, lon: 147.72 }, { name: \"Flagstaff, Arizona\", tz: -7, lat: 35.18, lon: 111.65 }, { name: \"Hartford (Conn., US)\", tz: -5, lat: 41.77, lon: 72.68 }, { name: \"Houston, TX\", tz: -6, lat: 29.77, lon: 95.37 }, { name: \"Indianapolis, Indiana\", tz: -6, lat: -19.03, lon: 47.92 }, { name: \"Kansas City (Kans., US)\", tz: -6, lat: 39.12, lon: 94.65 }, { name: \"Little Rock\", tz: -6, lat: 34.73, lon: 92.25 }, { name: \"Los Angeles (LA)\", tz: -8, lat: 34.05, lon: 118.25 }, { name: \"Louisville (Ky., US)\", tz: -5, lat: 38.25, lon: 85.75 }, { name: \"Madison (Wis., US)\", tz: -6, lat: 43.08, lon: 89.37 }, { name: \"Memphis (Tenn., US)\", tz: -6, lat: 35.13, lon: 90.05 }, { name: \"Miami, FL\", tz: -5, lat: 25.77, lon: 80.2 }, { name: \"Miami Beach, FL\", tz: -5, lat: 25.78, lon: 80.13 }, { name: \"Milwaukee (Wis., US)\", tz: -6, lat: 43.03, lon: 87.92 }, { name: \"Minneapolis, Minnesota\", tz: -6, lat: 44.98, lon: 93.22 }, { name: \"Mobile\", tz: -6, lat: 30.7, lon: 88.08 }, { name: \"Monticello\", tz: -5, lat: 41.65, lon: 74.7 }, { name: \"Naples (Fla., US)\", tz: -5, lat: 26.13, lon: 81.8 }, { name: \"Nashville (Tenn., US)\", tz: -6, lat: 36.15, lon: 86.8 }, { name: \"New Brunswick\", tz: -5, lat: 40.48, lon: 74.45 }, { name: \"New Haven (Conn., US)\", tz: -5, lat: 41.3, lon: 72.93 }, { name: \"New Orleans, Louisiana\", tz: -6, lat: 29.97, lon: 90.12 }, { name: \"New York, NY\", tz: -5, lat: 40.72, lon: 74.02 }, { name: \"New York, Brooklyn\", tz: -5, lat: 40.7, lon: 74 }, { name: \"Newark (N.J., US)\", tz: -5, lat: 40.73, lon: 74.15 }, { name: \"Newport (R.I., US)\", tz: -5, lat: 41.22, lon: 71.3 }, { name: \"Omaha, Nebraska\", tz: -6, lat: 41.27, lon: 95.95 }, { name: \"Orlando, FL\", tz: -5, lat: 28.53, lon: 81.38 }, { name: \"Philadelphia, Pennsylvania\", tz: -5, lat: 39.95, lon: 75.1 }, { name: \"Phoenix, Arizona\", tz: -7, lat: 33.45, lon: 112.08 }, { name: \"Pittsburgh, Pennsylvania\", tz: -5, lat: 40.43, lon: 80 }, { name: \"Portland (Maine, US)\", tz: -5, lat: 43.65, lon: 70.28 }, { name: \"Portland (Oreg, US)\", tz: -8, lat: 45.55, lon: 112.6 }, { name: \"Providence, RI\", tz: -5, lat: 41.83, lon: 71.42 }, { name: \"Salt Lake City, Utah\", tz: -7, lat: 40.77, lon: 111.88 }, { name: \"San Antonio, TX\", tz: -6, lat: 29.47, lon: 98.52 }, { name: \"San Francisco\", tz: -8, lat: 37.78, lon: 122.4 }, { name: \"Santa Fe (N.Mex., US)\", tz: -7, lat: 35.7, lon: 106.95 }, { name: \"Seattle, WA\", tz: -8, lat: 47.6, lon: 122.33 }, { name: \"Silver Spring\", tz: -5, lat: 39.03, lon: 77.05 }, { name: \"Springfield (Mass., US)\", tz: -5, lat: 42.12, lon: 72.6 }, { name: \"Stamford, CA\", tz: -5, lat: 41.05, lon: 73.55 }, { name: \"St. Louis\", tz: -6, lat: 38.63, lon: 90.18 }, { name: \"Tampa, FL\", tz: -5, lat: 27.95, lon: 82.45 }, { name: \"Topeka (KS, US)\", tz: -6, lat: 39.05, lon: 95.68 }, { name: \"Tucson\", tz: -7, lat: 32.22, lon: 110.97 }, { name: \"Washington, DC\", tz: -5, lat: 38.9, lon: 77.02 }, { name: \"Wichita, TX\", tz: -6, lat: 37.67, lon: 97.33 }, { name: \"Yellowstone Lake\", tz: -7, lat: 44.42, lon: 110.37 }, { name: \"Ancona\", tz: 1, lat: 43.63, lon: -13.5 }, { name: \"Asti\", tz: 1, lat: 44.9, lon: -8.18 }, { name: \"Bologna\", tz: 1, lat: 44.48, lon: -11.33 }, { name: \"Ferrara\", tz: 1, lat: 44.83, lon: -11.58 }, { name: \"Florenz\", tz: 1, lat: 43.77, lon: -11.25 }, { name: \"Genua\", tz: 1, lat: 44.42, lon: -8.95 }, { name: \"Livorno\", tz: 1, lat: 43.55, lon: -10.32 }, { name: \"Mantova\", tz: 1, lat: 45.15, lon: -10.8 }, { name: \"Meran\", tz: 1, lat: 46.67, lon: -11.15 }, { name: \"Mailand\", tz: 1, lat: 45.47, lon: -9.18 }, { name: \"Modena\", tz: 1, lat: 44.67, lon: -10.92 }, { name: \"Neapel\", tz: 1, lat: 40.85, lon: -14.28 }, { name: \"Padova\", tz: 1, lat: 45.42, lon: -11.88 }, { name: \"Parma\", tz: 1, lat: 44.8, lon: -10.32 }, { name: \"Perugia\", tz: 1, lat: 43.13, lon: -12.37 }, { name: \"Pisa\", tz: 1, lat: 43.72, lon: -10.38 }, { name: \"Rom\", tz: 1, lat: 41.9, lon: -12.48 }, { name: \"Siena\", tz: 1, lat: 43.32, lon: -11.35 }, { name: \"Spiazzo\", tz: 1, lat: 46.12, lon: -10.67 }, { name: \"Trieste\", tz: 1, lat: 45.67, lon: -13.77 }, { name: \"Turin\", tz: 1, lat: 45.07, lon: -7.67 }, { name: \"Venedig\", tz: 1, lat: 45.45, lon: -12.35 }, { name: \"Verona\", tz: 1, lat: 45.45, lon: -11 }, { name: \"Alburquerque\", tz: 1, lat: 39.22, lon: 7 }, { name: \"Alicante\", tz: 1, lat: 38.35, lon: 0.47 }, { name: \"Barcelona\", tz: 1, lat: 41.38, lon: -2.18 }, { name: \"Mallorca\", tz: 1, lat: 39.48, lon: -3 }, { name: \"Marbella\", tz: 1, lat: 36.52, lon: 4.88 }, { name: \"Sevilla\", tz: 1, lat: 37.37, lon: 5.98 }, { name: \"Torremolinos\", tz: 1, lat: 36.6, lon: 4.5 }, { name: \"Valencia\", tz: 1, lat: 39.47, lon: 0.37 }, { name: \"Belmonte\", tz: 0, lat: 40.37, lon: 7.37 }, { name: \"Lissabon\", tz: 0, lat: 38.72, lon: 9.13 }, { name: \"Porto\", tz: 0, lat: 41.18, lon: 8.6 }, { name: \"Athen\", tz: 2, lat: 37.97, lon: -23.72 }, { name: \"Korfu\", tz: 2, lat: 39.6, lon: -19.92 }, { name: \"Rhodos\", tz: 2, lat: 36.17, lon: -28 }, { name: \"Saloniki\", tz: 2, lat: 40.65, lon: -23.02 }, { name: \"Trikala\", tz: 2, lat: 39.57, lon: -21.77 }, { name: \"Volos\", tz: 2, lat: 39.35, lon: -22.93 }, { name: \"Ankara\", tz: 2, lat: 39.93, lon: -32.87 }, { name: \"Bursa\", tz: 2, lat: 40.18, lon: -29.07 }, { name: \"Istanbul\", tz: 2, lat: 41.02, lon: -28.97 }, { name: \"Izmir\", tz: 2, lat: 38.42, lon: -27.15 }, { name: \"Esch-sur-Alzette\", tz: 1, lat: 49.5, lon: -5.98 }, { name: \"Luxemburg\", tz: 1, lat: 49.6, lon: -6.15 }, { name: \"Kopenhagen\", tz: 1, lat: 55.67, lon: -12.58 }, { name: \"Boras\", tz: 1, lat: 57.72, lon: -12.92 }, { name: \"G\\xF6teborg\", tz: 1, lat: 57.72, lon: -11.97 }, { name: \"Lund\", tz: 1, lat: 55.7, lon: -13.18 }, { name: \"Malm\\xF6\", tz: 1, lat: 55.6, lon: -13 }, { name: \"Stockholm\", tz: 1, lat: 59.33, lon: -18.05 }, { name: \"Oslo\", tz: 1, lat: 59.92, lon: -10.75 }, { name: \"Trondheim\", tz: 1, lat: 63.42, lon: -10.42 }, { name: \"Helsinki\", tz: 2, lat: 60.17, lon: -24.97 }, { name: \"Turku\", tz: 2, lat: 60.45, lon: -22.28 }, { name: \"Pazardjik\", tz: 2, lat: 42.2, lon: -24.33 }, { name: \"Plovdiv\", tz: 2, lat: 42.15, lon: -24.75 }, { name: \"Ruse\", tz: 2, lat: 43.83, lon: -25.95 }, { name: \"Sofia\", tz: 2, lat: 42.68, lon: -23.32 }, { name: \"Bacau\", tz: 2, lat: 46.57, lon: -26.92 }, { name: \"Botosani\", tz: 2, lat: 47.75, lon: -26.67 }, { name: \"Brasov\", tz: 2, lat: 45.65, lon: -25.62 }, { name: \"Cluj\", tz: 2, lat: 46.78, lon: -23.6 }, { name: \"Constanta\", tz: 2, lat: 44.18, lon: -28.65 }, { name: \"Dorohoi\", tz: 2, lat: 47.95, lon: -26.4 }, { name: \"Galati\", tz: 2, lat: 45.43, lon: -28.05 }, { name: \"Iasi\", tz: 2, lat: 47.17, lon: -27.58 }, { name: \"Oradea\", tz: 2, lat: 47.05, lon: -21.95 }, { name: \"Piatra Neamt\", tz: 2, lat: 46.93, lon: -26.37 }, { name: \"Radauti\", tz: 2, lat: 47.85, lon: -25.92 }, { name: \"Satu Mare\", tz: 2, lat: 47.8, lon: -22.88 }, { name: \"Sighetul Marmatiei\", tz: 2, lat: 47.93, lon: -23.9 }, { name: \"Suceava\", tz: 2, lat: 47.65, lon: -26.32 }, { name: \"Timisoara\", tz: 2, lat: 45.75, lon: -21.22 }, { name: \"Tirgu Mures\", tz: 2, lat: 46.55, lon: -24.55 }, { name: \"Budapest\", tz: 1, lat: 47.5, lon: -19.08 }, { name: \"Sopron\", tz: 1, lat: 47.68, lon: -16.6 }, { name: \"Br\\xFCnn\", tz: 1, lat: 49.2, lon: -16.62 }, { name: \"Karlsbad\", tz: 1, lat: 50.18, lon: -12.87 }, { name: \"Liberec\", tz: 1, lat: 50.77, lon: -15.05 }, { name: \"Olomouc\", tz: 1, lat: 49.6, lon: -17.27 }, { name: \"Ostrava\", tz: 1, lat: 49.83, lon: -18.28 }, { name: \"Pilsen\", tz: 1, lat: 49.75, lon: -13.38 }, { name: \"Prag\", tz: 1, lat: 50.08, lon: -14.43 }, { name: \"Teplice\", tz: 1, lat: 50.65, lon: -13.8 }, { name: \"Usti nad Labem\", tz: 1, lat: 50.67, lon: -14.03 }, { name: \"Bratislava\", tz: 1, lat: 48.15, lon: -17.12 }, { name: \"Galanta\", tz: 1, lat: 48.2, lon: -17.72 }, { name: \"Kosice\", tz: 1, lat: 48.72, lon: -21.25 }, { name: \"Piestany\", tz: 1, lat: 48.6, lon: -17.83 }, { name: \"Presov\", tz: 1, lat: 49, lon: -21.25 }, { name: \"Trnava\", tz: 1, lat: 48.38, lon: -17.58 }, { name: \"Belgrad\", tz: 1, lat: 44.83, lon: -20.5 }, { name: \"Novi Sad\", tz: 1, lat: 45.25, lon: -19.83 }, { name: \"Subotica\", tz: 1, lat: 46.1, lon: -19.65 }, { name: \"Dubrovnik\", tz: 1, lat: 42.63, lon: -18.12 }, { name: \"Rijeka\", tz: 1, lat: 45.33, lon: -14.45 }, { name: \"Split\", tz: 1, lat: 43.52, lon: -16.45 }, { name: \"Zagreb\", tz: 1, lat: 45.8, lon: -15.97 }, { name: \"Skopje\", tz: 1, lat: 41.98, lon: -21.43 }, { name: \"Sarajevo\", tz: 1, lat: 43.87, lon: -18.42 }, { name: \"Ljubljana\", tz: 1, lat: 46.05, lon: -14.52 }, { name: \"Teheran (GMT+3)\", tz: 3, lat: 35.67, lon: -51.43 }, { name: \"Teheran (GMT+4)\", tz: 4, lat: 35.67, lon: -51.43 }, { name: \"Tokyo\", tz: 9, lat: 35.7, lon: -139.77 }, { name: \"Asuncion\", tz: -4, lat: -25.27, lon: 57.67 }, { name: \"Sao Paulo\", tz: -3, lat: -23.53, lon: 46.62 }, { name: \"Buenos Aires\", tz: -3, lat: -34.6, lon: 58.45 }, { name: \"Guangzhou (Canton)\", tz: 8, lat: 23.1, lon: -113.27 }, { name: \"Hong Kong\", tz: 8, lat: 25.25, lon: -114.17 }, { name: \"Peking (Beijing)\", tz: 8, lat: 39.9, lon: -116.42 }, { name: \"Shanghai\", tz: 8, lat: 31.23, lon: -121.47 }, { name: \"Shenyang\", tz: 8, lat: 41.8, lon: -123.45 }, { name: \"Bangkok\", tz: 7, lat: 13.58, lon: -100.48 }, { name: \"Neu Dehli (GMT+5)\", tz: 5, lat: 28.3, lon: -77.47 }, { name: \"Neu Dehli (GMT+6)\", tz: 6, lat: 28.3, lon: -77.47 }, { name: \"Kairo\", tz: 2, lat: 29.67, lon: -31.02 }, { name: \"Damaskus\", tz: 3, lat: 33.13, lon: -36.43 }, { name: \"Amman\", tz: 2, lat: 31.7, lon: -35.88 }, { name: \"Ar-Rijad (Riyadh)\", tz: 3, lat: 24.63, lon: -46.72 }, { name: \"Beirut\", tz: 2, lat: 33.33, lon: -35.37 }, { name: \"Pjongjang (P\\xB4yongyang)\", tz: 9, lat: 39.02, lon: -125.75 }, { name: \"Seoul (Soul)\", tz: 9, lat: 37.55, lon: -126.97 }, { name: \"Singapur\", tz: 8, lat: 11.37, lon: -103.8 }, { name: \"Lima\", tz: -5, lat: -12.05, lon: 77.05 }, { name: \"Havana\", tz: -5, lat: 23.13, lon: 82.37 }, { name: \"Brisbane\", tz: 10, lat: -27.47, lon: -153.03 }, { name: \"Canberra\", tz: 10, lat: -35.28, lon: -149.13 }, { name: \"Sydney\", tz: 10, lat: -33.87, lon: -151.22 }, { name: \"Halifax, N.S., Can.\", tz: -4, lat: 44.65, lon: 63.6 }, { name: \"Montreal, Quebec, Can.\", tz: -5, lat: 45.52, lon: 73.57 }, { name: \"Quebec\", tz: -5, lat: 46.82, lon: 71.23 }, { name: \"Vancouver\", tz: -8, lat: 49.27, lon: 123.12 }, { name: \"Demmin\", tz: 1, lat: 53.9, lon: -13.03 }, { name: \"Dieburg\", tz: 1, lat: 49.9, lon: -8.83 }, { name: \"D\\xF6mitz\", tz: 1, lat: 53.13, lon: -11.23 }, { name: \"Durlach\", tz: 1, lat: 49, lon: -8.45 }, { name: \"Landau\", tz: 1, lat: 49.2, lon: -8.12 }, { name: \"Landau an der Isar\", tz: 1, lat: 48.67, lon: -12.72 }, { name: \"Parchim\", tz: 1, lat: 53.42, lon: -11.85 }, { name: \"Suhl\", tz: 1, lat: 50.62, lon: -10.68 }, { name: \"Worms\", tz: 1, lat: 49.63, lon: -8.37 }, { name: \"Strasbourg\", tz: 1, lat: 48.58, lon: -7.75 }, { name: \"Kaunas\", tz: 2, lat: 54.9, lon: -23.9 }, { name: \"K\\xF6nigsberg\", tz: 2, lat: 54.72, lon: -20.5 }, { name: \"Riga\", tz: 2, lat: 56.95, lon: -24.1 }, { name: \"Tallinn\", tz: 2, lat: 59.42, lon: -24.75 }, { name: \"Vilnius\", tz: 2, lat: 54.68, lon: -25.32 }, { name: \"Blackpool\", tz: 0, lat: 53.83, lon: 3.05 }, { name: \"Bournemouth\", tz: 0, lat: 50.72, lon: 1.9 }, { name: \"Brighton\", tz: 0, lat: 50.83, lon: 0.13 }, { name: \"Cambridge\", tz: 0, lat: 52.22, lon: -0.13 }, { name: \"Coventry\", tz: 0, lat: 52.42, lon: 1.5 }, { name: \"Croydon\", tz: 0, lat: 51.38, lon: 0.1 }, { name: \"Eastbourne\", tz: 0, lat: 50.77, lon: -0.28 }, { name: \"Exeter\", tz: 0, lat: 50.72, lon: 3.52 }, { name: \"Grimsby\", tz: 0, lat: 53.58, lon: 0.08 }, { name: \"Guildford\", tz: 0, lat: 51.23, lon: 0.58 }, { name: \"Harlow\", tz: 0, lat: 51.78, lon: -0.13 }, { name: \"Harrogate\", tz: 0, lat: 54, lon: 1.55 }, { name: \"Hemel Hempstead\", tz: 0, lat: 51.77, lon: 0.47 }, { name: \"Hove\", tz: 0, lat: 50.82, lon: 0.17 }, { name: \"Leicester\", tz: 0, lat: 52.63, lon: 1.08 }, { name: \"Luton\", tz: 0, lat: 51.88, lon: 0.42 }, { name: \"Newcastle\", tz: 0, lat: 54.2, lon: 5.75 }, { name: \"Norwich\", tz: 0, lat: 52.63, lon: -1.3 }, { name: \"Nottingham\", tz: 0, lat: 52.97, lon: 1.17 }, { name: \"Oxford\", tz: 0, lat: 51.77, lon: 1.23 }, { name: \"Plymouth\", tz: 0, lat: 50.38, lon: 4.15 }, { name: \"Portsmouth\", tz: 0, lat: 50.8, lon: 1.08 }, { name: \"Ramsgate\", tz: 0, lat: 51.33, lon: -1.42 }, { name: \"Reading\", tz: 0, lat: 51.47, lon: 0.98 }, { name: \"Rochester\", tz: 0, lat: 51.4, lon: -0.5 }, { name: \"Saint Anne's\", tz: 0, lat: 53.75, lon: 3.03 }, { name: \"Solihull\", tz: 0, lat: 52.42, lon: 1.75 }, { name: \"Southend-on-SEA\", tz: 0, lat: 51.55, lon: -0.72 }, { name: \"Southport\", tz: 0, lat: 53.65, lon: 3.02 }, { name: \"Watford\", tz: 0, lat: 51.67, lon: 0.42 }, { name: \"Agen\", tz: 1, lat: 44.2, lon: -0.62 }, { name: \"Aix-en-Provence\", tz: 1, lat: 43.53, lon: -5.43 }, { name: \"Aix-les-Bains\", tz: 1, lat: 45.7, lon: -5.75 }, { name: \"Annecy\", tz: 1, lat: 45.9, lon: -6.12 }, { name: \"Antibes\", tz: 1, lat: 43.58, lon: -7.12 }, { name: \"Arcachon\", tz: 1, lat: 44.62, lon: 1.2 }, { name: \"Bayonne\", tz: 1, lat: 43.48, lon: 1.48 }, { name: \"Belfort\", tz: 1, lat: 47.63, lon: -6.87 }, { name: \"Benfeld\", tz: 1, lat: 48.37, lon: -7.6 }, { name: \"Besancon\", tz: 1, lat: 47.25, lon: -6.03 }, { name: \"Biarritz\", tz: 1, lat: 43.48, lon: 1.57 }, { name: \"Bordeuax\", tz: 1, lat: 44.83, lon: 0.57 }, { name: \"Boulay-Moselle\", tz: 1, lat: 49.18, lon: -6.5 }, { name: \"Boulogne-Sur-Mer\", tz: 1, lat: 50.72, lon: -1.62 }, { name: \"Brest, Fr.\", tz: 1, lat: 48.4, lon: 4.48 }, { name: \"Caen\", tz: 1, lat: 49.18, lon: 0.35 }, { name: \"Caluire et Cuire\", tz: 1, lat: 45.8, lon: -4.85 }, { name: \"Cannes\", tz: 1, lat: 43.55, lon: -7.02 }, { name: \"Carpentras\", tz: 1, lat: 44.05, lon: -5.05 }, { name: \"Cavaillon\", tz: 1, lat: 43.83, lon: -5.02 }, { name: \"Chalons-Sur-Marne\", tz: 1, lat: 48.95, lon: -4.37 }, { name: \"Chalons-Sur-Saone\", tz: 1, lat: 46.78, lon: -4.85 }, { name: \"Clermont-Ferrand\", tz: 1, lat: 45.78, lon: -3.08 }, { name: \"Colmar\", tz: 1, lat: 58.08, lon: -7.37 }, { name: \"Dijon\", tz: 1, lat: 47.32, lon: -5.02 }, { name: \"Evian-Les-Bains\", tz: 1, lat: 46.38, lon: -6.58 }, { name: \"Grasse\", tz: 1, lat: 43.67, lon: -6.92 }, { name: \"Grenoble\", tz: 1, lat: 45.17, lon: -5.72 }, { name: \"Haguenau\", tz: 1, lat: 48.82, lon: -7.78 }, { name: \"La Rochelle\", tz: 1, lat: 46.17, lon: 1.17 }, { name: \"La Seyne-Sur-Mer\", tz: 1, lat: 43.1, lon: -5.88 }, { name: \"Le Havre\", tz: 1, lat: 49.5, lon: -0.13 }, { name: \"Lille\", tz: 1, lat: 50.63, lon: -3.07 }, { name: \"Limoges\", tz: 1, lat: 45.83, lon: -1.25 }, { name: \"Lyon\", tz: 1, lat: 45.75, lon: -4.85 }, { name: \"M\\xE2con, Fr.\", tz: 1, lat: 46.3, lon: -4.83 }, { name: \"Menton\", tz: 1, lat: 43.78, lon: -7.5 }, { name: \"Metz\", tz: 1, lat: 49.13, lon: -6.17 }, { name: \"Montpellier\", tz: 1, lat: 43.6, lon: -3.88 }, { name: \"M\\xFClhausen im T\\xE4le\", tz: 1, lat: 48.57, lon: -9.65 }, { name: \"Nancy\", tz: 1, lat: 48.68, lon: -6.2 }, { name: \"N\\xEEmes\", tz: 1, lat: 43.83, lon: -4.35 }, { name: \"Nizza Monferrato\", tz: 1, lat: 44.77, lon: -8.35 }, { name: \"Orl\\xE9ans, Fr.\", tz: 1, lat: 47.92, lon: -1.9 }, { name: \"Perpignan\", tz: 1, lat: 42.68, lon: -2.87 }, { name: \"Reims\", tz: 1, lat: 49.25, lon: -4.02 }, { name: \"Rouen\", tz: 1, lat: 49.43, lon: -1.08 }, { name: \"Saint-Louis, Fr.\", tz: 1, lat: 47.58, lon: -7.57 }, { name: \"Sens\", tz: 1, lat: 48.2, lon: -3.28 }, { name: \"Toulouse\", tz: 1, lat: 43.6, lon: -1.43 }, { name: \"Tours\", tz: 1, lat: 47.38, lon: -0.68 }, { name: \"Troyes\", tz: 1, lat: 48.3, lon: -4.08 }, { name: \"Versailles, Fr.\", tz: 1, lat: 48.8, lon: -2.13 }, { name: \"Vittel\", tz: 1, lat: 48.2, lon: -5.95 }, { name: \"Wasselonne\", tz: 1, lat: 48.63, lon: -7.45 }, { name: \"Rothenburg ob der Tauber\", tz: 1, lat: 49.38, lon: -10.17 }, { name: \"Rothenburg\", tz: 1, lat: 51.33, lon: -14.97 }, { name: \"Rothenburg an der Oder\", tz: 1, lat: 52.02, lon: -15.42 }, { name: \"Alexandria, Egypt\", tz: 2, lat: 31.18, lon: -29.93 }, { name: \"Anchorage, AK\", tz: -9, lat: 61.22, lon: 149.88 }, { name: \"Ann Arbor, MI\", tz: -5, lat: 42.3, lon: 83.75 }, { name: \"Augusta, GA\", tz: -5, lat: 33.48, lon: 81.93 }, { name: \"Baghdad, Iraq\", tz: 3, lat: 33.35, lon: -44.42 }, { name: \"Birmingham, AL\", tz: -6, lat: 33.52, lon: 86.82 }, { name: \"Bombay, India (GMT+5)\", tz: 5, lat: 18.95, lon: -72.83 }, { name: \"Bombay, India (GMT+6)\", tz: 6, lat: 18.95, lon: -72.83 }, { name: \"Casablanca, Marokko\", tz: 0, lat: 33.65, lon: 7.58 }, { name: \"Djakarta, Indonesia\", tz: 7, lat: -6.17, lon: -106.8 }, { name: \"Desmoines, IA\", tz: -6, lat: 41.58, lon: 93.62 }, { name: \"Dubayy\", tz: 4, lat: 25.3, lon: -55.3 }, { name: \"Fort Lauderdale, FL\", tz: -5, lat: 26.12, lon: 80.13 }, { name: \"Jacksonsville, FL\", tz: -5, lat: 30.33, lon: 81.67 }, { name: \"Karachi\", tz: 5, lat: 24.87, lon: -67.05 }, { name: \"Kuala Lumpur, Malaysia\", tz: 8, lat: 3.15, lon: -101.72 }, { name: \"Kuwait, Kuwait\", tz: 3, lat: 29.5, lon: -47.75 }, { name: \"Lagos, Nigeria\", tz: 1, lat: 6.45, lon: -3.4 }, { name: \"Las Vegas, NV\", tz: -8, lat: 36.18, lon: 115.13 }, { name: \"Mauritius\", tz: 4, lat: -20.28, lon: -57.55 }, { name: \"Panama, Panama\", tz: -5, lat: 8.97, lon: 79.52 }, { name: \"Peoria, IL\", tz: -6, lat: 40.7, lon: 89.6 }, { name: \"Raleigh, NC\", tz: -5, lat: 35.78, lon: 78.65 }, { name: \"Redmond, WA\", tz: -8, lat: 47.4, lon: 122.07 }, { name: \"Sacramento, CA\", tz: -8, lat: 38.58, lon: 121.5 }, { name: \"Tenerife, Spain\", tz: 1, lat: 28.03, lon: -16.57 }, { name: \"Durres, Albania\", tz: 1, lat: 41.32, lon: -19.43 }, { name: \"Lushnje, Albania\", tz: 1, lat: 40.93, lon: -19.7 }, { name: \"Lugoj, Romania\", tz: 2, lat: 45.68, lon: -21.9 }, { name: \"Shkoder, Albania\", tz: 1, lat: 42.08, lon: -19.5 }, { name: \"Addis Abeba\", tz: 3, lat: 9.15, lon: -38.77 }, { name: \"Aden, Jemen\", tz: 3, lat: 12.78, lon: -45.03 }, { name: \"Boca Raton, FL\", tz: -5, lat: 26.35, lon: 80.08 }, { name: \"Buchara\", tz: 5, lat: 39.77, lon: -64.42 }, { name: \"Gondar, Ethiopia\", tz: 3, lat: 12.6, lon: -37.48 }, { name: \"Jekaterinburg\", tz: 5, lat: 56.83, lon: -60.5 }, { name: \"Kaifeng, China\", tz: 8, lat: 34.78, lon: -114.43 }, { name: \"Krasnojarsk\", tz: 7, lat: 56, lon: -92.98 }, { name: \"Mbale, Uganda\", tz: 3, lat: 1.07, lon: -34.18 }, { name: \"New Bedfort, MA\", tz: -5, lat: 41.63, lon: 70.93 }, { name: \"Nicosia, Cyprus\", tz: 2, lat: 34.78, lon: -33.48 }, { name: \"Nowgorod\", tz: 3, lat: 58.58, lon: -31.23 }, { name: \"Omsk\", tz: 6, lat: 54.95, lon: -73.33 }, { name: \"Plano, TX\", tz: -6, lat: 33.03, lon: 96.7 }, { name: \"Perm\", tz: 5, lat: 57.92, lon: -56.05 }, { name: \"Sana, Jemen\", tz: 3, lat: 15.18, lon: -44.02 }, { name: \"Skokie, IL\", tz: -6, lat: 42.03, lon: 87.77 }, { name: \"Woronesch, Russia\", tz: 3, lat: 51.7, lon: -39.25 }, { name: \"Allentown, PA\", tz: -5, lat: 40.6, lon: 75.48 }, { name: \"Capetown, South Africa\", tz: 2, lat: -33.9, lon: -18.37 }, { name: \"Chapel Hill, NC\", tz: -5, lat: 35.9, lon: 79.07 }, { name: \"Ft. Walton Beach, FL\", tz: -5, lat: 30.4, lon: 86.52 }, { name: \"Greenwich Meridian\", tz: 0, lat: 0, lon: 0 }, { name: \"Monsey, NY\", tz: -5, lat: 41.12, lon: 74.07 }, { name: \"Ramat Gan\", tz: 2, lat: 32.07, lon: -34.82 }, { name: \"Lugano\", tz: 1, lat: 46.02, lon: -8.97 }, { name: \"Baden, Austria\", tz: 1, lat: 48, lon: -16.23 }, { name: \"Gadsten, AL\", tz: -6, lat: 34.02, lon: 86.02 }, { name: \"Huntsville, AL\", tz: -6, lat: 34.73, lon: 86.58 }, { name: \"Montgomery, AL\", tz: -6, lat: 32.37, lon: 86.32 }, { name: \"Juneau, AK\", tz: -10, lat: 58.3, lon: 134.42 }, { name: \"Nome, AK\", tz: -10, lat: 64.5, lon: 165.42 }, { name: \"Algiers\", tz: 1, lat: 36.48, lon: -3 }, { name: \"Luanda\", tz: 1, lat: -8.5, lon: -13.15 }, { name: \"Yuma, Arizona\", tz: -7, lat: 32.72, lon: 114.62 }, { name: \"Ft Smith, Arkansas\", tz: -6, lat: 35.37, lon: 94.43 }, { name: \"Perth\", tz: 8, lat: -31.83, lon: -116.17 }, { name: \"Porto Novo\", tz: 1, lat: 6.3, lon: -2.45 }, { name: \"Ouagadougou\", tz: 0, lat: 12.2, lon: 1.4 }, { name: \"Bujumbura\", tz: 2, lat: -3.22, lon: -29.18 }, { name: \"Bakersfield, CA\", tz: -8, lat: 35.37, lon: 119.02 }, { name: \"Berkeley, CA\", tz: -8, lat: 37.87, lon: 122.27 }, { name: \"Eureka, CA\", tz: -8, lat: 40.78, lon: 124.17 }, { name: \"Fresno, CA\", tz: -8, lat: 36.73, lon: 119.78 }, { name: \"Long Beach, CA\", tz: -8, lat: 33.77, lon: 118.18 }, { name: \"Oakland, CA\", tz: -8, lat: 37.78, lon: 122.27 }, { name: \"Pasadena, CA\", tz: -8, lat: 34.15, lon: 118.15 }, { name: \"San Bernardino, CA\", tz: -8, lat: 34.12, lon: 117.47 }, { name: \"San Jose, CA\", tz: -8, lat: 37.33, lon: 121.88 }, { name: \"Santa Barbara, CA\", tz: -8, lat: 34.42, lon: 119.7 }, { name: \"Santa Cruz, CA\", tz: -8, lat: 36.97, lon: 122.02 }, { name: \"Stockton, CA\", tz: -8, lat: 37.97, lon: 121.28 }, { name: \"Yaounde\", tz: 1, lat: 3.52, lon: -11.32 }, { name: \"Calgary\", tz: -7, lat: 51.05, lon: 114.05 }, { name: \"Edmondton\", tz: -7, lat: 53.55, lon: 113.48 }, { name: \"Lethbridge\", tz: -7, lat: 49.7, lon: 112.83 }, { name: \"Prince Rupert, British Columbia\", tz: -8, lat: 54.32, lon: 130.32 }, { name: \"Victoria, British Columbia\", tz: -8, lat: 48.43, lon: 123.37 }, { name: \"Brandon\", tz: -6, lat: 49.85, lon: 99.95 }, { name: \"Churchill\", tz: -6, lat: 58.75, lon: 94.17 }, { name: \"Fredericton\", tz: -4, lat: 45.97, lon: 66.65 }, { name: \"Moncton\", tz: -4, lat: 46.08, lon: 64.78 }, { name: \"St John\", tz: -4, lat: 45.27, lon: 66.07 }, { name: \"St John's\", tz: -4, lat: 47.57, lon: 52.72 }, { name: \"Yellowknife\", tz: -7, lat: 62.45, lon: 114.38 }, { name: \"Sydney, Canada\", tz: -4, lat: 46.13, lon: 60.2 }, { name: \"Belleville\", tz: -5, lat: 44.17, lon: 77.38 }, { name: \"Brantford\", tz: -5, lat: 43.15, lon: 80.27 }, { name: \"Burlington\", tz: -5, lat: 43.33, lon: 79.8 }, { name: \"Guelph\", tz: -5, lat: 43.55, lon: 80.25 }, { name: \"Hamilton\", tz: -5, lat: 43.25, lon: 79.88 }, { name: \"Kingston\", tz: -5, lat: 44.23, lon: 76.48 }, { name: \"Kitchener\", tz: -5, lat: 43.45, lon: 80.48 }, { name: \"London, Ontario\", tz: -5, lat: 42.98, lon: 81.23 }, { name: \"Mississauga\", tz: -5, lat: 43.55, lon: 79.57 }, { name: \"North Bay\", tz: -5, lat: 46.32, lon: 79.47 }, { name: \"Oshawa\", tz: -5, lat: 43.9, lon: 78.87 }, { name: \"Peterborough\", tz: -5, lat: 44.32, lon: 78.32 }, { name: \"St Catherines\", tz: -5, lat: 43.17, lon: 79.25 }, { name: \"Sault St Marie\", tz: -5, lat: 46.5, lon: 84.33 }, { name: \"Sudbury\", tz: -5, lat: 46.48, lon: 80.98 }, { name: \"Thunder Bay\", tz: -5, lat: 48.38, lon: 89.25 }, { name: \"Windsor\", tz: -5, lat: 42.32, lon: 83.03 }, { name: \"Hull\", tz: -5, lat: 45.43, lon: 75.72 }, { name: \"La Salle\", tz: -5, lat: 45.43, lon: 73.67 }, { name: \"Laval\", tz: -5, lat: 45.22, lon: 73.75 }, { name: \"Sherbrooke\", tz: -5, lat: 45.4, lon: 71.85 }, { name: \"Trois Riveres\", tz: -5, lat: 46.35, lon: 72.55 }, { name: \"Dawson\", tz: -8, lat: 64.07, lon: 139.43 }, { name: \"Whitehorse\", tz: -8, lat: 60.72, lon: 135.05 }, { name: \"Moose Jaw\", tz: -6, lat: 50.4, lon: 105.53 }, { name: \"Regina\", tz: -6, lat: 50.45, lon: 104.62 }, { name: \"Saskatoon\", tz: -6, lat: 52.13, lon: 106.67 }, { name: \"Bangui\", tz: 1, lat: 4.22, lon: -18.37 }, { name: \"N'Djamena\", tz: 1, lat: 12.1, lon: -14.58 }, { name: \"Grand Junction\", tz: -7, lat: 39.07, lon: 108.57 }, { name: \"Pueblo\", tz: -7, lat: 38.25, lon: 104.62 }, { name: \"Brazzaville\", tz: 1, lat: -4.13, lon: -15.13 }, { name: \"Bridgeport\", tz: -5, lat: 41.18, lon: 73.18 }, { name: \"Abidjan\", tz: 0, lat: 5.18, lon: 4.02 }, { name: \"Wilmington, Delaware\", tz: -5, lat: 39.75, lon: 75.55 }, { name: \"Quito\", tz: -5, lat: -0.28, lon: 78.52 }, { name: \"Daytona Beach, FL\", tz: -5, lat: 29.22, lon: 81.02 }, { name: \"Gainesville, FL\", tz: -5, lat: 29.65, lon: 82.32 }, { name: \"Key West, FL\", tz: -5, lat: 24.57, lon: 81.8 }, { name: \"Pensacola, FL\", tz: -5, lat: 30.42, lon: 87.22 }, { name: \"St. Petersburg, FL\", tz: -5, lat: 27.78, lon: 82.63 }, { name: \"Sarasota, FL\", tz: -5, lat: 27.33, lon: 82.55 }, { name: \"Tallahassee, FL\", tz: -5, lat: 30.45, lon: 84.45 }, { name: \"W. Palm Beach, FL\", tz: -5, lat: 26.72, lon: 80.05 }, { name: \"Libreville\", tz: 1, lat: 0.23, lon: -9.25 }, { name: \"Banjul\", tz: 0, lat: 13.28, lon: 16.38 }, { name: \"Augusta, Georgia\", tz: -5, lat: 33.47, lon: 81.97 }, { name: \"Columbus, Georgia\", tz: -5, lat: 32.47, lon: 84.98 }, { name: \"Macon, Georgia\", tz: -5, lat: 32.83, lon: 83.63 }, { name: \"Savannah, Georgia\", tz: -5, lat: 32.07, lon: 81.1 }, { name: \"Accra\", tz: 0, lat: 5.33, lon: 0.15 }, { name: \"Conakry\", tz: 0, lat: 9.32, lon: -13.17 }, { name: \"Hilo\", tz: 10, lat: 19.73, lon: 155.08 }, { name: \"Lihue\", tz: 10, lat: 21.98, lon: 159.37 }, { name: \"Victoria, Hongkong\", tz: 8, lat: 22.17, lon: -114.3 }, { name: \"Reykjavik\", tz: 0, lat: 64.15, lon: 21.65 }, { name: \"Boise, Idaho\", tz: -7, lat: 43.62, lon: 116.2 }, { name: \"Pocatello, Idaho\", tz: -7, lat: 42.87, lon: 112.45 }, { name: \"Bloomington, IL\", tz: -6, lat: 40.48, lon: 89 }, { name: \"Champaign, IL\", tz: -6, lat: 40.12, lon: 88.25 }, { name: \"Decatur, IL\", tz: -6, lat: 39.85, lon: 88.95 }, { name: \"Moline, IL\", tz: -6, lat: 41.52, lon: 90.52 }, { name: \"Rockford, IL\", tz: -6, lat: 42.27, lon: 89.1 }, { name: \"Springfield, IL\", tz: -6, lat: 39.78, lon: 89.65 }, { name: \"Urbana, IL\", tz: -6, lat: 40.12, lon: 88.2 }, { name: \"Evansville, Indiana\", tz: -6, lat: 37.97, lon: 87.57 }, { name: \"Ft. Wayne, Indiana\", tz: -6, lat: 41.07, lon: 85.13 }, { name: \"Gary, Indiana\", tz: -6, lat: 41.62, lon: 87.33 }, { name: \"Lafayette, Indiana\", tz: -6, lat: 40.42, lon: 86.9 }, { name: \"Muncie, Indiana\", tz: -6, lat: 40.18, lon: 85.38 }, { name: \"South Bend, Indiana\", tz: -6, lat: 41.68, lon: 86.25 }, { name: \"Terre Houte, Indiana\", tz: -6, lat: 39.47, lon: 87.4 }, { name: \"Cedar Rapids, IA\", tz: -6, lat: 41.97, lon: 91.67 }, { name: \"Davenport, IA\", tz: -6, lat: 41.52, lon: 90.58 }, { name: \"Dubuque, IA\", tz: -6, lat: 42.5, lon: 90.67 }, { name: \"Iowa City, IA\", tz: -6, lat: 41.67, lon: 91.53 }, { name: \"Sioux City, IA\", tz: -6, lat: 42.5, lon: 96.42 }, { name: \"Waterloo, IA\", tz: -6, lat: 42.5, lon: 92.33 }, { name: \"Dodge City (Kans., US)\", tz: -6, lat: 37.75, lon: 100.02 }, { name: \"Salina (Kans., US)\", tz: -6, lat: 38.85, lon: 97.62 }, { name: \"Wichita (Kans., US)\", tz: -6, lat: 37.7, lon: 97.33 }, { name: \"Ashland, KY\", tz: -5, lat: 38.48, lon: 82.63 }, { name: \"Bowling Green, KY\", tz: -5, lat: 37, lon: 86.45 }, { name: \"Lexington, KY\", tz: -5, lat: 38.05, lon: 84.5 }, { name: \"Paducah, KY\", tz: -5, lat: 37.07, lon: 88.6 }, { name: \"Maseru\", tz: 2, lat: -29.18, lon: -27.28 }, { name: \"Monrovia\", tz: 0, lat: 6.2, lon: 10.47 }, { name: \"Tripoli\", tz: 1, lat: 32.83, lon: -13.22 }, { name: \"Baton Rouge, Louisiana\", tz: -6, lat: 30.45, lon: 91.18 }, { name: \"Shreveport, Louisiana\", tz: -6, lat: 32.52, lon: 93.75 }, { name: \"Antananarivo\", tz: 3, lat: -18.5, lon: -47.3 }, { name: \"Augusta, Maine\", tz: -5, lat: 44.32, lon: 69.75 }, { name: \"Bangor, Maine\", tz: -5, lat: 44.8, lon: 68.75 }, { name: \"Lilongwe\", tz: 2, lat: -13.58, lon: -33.48 }, { name: \"Bamako\", tz: 0, lat: 12.4, lon: 7.58 }, { name: \"Brockton, MA\", tz: -5, lat: 42.08, lon: 71.02 }, { name: \"Cambridge, MA\", tz: -5, lat: 42.37, lon: 71.1 }, { name: \"Fall River, MA\", tz: -5, lat: 41.7, lon: 71.15 }, { name: \"Holyoke, MA\", tz: -5, lat: 42.2, lon: 72.62 }, { name: \"Lawrence, MA\", tz: -5, lat: 42.7, lon: 71.15 }, { name: \"Lowell, MA\", tz: -5, lat: 42.63, lon: 71.32 }, { name: \"Pittsfield, MA\", tz: -5, lat: 42.45, lon: 73.25 }, { name: \"Somerville, MA\", tz: -5, lat: 42.38, lon: 71.1 }, { name: \"Worcester, MA\", tz: -5, lat: 42.27, lon: 71.8 }, { name: \"Nouakchott\", tz: 0, lat: 18.08, lon: 15.58 }, { name: \"Battle Creek, MI\", tz: -5, lat: 42.32, lon: 85.18 }, { name: \"Bay City, MI\", tz: -5, lat: 43.6, lon: 83.88 }, { name: \"Flint, MI\", tz: -5, lat: 43.02, lon: 83.7 }, { name: \"Grand Rapids, MI\", tz: -5, lat: 42.97, lon: 85.67 }, { name: \"Jackson, MI\", tz: -5, lat: 42.25, lon: 84.4 }, { name: \"Kalamazoo, MI\", tz: -5, lat: 42.28, lon: 85.58 }, { name: \"Lansing, MI\", tz: -5, lat: 42.73, lon: 84.55 }, { name: \"Saginaw, MI\", tz: -5, lat: 43.43, lon: 83.93 }, { name: \"Duluth, Minnesota\", tz: -6, lat: 46.78, lon: 92.1 }, { name: \"Rochester, Minnesota\", tz: -6, lat: 44.02, lon: 92.47 }, { name: \"St. Cloud, Minnesota\", tz: -6, lat: 45.57, lon: 94.17 }, { name: \"St. Paul, Minnesota\", tz: -6, lat: 44.95, lon: 93.1 }, { name: \"Biloxi, Mississippi\", tz: -6, lat: 30.4, lon: 88.88 }, { name: \"Gulfport, Mississippi\", tz: -6, lat: 30.37, lon: 89.1 }, { name: \"Jackson, Mississippi\", tz: -6, lat: 32.3, lon: 90.18 }, { name: \"Natchez, Mississippi\", tz: -6, lat: 31.57, lon: 91.38 }, { name: \"Columbia, Missouri\", tz: -6, lat: 38.95, lon: 92.33 }, { name: \"Joplin, Missouri\", tz: -6, lat: 37.07, lon: 94.5 }, { name: \"Kansas City, Missouri\", tz: -6, lat: 39.07, lon: 94.58 }, { name: \"St. Joseph, Missouri\", tz: -6, lat: 39.77, lon: 94.85 }, { name: \"St. Louis, Missouri\", tz: -6, lat: 38.63, lon: 90.2 }, { name: \"Springfield, Missouri\", tz: -6, lat: 37.22, lon: 93.3 }, { name: \"Billings, Montana\", tz: -7, lat: 45.78, lon: 108.5 }, { name: \"Butte, Montana\", tz: -7, lat: 46.02, lon: 112.53 }, { name: \"Great Falls, Montana\", tz: -7, lat: 47.5, lon: 111.3 }, { name: \"Helena, Montana\", tz: -7, lat: 46.6, lon: 112.03 }, { name: \"Rabat\", tz: 1, lat: 34.02, lon: 6.52 }, { name: \"Maputo\", tz: 2, lat: -25.58, lon: -32.35 }, { name: \"Windhoek\", tz: 2, lat: -22.33, lon: -17.07 }, { name: \"Lincoln, Nebraska\", tz: -6, lat: 40.82, lon: 96.7 }, { name: \"Carson City, NV\", tz: -8, lat: 39.17, lon: 119.77 }, { name: \"Reno, NV\", tz: -8, lat: 39.52, lon: 119.82 }, { name: \"Concord, New Hampshire\", tz: -5, lat: 43.2, lon: 71.52 }, { name: \"Manchester, New Hampshire\", tz: -5, lat: 42.98, lon: 71.47 }, { name: \"Portsmouth, New Hampshire\", tz: -5, lat: 43.07, lon: 70.75 }, { name: \"Atlantic City, NJ\", tz: -5, lat: 39.37, lon: 74.43 }, { name: \"Camdon, NJ\", tz: -5, lat: 39.95, lon: 75.1 }, { name: \"Jersey City, NJ\", tz: -5, lat: 40.73, lon: 74.07 }, { name: \"Paterson, NJ\", tz: -5, lat: 40.9, lon: 74.15 }, { name: \"Trenton, NJ\", tz: -5, lat: 40.22, lon: 74.8 }, { name: \"Albuquerque, NM\", tz: -7, lat: 35.07, lon: 106.65 }, { name: \"Gallup, NM\", tz: -7, lat: 35.52, lon: 108.73 }, { name: \"Santa Fe, NM\", tz: -7, lat: 35.67, lon: 105.93 }, { name: \"Albany, NY\", tz: -5, lat: 42.65, lon: 73.75 }, { name: \"Binghamton, NY\", tz: -5, lat: 42.1, lon: 86.82 }, { name: \"Buffalo, NY\", tz: -5, lat: 42.88, lon: 78.87 }, { name: \"Central Islip, NY\", tz: -5, lat: 40.78, lon: 73.2 }, { name: \"Niagra Falls, NY\", tz: -5, lat: 43.1, lon: 79.05 }, { name: \"Rochester, NY\", tz: -5, lat: 43.17, lon: 77.6 }, { name: \"Schenectady, NY\", tz: -5, lat: 42.82, lon: 73.93 }, { name: \"Syracuse, NY\", tz: -5, lat: 43.05, lon: 76.15 }, { name: \"Troy, NY\", tz: -5, lat: 42.73, lon: 73.68 }, { name: \"Utica, NY\", tz: -5, lat: 43.1, lon: 75.23 }, { name: \"White Plains, NY\", tz: -5, lat: 41.03, lon: 73.75 }, { name: \"Yonkers, NY\", tz: -5, lat: 40.93, lon: 73.9 }, { name: \"Auckland\", tz: 12, lat: -36.88, lon: -174.75 }, { name: \"Niamey\", tz: 1, lat: 13.32, lon: -2.03 }, { name: \"Lagos\", tz: 1, lat: 6.27, lon: -3.28 }, { name: \"Ashlville, NC\", tz: -5, lat: 35.6, lon: 82.55 }, { name: \"Durham, NC\", tz: -5, lat: 36, lon: 78.92 }, { name: \"Greensboro, NC\", tz: -5, lat: 36.07, lon: 79.78 }, { name: \"Wilmington, NC\", tz: -5, lat: 34.23, lon: 77.93 }, { name: \"Winston Salem, NC\", tz: -5, lat: 36.1, lon: 80.25 }, { name: \"Bismark, N. Dakota\", tz: -7, lat: 46.8, lon: 100.78 }, { name: \"Fargo, N. Dakota\", tz: -7, lat: 46.88, lon: 96.78 }, { name: \"Minot, N. Dakota\", tz: -7, lat: 48.23, lon: 101.3 }, { name: \"Akron, OH\", tz: -5, lat: 41.08, lon: 81.52 }, { name: \"Dayton, OH\", tz: -5, lat: 39.77, lon: 84.2 }, { name: \"Hamilton, OH\", tz: -5, lat: 39.4, lon: 84.57 }, { name: \"Lima, OH\", tz: -5, lat: 40.75, lon: 84.1 }, { name: \"Lorain, OH\", tz: -5, lat: 41.47, lon: 82.18 }, { name: \"Springfield, OH\", tz: -5, lat: 39.95, lon: 83.8 }, { name: \"Stuebenville, OH\", tz: -5, lat: 40.37, lon: 80.62 }, { name: \"Toledo, OH\", tz: -5, lat: 41.65, lon: 83.55 }, { name: \"Youngstown, OH\", tz: -5, lat: 41.1, lon: 80.65 }, { name: \"Zanesville, OH\", tz: -5, lat: 39.93, lon: 82.52 }, { name: \"Enid, Oklahoma\", tz: -6, lat: 36.4, lon: 97.88 }, { name: \"Oklahoma City\", tz: -6, lat: 35.47, lon: 97.52 }, { name: \"Tulsa, Oklahoma\", tz: -6, lat: 36.15, lon: 96 }, { name: \"Eugene (Oreg, US)\", tz: -8, lat: 44.05, lon: 123.1 }, { name: \"Salem (Oreg, US)\", tz: -8, lat: 44.93, lon: 123.03 }, { name: \"Altonna, Pennsylvania\", tz: -5, lat: 40.52, lon: 78.38 }, { name: \"Bethlehem, Pennsylvania\", tz: -5, lat: 40.6, lon: 75.38 }, { name: \"Erie, Pennsylvania\", tz: -5, lat: 42.12, lon: 80.08 }, { name: \"Harrisburg, Pennsylvania\", tz: -5, lat: 40.25, lon: 76.88 }, { name: \"Johnstown, Pennsylvania\", tz: -5, lat: 40.33, lon: 78.92 }, { name: \"Lancaster, Pennsylvania\", tz: -5, lat: 40.03, lon: 76.3 }, { name: \"Reading, Pennsylvania\", tz: -5, lat: 40.33, lon: 75.93 }, { name: \"Scranton, Pennsylvania\", tz: -5, lat: 41.42, lon: 75.67 }, { name: \"WilkesEBarre, Pennsylvania\", tz: -5, lat: 41.25, lon: 75.88 }, { name: \"York, Pennsylvania\", tz: -5, lat: 39.97, lon: 76.73 }, { name: \"Manila\", tz: 8, lat: 14.62, lon: -121 }, { name: \"Kigali\", tz: 2, lat: -1.57, lon: -3.03 }, { name: \"Dakar\", tz: 0, lat: 14.38, lon: 17.27 }, { name: \"Mogadishu\", tz: 3, lat: 2, lon: -45.22 }, { name: \"Columbia, SC\", tz: -5, lat: 34, lon: 81.03 }, { name: \"Greenville, SC\", tz: -5, lat: 34.85, lon: 82.4 }, { name: \"Spartanburg, SC\", tz: -5, lat: 34.95, lon: 81.93 }, { name: \"Pierre, South Dakota\", tz: -6, lat: 44.37, lon: 100.35 }, { name: \"Rapid City, South Dakota\", tz: -6, lat: 44.08, lon: 103.22 }, { name: \"Sioux Falls, South Dakota\", tz: -6, lat: 43.55, lon: 96.73 }, { name: \"Khartoum\", tz: 2, lat: 15.33, lon: -32.22 }, { name: \"Daressalam\", tz: 3, lat: -6.52, lon: -39.18 }, { name: \"Chattanooga (Tenn., US)\", tz: -6, lat: 35.05, lon: 85.32 }, { name: \"Knoxville (Tenn., US)\", tz: -6, lat: 35.97, lon: 83.92 }, { name: \"Abilene, TX\", tz: -6, lat: 32.45, lon: 99.73 }, { name: \"Amarillo, TX\", tz: -6, lat: 35.18, lon: 101.83 }, { name: \"Austin, TX\", tz: -6, lat: 30.27, lon: 97.75 }, { name: \"Beaumont, TX\", tz: -6, lat: 30.08, lon: 94.1 }, { name: \"Brownsville, TX\", tz: -6, lat: 25.9, lon: 97.5 }, { name: \"Corpus Christi, TX\", tz: -6, lat: 27.8, lon: 97.4 }, { name: \"El Paso, TX\", tz: -6, lat: 31.77, lon: 106.48 }, { name: \"Ft Worth, TX\", tz: -6, lat: 32.75, lon: 97.33 }, { name: \"Galveston, TX\", tz: -6, lat: 29.3, lon: 94.8 }, { name: \"Laredo, TX\", tz: -6, lat: 27.5, lon: 99.52 }, { name: \"Lubbock, TX\", tz: -6, lat: 33.58, lon: 101.85 }, { name: \"Marshall, TX\", tz: -6, lat: 32.55, lon: 94.38 }, { name: \"Port Arthur, TX\", tz: -6, lat: 29.88, lon: 93.93 }, { name: \"San Angelo, TX\", tz: -6, lat: 31.47, lon: 100.43 }, { name: \"Texarkana, TX\", tz: -6, lat: 33.43, lon: 94.05 }, { name: \"Waco, TX\", tz: -6, lat: 31.55, lon: 97.13 }, { name: \"Lhasa\", tz: 8, lat: 29.68, lon: -92.2 }, { name: \"Lome\", tz: 0, lat: 6.1, lon: -1.2 }, { name: \"Tunis\", tz: 1, lat: 36.48, lon: -10.13 }, { name: \"Kampala\", tz: 3, lat: 0.2, lon: -32.35 }, { name: \"Logan, Utah\", tz: -7, lat: 41.73, lon: 111.83 }, { name: \"Ogden, Utah\", tz: -7, lat: 41.23, lon: 111.97 }, { name: \"Provo, Utah\", tz: -7, lat: 40.23, lon: 111.65 }, { name: \"Brattleboro, VT\", tz: -5, lat: 42.85, lon: 72.57 }, { name: \"Montpelier, VT\", tz: -5, lat: 44.27, lon: 72.55 }, { name: \"Hanoi\", tz: 7, lat: 21.07, lon: -105.83 }, { name: \"Norfolk, Virginia\", tz: -5, lat: 36.85, lon: 76.28 }, { name: \"Portsmouth, Virginia\", tz: -5, lat: 36.83, lon: 76.28 }, { name: \"Richmond, Virginia\", tz: -5, lat: 37.53, lon: 77.43 }, { name: \"Roanooke, Virginia\", tz: -5, lat: 37.25, lon: 79.93 }, { name: \"Bellingham, WA\", tz: -8, lat: 48.77, lon: 122.48 }, { name: \"Spokane, WA\", tz: -8, lat: 47.67, lon: 117.43 }, { name: \"Tacoma, WA\", tz: -8, lat: 47.25, lon: 122.43 }, { name: \"Walla Walla, WA\", tz: -8, lat: 46.07, lon: 118.33 }, { name: \"Yakima, WA\", tz: -8, lat: 46.6, lon: 120.52 }, { name: \"Laayoune\", tz: 1, lat: 27.1, lon: 13.12 }, { name: \"Charleston, West Virginia\", tz: -5, lat: 38.35, lon: 81.63 }, { name: \"Huntington, West Virginia\", tz: -5, lat: 38.42, lon: 82.45 }, { name: \"Wheeling, West Virginia\", tz: -5, lat: 40.07, lon: 80.72 }, { name: \"Eau Claire (Wis., US)\", tz: -6, lat: 44.82, lon: 91.5 }, { name: \"Green Bay (Wis., US)\", tz: -6, lat: 44.52, lon: 88.02 }, { name: \"Kenosha (Wis., US)\", tz: -6, lat: 42.6, lon: 87.83 }, { name: \"Racine (Wis., US)\", tz: -6, lat: 42.73, lon: 87.78 }, { name: \"Sheboygan (Wis., US)\", tz: -6, lat: 43.75, lon: 87.72 }, { name: \"Superior (Wis., US)\", tz: -6, lat: 46.72, lon: 92.1 }, { name: \"Cheyenne, Wyoming\", tz: -7, lat: 41.13, lon: 104.82 }, { name: \"Sheridan, Wyoming\", tz: -7, lat: 44.8, lon: 106.95 }, { name: \"Lusaka\", tz: 2, lat: -15.28, lon: -28.17 }, { name: \"Kinshasa\", tz: 1, lat: -4.18, lon: -15.18 }, { name: \"Harare\", tz: 2, lat: -17.5, lon: -31.03 }, { name: \"Abu Dhabi\", tz: 4, lat: 24.33, lon: -54.57 }, { name: \"Acapulco\", tz: -6, lat: 17.08, lon: 100.13 }, { name: \"Agana, Guam\", tz: 10, lat: 13.48, lon: -144.73 }, { name: \"Al-Manamah, Bharain\", tz: 3, lat: 26.22, lon: -50.55 }, { name: \"Andorra, Spain\", tz: 1, lat: 40.97, lon: 0.47 }, { name: \"Asmara, Eritrea\", tz: 3, lat: 15.02, lon: -38.48 }, { name: \"Baku, Aserbaidschan\", tz: 4, lat: 40.35, lon: -49.82 }, { name: \"Bergen, The Netherlands\", tz: 1, lat: 51.62, lon: -6.07 }, { name: \"Bischkek, Kirgistan\", tz: 6, lat: 43.02, lon: -74.97 }, { name: \"Bridgetown (Barbados)\", tz: -4, lat: 13.08, lon: 59.47 }, { name: \"Brno\", tz: 1, lat: 49.2, lon: -16.58 }, { name: \"Broken Hill, Australia\", tz: 10, lat: -31.87, lon: -141.17 }, { name: \"Bukavu, Zaire\", tz: 2, lat: -2.55, lon: -28.65 }, { name: \"Kanarische Inseln\", tz: 0, lat: 28.47, lon: 15.05 }, { name: \"Cayenne (French - Guyana)\", tz: -3, lat: 4.78, lon: -52.47 }, { name: \"Cebu, Phillipines\", tz: 8, lat: 10.18, lon: -123.75 }, { name: \"Cordoba, Spain\", tz: 1, lat: 57.87, lon: 4.83 }, { name: \"Cordoba, Argentinia\", tz: -3, lat: -31.15, lon: 64.25 }, { name: \"Cordova, Alaska, U.S.A.\", tz: -9, lat: 60.55, lon: 145.73 }, { name: \"Dalian, China\", tz: 8, lat: 38.9, lon: -121.65 }, { name: \"Dakar, Senegal\", tz: 0, lat: 14.78, lon: 16.95 }, { name: \"Dhaka, Bangladesh\", tz: 6, lat: 23.48, lon: -90.4 }, { name: \"Durban, South Africa\", tz: 2, lat: -29.87, lon: -30.9 }, { name: \"Dushanbe, Tadschikistan\", tz: 6, lat: 38.6, lon: -69.1 }, { name: \"Er Riad\", tz: 3, lat: 24.65, lon: -46.7 }, { name: \"Firenze, Italy\", tz: 1, lat: 43.77, lon: -11.23 }, { name: \"Freetown, Sierra Leone\", tz: 0, lat: 8.5, lon: 13.22 }, { name: \"Georgetown, Gambia\", tz: 0, lat: 13.22, lon: 14.75 }, { name: \"Guatemala City\", tz: -6, lat: 14.58, lon: 90.67 }, { name: \"Hermosillo, Mexico\", tz: -6, lat: 29.18, lon: 110.98 }, { name: \"Jakarta, Indonesia\", tz: 7, lat: -6.28, lon: -106.65 }, { name: \"Katmandu, Nepal\", tz: 6, lat: 27.67, lon: -85.47 }, { name: \"Khabarovsk, Russia\", tz: 10, lat: 48.07, lon: -134.63 }, { name: \"Khartoum, Sudan\", tz: 2, lat: 15.23, lon: -32.57 }, { name: \"La Paz, Argentinia\", tz: -3, lat: -30.75, lon: 59.67 }, { name: \"La Plata, Argentinia\", tz: -3, lat: -34.97, lon: 57.97 }, { name: \"Limerick, Ireland\", tz: 0, lat: 52.7, lon: 8.67 }, { name: \"Macao, China\", tz: 8, lat: 22.22, lon: -113.6 }, { name: \"Managua, Nikaragva\", tz: -6, lat: 12.15, lon: 86.32 }, { name: \"Manaus\", tz: -4, lat: -2.87, lon: 60.12 }, { name: \"Maracaibo, Venezuela\", tz: -4, lat: 10.52, lon: 71.97 }, { name: \"Mbabane, Swasiland\", tz: 2, lat: -26.07, lon: -31.15 }, { name: \"Monte Carlo, Monaco\", tz: 1, lat: 43.73, lon: -7.42 }, { name: \"Nassau, Germany\", tz: 1, lat: 50.32, lon: -7.8 }, { name: \"Nandi, Simbabwe\", tz: 2, lat: -20.98, lon: -31.78 }, { name: \"Nantes, France\", tz: 1, lat: 47.23, lon: 1.48 }, { name: \"Noumea, New Caledonia\", tz: 11, lat: -22.12, lon: -166.5 }, { name: \"Nizhniy Novgorod\", tz: 4, lat: 56.33, lon: -44.17 }, { name: \"Odense, Denmark\", tz: 1, lat: 55.43, lon: 10.3 }, { name: \"Osaka, Japan\", tz: 9, lat: 34.75, lon: -135.47 }, { name: \"Paramaribo, Surinam\", tz: -3, lat: 5.77, lon: 55.25 }, { name: \"Phnom Penh, Kambodscha\", tz: 7, lat: 11.53, lon: -104.78 }, { name: \"Port Au Prince, Haiti\", tz: -5, lat: 18.57, lon: 72.33 }, { name: \"Port Louis, Mauritius\", tz: 4, lat: -20.15, lon: -57.5 }, { name: \"Port Moresby, Papua-Neuguinea\", tz: 10, lat: -9.43, lon: -147 }, { name: \"Port Said, Egypt\", tz: 2, lat: 30.9, lon: -32.07 }, { name: \"Pretoria, South Africa\", tz: 2, lat: -25.63, lon: -28.33 }, { name: \"San Salvador, El Salvador\", tz: -6, lat: 13.98, lon: 89.18 }, { name: \"Santo Domingo, Dominican Republic\", tz: -4, lat: 18.5, lon: 69.93 }, { name: \"Suez, Egypt\", tz: 2, lat: 29.97, lon: -32.55 }, { name: \"Szeged, Hungary\", tz: 1, lat: 46.32, lon: -20.08 }, { name: \"Tahiti, Polynesia\", tz: -10, lat: -18.3, lon: 149.43 }, { name: \"Tegucigalpa, Honduras\", tz: -6, lat: 14.28, lon: 87.4 }, { name: \"Thessalonikia, Greece\", tz: 2, lat: 40.65, lon: -23.02 }, { name: \"Thimbu, Bhutan\", tz: 6, lat: 27.47, lon: -89.63 }, { name: \"Tirana, Albania\", tz: 1, lat: 41.35, lon: -19.8 }, { name: \"Tijuana, Mexico\", tz: -6, lat: 32.48, lon: 117.03 }, { name: \"Ulan Bator, Mongolia\", tz: 8, lat: 47.45, lon: -106.4 }, { name: \"Vaduz, Liechtenstein\", tz: 1, lat: 47.13, lon: -9.53 }, { name: \"Vientiane, Laos\", tz: 7, lat: 17.88, lon: -102.63 }, { name: \"Wellington, New Zealand\", tz: 12, lat: -41.3, lon: -174.98 }, { name: \"Yerevan, Armenia\", tz: 4, lat: 39.93, lon: -44.75 }, { name: \"Towson, MD\", tz: -5, lat: 39.28, lon: 76.62 }, { name: \"Florina\", tz: 2, lat: 40.78, lon: -21.42 }, { name: \"Kishinew, Moldova\", tz: 2, lat: 47, lon: -28.83 }, { name: \"Belts, Moldova\", tz: 2, lat: 47.75, lon: -27.92 }, { name: \"Bendery, Moldova\", tz: 2, lat: 46.83, lon: -29.47 }, { name: \"Cahul, Moldova\", tz: 2, lat: 45.9, lon: -28.2 }, { name: \"Taraclia, Moldova\", tz: 2, lat: 45.9, lon: -28.68 }, { name: \"Alexandria, Greece\", tz: 2, lat: 40.63, lon: -22.52 }, { name: \"Chalkis, Greece\", tz: 2, lat: 38.47, lon: -23.6 }, { name: \"Drama, Greece\", tz: 2, lat: 41.15, lon: -24.17 }, { name: \"Kilkis, Greece\", tz: 2, lat: 41, lon: -22.9 }, { name: \"Larissa, Greece\", tz: 2, lat: 39.63, lon: -22.42 }, { name: \"Thessaloniki, Greece\", tz: 2, lat: 40.63, lon: -22.97 }, { name: \"\\xC4li Bayramli, Aserbaidschan\", tz: 4, lat: 39.93, lon: -48.92 }, { name: \"Puta, Aserbaidschan\", tz: 4, lat: 40.3, lon: -49.68 }, { name: \"Sumqayit, Aserbaidschan\", tz: 4, lat: 40.6, lon: -49.75 }, { name: \"Siy\\xE4z\\xE4n, Aserbaidschan\", tz: 4, lat: 41.07, lon: -49.1 }, { name: \"Decin\", tz: 1, lat: 50.8, lon: -14.22 }, { name: \"Karlovy Vary\", tz: 1, lat: 50.18, lon: -12.87 }, { name: \"Zilina\", tz: 1, lat: 49.23, lon: -18.77 }, { name: \"Appenweier\", tz: 1, lat: 48.53, lon: -7.97 }, { name: \"Denzlingen\", tz: 1, lat: 48.07, lon: -7.87 }, { name: \"Ettenheim\", tz: 1, lat: 48.25, lon: -7.82 }, { name: \"Kehl\", tz: 1, lat: 48.58, lon: -7.83 }, { name: \"Kenzingen\", tz: 1, lat: 48.18, lon: -7.77 }, { name: \"Lahr\", tz: 1, lat: 48.33, lon: -7.87 }, { name: \"Oberkirch\", tz: 1, lat: 48.52, lon: -8.08 }, { name: \"Offenburg\", tz: 1, lat: 48.47, lon: -7.95 }, { name: \"Rust, Germany\", tz: 1, lat: 48.27, lon: -7.72 }, { name: \"Waldkirch\", tz: 1, lat: 48.08, lon: -7.95 }, { name: \"K\\xF6nigs Wusterhausen\", tz: 1, lat: 52.3, lon: -13.62 }, { name: \"Oderberg\", tz: 1, lat: 52.87, lon: -14.03 }, { name: \"Oranienburg\", tz: 1, lat: 52.75, lon: -13.23 }, { name: \"Schwedt/Oder\", tz: 1, lat: 53.05, lon: -14.28 }, { name: \"Harrow, United Kingdom\", tz: 0, lat: 51.58, lon: 0.37 }, { name: \"Markkleeberg\", tz: 1, lat: 51.28, lon: -12.38 }, { name: \"Gap, France\", tz: 1, lat: 44.57, lon: -6.08 }, { name: \"Amiens, France\", tz: 1, lat: 49.9, lon: -2.3 }, { name: \"Angers, France\", tz: 1, lat: 47.47, lon: 0.55 }, { name: \"Bischeim, France\", tz: 1, lat: 48.62, lon: -7.75 }, { name: \"Chambery, France\", tz: 1, lat: 45.57, lon: -6.08 }, { name: \"Deauville, France\", tz: 1, lat: 49.37, lon: -0.07 }, { name: \"Dieuze, France\", tz: 1, lat: 48.82, lon: -6.72 }, { name: \"Dunkerque, France\", tz: 1, lat: 51.05, lon: -2.37 }, { name: \"Elbeuf, France\", tz: 1, lat: 49.28, lon: -1 }, { name: \"Epernay, France\", tz: 1, lat: 49.05, lon: -3.95 }, { name: \"Epinal, France\", tz: 1, lat: 48.18, lon: -6.45 }, { name: \"Forbach, France\", tz: 1, lat: 49.18, lon: -6.9 }, { name: \"Ingwiller, France\", tz: 1, lat: 48.87, lon: -7.48 }, { name: \"Saint-Laurent-du-Var, France (1)\", tz: 1, lat: 45.38, lon: -5.73 }, { name: \"La Ciotat, France\", tz: 1, lat: 43.17, lon: -5.6 }, { name: \"Le Mans, France\", tz: 1, lat: 48, lon: -0.2 }, { name: \"Libourne, France\", tz: 1, lat: 44.92, lon: 0.23 }, { name: \"Luneville, France\", tz: 1, lat: 48.6, lon: -6.5 }, { name: \"Marignane, France\", tz: 1, lat: 43.42, lon: -5.22 }, { name: \"Melun, France\", tz: 1, lat: 48.53, lon: -2.67 }, { name: \"Merlebach, France\", tz: 1, lat: 49.15, lon: -6.8 }, { name: \"Montauban, France\", tz: 1, lat: 44.02, lon: -1.35 }, { name: \"Montbeliard, France\", tz: 1, lat: 47.52, lon: -6.8 }, { name: \"Obernai, France\", tz: 1, lat: 48.47, lon: -7.48 }, { name: \"Pau, France\", tz: 1, lat: 43.3, lon: 0.37 }, { name: \"Perigueux, France\", tz: 1, lat: 45.18, lon: -0.72 }, { name: \"Phalsbourg, France\", tz: 1, lat: 48.77, lon: -7.27 }, { name: \"Poitiers, France\", tz: 1, lat: 46.58, lon: -0.33 }, { name: \"Reims, France\", tz: 1, lat: 49.25, lon: -4.02 }, { name: \"Rennes, France\", tz: 1, lat: 48.08, lon: 1.68 }, { name: \"Roanne, France\", tz: 1, lat: 46.03, lon: -4.07 }, { name: \"Saint-Avold, France\", tz: 1, lat: 49.1, lon: -6.7 }, { name: \"Saint-Die, France\", tz: 1, lat: 48.28, lon: -6.95 }, { name: \"Saint-Etienne, France\", tz: 1, lat: 45.43, lon: -4.4 }, { name: \"Saint-Fons, France\", tz: 1, lat: 45.7, lon: -4.85 }, { name: \"Saint-Laurent-du-Var, France (2)\", tz: 1, lat: 43.67, lon: -7.18 }, { name: \"Saint-Quentin, France\", tz: 1, lat: 49.85, lon: -3.28 }, { name: \"Sarrebourg, France\", tz: 1, lat: 48.73, lon: -7.05 }, { name: \"Sarreguemines, France\", tz: 1, lat: 49.1, lon: -7.05 }, { name: \"Saverne, France\", tz: 1, lat: 48.73, lon: -7.37 }, { name: \"Sedan, France\", tz: 1, lat: 49.7, lon: -4.95 }, { name: \"Selestat, France\", tz: 1, lat: 48.27, lon: -7.45 }, { name: \"Tarbes, France\", tz: 1, lat: 43.23, lon: -0.08 }, { name: \"Thionville, France\", tz: 1, lat: 49.37, lon: -6.17 }, { name: \"Toul, France\", tz: 1, lat: 48.68, lon: -5.9 }, { name: \"Toulon, France\", tz: 1, lat: 43.12, lon: -5.93 }, { name: \"Valence, France\", tz: 1, lat: 44.93, lon: -4.9 }, { name: \"Valenciennes, France\", tz: 1, lat: 50.35, lon: -3.53 }, { name: \"Venissieux, France\", tz: 1, lat: 54.68, lon: -4.88 }, { name: \"Verdun, France\", tz: 1, lat: 49.17, lon: -5.38 }, { name: \"Vichy, France\", tz: 1, lat: 46.13, lon: -3.43 }, { name: \"Berdicev, Ukraine\", tz: 2, lat: 49.9, lon: -28.6 }, { name: \"Bershad, Ukraine\", tz: 2, lat: 48.37, lon: -29.53 }, { name: \"Chernigov, Ukraine\", tz: 2, lat: 50.83, lon: -24.13 }, { name: \"Czernowitz, Chernovtsy, Ukraine\", tz: 2, lat: 48.28, lon: -25.97 }, { name: \"Dnepropetrovsk, Ukraine\", tz: 2, lat: 48.45, lon: -35.03 }, { name: \"Donetsk, Ukraine\", tz: 2, lat: 48, lon: -37.78 }, { name: \"Charkow, Ukraine\", tz: 2, lat: 49.92, lon: -36.17 }, { name: \"Cherson, Ukraine\", tz: 2, lat: 46.65, lon: -32.6 }, { name: \"Korosten, Ukraine\", tz: 2, lat: 50.95, lon: -28.63 }, { name: \"Kremenchug, Ukraine\", tz: 2, lat: 49.07, lon: -33.42 }, { name: \"Lemberg, Lwow, Ukraine\", tz: 2, lat: 49.83, lon: -24.03 }, { name: \"Mukacevo, Ukraine\", tz: 2, lat: 48.45, lon: -22.72 }, { name: \"Nikolayev, Ukraine\", tz: 2, lat: 49.52, lon: -23.97 }, { name: \"Rachki, Ukraine\", tz: 2, lat: 49.5, lon: -29.9 }, { name: \"Simferopol, Ukraine\", tz: 2, lat: 44.95, lon: -34.1 }, { name: \"Slavuta, Ukraine\", tz: 2, lat: 50.3, lon: -26.87 }, { name: \"Zhitomir, Ukraine\", tz: 2, lat: 50.25, lon: -28.67 }, { name: \"Beregovoye, Ukraine\", tz: 2, lat: 44.9, lon: -33.6 }, { name: \"Tinton Falls, NJ\", tz: -5, lat: 40.28, lon: 74.1 }, { name: \"Warendorf\", tz: 1, lat: 51.95, lon: -7.98 }, { name: \"M\\xFCnster\", tz: 1, lat: 51.95, lon: -7.62 }, { name: \"Neu Fahrland\", tz: 1, lat: 52.45, lon: -13.05 }, { name: \"Charlottesville, Virginia\", tz: -5, lat: 38.03, lon: 78.48 }, { name: \"Hagenow\", tz: 1, lat: 53.43, lon: -11.18 }, { name: \"Verl\", tz: 1, lat: 51.88, lon: -8.52 }, { name: \"R\\xF6bel\", tz: 1, lat: 53.37, lon: -12.6 }, { name: \"Nordhausen\", tz: 1, lat: 51.5, lon: -10.78 }, { name: \"Aschaffenburg\", tz: 1, lat: 49.98, lon: -9.15 }, { name: \"Ahrweiler\", tz: 1, lat: 50.55, lon: -7.13 }, { name: \"Cedar Grove, NJ (1)\", tz: -5, lat: 40.85, lon: 74.23 }, { name: \"Cedar Grove, NJ (2)\", tz: -5, lat: 39.97, lon: 74.15 }, { name: \"Encinitas, CA\", tz: -8, lat: 33.03, lon: 117.28 }, { name: \"Calabasas, AZ\", tz: -7, lat: 31.47, lon: 110.97 }, { name: \"Calabasas, CA\", tz: -8, lat: 34.15, lon: 118.63 }, { name: \"Rottweil\", tz: 1, lat: 48.17, lon: -8.62 }];\n\n// src/Locations.ts\nvar Locations = locations_default.map((l) => new Location(l.name, l.heb, !!l.il, l.lat, l.lon, l.tz, l.el || 0, l.cl));\nLocations.sort(function(a, b) {\n return a.Name > b.Name ? 1 : b.Name > a.Name ? -1 : 0;\n});\nvar justNames = [];\nfor (let i = 0; i < Locations.length - 1; i++) {\n const l = Locations[i];\n justNames.push({\n name: l.Name.split(\",\", 1)[0].toLowerCase(),\n index: i\n });\n if (!!l.NameHebrew) {\n justNames.push({\n name: l.NameHebrew,\n index: i\n });\n }\n}\nfunction distancePointToPoint(point1, point2) {\n if (point1.latitude == point2.latitude && point1.longitude == point2.longitude) {\n return 0;\n } else {\n var radlat1 = Math.PI * point1.latitude / 180;\n var radlat2 = Math.PI * point2.latitude / 180;\n var theta = point1.longitude - point2.longitude;\n var radtheta = Math.PI * theta / 180;\n var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\n if (dist > 1) {\n dist = 1;\n }\n dist = Math.acos(dist);\n dist = dist * 180 / Math.PI;\n dist = dist * 60 * 1.1515;\n dist = dist * 1.609344;\n return dist;\n }\n}\nfunction closestDistanceMatch(point) {\n let curr = { dist: 1e5 };\n for (let location of Locations) {\n const dist = distancePointToPoint(point, { latitude: location.Latitude, longitude: location.Longitude });\n if (dist < curr.dist) {\n curr = { dist, location };\n }\n }\n return curr.location;\n}\nfunction closestNameMatch(val) {\n let curr = { dist: 1e5 };\n for (let location of justNames) {\n const dist = (0, import_closest_match.distance)(val.toLowerCase(), location.name);\n if (dist < curr.dist) {\n curr = { dist, location };\n }\n }\n return curr.location ? Locations[curr.location.index] : void 0;\n}\nfunction findLocation(nameOrCoordinates) {\n if (typeof nameOrCoordinates === \"string\") {\n const exactNameMatch = Locations.find((l) => l.Name.toLowerCase() === nameOrCoordinates.toLowerCase() || l.NameHebrew === nameOrCoordinates);\n if (!!exactNameMatch) {\n return exactNameMatch;\n }\n const cityOnlyNameMatch = justNames.find((l) => l.name === nameOrCoordinates.toLowerCase());\n if (!!cityOnlyNameMatch) {\n return Locations[cityOnlyNameMatch.index];\n }\n return closestNameMatch(nameOrCoordinates.toLowerCase());\n } else {\n const exactCoordinateMatch = Locations.find((l) => l.Latitude === nameOrCoordinates.latitude && l.Longitude === nameOrCoordinates.longitude);\n if (!!exactCoordinateMatch) {\n return exactCoordinateMatch;\n }\n return closestDistanceMatch(nameOrCoordinates);\n }\n}\n\n// src/ZmanTypes.ts\nvar ZmanTypeIds = Object.freeze({\n ChatzosLayla: 0,\n Alos90: 1,\n Alos72: 2,\n TalisTefillin: 3,\n NetzAtElevation: 4,\n NetzMishor: 5,\n szksMga: 6,\n szksGra: 7,\n sztMga: 8,\n sztGra: 9,\n chatzosDay: 10,\n minGed: 11,\n minKet: 12,\n plag: 13,\n shkiaAtSeaLevel: 14,\n shkiaElevation: 15,\n tzais45: 16,\n tzais50: 17,\n tzais72: 18,\n rabbeinuTamZmanios: 19,\n rabbeinuTamZmaniosMga: 20,\n candleLighting: 21,\n SofZmanEatingChometz: 22,\n SofZmanBurnChometz: 23\n});\nvar ZmanTypes = [\n {\n id: ZmanTypeIds.ChatzosLayla,\n desc: \"\\u05D7\\u05E6\\u05D5\\u05EA \\u05D4\\u05DC\\u05D9\\u05DC\\u05D4\",\n eng: \"Chatzos - Midnight\",\n heb: \"\\u05D7\\u05E6\\u05D5\\u05EA \\u05D4\\u05DC\\u05D9\\u05DC\\u05D4\"\n },\n {\n id: ZmanTypeIds.Alos90,\n desc: \"\\u05E2\\u05DC\\u05D5\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8 - 90 \\u05D3\\u05E7\\u05D5\\u05EA\",\n eng: \"Alos Hashachar - 90\",\n heb: \"\\u05E2\\u05DC\\u05D5\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8 (90)\"\n },\n {\n id: ZmanTypeIds.Alos72,\n desc: \"\\u05E2\\u05DC\\u05D5\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8 - 72 \\u05D3\\u05E7\\u05D5\\u05EA\",\n eng: \"Alos Hashachar - 72\",\n heb: \"\\u05E2\\u05DC\\u05D5\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8 (72)\"\n },\n {\n id: ZmanTypeIds.TalisTefillin,\n desc: \"\\u05D6\\u05DE\\u05DF \\u05E2\\u05D8\\u05D9\\u05E4\\u05EA \\u05D8\\u05DC\\u05D9\\u05EA \\u05D5\\u05EA\\u05E4\\u05D9\\u05DC\\u05D9\\u05DF - 36 \\u05D3\\u05E7\\u05D5\\u05EA\",\n eng: \"Taliss and Tefillin\",\n heb: \"\\u05D8\\u05DC\\u05D9\\u05EA \\u05D5\\u05EA\\u05E4\\u05D9\\u05DC\\u05D9\\u05DF\"\n },\n {\n id: ZmanTypeIds.NetzAtElevation,\n desc: \"\\u05D4\\u05E0\\u05E5 \\u05D4\\u05D7\\u05DE\\u05D4 \\u05D1\\u05D2\\u05D5\\u05D1\\u05D4 \\u05D4\\u05DE\\u05D9\\u05E7\\u05D5\\u05DD\",\n eng: \"Sunrise at current elevation\",\n heb: \"\\u05D4\\u05E0\\u05E5 \\u05D4\\u05D7\\u05DE\\u05D4 - \\u05DE\\u05D2\\u05D5\\u05D1\\u05D4\"\n },\n {\n id: ZmanTypeIds.NetzMishor,\n desc: \"\\u05D4\\u05E0\\u05E5 \\u05D4\\u05D7\\u05DE\\u05D4 \\u05D1\\u05D2\\u05D5\\u05D1\\u05D4 \\u05E4\\u05E0\\u05D9 \\u05D4\\u05D9\\u05DD\",\n eng: \"Sunrise\",\n heb: \"\\u05D4\\u05E0\\u05E5 \\u05D4\\u05D7\\u05DE\\u05D4\"\n },\n {\n id: ZmanTypeIds.szksMga,\n desc: '\\u05E1\\u05D6\\u05E7\"\\u05E9 \\u05DE\\u05D2\"\\u05D0',\n eng: 'Zman Krias Shma - MG\"A',\n heb: '\\u05E1\\u05D6\\u05E7\"\\u05E9 \\u05DE\\u05D2\"\\u05D0'\n },\n {\n id: ZmanTypeIds.szksGra,\n desc: '\\u05E1\\u05D6\\u05E7\"\\u05E9 \\u05D4\\u05D2\\u05E8\"\\u05D0',\n eng: 'Zman Krias Shma - GR\"A',\n heb: '\\u05E1\\u05D6\\u05E7\"\\u05E9 \\u05D4\\u05D2\\u05E8\"\\u05D0'\n },\n {\n id: ZmanTypeIds.sztMga,\n desc: '\\u05E1\\u05D6\"\\u05EA \\u05DE\\u05D2\"\\u05D0',\n eng: 'Zman Tefilla - MG\"A',\n heb: '\\u05E1\\u05D6\"\\u05EA \\u05DE\\u05D2\"\\u05D0'\n },\n {\n id: ZmanTypeIds.sztGra,\n desc: '\\u05E1\\u05D6\"\\u05EA \\u05D4\\u05D2\\u05E8\"\\u05D0',\n eng: 'Zman Tefilla - GR\"A',\n heb: '\\u05E1\\u05D6\"\\u05EA \\u05D4\\u05D2\\u05E8\"\\u05D0'\n },\n {\n id: ZmanTypeIds.chatzosDay,\n desc: \"\\u05D7\\u05E6\\u05D5\\u05EA \\u05D4\\u05D9\\u05D5\\u05DD\",\n eng: \"Chatzos - Midday\",\n heb: \"\\u05D7\\u05E6\\u05D5\\u05EA \\u05D4\\u05D9\\u05D5\\u05DD\"\n },\n {\n id: ZmanTypeIds.minGed,\n desc: \"\\u05DE\\u05E0\\u05D7\\u05D4 \\u05D2\\u05D3\\u05D5\\u05DC\\u05D4\",\n eng: \"Mincha Gedola\",\n heb: \"\\u05DE\\u05E0\\u05D7\\u05D4 \\u05D2\\u05D3\\u05D5\\u05DC\\u05D4\"\n },\n {\n id: ZmanTypeIds.minKet,\n desc: \"\\u05DE\\u05E0\\u05D7\\u05D4 \\u05E7\\u05D8\\u05E0\\u05D4\",\n eng: \"Mincha Ketana\",\n heb: \"\\u05DE\\u05E0\\u05D7\\u05D4 \\u05E7\\u05D8\\u05E0\\u05D4\"\n },\n {\n id: ZmanTypeIds.plag,\n desc: \"\\u05E4\\u05DC\\u05D2 \\u05D4\\u05DE\\u05E0\\u05D7\\u05D4\",\n eng: \"Plag HaMincha\",\n heb: \"\\u05E4\\u05DC\\u05D2 \\u05D4\\u05DE\\u05E0\\u05D7\\u05D4\"\n },\n {\n id: ZmanTypeIds.shkiaAtSeaLevel,\n desc: \"\\u05E9\\u05E7\\u05D9\\u05E2\\u05EA \\u05D4\\u05D7\\u05DE\\u05D4 \\u05DE\\u05D2\\u05D5\\u05D1\\u05D4 \\u05E4\\u05E0\\u05D9 \\u05D4\\u05D9\\u05DD\",\n eng: \"Sunset at sea level\",\n heb: \"\\u05E9\\u05E7\\u05D9\\u05E2\\u05EA \\u05D4\\u05D7\\u05DE\\u05D4 - \\u05DE\\u05DE\\u05D9\\u05E9\\u05D5\\u05E8\"\n },\n {\n id: ZmanTypeIds.shkiaElevation,\n desc: \"\\u05E9\\u05E7\\u05D9\\u05E2\\u05EA \\u05D4\\u05D7\\u05DE\\u05D4 \\u05DE\\u05D2\\u05D5\\u05D1\\u05D4 \\u05D4\\u05DE\\u05D9\\u05E7\\u05D5\\u05DD\",\n eng: \"Sunset\",\n heb: \"\\u05E9\\u05E7\\u05D9\\u05E2\\u05EA \\u05D4\\u05D7\\u05DE\\u05D4\"\n },\n {\n id: ZmanTypeIds.tzais45,\n desc: \"45 \\u05D3\\u05E7\\u05D5\\u05EA \\u05D0\\u05D7\\u05E8\\u05D9 \\u05E9\\u05E7\\u05D9\\u05E2\\u05D4\",\n eng: \"Nightfall - 45\",\n heb: \"\\u05E6\\u05D0\\u05EA \\u05D4\\u05DB\\u05D5\\u05DB\\u05D1\\u05D9\\u05DD (45)\"\n },\n {\n id: ZmanTypeIds.tzais50,\n desc: \"50 \\u05D3\\u05E7\\u05D5\\u05EA \\u05D0\\u05D7\\u05E8\\u05D9 \\u05E9\\u05E7\\u05D9\\u05E2\\u05D4\",\n eng: \"Nightfall - 50\",\n heb: \"\\u05E6\\u05D0\\u05EA \\u05D4\\u05DB\\u05D5\\u05DB\\u05D1\\u05D9\\u05DD (50)\"\n },\n {\n id: ZmanTypeIds.tzais72,\n desc: \"72 \\u05D3\\u05E7\\u05D5\\u05EA \\u05D0\\u05D7\\u05E8\\u05D9 \\u05E9\\u05E7\\u05D9\\u05E2\\u05D4\",\n eng: \"Rabbeinu Tam\",\n heb: '\\u05E6\\u05D4\"\\u05DB \\u05E8\"\\u05EA - 72 \\u05D3\\u05E7\\u05D5\\u05EA'\n },\n {\n id: ZmanTypeIds.rabbeinuTamZmanios,\n desc: \"72 \\u05D3\\u05E7\\u05D5\\u05EA \\u05D6\\u05DE\\u05E0\\u05D9\\u05D5\\u05EA \\u05D0\\u05D7\\u05E8\\u05D9 \\u05E9\\u05E7\\u05D9\\u05E2\\u05D4\",\n eng: \"Rabbeinu Tam - Zmanios\",\n heb: '\\u05E6\\u05D4\"\\u05DB \\u05E8\"\\u05EA - \\u05D6\\u05DE\\u05E0\\u05D9\\u05D5\\u05EA'\n },\n {\n id: ZmanTypeIds.rabbeinuTamZmaniosMga,\n desc: '72 \\u05D3\\u05E7\\u05D5\\u05EA \\u05D6\\u05DE\\u05E0\\u05D9\\u05D5\\u05EA \\u05D0\\u05D7\\u05E8\\u05D9 \\u05E9\\u05E7\\u05D9\\u05E2\\u05D4 - \\u05DE\\u05D2\"\\u05D0',\n eng: 'Rabbeinu Tam - Zmanios MG\"A',\n heb: '\\u05E6\\u05D4\"\\u05DB \\u05E8\"\\u05EA - \\u05D6\\u05DE\\u05E0\\u05D9\\u05D5\\u05EA \\u05DE\\u05D2\"\\u05D0'\n },\n {\n id: ZmanTypeIds.candleLighting,\n desc: \"\\u05D6\\u05DE\\u05DF \\u05D4\\u05D3\\u05DC\\u05E7\\u05EA \\u05E0\\u05E8\\u05D5\\u05EA\",\n eng: \"Candle lighting time\",\n heb: \"\\u05D6\\u05DE\\u05DF \\u05D4\\u05D3\\u05DC\\u05E7\\u05EA \\u05E0\\u05E8\\u05D5\\u05EA\"\n },\n {\n id: ZmanTypeIds.SofZmanEatingChometz,\n desc: \"\\u05E1\\u05D5\\u05E3 \\u05D6\\u05DE\\u05DF \\u05D0\\u05DB\\u05D9\\u05DC\\u05EA \\u05D7\\u05DE\\u05E5\",\n eng: \"Stop eating Chometz\",\n heb: \"\\u05E1\\u05D5\\u05E3 \\u05D6\\u05DE\\u05DF \\u05D0\\u05DB\\u05D9\\u05DC\\u05EA \\u05D7\\u05DE\\u05E5\"\n },\n {\n id: ZmanTypeIds.SofZmanBurnChometz,\n desc: \"\\u05E1\\u05D5\\u05E3 \\u05D6\\u05DE\\u05DF \\u05D1\\u05D9\\u05E2\\u05D5\\u05E8 \\u05D7\\u05DE\\u05E5\",\n eng: \"Destroy Chometz\",\n heb: \"\\u05E1\\u05D5\\u05E3 \\u05D6\\u05DE\\u05DF \\u05D1\\u05D9\\u05E2\\u05D5\\u05E8 \\u05D7\\u05DE\\u05E5\"\n }\n];\nfunction getZmanType(idOrName) {\n return ZmanTypes.find((zt) => zt.id === idOrName || zt.eng === idOrName || zt.heb === idOrName || zt.desc === idOrName);\n}\n\n// src/JCal/Molad.ts\nvar Molad = class _Molad {\n /**\n * @param {Number} month\n * @param {Number} year\n * @returns {{jDate:jDate,time:Time,chalakim:number}}\n */\n static getMolad(month, year) {\n let totalMonths, partsElapsed, hoursElapsed, parts, monthAdj = month - 7;\n if (monthAdj < 0) {\n monthAdj += jDate.monthsJYear(year);\n }\n totalMonths = Utils.toInt(monthAdj + 235 * Utils.toInt((year - 1) / 19) + 12 * ((year - 1) % 19) + ((year - 1) % 19 * 7 + 1) / 19);\n partsElapsed = 204 + 793 * (totalMonths % 1080);\n hoursElapsed = 5 + 12 * totalMonths + 793 * Utils.toInt(totalMonths / 1080) + Utils.toInt(partsElapsed / 1080) - 6;\n parts = Utils.toInt(partsElapsed % 1080 + 1080 * (hoursElapsed % 24));\n return {\n jDate: new jDate(1 + 29 * Utils.toInt(totalMonths) + Utils.toInt(hoursElapsed / 24)),\n time: { hour: Utils.toInt(hoursElapsed) % 24, minute: Utils.toInt(parts % 1080 / 18), second: 0 },\n chalakim: parts % 18\n };\n }\n /**\n * Returns the time of the molad as a string in the format: Monday Night, 8:33 PM and 12 Chalakim\n * The molad is always in Jerusalem so we use the Jerusalem sunset times\n * to determine whether to display \"Night\" or \"Motzai Shabbos\" etc. (check this...)\n * @param {Number} year\n * @param {Number} month\n */\n static getString(year, month) {\n const molad = _Molad.getMolad(month, year), zmanim = molad.jDate.getSunriseSunset(Location.getJerusalem()), isNight = Utils.isTimeAfter(zmanim.sunset, molad.time), dow = molad.jDate.getDayOfWeek();\n let str = \"\";\n if (!zmanim.sunset || isNaN(zmanim.sunset.hour)) {\n str += DaysOfWeekEng[dow];\n } else if (dow === 6 && isNight) {\n str += \"Motzai Shabbos,\";\n } else if (dow === 5 && isNight) {\n str += \"Shabbos Night,\";\n } else {\n str += DaysOfWeekEng[dow] + (isNight ? \" Night\" : \"\");\n }\n str += \" \" + Utils.getTimeString(molad.time) + \" and \" + molad.chalakim.toString() + \" Chalakim\";\n return str;\n }\n /**\n * Returns the time of the molad as a string in the format: ליל שני 20:33 12 חלקים\n * The molad is always in Jerusalem so we use the Jerusalem sunset times\n * to determine whether to display \"ליל/יום\" or \"מוצאי שב\"ק\" etc.\n * @param {Number} year\n * @param {Number} month\n */\n static getStringHeb(year, month) {\n const molad = _Molad.getMolad(month, year), zmanim = molad.jDate.getSunriseSunset(Location.getJerusalem()), isNight = Utils.isTimeAfter(zmanim.sunset, molad.time) && Utils.isTimeAfter(molad.time, zmanim.sunrise), dow = molad.jDate.getDayOfWeek();\n let str = \"\";\n if (dow === 6) {\n str += isNight ? '\\u05DE\\u05D5\\u05E6\\u05D0\\u05D9 \\u05E9\\u05D1\"\\u05E7' : '\\u05D9\\u05D5\\u05DD \\u05E9\\u05D1\"\\u05E7';\n } else if (dow === 5) {\n str += isNight ? '\\u05DC\\u05D9\\u05DC \\u05E9\\u05D1\"\\u05E7' : '\\u05E2\\u05E8\\u05D1 \\u05E9\\u05D1\"\\u05E7';\n } else {\n str += (isNight ? \"\\u05DC\\u05D9\\u05DC\" : \"\\u05D9\\u05D5\\u05DD\") + DaysOfWeekHeb[dow].replace(\"\\u05D9\\u05D5\\u05DD\", \"\");\n }\n str += \" \" + Utils.getTimeString(molad.time, 1, true) + \" \" + molad.chalakim.toString() + \" \\u05D7\\u05DC\\u05E7\\u05D9\\u05DD\";\n return str;\n }\n};\n\n// src/JCal/ZmanimUtils.ts\nvar WhichDaysFlags = Object.freeze({\n SUNDAY: 1,\n MONDAY: 2,\n TUESDAY: 4,\n WEDNESDAY: 8,\n THURSDAY: 16,\n FRIDAY: 32,\n SHABBOS: 64,\n YOMTOV: 128\n});\nvar _ZmanimUtils = class _ZmanimUtils {\n /**\n * Gets the zmanim for all the types in the given list.\n * @param {[ZmanToShow]} zmanTypes An array of ZmanTypes to get the zman for.\n * @param {Date} date The secular date to get the zmanim for\n * @param {jDate} jdate The jewish date to get the zmanim for\n * @param {Location} location The location for which to get the zmanim\n * @returns{[{zmanType:{id:number,offset:?number,desc:string,eng:string,heb:string },time:Time}]}\n */\n static getZmanTimes(zmanTypes, date, jdate, location) {\n const mem = _ZmanimUtils.zmanTimesCache.find(\n (z) => Utils.isSameSdate(z.date, date) && z.location.Name === location.Name\n ), zmanTimes = [], whichDay = _ZmanimUtils.getWhichDays(date, jdate, location);\n let sunrise, sunset, suntimesMishor, sunriseMishor, sunsetMishor, mishorNeg90, chatzos, shaaZmanis, shaaZmanisMga;\n if (mem) {\n sunrise = mem.sunrise;\n sunset = mem.sunset;\n suntimesMishor = mem.suntimesMishor;\n sunriseMishor = mem.sunriseMishor;\n sunsetMishor = mem.sunsetMishor;\n mishorNeg90 = mem.mishorNeg90;\n chatzos = mem.chatzos;\n shaaZmanis = mem.shaaZmanis;\n shaaZmanisMga = mem.shaaZmanisMga;\n } else {\n const suntimes = Zmanim.getSunTimes(date, location, true);\n sunrise = suntimes.sunrise;\n sunset = suntimes.sunset;\n suntimesMishor = Zmanim.getSunTimes(date, location, false);\n sunriseMishor = suntimesMishor.sunrise;\n sunsetMishor = suntimesMishor.sunset;\n mishorNeg90 = Utils.addMinutes(sunriseMishor, -90);\n chatzos = sunriseMishor && sunsetMishor && Zmanim.getChatzosFromSuntimes(suntimesMishor);\n shaaZmanis = sunriseMishor && sunsetMishor && Zmanim.getShaaZmanisFromSunTimes(suntimesMishor);\n shaaZmanisMga = sunriseMishor && sunsetMishor && Zmanim.getShaaZmanisMga(suntimesMishor, true);\n _ZmanimUtils.zmanTimesCache.push({\n date,\n location,\n sunrise,\n sunset,\n suntimesMishor,\n sunriseMishor,\n sunsetMishor,\n mishorNeg90,\n chatzos,\n shaaZmanis,\n shaaZmanisMga\n });\n }\n for (let zmanType of zmanTypes) {\n const offset = zmanType.offset && (!zmanType.whichDaysFlags || zmanType.whichDaysFlags & whichDay) ? zmanType.offset : 0;\n switch (zmanType.id) {\n case ZmanTypeIds.ChatzosLayla:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(chatzos, 720 + offset)\n });\n break;\n case ZmanTypeIds.Alos90:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(mishorNeg90, offset) : mishorNeg90\n });\n break;\n case ZmanTypeIds.Alos72:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(sunriseMishor, -72 + offset)\n });\n break;\n case ZmanTypeIds.TalisTefillin:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(sunriseMishor, -36 + offset)\n });\n break;\n case ZmanTypeIds.NetzAtElevation:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(sunrise, offset) : sunrise\n });\n break;\n case ZmanTypeIds.NetzMishor:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(sunriseMishor, offset) : sunriseMishor\n });\n break;\n case ZmanTypeIds.szksMga:\n if (shaaZmanisMga)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n mishorNeg90,\n Math.floor(shaaZmanisMga * 3) + offset\n )\n });\n break;\n case ZmanTypeIds.szksGra:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunriseMishor,\n Math.floor(shaaZmanis * 3) + offset\n )\n });\n break;\n case ZmanTypeIds.sztMga:\n if (shaaZmanisMga)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n mishorNeg90,\n Math.floor(shaaZmanisMga * 4) + offset\n )\n });\n break;\n case ZmanTypeIds.sztGra:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunriseMishor,\n Math.floor(shaaZmanis * 4) + offset\n )\n });\n break;\n case ZmanTypeIds.chatzosDay:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(chatzos, offset) : chatzos\n });\n break;\n case ZmanTypeIds.minGed:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n chatzos,\n shaaZmanis * 0.5 + offset\n )\n });\n break;\n case ZmanTypeIds.minKet:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunriseMishor,\n shaaZmanis * 9.5 + offset\n )\n });\n break;\n case ZmanTypeIds.plag:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunriseMishor,\n shaaZmanis * 10.75 + offset\n )\n });\n break;\n case ZmanTypeIds.shkiaAtSeaLevel:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(sunsetMishor, offset) : sunsetMishor\n });\n break;\n case ZmanTypeIds.shkiaElevation:\n zmanTimes.push({\n zmanType,\n time: offset ? Utils.addMinutes(sunset, offset) : sunset\n });\n break;\n case ZmanTypeIds.tzais45:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(sunset, 45 + offset)\n });\n break;\n case ZmanTypeIds.tzais50:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(sunset, 50 + offset)\n });\n break;\n case ZmanTypeIds.tzais72:\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(sunset, 72 + offset)\n });\n break;\n case ZmanTypeIds.rabbeinuTamZmanios:\n if (shaaZmanis)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunset,\n shaaZmanis * 1.2 + offset\n )\n });\n break;\n case ZmanTypeIds.rabbeinuTamZmaniosMga:\n if (shaaZmanisMga)\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunset,\n shaaZmanisMga * 1.2 + offset\n )\n });\n break;\n case ZmanTypeIds.candleLighting:\n if (sunset && jdate.hasCandleLighting()) {\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n Zmanim.getCandleLightingFromSunset(\n sunset,\n location\n ),\n offset\n )\n });\n }\n break;\n case ZmanTypeIds.SofZmanEatingChometz:\n if (shaaZmanisMga && jdate.Month === 1 && jdate.Day === 14 && Utils.isTimeAfter(sunrise, Utils.timeFromDate(date))) {\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunrise,\n -90 + offset + shaaZmanisMga * 4\n )\n });\n }\n break;\n case ZmanTypeIds.SofZmanBurnChometz:\n if (shaaZmanisMga && jdate.Month === 1 && (jdate.Day === 14 || jdate.DayOfWeek === DaysOfWeek.FRIDAY && jdate.Day === 13) && Utils.isTimeAfter(sunrise, Utils.timeFromDate(date))) {\n zmanTimes.push({\n zmanType,\n time: Utils.addMinutes(\n sunrise,\n -90 + offset + shaaZmanisMga * 5\n )\n });\n }\n break;\n }\n }\n return zmanTimes;\n }\n /**\n * Get the WhichDaysFlags for the given secular date\n * @param {Date} date\n * @param {jDate} jdate\n * @param {Location} location\n */\n static getWhichDays(date, jdate, location) {\n if (jdate.isYomTov(!!location.Israel)) {\n return WhichDaysFlags.YOMTOV;\n }\n switch (date.getDay()) {\n case DaysOfWeek.SUNDAY:\n return WhichDaysFlags.SUNDAY;\n case DaysOfWeek.MONDAY:\n return WhichDaysFlags.MONDAY;\n case DaysOfWeek.TUESDAY:\n return WhichDaysFlags.TUESDAY;\n case DaysOfWeek.WEDNESDAY:\n return WhichDaysFlags.WEDNESDAY;\n case DaysOfWeek.THURSDAY:\n return WhichDaysFlags.THURSDAY;\n case DaysOfWeek.FRIDAY:\n return WhichDaysFlags.FRIDAY;\n case DaysOfWeek.SHABBOS:\n return WhichDaysFlags.SHABBOS;\n }\n return 0;\n }\n /**\n * Returns the zmanim necessary for showing basic shul notifications: chatzosHayom, chatzosHalayla, alos\n * @param {jDate|Date} date\n * @param {Location} location\n * @returns {{chatzosHayom:Time, chatzosHalayla:Time, alos:Time, shkia:Time }}\n */\n static getBasicShulZmanim(date, location) {\n const { sdate, jdate } = Utils.bothDates(date);\n const zmanim = _ZmanimUtils.getZmanTimes(\n [\n getZmanType(ZmanTypeIds.chatzosDay),\n //Chatzos hayom\n getZmanType(ZmanTypeIds.Alos90),\n //alos90\n getZmanType(ZmanTypeIds.shkiaElevation),\n //shkiaElevation,\n getZmanType(ZmanTypeIds.candleLighting)\n //candleLighting,\n ],\n sdate,\n jdate,\n location\n );\n return {\n chatzosHayom: zmanim[0].time,\n chatzosHalayla: Utils.addMinutes(zmanim[0].time, 720),\n alos: zmanim[1].time,\n shkia: zmanim[2].time\n };\n }\n /**\n * Returns all the zmanim for the given day \n * @param {Date|jDate} date\n * @param {Location} location\n * @returns {{zmanType:ZmanToShow, time?:Time }[]}\n */\n static getAllZmanim(date, location) {\n const { sdate, jdate } = Utils.bothDates(date);\n return _ZmanimUtils.getZmanTimes(ZmanTypes, sdate, jdate, location);\n }\n};\n_ZmanimUtils.zmanTimesCache = [];\nvar ZmanimUtils = _ZmanimUtils;\n\n// src/Notifications.ts\nvar dayNotes = [];\nvar tefillahNotes = [];\nvar showEnglish = false;\nvar dayInfo;\nvar showGaonShirShelYom = true;\nvar israel = true;\nfunction getNotifications(date, time, location, english, showGaonShir, showDafYomi) {\n const { sdate, jdate } = Utils.bothDates(date);\n dayNotes.length = 0;\n tefillahNotes.length = 0;\n const month = jdate.Month, day = jdate.Day, dow = jdate.DayOfWeek, { chatzosHayom, chatzosHalayla, alos, shkia } = ZmanimUtils.getBasicShulZmanim(date, location), isAfterChatzosHayom = Utils.isTimeAfter(chatzosHayom, time), isAfterChatzosHalayla = typeof chatzosHalayla !== \"undefined\" && (Utils.isTimeAfter(chatzosHalayla, time) || chatzosHalayla.hour > 12 && time.hour < 12), isAfterAlos = Utils.isTimeAfter(alos, time), isAfterShkia = Utils.isTimeAfter(shkia, time), isDaytime = isAfterAlos && !isAfterShkia, isNightTime = !isDaytime, isNotBeinHasmashos = !isAfterShkia || Utils.isTimeAfter(Utils.addMinutes(shkia, 18), time), isMorning = isDaytime && !isAfterChatzosHayom, isAfternoon = isDaytime && isAfterChatzosHayom, isYomTov = jdate.isYomTovOrCholHamoed(location.Israel), isLeapYear = jDate.isJdLeapY(jdate.Year), noTachnun = isAfternoon && (dow === DaysOfWeek.FRIDAY || day === 29);\n dayInfo = {\n jdate,\n sdate,\n month,\n day,\n dow,\n isAfterChatzosHayom,\n isAfterChatzosHalayla,\n isAfterAlos,\n isAfterShkia,\n isDaytime,\n isNightTime,\n isMorning,\n isAfternoon,\n isYomTov,\n isLeapYear,\n noTachnun,\n location\n };\n showEnglish = english;\n israel = location.Israel;\n showGaonShirShelYom = typeof showGaonShir === \"undefined\" ? israel : !!showGaonShir;\n if (dow === DaysOfWeek.SHABBOS) {\n getShabbosNotifications();\n } else {\n getWeekDayNotifications();\n }\n getAroundTheYearNotifications();\n if (dayInfo.noTachnun && isDaytime && !isYomTov) {\n if (dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"No Tachnun\", '\\u05D0\"\\u05D0 \\u05EA\\u05D7\\u05E0\\u05D5\\u05DF');\n } else if (isAfternoon) {\n addTefillahNote(\"No Tzidkascha\", '\\u05D0\"\\u05D0 \\u05E6\\u05D3\\u05E7\\u05EA\\u05DA');\n } else if (!(month === JewishMonthsNames.NISSAN && day > 21 || month === JewishMonthsNames.IYAR || month === JewishMonthsNames.SIVAN && day < 6)) {\n addTefillahNote(\"No Av Harachamim\", '\\u05D0\"\\u05D0 \\u05D0\\u05D1 \\u05D4\\u05E8\\u05D7\\u05DE\\u05D9\\u05DD');\n }\n }\n if (showDafYomi !== false) {\n addDayNote(jdate.getDafYomi(), jdate.getDafyomiHeb());\n }\n if (isNotBeinHasmashos && (month === JewishMonthsNames.NISSAN && day > 15 || month === JewishMonthsNames.IYAR || month === JewishMonthsNames.SIVAN && day < 6)) {\n const dayOfSefirah = jdate.getDayOfOmer();\n if (dayOfSefirah > 0) {\n addTefillahNote(Utils.getOmerNusach(dayOfSefirah, \"ashkenaz\"));\n }\n }\n return {\n dayNotes: [...new Set(dayNotes)],\n tefillahNotes: [...new Set(tefillahNotes)]\n };\n}\nfunction getShabbosNotifications() {\n const { month, day, isLeapYear, isMorning, isYomTov, jdate, isDaytime, isAfternoon } = dayInfo;\n if (month === JewishMonthsNames.NISSAN && day > 7 && day < 15) {\n addDayNote(\"Shabbos Hagadol\", \"\\u05E9\\u05D1\\u05EA \\u05D4\\u05D2\\u05D3\\u05D5\\u05DC\");\n } else if (month === JewishMonthsNames.TISHREI && day > 2 && day < 10) {\n addDayNote(\"Shabbos Shuva\", \"\\u05E9\\u05D1\\u05EA \\u05E9\\u05D5\\u05D1\\u05D4\");\n } else if (month === JewishMonthsNames.AV && day > 2 && day < 10) {\n addDayNote(\"Shabbos Chazon\", \"\\u05E9\\u05D1\\u05EA \\u05D7\\u05D6\\u05D5\\u05DF\");\n } else if (month === (isLeapYear ? JewishMonthsNames.ADAR : JewishMonthsNames.SHVAT) && day > 24 || month === (isLeapYear ? JewishMonthsNames.ADAR_SHEINI : JewishMonthsNames.ADAR) && day === 1) {\n addDayNote(\"Parshas Shkalim\", \"\\u05E4\\u05E8\\u05E9\\u05EA \\u05E9\\u05E7\\u05DC\\u05D9\\u05DD\");\n } else if (month === (isLeapYear ? JewishMonthsNames.ADAR_SHEINI : JewishMonthsNames.ADAR) && day > 7 && day < 14) {\n addDayNote(\"Parshas Zachor\", \"\\u05E4\\u05E8\\u05E9\\u05EA \\u05D6\\u05DB\\u05D5\\u05E8\");\n } else if (month === (isLeapYear ? JewishMonthsNames.ADAR_SHEINI : JewishMonthsNames.ADAR) && day > 16 && day < 24) {\n addDayNote(\"Parshas Parah\", \"\\u05E4\\u05E8\\u05E9\\u05EA \\u05E4\\u05E8\\u05D4\");\n } else if (month === (isLeapYear ? JewishMonthsNames.ADAR_SHEINI : JewishMonthsNames.ADAR) && day > 23 && day < 30 || month === JewishMonthsNames.NISSAN && day === 1) {\n addDayNote(\"Parshas Hachodesh\", \"\\u05E4\\u05E8\\u05E9\\u05EA \\u05D4\\u05D7\\u05D5\\u05D3\\u05E9\");\n }\n if (isMorning && !isYomTov) {\n const sedra = jdate.getSedra(israel);\n if (sedra.sedras.length > 0) {\n addTefillahNote(\n `Kriyas Hatorah Parshas ${sedra.toString()}`,\n `\\u05E7\\u05D4\"\\u05EA \\u05E4\\u05E8\\u05E9\\u05EA ${sedra.toStringHeb()}`\n );\n }\n if (month !== JewishMonthsNames.ELLUL && day > 22 && day < 30) {\n const nextMonth = jdate.addMonths(1);\n addTefillahNote(\n \"The molad will be \" + Molad.getString(nextMonth.Year, nextMonth.Month),\n \"\\u05D4\\u05DE\\u05D5\\u05DC\\u05D3 \\u05D9\\u05D4\\u05D9\\u05D4 \\u05D1\" + Molad.getStringHeb(nextMonth.Year, nextMonth.Month)\n );\n addTefillahNote(\"Bircas Hachodesh\", \"\\u05DE\\u05D1\\u05E8\\u05DB\\u05D9\\u05DD \\u05D4\\u05D7\\u05D5\\u05D3\\u05E9\");\n if (month !== JewishMonthsNames.NISSAN && month !== JewishMonthsNames.IYAR) {\n addTefillahNote(\"No Av Harachamim\", '\\u05D0\"\\u05D0 \\u05D0\\u05D1 \\u05D4\\u05E8\\u05D7\\u05DE\\u05D9\\u05DD');\n }\n }\n }\n if (month !== JewishMonthsNames.TISHREI && (day === 1 || day === 30)) {\n addDayNote(\"Rosh Chodesh\", \"\\u05E8\\u05D0\\u05E9 \\u05D7\\u05D5\\u05D3\\u05E9\");\n addTefillahNote(\"Ya`aleh Viyavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (showGaonShirShelYom && isDaytime) {\n addTefillahNote(\"Barchi Nafshi\", '\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05D9\"\\u05D3 - \\u05D1\\u05E8\\u05DB\\u05D9 \\u05E0\\u05E4\\u05E9\\u05D9');\n }\n if (isDaytime && month !== JewishMonthsNames.TEVES && !(month === JewishMonthsNames.KISLEV && day === 30)) {\n addTefillahNote(\"Chatzi Hallel\", \"\\u05D7\\u05E6\\u05D9 \\u05D4\\u05DC\\u05DC\");\n }\n addTefillahNote(\"No Av Harachamim\", '\\u05D0\"\\u05D0 \\u05D0\\u05D1 \\u05D4\\u05E8\\u05D7\\u05DE\\u05D9\\u05DD');\n } else if (isYomTov) {\n addTefillahNote(\"No Av Harachamim\", '\\u05D0\"\\u05D0 \\u05D0\\u05D1 \\u05D4\\u05E8\\u05D7\\u05DE\\u05D9\\u05DD');\n if (showGaonShirShelYom && isDaytime) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05E9\\u05D9\\u05E8 \\u05DC\\u05D9\\u05D5\\u05DD \\u05D4\\u05E9\\u05D1\\u05EA\");\n }\n }\n if (isAfternoon && !(month === JewishMonthsNames.TISHREI && day === 10)) {\n const sedra = jdate.addDays(1).getSedra(israel);\n addTefillahNote(\n \"Kriyas Hatorah Mincha Parshas \" + sedra.sedras[0].eng,\n '\\u05E7\\u05D4\"\\u05EA \\u05D1\\u05DE\\u05E0\\u05D7\\u05D4 \\u05E4\\u05E8\\u05E9\\u05EA ' + sedra.sedras[0].heb\n );\n }\n if (isAfternoon && (month === JewishMonthsNames.NISSAN && day > 21 || month <= JewishMonthsNames.ELLUL && !(month === JewishMonthsNames.AV && [8, 9].includes(day)))) {\n const prakim = PirkeiAvos.getPrakim(jdate, israel);\n if (prakim.length > 0) {\n addDayNote(\n \"Pirkei Avos - \" + prakim.map((s) => `Perek ${Utils.toJewishNumber(s)}`).join(\" and \"),\n \"\\u05E4\\u05E8\\u05E7\\u05D9 \\u05D0\\u05D1\\u05D5\\u05EA - \" + prakim.map((s) => `\\u05E4\\u05E8\\u05E7 ${Utils.toJewishNumber(s)}`).join(\" \\u05D5\")\n );\n }\n }\n}\nfunction getWeekDayNotifications() {\n const {\n isNightTime,\n dow,\n isYomTov,\n month,\n day,\n isMorning,\n jdate,\n location,\n isDaytime,\n isAfternoon\n } = dayInfo;\n if (isNightTime && dow === DaysOfWeek.SUNDAY) {\n addTefillahNote(\n month === JewishMonthsNames.NISSAN && day === 15 || month === JewishMonthsNames.SIVAN && day === 6 ? \"\\u05D5\\u05EA\\u05D5\\u05D3\\u05D9\\u05E2\\u05D9\\u05E0\\u05D5\" : \"\\u05D0\\u05EA\\u05D4 \\u05D7\\u05D5\\u05E0\\u05E0\\u05EA\\u05E0\\u05D5\"\n );\n if (month === JewishMonthsNames.ELLUL && day > 22 || month === JewishMonthsNames.TISHREI && day > 4 && day < 22 || month === JewishMonthsNames.NISSAN && day > 8 && day < 15 || month === JewishMonthsNames.SIVAN && day < 6) {\n addTefillahNote(\"No Vihi Noam\", '\\u05D0\"\\u05D0 \\u05D5\\u05D9\\u05D4\\u05D9 \\u05E0\\u05D5\\u05E2\\u05DD');\n }\n } else if (isNightTime && (month === JewishMonthsNames.NISSAN && (day === 16 || day === 22) || month === JewishMonthsNames.SIVAN && day === 7 || month === JewishMonthsNames.TISHREI && [3, 11, 16, 23].includes(day))) {\n addTefillahNote(\"Ata Chonantanu\", \"\\u05D0\\u05EA\\u05D4 \\u05D7\\u05D5\\u05E0\\u05E0\\u05EA\\u05E0\\u05D5\");\n }\n if (isMorning && !isYomTov && (dow === DaysOfWeek.MONDAY || dow === DaysOfWeek.THURSDAY) && !hasOwnKriyasHatorah(jdate, location)) {\n const sedra = jdate.getSedra(israel);\n if (sedra.sedras.length > 0) {\n addTefillahNote(\n `Kriyas Hatorah Parshas ${sedra.sedras[0].eng}`,\n `\\u05E7\\u05D4\"\\u05EA \\u05E4\\u05E8\\u05E9\\u05EA ${sedra.sedras[0].heb}`\n );\n }\n }\n if (month !== JewishMonthsNames.TISHREI && day === 1 || day === 30) {\n dayInfo.noTachnun = true;\n addDayNote(\"Rosh Chodesh\", \"\\u05E8\\u05D0\\u05E9 \\u05D7\\u05D5\\u05D3\\u05E9\");\n addTefillahNote(\"Ya`aleh Viyavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (showGaonShirShelYom && isDaytime) {\n addTefillahNote(\"Barchi Nafshi\", '\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05D9\"\\u05D3 - \\u05D1\\u05E8\\u05DB\\u05D9 \\u05E0\\u05E4\\u05E9\\u05D9');\n }\n if (isDaytime && month !== JewishMonthsNames.TEVES && !(month === JewishMonthsNames.KISLEV && day === 30)) {\n addTefillahNote(\"Chatzi Hallel\", \"\\u05D7\\u05E6\\u05D9 \\u05D4\\u05DC\\u05DC\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n }\n } else if (month !== JewishMonthsNames.ELLUL && (dow < DaysOfWeek.FRIDAY && day === 29 || dow === DaysOfWeek.THURSDAY && day === 28) && isAfternoon) {\n addTefillahNote(\"Yom Kippur Kattan\", '\\u05D9\\u05D5\"\\u05DB \\u05E7\\u05D8\\u05DF');\n }\n if (jdate.hasEiruvTavshilin(israel)) {\n addDayNote(\"Eruv Tavshilin\", \"\\u05E2\\u05D9\\u05E8\\u05D5\\u05D1 \\u05EA\\u05D1\\u05E9\\u05D9\\u05DC\\u05D9\\u05DF\");\n }\n}\nfunction getAroundTheYearNotifications() {\n const {\n month,\n day,\n isNightTime,\n dow,\n isAfternoon,\n isDaytime,\n isMorning,\n isAfterChatzosHalayla,\n jdate,\n sdate,\n isLeapYear,\n location\n } = dayInfo;\n let showVsainTalUmatarInChul = false;\n if (!location.Israel && sdate.getMonth() === 11 && sdate.getDate() > 4) {\n const startVsainTalUmatar = jdate.Year % 4 === 0 ? 6 : 5;\n showVsainTalUmatarInChul = sdate.getDate() >= startVsainTalUmatar && sdate.getDate() <= startVsainTalUmatar + 14;\n }\n switch (month) {\n case JewishMonthsNames.NISSAN:\n dayInfo.noTachnun = true;\n if (day > 15) {\n addTefillahNote(\"Morid Hatal\", \"\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D8\\u05DC\");\n }\n if (dow !== DaysOfWeek.SHABBOS && day > 15 && day !== 21) {\n addTefillahNote(\"Vesain Bracha\", \"\\u05D5\\u05EA\\u05DF \\u05D1\\u05E8\\u05DB\\u05D4\");\n }\n if (isMorning && dow !== DaysOfWeek.SHABBOS && [14, 16, 17, 18, 19, 20].includes(day)) {\n addTefillahNote(\"No Mizmor Lesodah\", '\\u05D0\"\\u05D0 \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05DC\\u05EA\\u05D5\\u05D3\\u05D4');\n if (dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n }\n if (day === 15) {\n addDayNote(\"First Day of Pesach\", '\\u05D9\\u05D5\"\\u05D8 \\u05E8\\u05D0\\u05E9\\u05D5\\u05DF \\u05E9\\u05DC \\u05E4\\u05E1\\u05D7');\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n if (isAfternoon) {\n addTefillahNote(\"Morid Hatal\", \"\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D8\\u05DC\");\n }\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05D9\"\\u05D3 - \\u05D1\\u05E6\\u05D0\\u05EA \\u05D9\\u05E9\\u05E8\\u05D0\\u05DC');\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n } else if (day === 16 && !israel) {\n addDayNote(\"Second Day of Pesach\", '\\u05D9\\u05D5\"\\u05D8 \\u05E9\\u05E0\\u05D9 \\u05E9\\u05DC \\u05E4\\u05E1\\u05D7');\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n addTefillahNote(\"Morid Hatal\", \"\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D8\\u05DC\");\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05D9\"\\u05D3 - \\u05D1\\u05E6\\u05D0\\u05EA \\u05D9\\u05E9\\u05E8\\u05D0\\u05DC');\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n } else if ([16, 17, 18, 19, 20, 21].includes(day)) {\n if (day === 21) {\n addDayNote(\"Shvi`i Shel Pesach\", \"\\u05E9\\u05D1\\u05D9\\u05E2\\u05D9 \\u05E9\\u05DC \\u05E4\\u05DD\\u05D7\");\n if (isDaytime) {\n if (israel) {\n addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n }\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(`\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05D9\"\\u05D7 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05DC\\u05E2\\u05D1\\u05D3 \\u05D4'`);\n }\n }\n } else {\n addDayNote(\"Chol Ha`moed Pesach\", \"\\u05E4\\u05E1\\u05D7 - \\u05D7\\u05D5\\u05DC \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\");\n addTefillahNote(\"Ya`aleh Viyavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) noLaminatzeach();\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\n switch (day) {\n case 16:\n if (dow === DaysOfWeek.SUNDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05D9\"\\u05D3 - \\u05D1\\u05E6\\u05D0\\u05EA \\u05D9\\u05E9\\u05E8\\u05D0\\u05DC');\n } else {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E2\"\\u05D7 - \\u05DE\\u05E9\\u05DB\\u05D9\\u05DC \\u05DC\\u05D0\\u05E1\\u05E3');\n }\n break;\n case 17:\n if (dow === DaysOfWeek.MONDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E2\"\\u05D7 - \\u05DE\\u05E9\\u05DB\\u05D9\\u05DC \\u05DC\\u05D0\\u05E1\\u05E3');\n } else {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4' - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05D0\\u05DC \\u05E9\\u05D5\\u05E9\\u05E0\\u05D9\\u05DD\");\n }\n break;\n case 18:\n if (dow === DaysOfWeek.TUESDAY || dow === DaysOfWeek.SUNDAY) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4' - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05D0\\u05DC \\u05E9\\u05D5\\u05E9\\u05E0\\u05D9\\u05DD\");\n } else {\n addTefillahNote(`\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\"\\u05D4 - \\u05D4\\u05D5\\u05D3\\u05D5 \\u05DC\\u05D4'`);\n }\n break;\n case 19:\n if (dow === DaysOfWeek.THURSDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05DC\"\\u05D4 - \\u05D4\\u05DC\\u05DC\\u05D5\\u05D9-\\u05D4 \\u05D4\\u05DC\\u05DC\\u05D5 \\u05D0\\u05EA \\u05E9\\u05DD');\n } else {\n addTefillahNote(`\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\"\\u05D4 - \\u05D4\\u05D5\\u05D3\\u05D5 \\u05DC\\u05D4'`);\n }\n break;\n case 20:\n if (dow === DaysOfWeek.FRIDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E1\"\\u05D5 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E9\\u05D9\\u05E8 \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8');\n } else {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E7\\u05DC\"\\u05D4 - \\u05D4\\u05DC\\u05DC\\u05D5\\u05D9-\\u05D4 \\u05D4\\u05DC\\u05DC\\u05D5 \\u05D0\\u05EA \\u05E9\\u05DD');\n }\n break;\n }\n }\n }\n if (isDaytime) addTefillahNote(\"Half Hallel\", \"\\u05D7\\u05E6\\u05D9 \\u05D4\\u05DC\\u05DC\");\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n }\n if (day === 22) {\n if (israel) {\n addDayNote(\"Isru Chag\", \"\\u05D0\\u05D9\\u05E1\\u05E8\\u05D5 \\u05D7\\u05D2\");\n } else {\n addDayNote(\"Acharon Shel Pesach\", \"\\u05D0\\u05D7\\u05E8\\u05D5\\u05DF \\u05E9\\u05DC \\u05E4\\u05E1\\u05D7\");\n if (isDaytime) {\n addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n addTefillahNote(\"Half Hallel\", \"\\u05D7\\u05E6\\u05D9 \\u05D4\\u05DC\\u05DC\");\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n }\n if (dow !== DaysOfWeek.SHABBOS && isMorning) {\n noLaminatzeach();\n }\n }\n if (dow === DaysOfWeek.SHABBOS && ([15, 16, 17, 18, 19, 20, 21].includes(day) || !israel && day === 22)) {\n addTefillahNote(\"Shir Hashirim\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05E9\\u05D9\\u05E8 \\u05D4\\u05E9\\u05D9\\u05E8\\u05D9\\u05DD\");\n }\n break;\n case JewishMonthsNames.IYAR:\n if (day <= 15) {\n addTefillahNote(\"Morid Hatal\", \"\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D8\\u05DC\");\n if (dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"V`sain Bracha\", \"\\u05D5\\u05EA\\u05DF \\u05D1\\u05E8\\u05DB\\u05D4\");\n }\n }\n if (day === 14 || day === 13 && isAfternoon || day === 18 || day === 17 && isAfternoon) {\n dayInfo.noTachnun = true;\n if (day === 14) {\n addDayNote(\"Pesach Sheini\", \"\\u05E4\\u05E1\\u05D7 \\u05E9\\u05E0\\u05D9\");\n }\n }\n if (isMorning && (dow === DaysOfWeek.MONDAY && day > 3 && day < 13 || dow === DaysOfWeek.THURSDAY && day > 6 && day < 14 || dow === DaysOfWeek.MONDAY && day > 10 && day < 18 && day !== 14)) {\n addTefillahNote(\"Ba`hab\", '\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA \\u05D1\\u05D4\"\\u05D1');\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n }\n break;\n case JewishMonthsNames.SIVAN:\n if (day < 13) {\n dayInfo.noTachnun = true;\n }\n if (day === 6) {\n addDayNote(\"Shavuos\", \"\\u05D9\\u05D5\\u05DD \\u05D8\\u05D5\\u05D1 \\u05E9\\u05DC \\u05E9\\u05D1\\u05D5\\u05E2\\u05D5\\u05EA\");\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n addTefillahNote(\"Megilas Rus\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05E8\\u05D5\\u05EA\");\n addTefillahNote(\"Akdamus\", \"\\u05D0\\u05E7\\u05D3\\u05DE\\u05D5\\u05EA\");\n if (israel) addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n if (showGaonShirShelYom) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05D9\"\\u05D8 - ..\\u05D4\\u05E9\\u05DE\\u05D9\\u05DD \\u05DE\\u05E1\\u05E4\\u05E8\\u05D9\\u05DD..');\n }\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n } else if (day === 7) {\n if (israel) {\n addDayNote(\"Issru Chag\", \"\\u05D0\\u05D9\\u05E1\\u05E8\\u05D5 \\u05D7\\u05D2\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n } else {\n addDayNote(\"Shavuos Second Day\", \"\\u05D9\\u05D5\\u05DD \\u05D8\\u05D5\\u05D1 \\u05E9\\u05DC \\u05E9\\u05D1\\u05D5\\u05E2\\u05D5\\u05EA\");\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n }\n }\n break;\n case JewishMonthsNames.TAMUZ:\n if (isDaytime && (day === 17 && DaysOfWeek.SHABBOS !== 6 || day === 18 && dow === DaysOfWeek.SUNDAY)) {\n if (isDaytime) {\n addDayNote(\"Shiva Asar B`Tamuz\", '\\u05D9\"\\u05D6 \\u05D1\\u05EA\\u05DE\\u05D5\\u05D6');\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n }\n if (isMorning) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n }\n break;\n case JewishMonthsNames.AV:\n if (isAfternoon && day === 8 && dow !== DaysOfWeek.FRIDAY) {\n dayInfo.noTachnun = true;\n } else if (day === 9 && dow !== DaysOfWeek.SHABBOS || day === 10 && dow === DaysOfWeek.SUNDAY) {\n addDayNote(\"Tish B`Av\", \"\\u05EA\\u05E9\\u05E2\\u05D4 \\u05D1\\u05D0\\u05D1\");\n if (isDaytime) {\n addTefillahNote(\"Kinos\", \"\\u05E7\\u05D9\\u05E0\\u05D5\\u05EA\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n } else {\n addTefillahNote(\"Megilas Eicha\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05D0\\u05D9\\u05DB\\u05D4\");\n if (isNightTime && dow === DaysOfWeek.SUNDAY) {\n addTefillahNote(\"No Vihi Noam\", '\\u05D0\"\\u05D0 \\u05D5\\u05D9\\u05D4\\u05D9 \\u05E0\\u05D5\\u05E2\\u05DD');\n }\n }\n dayInfo.noTachnun = true;\n } else if (isAfternoon && day === 14) {\n dayInfo.noTachnun = true;\n } else if (day === 15) {\n addDayNote(\"Tu B`Av\", '\\u05D8\"\\u05D5 \\u05D1\\u05D0\\u05D1');\n dayInfo.noTachnun = true;\n }\n break;\n case JewishMonthsNames.ELLUL:\n addTefillahNote(\"L`Dovid Hashem Ori\", \"\\u05DC\\u05D3\\u05D5\\u05D3 \\u05D4\");\n if (day > 20 && dow !== DaysOfWeek.SHABBOS && (isAfterChatzosHalayla || isMorning)) {\n let startedSelichos = day >= 26;\n if (day < 26) {\n const daysToRH = 30 - day, dowRH = (daysToRH + dow) % 7;\n switch (dowRH) {\n case DaysOfWeek.MONDAY:\n startedSelichos = day >= 22;\n break;\n case DaysOfWeek.TUESDAY:\n startedSelichos = day >= 21;\n break;\n case DaysOfWeek.SHABBOS:\n startedSelichos = day >= 24;\n break;\n }\n }\n if (startedSelichos) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n }\n if (day === 29) {\n dayInfo.noTachnun = true;\n }\n break;\n case JewishMonthsNames.TISHREI:\n if (day < 11) {\n addTefillahNote(\"Hamelech Hakadosh\", \"\\u05D4\\u05DE\\u05DC\\u05DA \\u05D4\\u05E7\\u05D3\\u05D5\\u05E9\");\n if (dow !== DaysOfWeek.SHABBOS && day !== 9) {\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n }\n }\n if (day > 4 && day < 10 && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n addTefillahNote(\"Hamelech Hamishpat\", \"\\u05D4\\u05DE\\u05DC\\u05DA \\u05D4\\u05DE\\u05E9\\u05E4\\u05D8\");\n }\n if (dow === DaysOfWeek.SHABBOS && day > 2 && day < 10) {\n addDayNote(\"Shabbos Shuva\", \"\\u05E9\\u05D1\\u05EA \\u05E9\\u05D5\\u05D1\\u05D4\");\n }\n if (day >= 10) {\n dayInfo.noTachnun = true;\n }\n switch (day) {\n case 1:\n addDayNote(\"Rosh Hashana\", \"\\u05E8\\u05D0\\u05E9 \\u05D4\\u05E9\\u05E0\\u05D4\");\n if (dow !== DaysOfWeek.SHABBOS && isDaytime) {\n addTefillahNote(\"Tekias Shofar\", \"\\u05EA\\u05E7\\u05D9\\u05E2\\u05EA \\u05E9\\u05D5\\u05E4\\u05E8\");\n if (showGaonShirShelYom) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4\"\\u05D0 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D4\\u05D2\\u05EA\\u05D9\\u05EA');\n }\n if (isAfternoon) {\n addDayNote(\"Tashlich\", \"\\u05EA\\u05E9\\u05DC\\u05D9\\u05DA\");\n }\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n break;\n case 2:\n addDayNote(\"Rosh Hashana\", \"\\u05E8\\u05D0\\u05E9 \\u05D4\\u05E9\\u05E0\\u05D4\");\n if (isDaytime) {\n addTefillahNote(\"Tekias Shofar\", \"\\u05EA\\u05E7\\u05D9\\u05E2\\u05EA \\u05E9\\u05D5\\u05E4\\u05E8\");\n if (showGaonShirShelYom) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4\"\\u05D0 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D4\\u05D2\\u05EA\\u05D9\\u05EA');\n }\n if (dow === DaysOfWeek.SUNDAY && isAfternoon) {\n addDayNote(\"Tashlich\", \"\\u05EA\\u05E9\\u05DC\\u05D9\\u05DA\");\n }\n }\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n break;\n case 3:\n if (dow !== DaysOfWeek.SHABBOS) {\n if (isDaytime) {\n addDayNote(\"Fast of Tzom Gedalya\", \"\\u05E6\\u05D5\\u05DD \\u05D2\\u05D3\\u05DC\\u05D9\\u05D4\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n }\n if (isAfterChatzosHalayla || isMorning) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n addTefillahNote(\"Hamelech Hamishpat\", \"\\u05D4\\u05DE\\u05DC\\u05DA \\u05D4\\u05DE\\u05E9\\u05E4\\u05D8\");\n }\n break;\n case 4:\n if (dow === DaysOfWeek.SUNDAY) {\n if (isDaytime) {\n addDayNote(\"Fast of Tzom Gedalya\", \"\\u05E6\\u05D5\\u05DD \\u05D2\\u05D3\\u05DC\\u05D9\\u05D4\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n }\n if (isAfterChatzosHalayla || isMorning) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n addTefillahNote(\"Hamelech Hamishpat\", \"\\u05D4\\u05DE\\u05DC\\u05DA \\u05D4\\u05DE\\u05E9\\u05E4\\u05D8\");\n } else if (dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"Hamelech Hamishpat\", \"\\u05D4\\u05DE\\u05DC\\u05DA \\u05D4\\u05DE\\u05E9\\u05E4\\u05D8\");\n if (isAfterChatzosHalayla || isMorning) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n }\n break;\n case 9:\n addDayNote(\"Erev Yom Kippur\", \"\\u05E2\\u05E8\\u05D1 \\u05D9\\u05D5\\u05DD \\u05DB\\u05D9\\u05E4\\u05D5\\u05E8\");\n if (isMorning) {\n addTefillahNote(\"No Mizmor L`Sodah\", '\\u05D0\"\\u05D0 \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05DC\\u05EA\\u05D5\\u05D3\\u05D4');\n if (dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n if (dow === DaysOfWeek.FRIDAY) {\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n }\n } else if (isAfternoon) {\n addTefillahNote(\"Vidduy\", \"\\u05D5\\u05D3\\u05D5\\u05D9 \\u05D1\\u05E2\\u05DE\\u05D9\\u05D3\\u05D4\");\n }\n if (isDaytime && dow !== DaysOfWeek.FRIDAY) {\n addTefillahNote(\"No Avinu Malkeinu\", '\\u05D0\"\\u05D0 \\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5');\n }\n dayInfo.noTachnun = true;\n break;\n case 10:\n addDayNote(\"Yom Kippur\", \"\\u05D9\\u05D5\\u05DD \\u05D4\\u05DB\\u05D9\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD\");\n addDayNote(\"\\u05DC\\u05E4\\u05E0\\u05D9 \\u05D4' \\u05EA\\u05D8\\u05D4\\u05E8\\u05D5\");\n if (isDaytime) {\n addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DC\"\\u05D1 - \\u05DC\\u05D3\\u05D5\\u05D3 \\u05DE\\u05E9\\u05DB\\u05D9\\u05DC');\n }\n }\n if (isAfternoon) {\n addTefillahNote('\\u05E7\\u05D4\"\\u05EA \\u05D1\\u05DE\\u05E0\\u05D7\\u05D4 \\u05E1\\u05D5\\u05E3 \\u05E4\\u05E8\\u05E9\\u05EA \\u05D0\\u05D7\"\\u05DE');\n }\n break;\n case 11:\n if (isNightTime) {\n addDayNote(\"\\u05DC\\u05DA \\u05D0\\u05DB\\u05DC \\u05D1\\u05E9\\u05DE\\u05D7\\u05D4 \\u05DC\\u05D7\\u05DE\\u05DA \\u05DB\\u05D9 \\u05DB\\u05D1\\u05E8 \\u05E8\\u05E6\\u05D4 \\u05D4\\u05D0\\u05DC\\u05E7\\u05D9\\u05DD \\u05D0\\u05EA \\u05DE\\u05E2\\u05E9\\u05D9\\u05DA\");\n }\n case 15:\n addDayNote(\"First day of Sukkos\", '\\u05D9\\u05D5\"\\u05D8 \\u05E8\\u05D0\\u05E9\\u05D5\\u05DF \\u05E9\\u05DC \\u05E1\\u05D5\\u05DB\\u05D5\\u05EA');\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n if (dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"Hoshanos - \\u05DC\\u05DE\\u05E2\\u05DF \\u05D0\\u05DE\\u05EA\\u05DA\", \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA - \\u05DC\\u05DE\\u05E2\\u05DF \\u05D0\\u05DE\\u05EA\\u05DA\");\n addTefillahNote(\"Kah Keli\", \"\\u05E7\\u05D4 \\u05E7\\u05DC\\u05D9\");\n if (showGaonShirShelYom) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E2\"\\u05D5 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05D1\\u05E0\\u05D2\\u05D9\\u05E0\\u05D5\\u05EA \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8');\n }\n } else {\n addTefillahNote(\"Hoshanos - \\u05D0\\u05D5\\u05DD \\u05E0\\u05E6\\u05D5\\u05E8\\u05D4\", \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA - \\u05D0\\u05D5\\u05DD \\u05E0\\u05E6\\u05D5\\u05E8\\u05D4\");\n }\n }\n break;\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (day === 16 && !israel) {\n addDayNote(\"Second day of Sukkos\", \"\\u05E1\\u05D5\\u05DB\\u05D5\\u05EA - \\u05D9\\u05D5\\u05DD \\u05D8\\u05D5\\u05D1 \\u05E9\\u05E0\\u05D9\");\n } else if (!israel) {\n addDayNote(\"Chol Hamoed Sukkos\", \"\\u05E1\\u05D5\\u05DB\\u05D5\\u05EA - \\u05D7\\u05D5\\u05DC \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\");\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n }\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n switch (day) {\n case 16:\n addTefillahNote(\n \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA - \" + (dow === DaysOfWeek.SUNDAY ? \"\\u05DC\\u05DE\\u05E2\\u05DF \\u05D0\\u05DE\\u05EA\\u05DA\" : \"\\u05D0\\u05D1\\u05DF \\u05E9\\u05EA\\u05D9\\u05D4\")\n );\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(`\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DB\"\\u05D8 - ..\\u05D4\\u05D1\\u05D5 \\u05DC\\u05D4' \\u05D1\\u05E0\\u05D9 \\u05D0\\u05DC\\u05D9\\u05DD`);\n }\n break;\n case 17:\n addTefillahNote(\n (showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \" + (dow === DaysOfWeek.SHABBOS ? \"\\u05D0\\u05D5\\u05DD \\u05E0\\u05E6\\u05D5\\u05E8\\u05D4\" : \"\\u05D0\\u05E2\\u05E8\\u05D5\\u05DA \\u05E9\\u05D5\\u05E2\\u05D9\")\n );\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E0' - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05DC\\u05D0\\u05E1\\u05E3\");\n }\n break;\n case 18:\n if (dow === DaysOfWeek.SUNDAY) {\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \\u05D0\\u05E2\\u05E8\\u05D5\\u05DA \\u05E9\\u05D5\\u05E2\\u05D9\");\n if (showGaonShirShelYom) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E0' - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05DC\\u05D0\\u05E1\\u05E3\");\n }\n } else {\n if (dow === DaysOfWeek.TUESDAY) {\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \\u05D0\\u05D1\\u05DF \\u05E9\\u05EA\\u05D9\\u05D4\");\n } else if (dow === DaysOfWeek.THURSDAY) {\n addTefillahNote(\n (showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \\u05D0\\u05D5\\u05DD \\u05D0\\u05E0\\u05D9 \\u05D7\\u05D5\\u05DE\\u05D4\"\n );\n } else if (dow === DaysOfWeek.FRIDAY) {\n addTefillahNote((showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \\u05D0-\\u05DC \\u05DC\\u05DE\\u05D5\\u05E9\\u05E2\\u05D5\\u05EA\");\n }\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E6\"\\u05D3 - ..\\u05DE\\u05D9 \\u05D9\\u05E7\\u05D5\\u05DD \\u05DC\\u05D9..');\n }\n }\n break;\n case 19:\n addTefillahNote(\n (showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \" + (dow === DaysOfWeek.SHABBOS ? \"\\u05D0\\u05D5\\u05DD \\u05E0\\u05E6\\u05D5\\u05E8\\u05D4\" : \"\\u05D0-\\u05DC \\u05DC\\u05DE\\u05D5\\u05E9\\u05E2\\u05D5\\u05EA\")\n );\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n if (dow === DaysOfWeek.MONDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E6\"\\u05D3 - ..\\u05DE\\u05D9 \\u05D9\\u05E7\\u05D5\\u05DD \\u05DC\\u05D9..');\n } else {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E6\"\\u05D3 - \\u05D0-\\u05DC \\u05E0\\u05E7\\u05DE\\u05D5\\u05EA.. \\u05D9\\u05E9\\u05E8\\u05D9 \\u05DC\\u05D1');\n }\n }\n break;\n case 20:\n addTefillahNote(\n (showEnglish ? \"Hoshanos\" : \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\") + \" - \" + (dow === DaysOfWeek.SHABBOS ? \"\\u05D0\\u05D5\\u05DD \\u05E0\\u05E6\\u05D5\\u05E8\\u05D4\" : \"\\u05D0\\u05D3\\u05D5\\u05DF \\u05D4\\u05DE\\u05D5\\u05E9\\u05D9\\u05E2\")\n );\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n if (dow === DaysOfWeek.THURSDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4\"\\u05D0 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D4\\u05D2\\u05EA\\u05D9\\u05EA');\n } else {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E6\"\\u05D3 - \\u05D0-\\u05DC \\u05E0\\u05E7\\u05DE\\u05D5\\u05EA.. \\u05D9\\u05E9\\u05E8\\u05D9 \\u05DC\\u05D1');\n }\n }\n break;\n }\n }\n break;\n case 21:\n addDayNote(\"Hoshana Raba\", \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05D4 \\u05E8\\u05D1\\u05D4\");\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (isNightTime) {\n addTefillahNote(\"Mishneh Torah\", \"\\u05DE\\u05E9\\u05E0\\u05D4 \\u05EA\\u05D5\\u05E8\\u05D4\");\n } else {\n addTefillahNote(\"Hoshanos\", \"\\u05D4\\u05D5\\u05E9\\u05E2\\u05E0\\u05D5\\u05EA\");\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n if (showGaonShirShelYom) {\n if (dow === DaysOfWeek.FRIDAY) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4\"\\u05D1 - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05DC\\u05D0\\u05E1\\u05E3');\n } else {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05E4\"\\u05D0 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D4\\u05D2\\u05EA\\u05D9\\u05EA');\n }\n }\n }\n break;\n case 22:\n addDayNote(\"Shmini Atzeres\", \"\\u05E9\\u05DE\\u05D9\\u05E0\\u05D9 \\u05E2\\u05E6\\u05E8\\u05EA\");\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n if (israel) {\n addDayNote(\"Simchas Torah\", \"\\u05E9\\u05DE\\u05D7\\u05EA \\u05EA\\u05D5\\u05E8\\u05D4\");\n addTefillahNote(\"Hakafos\", \"\\u05D4\\u05E7\\u05E4\\u05D5\\u05EA\");\n }\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n addTefillahNote(\"Yizkor\", \"\\u05D9\\u05D6\\u05DB\\u05D5\\u05E8\");\n addTefillahNote(\"Tefilas Geshem\", \"\\u05EA\\u05E4\\u05D9\\u05DC\\u05EA \\u05D2\\u05E9\\u05DD\");\n addTefillahNote(\"\\u05DE\\u05E9\\u05D9\\u05D1 \\u05D4\\u05E8\\u05D5\\u05D7 \\u05D5\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D2\\u05E9\\u05DD\");\n if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05D9\"\\u05D1 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D4\\u05E9\\u05DE\\u05D9\\u05E0\\u05D9\\u05EA');\n }\n }\n break;\n }\n if (day === 23) {\n if (!israel) {\n addDayNote(\"Simchas Torah\", \"\\u05E9\\u05DE\\u05D7\\u05EA \\u05EA\\u05D5\\u05E8\\u05D4\");\n addTefillahNote(\"Ya`aleh V`yavo\", \"\\u05D9\\u05E2\\u05DC\\u05D4 \\u05D5\\u05D9\\u05D1\\u05D0\");\n addTefillahNote(\"Hakafos\", \"\\u05D4\\u05E7\\u05E4\\u05D5\\u05EA\");\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n } else {\n addDayNote(\"Issru Chag\", \"\\u05D0\\u05D9\\u05E1\\u05E8\\u05D5 \\u05D7\\u05D2\");\n if (isNightTime) {\n addDayNote(\"\\u05D0 \\u05D2\\u05D5\\u05D8\\u05E2\\u05DF \\u05D5\\u05D5\\u05D9\\u05E0\\u05D8\\u05E2\\u05E8\", \"\\u05D7\\u05D5\\u05E8\\u05E3 \\u05D8\\u05D5\\u05D1\");\n } else if (dow !== DaysOfWeek.SHABBOS && isMorning) {\n noLaminatzeach();\n }\n }\n } else if (dow === DaysOfWeek.SHABBOS && [15, 17, 18, 19, 20].includes(day)) {\n addTefillahNote(\"Megilas Koheles\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05E7\\u05D4\\u05DC\\u05EA\");\n }\n if (day < 22) {\n addTefillahNote(\"L`Dovid Hashem Ori\", \"\\u05DC\\u05D3\\u05D5\\u05D3 \\u05D4\");\n } else if (day > 22) {\n addTefillahNote(\"Mashiv Haruach U`Morid Hageshem\", \"\\u05DE\\u05E9\\u05D9\\u05D1 \\u05D4\\u05E8\\u05D5\\u05D7 \\u05D5\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D2\\u05E9\\u05DD\");\n }\n break;\n case JewishMonthsNames.CHESHVAN:\n if (isDaytime && (dow === DaysOfWeek.MONDAY && day > 3 && day < 13 || dow === DaysOfWeek.THURSDAY && day > 6 && day < 14 || dow === DaysOfWeek.MONDAY && day > 10 && day < 18)) {\n addTefillahNote(\"Ba`Hab\", '\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA \\u05D1\\u05D4\"\\u05D1');\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n }\n if (day <= 22) {\n addTefillahNote(\"Mashiv Haruach U`Morid Hageshem\", \"\\u05DE\\u05E9\\u05D9\\u05D1 \\u05D4\\u05E8\\u05D5\\u05D7 \\u05D5\\u05DE\\u05D5\\u05E8\\u05D9\\u05D3 \\u05D4\\u05D2\\u05E9\\u05DD\");\n }\n if ((location.Israel && day >= 7 || !location.Israel && showVsainTalUmatarInChul) && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"V`sain Tal U`matar\", \"\\u05D5\\u05EA\\u05DF \\u05D8\\u05DC \\u05D5\\u05DE\\u05D8\\u05E8\");\n }\n break;\n case JewishMonthsNames.KISLEV:\n if ((location.Israel && day <= 7 || !location.Israel && showVsainTalUmatarInChul) && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"V`sain Tal U`matar\", \"\\u05D5\\u05EA\\u05DF \\u05D8\\u05DC \\u05D5\\u05DE\\u05D8\\u05E8\");\n } else if (day === 24 && dow !== DaysOfWeek.SHABBOS && isAfternoon) {\n dayInfo.noTachnun = true;\n } else if (day >= 25) {\n dayInfo.noTachnun = true;\n addDayNote(\"Chanukah\", \"\\u05D7\\u05E0\\u05D5\\u05DB\\u05D4\");\n addTefillahNote(\"Al Hanissim\", \"\\u05E2\\u05DC \\u05D4\\u05E0\\u05D9\\u05E1\\u05D9\\u05DD\");\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) noLaminatzeach();\n if (showGaonShirShelYom && day !== 30 && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DC' - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05E9\\u05D9\\u05E8 \\u05D7\\u05E0\\u05D5\\u05DB\\u05EA \\u05D4\\u05D1\\u05D9\\u05EA\");\n }\n }\n }\n break;\n case JewishMonthsNames.TEVES:\n if (!location.Israel && showVsainTalUmatarInChul && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote(\"V`sain Tal U`matar\", \"\\u05D5\\u05EA\\u05DF \\u05D8\\u05DC \\u05D5\\u05DE\\u05D8\\u05E8\");\n }\n if (day <= (jDate.isShortKislev(jdate.Year) ? 3 : 2)) {\n dayInfo.noTachnun = true;\n addDayNote(\"Chanukah\", \"\\u05D7\\u05E0\\u05D5\\u05DB\\u05D4\");\n addTefillahNote(\"Al Hanissim\", \"\\u05E2\\u05DC \\u05D4\\u05E0\\u05D9\\u05E1\\u05D9\\u05DD\");\n if (isDaytime) {\n addTefillahNote(\"Full Hallel\", \"\\u05D4\\u05DC\\u05DC \\u05D4\\u05E9\\u05DC\\u05DD\");\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n if (day !== 1 && showGaonShirShelYom) {\n addTefillahNote(\"\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DC' - \\u05DE\\u05D6\\u05DE\\u05D5\\u05E8 \\u05E9\\u05D9\\u05E8 \\u05D7\\u05E0\\u05D5\\u05DB\\u05EA \\u05D4\\u05D1\\u05D9\\u05EA\");\n }\n }\n }\n } else if (day === 10 && isDaytime) {\n addDayNote(\"Fast of Asara B`Teves\", \"\\u05E2\\u05E9\\u05E8\\u05D4 \\u05D1\\u05D8\\u05D1\\u05EA\");\n if (isMorning) {\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n }\n break;\n case JewishMonthsNames.SHVAT:\n if (day === 14 && isAfternoon) dayInfo.noTachnun = true;\n if (day === 15) {\n dayInfo.noTachnun = true;\n addDayNote(\"Tu B`Shvat\", '\\u05D8\"\\u05D5 \\u05D1\\u05E9\\u05D1\\u05D8');\n }\n break;\n case JewishMonthsNames.ADAR:\n case JewishMonthsNames.ADAR_SHEINI:\n if (month === JewishMonthsNames.ADAR && isLeapYear) {\n if (day === 13 && isAfternoon) dayInfo.noTachnun = true;\n if ([14, 15].includes(day)) {\n addDayNote(\n day === 14 ? showEnglish ? \"Purim Katan\" : \"\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD \\u05E7\\u05D8\\u05DF\" : showEnglish ? \"Shushan Purim Katan\" : \"\\u05E9\\u05D5\\u05E9\\u05DF \\u05E4\\u05D5\\u05E8\\u05D9\\u05DD \\u05E7\\u05D8\\u05DF\"\n );\n if (isDaytime) {\n dayInfo.noTachnun = true;\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n }\n }\n } else {\n if (isDaytime && (day === 11 && dow === DaysOfWeek.THURSDAY || day === 13 && dow !== DaysOfWeek.SHABBOS)) {\n if (isMorning) {\n addDayNote(\"Fast of Ta`anis Esther\", \"\\u05EA\\u05E2\\u05E0\\u05D9\\u05EA \\u05D0\\u05E1\\u05EA\\u05E8\");\n addTefillahNote(\"Selichos\", \"\\u05E1\\u05DC\\u05D9\\u05D7\\u05D5\\u05EA\");\n }\n addTefillahNote(\"Avinu Malkeinu\", \"\\u05D0\\u05D1\\u05D9\\u05E0\\u05D5 \\u05DE\\u05DC\\u05DB\\u05E0\\u05D5\");\n addTefillahNote(\"Aneinu\", \"\\u05E2\\u05E0\\u05E0\\u05D5\");\n } else {\n const isYerushalayim = location.Name === \"Jerusalem\" || location.NameHebrew === \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD\";\n if (day === 14) {\n dayInfo.noTachnun = true;\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n if (!isYerushalayim || dow === DaysOfWeek.FRIDAY) {\n addDayNote(\"Megilas Esther\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05D0\\u05E1\\u05EA\\u05E8\");\n if (!isYerushalayim) {\n addDayNote(\"Purim\", \"\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD\");\n addTefillahNote(\"Al Hanissim\", \"\\u05E2\\u05DC \\u05D4\\u05E0\\u05D9\\u05E1\\u05D9\\u05DD\");\n if (showGaonShirShelYom) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DB\"\\u05D1 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D0\\u05D9\\u05DC\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8');\n }\n } else {\n addDayNote(\"Matanos LeEvyonim\", \"\\u05DE\\u05EA\\u05E0\\u05D5\\u05EA \\u05DC\\u05D0\\u05D1\\u05D9\\u05D5\\u05E0\\u05D9\\u05DD\");\n }\n } else {\n addDayNote(\"Purim D`Prazim\", \"\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD \\u05D3\\u05E4\\u05E8\\u05D6\\u05D9\\u05DD\");\n }\n } else if (day === 15) {\n dayInfo.noTachnun = true;\n if (isMorning && dow !== DaysOfWeek.SHABBOS) {\n noLaminatzeach();\n }\n if (isYerushalayim) {\n addDayNote(\"Purim\", \"\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD\");\n addTefillahNote(\"Al Hanissim\", \"\\u05E2\\u05DC \\u05D4\\u05E0\\u05D9\\u05E1\\u05D9\\u05DD\");\n if (dow !== DaysOfWeek.SHABBOS) {\n addDayNote(\"Megilas Esther\", \"\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05D0\\u05E1\\u05EA\\u05E8\");\n }\n if (showGaonShirShelYom && isDaytime && dow !== DaysOfWeek.SHABBOS) {\n addTefillahNote('\\u05E9\\u05D9\\u05E8 \\u05E9\\u05DC \\u05D9\\u05D5\\u05DD - \\u05DB\"\\u05D1 - \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7 \\u05E2\\u05DC \\u05D0\\u05D9\\u05DC\\u05EA \\u05D4\\u05E9\\u05D7\\u05E8');\n }\n } else if ([\n \"\\u05D8\\u05D1\\u05E8\\u05D9\\u05D4\",\n \"\\u05D9\\u05E4\\u05D5\",\n \"\\u05E2\\u05DB\\u05D5\",\n \"\\u05E6\\u05E4\\u05EA\",\n \"\\u05D1\\u05D0\\u05E8 \\u05E9\\u05D1\\u05E2\",\n \"\\u05D7\\u05D9\\u05E4\\u05D4\",\n \"\\u05D1\\u05D0\\u05E8 \\u05E9\\u05D1\\u05E2\",\n \"\\u05D1\\u05D9\\u05EA \\u05E9\\u05D0\\u05DF\",\n \"\\u05DC\\u05D5\\u05D3\"\n ].includes(location.Name)) {\n addDayNote(\"Purim D`Mukafin\", \"\\u05E4\\u05D5\\u05E8\\u05D9\\u05DD \\u05D3\\u05DE\\u05D5\\u05E7\\u05E4\\u05D9\\u05DF\");\n if (dow !== DaysOfWeek.SHABBOS) {\n addDayNote(\"(Megilas Esther)\", \"(\\u05DE\\u05D2\\u05D9\\u05DC\\u05EA \\u05D0\\u05E1\\u05EA\\u05E8)\");\n }\n } else {\n addDayNote(\"Shushan Purim\", \"\\u05E9\\u05D5\\u05E9\\u05DF \\u05E4\\u05D5\\u05E8\\u05D9\\u05DD\");\n }\n } else if (day === 16 && isYerushalayim && dow === DaysOfWeek.SUNDAY) {\n addDayNote(\"Purim Seuda and Mishloach Manos\", \"\\u05E1\\u05E2\\u05D5\\u05D3\\u05EA \\u05E4\\u05D5\\u05E8\\u05D9\\u05DD \\u05D5\\u05DE\\u05E9\\u05DC\\u05D5\\u05D7 \\u05DE\\u05E0\\u05D5\\u05EA\");\n }\n }\n }\n break;\n }\n}\nfunction noLaminatzeach() {\n addTefillahNote(\"No Laminatzeach\", '\\u05D0\"\\u05D0 \\u05DC\\u05DE\\u05E0\\u05E6\\u05D7');\n}\nfunction addDayNote(englishOrDefaultText, hebrewText) {\n const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;\n if (!dayNotes.includes(note)) {\n dayNotes.push(note);\n }\n}\nfunction addTefillahNote(englishOrDefaultText, hebrewText) {\n const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;\n if (!tefillahNotes.includes(note)) {\n tefillahNotes.push(note);\n }\n}\nfunction hasOwnKriyasHatorah(jdate, location) {\n const { Month, Day, DayOfWeek } = jdate;\n if (Day === 1 || Day === 30) {\n return true;\n }\n switch (Month) {\n case 1:\n return Day > 14 && Day < 22;\n case 4:\n return Day === 17 || DayOfWeek === 0 && Day === 18;\n case 5:\n return Day === 9 || DayOfWeek === 0 && Day === 10;\n case 7:\n return [3, 16, 17, 18, 19, 20, 21].includes(Day) || DayOfWeek === 0 && Day === 4;\n case 9:\n return Day >= 25;\n case 10:\n return Day === 10 || Day < 3 || Day === 3 && jDate.isShortKislev(jdate.Year);\n case 12:\n case 13:\n return Month === (jDate.isJdLeapY(jdate.Year) ? JewishMonthsNames.ADAR_SHEINI : JewishMonthsNames.ADAR) && (Day === 13 || Day === (location.Name === \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD\" ? 15 : 14));\n default:\n return false;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n Dafyomi,\n DaysOfWeek,\n DaysOfWeekEng,\n DaysOfWeekHeb,\n JewishMonthsEng,\n JewishMonthsHeb,\n JewishMonthsNames,\n Location,\n Locations,\n Molad,\n PirkeiAvos,\n SecularMonthsEng,\n Sedra,\n Utils,\n ZmanTypeIds,\n ZmanTypes,\n Zmanim,\n ZmanimUtils,\n closestDistanceMatch,\n closestNameMatch,\n findLocation,\n getNotifications,\n getZmanType,\n jDate\n});\n"]}